Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
ajs6f committed Feb 8, 2013
1 parent 37cbe55 commit c65b26f
Show file tree
Hide file tree
Showing 12 changed files with 389 additions and 175 deletions.
118 changes: 63 additions & 55 deletions fcrepo-jms/pom.xml
@@ -1,58 +1,66 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.fcrepo</groupId>
<artifactId>fcrepo</artifactId>
<version>4.0-SNAPSHOT</version>
</parent>
<artifactId>fcrepo-jms</artifactId>
<name>fcrepo jms</name>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.fcrepo</groupId>
<artifactId>fcrepo</artifactId>
<version>4.0-SNAPSHOT</version>
</parent>
<artifactId>fcrepo-jms</artifactId>
<name>fcrepo jms</name>

<dependencies>
<dependency>
<groupId>org.fcrepo</groupId>
<artifactId>fcrepo-kernel</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-parser</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.fcrepo</groupId>
<artifactId>fcrepo-kernel</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-parser</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
</dependency>
<dependency>
<groupId>org.jgroups</groupId>
<artifactId>jgroups</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
</dependencies>
</project>
@@ -1,4 +1,4 @@
package org.fcrepo.modeshape.observer;
package org.fcrepo.observer;

import static com.google.common.collect.Iterables.any;
import static javax.jcr.observation.Event.NODE_ADDED;
Expand Down

This file was deleted.

120 changes: 120 additions & 0 deletions fcrepo-jms/src/test/java/org/fcrepo/observer/AtomJMSTest.java
@@ -0,0 +1,120 @@

package org.fcrepo.observer;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.io.ByteArrayInputStream;
import java.util.List;

import javax.inject.Inject;
import javax.jcr.LoginException;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

import org.apache.abdera.Abdera;
import org.apache.abdera.model.Category;
import org.apache.abdera.model.Entry;
import org.apache.abdera.parser.Parser;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"/spring-test/jms.xml", "/spring-test/repo.xml",
"/spring-test/eventing.xml"})
public class AtomJMSTest implements MessageListener {

@Inject
private Repository repository;

@Inject
private ActiveMQConnectionFactory connectionFactory;

private Connection connection;

private javax.jms.Session session;

private MessageConsumer consumer;

static Parser parser = new Abdera().getParser();

private Entry entry;

final private Logger logger = LoggerFactory.getLogger(AtomJMSTest.class);

@Test
public void testAtomStream() throws LoginException, RepositoryException {
Session session = repository.login();
session.getRootNode().addNode("test1").addMixin("fedora:object");
session.save();
session.logout();
while (entry == null)
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
List<Category> categories = entry.getCategories("xsd:string");
String path = null;
for (Category cat : categories) {
if (cat.getLabel().equals("fedora-types:pid")) {
logger.debug("Found Category with term: " + cat.getTerm());
path = cat.getTerm();
}
}
assertEquals("Got wrong pid!", "test1", path);
assertEquals("Got wrong method!", "ingest", entry.getTitle());
}

@Override
public void onMessage(Message message) {
logger.debug("Received JMS message: " + message.toString());
TextMessage tMessage = (TextMessage) message;
try {
entry =
(Entry) parser.parse(
new ByteArrayInputStream(tMessage.getText()
.getBytes("UTF-8"))).getRoot();
logger.debug("Parsed Entry: " + entry.toString());
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}

}

@Before
public void acquireConnection() throws JMSException {
logger.debug(this.getClass().getName() + " acquiring JMS connection.");
connection = connectionFactory.createConnection();
connection.start();
session =
connection.createSession(false,
javax.jms.Session.AUTO_ACKNOWLEDGE);
consumer = session.createConsumer(session.createTopic("fedora"));
consumer.setMessageListener(this);
}

@After
public void releaseConnection() throws JMSException {
logger.debug(this.getClass().getName() + " releasing JMS connection.");
consumer.close();
session.close();
connection.close();
}

}

0 comments on commit c65b26f

Please sign in to comment.