Skip to content

Commit

Permalink
JCR path service and datastream inputstream service
Browse files Browse the repository at this point in the history
  • Loading branch information
cbeer committed Feb 12, 2013
1 parent ede56f0 commit c52a989
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 0 deletions.
Expand Up @@ -15,6 +15,7 @@

import javax.inject.Inject;
import javax.jcr.Node;
import javax.jcr.PathNotFoundException;
import javax.jcr.Property;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
Expand Down Expand Up @@ -81,4 +82,9 @@ public Node createDatastreamNode(final Session session,

return ds;
}

public InputStream getDatastreamContentInputStream(final Session session, final String dsPath) throws RepositoryException {
return session.getNode(dsPath).getNode(JCR_CONTENT).getProperty(JCR_DATA).getBinary()
.getStream();
}
}
20 changes: 20 additions & 0 deletions fcrepo-kernel/src/main/java/org/fcrepo/services/PathService.java
@@ -0,0 +1,20 @@
package org.fcrepo.services;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PathService {

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


public String getObjectJcrNodePath(String pid) {
return "/objects/" + pid;
}

public String getDatastreamJcrNodePath(String pid, String dsid) {
return getObjectJcrNodePath(pid) + "/" + dsid;
}
}
@@ -0,0 +1,48 @@
package org.fcrepo.services;

import org.fcrepo.AbstractTest;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;

import javax.inject.Inject;
import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.Session;
import java.io.ByteArrayInputStream;
import java.io.InputStream;

import static org.jgroups.util.Util.assertEquals;
import static org.jgroups.util.Util.assertTrue;
import static org.modeshape.jcr.api.JcrConstants.JCR_CONTENT;
import static org.modeshape.jcr.api.JcrConstants.JCR_DATA;


@ContextConfiguration({ "/spring-test/repo.xml" })
public class DatastreamServiceTest extends AbstractTest {

@Inject
private Repository repository;

@Test
public void testCreateDatastreamNode() throws Exception {
Session session = repository.login();
InputStream is = new ByteArrayInputStream("asdf".getBytes());

Node n = new DatastreamService().createDatastreamNode(session, "testDatastreamNode", "application/octet-stream", is);

session.save();

session = repository.login();

assertTrue(session.getRootNode().hasNode("testDatastreamNode"));

System.out.println(session.getNode("/testDatastreamNode").getNode(JCR_CONTENT).getProperty(JCR_DATA).getString());
assertEquals("asdf", session.getNode("/testDatastreamNode").getNode(JCR_CONTENT).getProperty(JCR_DATA).getString());

}

@Test
public void testGetDatastreamContentInputStream() throws Exception {

}
}

0 comments on commit c52a989

Please sign in to comment.