Skip to content

Commit

Permalink
Remove root version from triples
Browse files Browse the repository at this point in the history
  • Loading branch information
osmandin authored and Andrew Woods committed Oct 22, 2014
1 parent fee9733 commit 84ffee0
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 1 deletion.
Expand Up @@ -72,6 +72,7 @@ public void testGetObjectVersionProfile() throws Exception {

createObject(pid);
enableVersioning(pid);
postObjectVersion(pid, "v0.0.1");
final HttpGet getVersion =
new HttpGet(serverAddress + pid + "/fcr:versions");
logger.debug("Retrieved version profile:");
Expand Down
Expand Up @@ -22,6 +22,7 @@
import static org.fcrepo.kernel.RdfLexicon.HAS_VERSION_LABEL;
import static org.fcrepo.kernel.impl.identifiers.NodeResourceConverter.nodeConverter;
import static org.fcrepo.kernel.impl.identifiers.NodeResourceConverter.nodeToResource;
import static org.slf4j.LoggerFactory.getLogger;

import java.util.Iterator;

Expand All @@ -39,6 +40,7 @@
import com.google.common.base.Function;
import com.google.common.collect.Iterators;
import com.hp.hpl.jena.graph.Triple;
import org.slf4j.Logger;


/**
Expand All @@ -56,6 +58,7 @@ public class VersionsRdfContext extends RdfStream {

private final com.hp.hpl.jena.graph.Node subject;

private final Logger LOGGER = getLogger(VersionsRdfContext.class);

/**
* Ordinary constructor.
Expand Down Expand Up @@ -87,6 +90,11 @@ private Iterator<Triple> versionTriples() throws RepositoryException {
public Iterator<Triple> apply(final Version version) {

try {
/* Discard jcr:rootVersion */
if (version.getName().equals(versionHistory.getRootVersion().getName())) {
LOGGER.trace("Skipped root version from triples");
return new RdfStream();
}
final Node frozenNode = version.getFrozenNode();
final com.hp.hpl.jena.graph.Node versionSubject
= nodeToResource(idTranslator).convert(frozenNode).asNode();
Expand Down
Expand Up @@ -66,6 +66,7 @@
import org.fcrepo.kernel.services.BinaryService;
import org.fcrepo.kernel.services.NodeService;
import org.fcrepo.kernel.services.ObjectService;
import org.fcrepo.kernel.services.VersionService;
import org.fcrepo.kernel.utils.iterators.PropertyIterator;
import org.fcrepo.kernel.utils.iterators.RdfStream;
import org.junit.After;
Expand Down Expand Up @@ -103,6 +104,9 @@ public class FedoraResourceImplIT extends AbstractIT {
@Inject
BinaryService binaryService;

@Inject
VersionService versionService;

private Session session;

private DefaultIdentifierTranslator subjects;
Expand Down Expand Up @@ -386,11 +390,13 @@ public void testGetObjectVersionGraph() throws RepositoryException {
objectService.findOrCreateObject(session, "/testObjectVersionGraph");

object.getNode().addMixin("mix:versionable");
session.save();

// create a version and make sure there are 2 versions (root + created)
versionService.createVersion(session, object.getPath());
session.save();

object.addVersionLabel("v0.0.1");

session.save();

final Model graphStore = object.getTriples(subjects, VersionsRdfContext.class).asModel();
Expand Down

0 comments on commit 84ffee0

Please sign in to comment.