Skip to content

Commit

Permalink
The beginnings of modularization are _ugly_.
Browse files Browse the repository at this point in the history
  • Loading branch information
ajs6f committed Feb 7, 2013
1 parent c195410 commit 778d412
Show file tree
Hide file tree
Showing 21 changed files with 250 additions and 244 deletions.
18 changes: 10 additions & 8 deletions pom.xml
Expand Up @@ -159,13 +159,13 @@
<artifactId>rome</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand Down Expand Up @@ -328,12 +328,14 @@
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.8.v20121106</version>
<version>8.1.9.v20130131</version>
<configuration>
<scanIntervalSeconds>2</scanIntervalSeconds>
<webApp>
<contextPath>/</contextPath>
</webApp>
<stopKey>stop</stopKey>
<stopPort>9999</stopPort>
</configuration>
</plugin>
<plugin>
Expand Down
1 change: 0 additions & 1 deletion src/main/java/org/fcrepo/modeshape/foxml/FedoraOXML.java
Expand Up @@ -19,7 +19,6 @@
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.fcrepo.modeshape.AbstractResource;
import org.modeshape.common.logging.Logger;

import com.google.common.collect.ImmutableMap;

Expand Down
68 changes: 34 additions & 34 deletions src/main/java/org/fcrepo/modeshape/indexer/DublinCore.java
@@ -1,10 +1,12 @@
package org.fcrepo.modeshape.indexer;

import org.fcrepo.modeshape.AbstractResource;
import org.fcrepo.modeshape.indexer.dublincore.AbstractIndexer;
import org.fcrepo.modeshape.indexer.dublincore.IndexFromWellKnownPath;
import static javax.ws.rs.core.MediaType.TEXT_XML;
import static javax.ws.rs.core.Response.ok;

import javax.inject.Inject;
import java.io.InputStream;
import java.util.List;

import javax.annotation.Resource;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
Expand All @@ -14,45 +16,43 @@
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

import java.io.InputStream;
import java.util.List;

import static javax.ws.rs.core.MediaType.TEXT_XML;
import static javax.ws.rs.core.Response.ok;

import org.fcrepo.modeshape.AbstractResource;
import org.fcrepo.modeshape.indexer.dublincore.AbstractIndexer;

@Path("/objects/{pid}/oai_dc")
@Path("/objects/{pid}")
public class DublinCore extends AbstractResource {

@Inject
List<AbstractIndexer> indexers;
@Resource
List<AbstractIndexer> indexers;

@GET
@Produces({ TEXT_XML })
public Response getObjectAsDublinCore(@PathParam("pid") final String pid) throws RepositoryException {
final Session session = repo.login();
@GET
@Produces(TEXT_XML)
@Path("/oai_dc")
public Response getObjectAsDublinCore(@PathParam("pid") final String pid)
throws RepositoryException {
final Session session = repo.login();

try {
if (session.nodeExists("/objects/" + pid)) {
final Node obj = session.getNode("/objects/" + pid);
try {
if (session.nodeExists("/objects/" + pid)) {
final Node obj = session.getNode("/objects/" + pid);

for(AbstractIndexer indexer : indexers) {
InputStream inputStream = indexer.getStream(obj);
for (AbstractIndexer indexer : indexers) {
InputStream inputStream = indexer.getStream(obj);

if(inputStream != null) {
return ok(inputStream, TEXT_XML).build();
}
}
if (inputStream != null) {
return ok(inputStream).build();
}
}

return four04;
} else {
return four04;
}
return four04;
} else {
return four04;
}

} finally {
session.logout();
}
} finally {
session.logout();
}

}
}

}
@@ -1,10 +1,9 @@
package org.fcrepo.modeshape.indexer.dublincore;


import javax.jcr.Node;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import javax.jcr.Node;

public abstract class AbstractIndexer {

Expand Down
@@ -1,14 +1,13 @@
package org.fcrepo.modeshape.indexer.dublincore;

import javax.inject.Inject;
import javax.jcr.Binary;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import static org.modeshape.jcr.api.JcrConstants.JCR_CONTENT;
import static org.modeshape.jcr.api.JcrConstants.JCR_DATA;

import java.io.InputStream;

import static org.modeshape.jcr.api.JcrConstants.JCR_CONTENT;
import static org.modeshape.jcr.api.JcrConstants.JCR_DATA;
import javax.jcr.Binary;
import javax.jcr.Node;
import javax.jcr.RepositoryException;

public class IndexFromWellKnownPath extends AbstractIndexer {

Expand Down
Expand Up @@ -5,6 +5,7 @@
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.observation.Event;
import javax.jcr.observation.EventIterator;
import javax.jcr.observation.EventListener;
Expand Down Expand Up @@ -35,12 +36,13 @@ public class SimpleObserver implements EventListener {

@PostConstruct
public void buildListener() throws RepositoryException {
repository
.login("fedora")
.getWorkspace()
Session session = repository.login();
session.getWorkspace()
.getObservationManager()
.addEventListener(this, eventTypes, "/", true, null, null,
false);
session.save();
session.logout();
}

// it's okay to suppress type-safety warning here,
Expand Down
23 changes: 6 additions & 17 deletions src/test/java/org/fcrepo/modeshape/AbstractResourceTest.java
Expand Up @@ -3,17 +3,11 @@
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.junit.Before;
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/rest.xml", "/spring-test/repo.xml",
"/spring-test/indexer.xml" })
public abstract class AbstractResourceTest {
@ContextConfiguration("/spring-test/jetty.xml")
public abstract class AbstractResourceTest extends AbstractTest {

protected Logger logger;

Expand All @@ -24,22 +18,17 @@ public abstract class AbstractResourceTest {

protected final HttpClient client = new HttpClient();

@Before
public void setLogger() {
logger = LoggerFactory.getLogger(this.getClass());
}

protected static PostMethod postObjMethod(final String pid) {
return new PostMethod(serverAddress + "rest/objects/" + pid);
return new PostMethod(serverAddress + "objects/" + pid);
}

protected static PostMethod postDSMethod(final String pid, final String ds) {
return new PostMethod(serverAddress + "rest/objects/" + pid
return new PostMethod(serverAddress + "objects/" + pid
+ "/datastreams/" + ds);
}

protected static PutMethod putDSMethod(final String pid, final String ds) {
return new PutMethod(serverAddress + "rest/objects/" + pid
+ "/datastreams/" + ds);
return new PutMethod(serverAddress + "objects/" + pid + "/datastreams/"
+ ds);
}
}
19 changes: 19 additions & 0 deletions src/test/java/org/fcrepo/modeshape/AbstractTest.java
@@ -0,0 +1,19 @@
package org.fcrepo.modeshape;

import org.junit.Before;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
public abstract class AbstractTest {

protected Logger logger;

@Before
public void setLogger() {
logger = LoggerFactory.getLogger(this.getClass());
}

}
20 changes: 11 additions & 9 deletions src/test/java/org/fcrepo/modeshape/FedoraDatastreamsTest.java
Expand Up @@ -11,7 +11,9 @@
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;

@ContextConfiguration({ "/spring-test/rest.xml", "/spring-test/repo.xml" })
public class FedoraDatastreamsTest extends AbstractResourceTest {

private static final String faulkner1 = "The past is never dead. It's not even past.";
Expand All @@ -22,7 +24,7 @@ public void testGetDatastreams() throws Exception {
client.executeMethod(pmethod);

GetMethod method = new GetMethod(serverAddress
+ "rest/objects/asdf/datastreams");
+ "objects/asdf/datastreams");
int status = client.executeMethod(method);
assertEquals(200, status);
}
Expand Down Expand Up @@ -54,7 +56,7 @@ public void testMutateDatastream() throws Exception {
assertEquals("Couldn't mutate a datastream!", (Integer) 201, status);

GetMethod retrieveMutatedDataStreamMethod = new GetMethod(serverAddress
+ "rest/objects/asdf2/datastreams/vcxz/content");
+ "objects/asdf2/datastreams/vcxz/content");
client.executeMethod(retrieveMutatedDataStreamMethod);
String response = retrieveMutatedDataStreamMethod
.getResponseBodyAsString();
Expand All @@ -69,7 +71,7 @@ public void testGetDatastream() throws Exception {
client.executeMethod(pmethod);

GetMethod method_test_get = new GetMethod(serverAddress
+ "rest/objects/asdf/datastreams/poiu");
+ "objects/asdf/datastreams/poiu");
int status = client.executeMethod(method_test_get);
assertEquals(404, status);

Expand All @@ -78,7 +80,7 @@ public void testGetDatastream() throws Exception {
assertEquals(201, status);

GetMethod method_2 = new GetMethod(serverAddress
+ "rest/objects/asdf/datastreams/poiu");
+ "objects/asdf/datastreams/poiu");
status = client.executeMethod(method_2);
assertEquals(200, status);
}
Expand All @@ -93,17 +95,17 @@ public void testDeleteDatastream() throws Exception {
assertEquals(201, status);

GetMethod method_2 = new GetMethod(serverAddress
+ "rest/objects/asdf/datastreams/lkjh");
+ "objects/asdf/datastreams/lkjh");
status = client.executeMethod(method_2);
assertEquals(200, status);

DeleteMethod dmethod = new DeleteMethod(serverAddress
+ "rest/objects/asdf/datastreams/lkjh");
+ "objects/asdf/datastreams/lkjh");
status = client.executeMethod(dmethod);
assertEquals(204, status);

GetMethod method_test_get = new GetMethod(serverAddress
+ "rest/objects/asdf/datastreams/lkjh");
+ "objects/asdf/datastreams/lkjh");
status = client.executeMethod(method_test_get);
assertEquals(404, status);
}
Expand All @@ -119,7 +121,7 @@ public void testGetDatastreamContent() throws Exception {
"marbles for everyone", null, null));
assertEquals(201, client.executeMethod(createDSMethod));
GetMethod method_test_get = new GetMethod(serverAddress
+ "rest/objects/testfoo/datastreams/testfoozle/content");
+ "objects/testfoo/datastreams/testfoozle/content");
assertEquals(200, client.executeMethod(method_test_get));
assertEquals("Got the wrong content back!", "marbles for everyone",
method_test_get.getResponseBodyAsString());
Expand All @@ -142,7 +144,7 @@ public void testMultipleDatastreams() throws Exception {
assertEquals(201, client.executeMethod(createDS2Method));

final GetMethod getDSesMethod = new GetMethod(serverAddress
+ "rest/objects/testfoo/datastreams");
+ "objects/testfoo/datastreams");
assertEquals(200, client.executeMethod(getDSesMethod));
final String response = getDSesMethod.getResponseBodyAsString();
assertTrue("Didn't find the first datastream!",
Expand Down
8 changes: 5 additions & 3 deletions src/test/java/org/fcrepo/modeshape/FedoraIdentifiersTest.java
Expand Up @@ -12,12 +12,14 @@
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;

@ContextConfiguration({ "/spring-test/rest.xml", "/spring-test/repo.xml" })
public class FedoraIdentifiersTest extends AbstractResourceTest {

@Test
public void testGetNextPidResponds() throws Exception {
PostMethod method = new PostMethod(serverAddress + "rest/nextPID");
PostMethod method = new PostMethod(serverAddress + "nextPID");
method.addRequestHeader("Accepts", "text/xml");
int status = client.executeMethod(method);
logger.debug("Executed testGetNextPidResponds()");
Expand All @@ -27,7 +29,7 @@ public void testGetNextPidResponds() throws Exception {
@Test
public void testGetNextHasAPid() throws HttpException, IOException {
PostMethod method = new PostMethod(serverAddress
+ "rest/nextPID?numPids=1");
+ "nextPID?numPids=1");
method.addRequestHeader("Accepts", "text/xml");
client.executeMethod(method);
logger.debug("Executed testGetNextHasAPid()");
Expand All @@ -40,7 +42,7 @@ public void testGetNextHasAPid() throws HttpException, IOException {
@Test
public void testGetNextHasTwoPids() throws HttpException, IOException {
PostMethod method = new PostMethod(serverAddress
+ "rest/nextPID?numPids=2");
+ "nextPID?numPids=2");
method.addRequestHeader("Accepts", "text/xml");
client.executeMethod(method);
logger.debug("Executed testGetNextHasTwoPids()");
Expand Down

0 comments on commit 778d412

Please sign in to comment.