You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2010/08/17 09:10:52 UTC
svn commit: r986208 - in
/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src:
main/java/org/apache/clerezza/platform/content/
main/java/org/apache/clerezza/platform/content/oldhierarchy/ test/java...
Author: reto
Date: Tue Aug 17 07:10:51 2010
New Revision: 986208
URL: http://svn.apache.org/viewvc?rev=986208&view=rev
Log:
CLEREZZA-270: prepared to merge down trunk
Added:
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/CollectionsCreatorTest.java
- copied, changed from r985375, incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/oldhierarchy/HierarchyTest.java
Removed:
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/oldhierarchy/
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/oldhierarchy/HierarchyTest.java
Modified:
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java
Modified: incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java?rev=986208&r1=986207&r2=986208&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java (original)
+++ incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java Tue Aug 17 07:10:51 2010
@@ -24,11 +24,7 @@ import java.util.Iterator;
import java.util.Set;
import javax.ws.rs.core.MediaType;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyNode;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyService;
-import org.apache.clerezza.platform.content.oldhierarchy.NodeAlreadyExistsException;
-import org.apache.clerezza.platform.content.oldhierarchy.NodeDoesNotExistException;
-import org.apache.clerezza.platform.content.oldhierarchy.UnknownRootExcetpion;
+import org.apache.clerezza.platform.content.collections.CollectionCreator;
import org.apache.clerezza.rdf.core.LiteralFactory;
import org.apache.clerezza.rdf.core.MGraph;
@@ -64,29 +60,16 @@ public abstract class AbstractDiscobitsH
*/
protected abstract Set<MetaDataGenerator> getMetaDataGenerators();
- /**
- * Returns the hierarchy service used to manage hierachy in the content
- * graph
- * @return the hierarchy service
- */
- protected abstract HierarchyService getHierarchyService();
@Override
public void put(UriRef infoDiscoBitUri, MediaType mediaType,
byte[] data) {
GraphNode infoDiscoBitNode;
- try {
- HierarchyService hierarchyService = getHierarchyService();
- if (hierarchyService == null) {
- infoDiscoBitNode = new GraphNode(infoDiscoBitUri, getMGraph());
- } else {
- infoDiscoBitNode = hierarchyService.createNonCollectionNode(infoDiscoBitUri);
- }
-
- } catch (NodeAlreadyExistsException ex) {
- infoDiscoBitNode = new GraphNode(infoDiscoBitUri, getMGraph());
- }
+ final MGraph mGraph = getMGraph();
+ infoDiscoBitNode = new GraphNode(infoDiscoBitUri, mGraph);
+ CollectionCreator collectionCreator = new CollectionCreator(mGraph);
+ collectionCreator.createContainingCollections(infoDiscoBitUri);
infoDiscoBitNode.addProperty(RDF.type, DISCOBITS.InfoDiscoBit);
TypedLiteral dataLiteral = LiteralFactory.getInstance().createTypedLiteral(data);
infoDiscoBitNode.deleteProperties(DISCOBITS.infoBit);
@@ -129,20 +112,7 @@ public abstract class AbstractDiscobitsH
return;
}
}
- GraphNode graphNode;
- try {
- HierarchyService hierarchyService = getHierarchyService();
- if (hierarchyService == null) {
- graphNode = new GraphNode(node, mGraph);
- } else {
- graphNode = hierarchyService.getHierarchyNode((UriRef) node);
- ((HierarchyNode) graphNode).delete();
- }
- } catch (NodeDoesNotExistException ex) {
- graphNode = new GraphNode(node, mGraph);
- } catch (UnknownRootExcetpion ex) {
- graphNode = new GraphNode(node, mGraph);
- }
+ GraphNode graphNode = new GraphNode(node, mGraph);
graphNode.deleteNodeContext();
}
Modified: incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java?rev=986208&r1=986207&r2=986208&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java (original)
+++ incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java Tue Aug 17 07:10:51 2010
@@ -18,7 +18,6 @@ package org.apache.clerezza.platform.con
import java.net.URL;
import java.util.Map;
import javax.ws.rs.GET;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@@ -29,10 +28,6 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
-import org.apache.clerezza.platform.content.oldhierarchy.CollectionNode;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyNode;
-import org.apache.clerezza.platform.content.oldhierarchy.NodeDoesNotExistException;
-import org.apache.clerezza.platform.content.oldhierarchy.UnknownRootExcetpion;
import org.apache.clerezza.platform.content.webdav.COPY;
import org.apache.clerezza.platform.content.webdav.LOCK;
import org.apache.clerezza.platform.content.webdav.UNLOCK;
@@ -104,40 +99,28 @@ public class CollectionTypeHandler exten
graphNode.addProperty(RDF.type, PLATFORM.HeadedPage);
UriRef collectionUri = new UriRef(uriInfo.getAbsolutePath().toString());
- CollectionNode collection = null;
- try {
- collection = hierarchyService.getCollectionNode(collectionUri);
- } catch (NodeDoesNotExistException ex) {
- throw new WebApplicationException(ex);
- } catch (UnknownRootExcetpion ex) {
- throw new WebApplicationException(ex);
- }
- CollectionNode parent = collection.getParent();
- if (parent != null){
- graphNode.addProperty(HIERARCHY.parent, parent.getNode());
- }
return graphNode;
}
@Override
- Map<UriRef, PropertyMap> getPropNames(HierarchyNode node, String depthHeader) {
- return WebDavUtils.getCollectionProps(null, null, null, (CollectionNode) node,
+ Map<UriRef, PropertyMap> getPropNames(GraphNode node, String depthHeader) {
+ return WebDavUtils.getCollectionProps(null, null, null, node,
depthHeader, false /* doesNotIncludeValues */);
}
@Override
- Map<UriRef, PropertyMap> getPropsByName(Node requestNode, HierarchyNode node,
+ Map<UriRef, PropertyMap> getPropsByName(Node requestNode, GraphNode node,
String depthHeader) {
Map<UriRef, PropertyMap> result;
NodeList children = requestNode.getChildNodes();
- result = WebDavUtils.getPropsByName(children, (CollectionNode) node, depthHeader,
+ result = WebDavUtils.getPropsByName(children, node, depthHeader,
true /* includeValues */);
return result;
}
@Override
- Map<UriRef, PropertyMap> getAllProps(HierarchyNode node, String depthHeader) {
- return WebDavUtils.getCollectionProps(null, null, null, (CollectionNode) node,
+ Map<UriRef, PropertyMap> getAllProps(GraphNode node, String depthHeader) {
+ return WebDavUtils.getCollectionProps(null, null, null, node,
depthHeader, true /* includeValues */);
}
Modified: incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java?rev=986208&r1=986207&r2=986208&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java (original)
+++ incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java Tue Aug 17 07:10:51 2010
@@ -30,6 +30,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.locks.Lock;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
@@ -48,14 +49,7 @@ import javax.xml.transform.TransformerFa
import javax.xml.transform.dom.DOMSource;
import org.apache.clerezza.jaxrs.utils.RedirectUtil;
import org.apache.clerezza.platform.content.WebDavUtils.PropertyMap;
-import org.apache.clerezza.platform.content.oldhierarchy.CollectionNode;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyNode;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyService;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyUtils;
-import org.apache.clerezza.platform.content.oldhierarchy.IllegalMoveException;
-import org.apache.clerezza.platform.content.oldhierarchy.NodeAlreadyExistsException;
-import org.apache.clerezza.platform.content.oldhierarchy.NodeDoesNotExistException;
-import org.apache.clerezza.platform.content.oldhierarchy.UnknownRootExcetpion;
+import org.apache.clerezza.platform.content.collections.CollectionCreator;
import org.apache.clerezza.platform.content.webdav.MKCOL;
import org.apache.clerezza.platform.content.webdav.MOVE;
import org.apache.clerezza.platform.content.webdav.PROPFIND;
@@ -74,7 +68,12 @@ import org.apache.clerezza.platform.grap
import org.apache.clerezza.platform.typehandlerspace.OPTIONS;
import org.apache.clerezza.platform.typehandlerspace.SupportedTypes;
import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.LockableMGraph;
+import org.apache.clerezza.rdf.core.impl.TripleImpl;
+import org.apache.clerezza.rdf.ontologies.HIERARCHY;
+import org.apache.clerezza.rdf.ontologies.RDF;
import org.apache.clerezza.rdf.utils.GraphNode;
import org.apache.clerezza.web.fileserver.util.MediaTypeGuesser;
import org.w3c.dom.Document;
@@ -108,9 +107,6 @@ public class DiscobitsTypeHandler extend
@Reference
protected ContentGraphProvider cgProvider;
-
- @Reference
- protected HierarchyService hierarchyService;
private static final Logger logger = LoggerFactory.getLogger(DiscobitsTypeHandler.class);
@@ -181,17 +177,19 @@ public class DiscobitsTypeHandler extend
*/
@MKCOL
public Object mkcol(@Context UriInfo uriInfo) {
- UriRef nodeUri = new UriRef(uriInfo.getAbsolutePath().toString());
- nodeUri = HierarchyUtils.makeCollectionUriRef(nodeUri);
- try {
- hierarchyService.createCollectionNode(nodeUri);
- } catch (NodeAlreadyExistsException e) {
- logger.debug("Collection \""
- + nodeUri.getUnicodeString() + "\" already exists.");
+ String uriString = uriInfo.getAbsolutePath().toString();
+ if (uriString.charAt(uriString.length()-1) != '/') {
+ uriString += '/';
+ }
+ UriRef nodeUri = new UriRef(uriString);
+ final MGraph mGraph = cgProvider.getContentGraph();
+ Triple typeTriple = new TripleImpl(nodeUri, RDF.type, HIERARCHY.Collection);
+ if (mGraph.contains(typeTriple)) {
return Response.status(405) // Method Not Allowed
.entity("Collection \"" + nodeUri.getUnicodeString()
+ "\" already exists.").build();
}
+ new CollectionCreator(mGraph).createContainingCollections(nodeUri);
return Response.created(uriInfo.getAbsolutePath()).build();
}
@@ -219,54 +217,50 @@ public class DiscobitsTypeHandler extend
return checkIfOppositExistsAndRedirectIfSo(nodeUri, uriInfo);
}
Map<UriRef, PropertyMap> result;
- try {
- String depthHeader = WebDavUtils.getHeaderAsString(headers, "Depth");
- if (depthHeader == null) {
- depthHeader = WebDavUtils.infinite;
- }
- HierarchyNode node = hierarchyService.getHierarchyNode(nodeUri);
- if (body != null) {
- Document requestDoc = WebDavUtils.sourceToDocument(body);
- Node propfindNode = WebDavUtils.getNode(requestDoc, WebDavUtils.propfind);
- Node requestNode = WebDavUtils.getFirstChild(propfindNode);
- String requestType = requestNode.getLocalName();
- if (requestType.equalsIgnoreCase(WebDavUtils.allprop)) {
- result = getAllProps(node, depthHeader);
- } else if (requestType.equalsIgnoreCase(WebDavUtils.prop)) {
- result = getPropsByName(requestNode, node, depthHeader);
- } else if (requestType.equalsIgnoreCase(WebDavUtils.propname)) {
- result = getPropNames(node, depthHeader);
- } else {
- return Response.status(Status.BAD_REQUEST).build();
- }
- } else {
- // returns all properties
+ try {
+ String depthHeader = WebDavUtils.getHeaderAsString(headers, "Depth");
+ if (depthHeader == null) {
+ depthHeader = WebDavUtils.infinite;
+ }
+ final MGraph mGraph = cgProvider.getContentGraph();
+ GraphNode node = new GraphNode(nodeUri, mGraph);
+ if (body != null) {
+ Document requestDoc = WebDavUtils.sourceToDocument(body);
+ Node propfindNode = WebDavUtils.getNode(requestDoc, WebDavUtils.propfind);
+ Node requestNode = WebDavUtils.getFirstChild(propfindNode);
+ String requestType = requestNode.getLocalName();
+ if (requestType.equalsIgnoreCase(WebDavUtils.allprop)) {
result = getAllProps(node, depthHeader);
+ } else if (requestType.equalsIgnoreCase(WebDavUtils.prop)) {
+ result = getPropsByName(requestNode, node, depthHeader);
+ } else if (requestType.equalsIgnoreCase(WebDavUtils.propname)) {
+ result = getPropNames(node, depthHeader);
+ } else {
+ return Response.status(Status.BAD_REQUEST).build();
}
- Document responseDoc = WebDavUtils.createResponseDoc(result);
- return Response.status(207).entity(new DOMSource(responseDoc)).type(
- MediaType.APPLICATION_XML_TYPE).build();
- } catch (NodeDoesNotExistException e) {
- return Response.status(Status.NOT_FOUND).entity(
- e.getMessage()).type(MediaType.TEXT_PLAIN).build();
- } catch (TransformerFactoryConfigurationError e) {
- return Response.status(Status.BAD_REQUEST).build();
- } catch (TransformerException e) {
- return Response.status(Status.BAD_REQUEST).build();
- } catch (ParserConfigurationException e) {
- throw new RuntimeException(e);
- } catch(UnknownRootExcetpion ex) {
- return Response.status(Status.BAD_REQUEST).build();
+ } else {
+ // returns all properties
+ result = getAllProps(node, depthHeader);
}
+ Document responseDoc = WebDavUtils.createResponseDoc(result);
+ return Response.status(207).entity(new DOMSource(responseDoc)).type(
+ MediaType.APPLICATION_XML_TYPE).build();
+ } catch (TransformerFactoryConfigurationError e) {
+ return Response.status(Status.BAD_REQUEST).build();
+ } catch (TransformerException e) {
+ return Response.status(Status.BAD_REQUEST).build();
+ } catch (ParserConfigurationException e) {
+ throw new RuntimeException(e);
+ }
}
- Map<UriRef, PropertyMap> getPropNames(HierarchyNode node, String depthHeader) {
+ Map<UriRef, PropertyMap> getPropNames(GraphNode node, String depthHeader) {
Map<UriRef, PropertyMap> result = new HashMap<UriRef, PropertyMap>();
WebDavUtils.addNodeProperties(result, null, null, node, false);
return result;
}
- Map<UriRef, PropertyMap> getPropsByName(Node requestNode, HierarchyNode node,
+ Map<UriRef, PropertyMap> getPropsByName(Node requestNode, GraphNode node,
String depthHeader) {
Map<UriRef, PropertyMap> result;
NodeList children = requestNode.getChildNodes();
@@ -274,7 +268,7 @@ public class DiscobitsTypeHandler extend
return result;
}
- Map<UriRef, PropertyMap> getAllProps(HierarchyNode node, String depthHeader) {
+ Map<UriRef, PropertyMap> getAllProps(GraphNode node, String depthHeader) {
HashMap<UriRef, PropertyMap> result = new HashMap<UriRef, PropertyMap>();
WebDavUtils.addNodeProperties(result, null, null, node, true);
return result;
@@ -301,7 +295,8 @@ public class DiscobitsTypeHandler extend
}
try {
Document requestDoc = WebDavUtils.sourceToDocument(body);
- HierarchyNode node = hierarchyService.getHierarchyNode(nodeUri);
+ final MGraph mGraph = cgProvider.getContentGraph();
+ GraphNode node = new GraphNode(nodeUri, mGraph);
NodeList propsToSet = null;
NodeList propsToRemove = null;
Node proppatchNode = WebDavUtils.getNode(requestDoc, WebDavUtils.proppatch);
@@ -320,18 +315,13 @@ public class DiscobitsTypeHandler extend
Document responseDoc = WebDavUtils.modifyProperties(node, propsToSet, propsToRemove);
return Response.status(207).entity(new DOMSource(responseDoc)).type(
MediaType.APPLICATION_XML_TYPE).build();
- } catch (NodeDoesNotExistException e) {
- return Response.status(Status.NOT_FOUND).entity(
- e.getMessage()).type(MediaType.TEXT_PLAIN).build();
- }catch (ParserConfigurationException ex) {
+ } catch (ParserConfigurationException ex) {
throw new RuntimeException(ex);
} catch (TransformerFactoryConfigurationError ex) {
return Response.status(Status.BAD_REQUEST).build();
} catch (TransformerException ex) {
return Response.status(Status.BAD_REQUEST).build();
- } catch(UnknownRootExcetpion ex) {
- return Response.status(Status.BAD_REQUEST).build();
- }
+ }
}
/**
@@ -352,66 +342,42 @@ public class DiscobitsTypeHandler extend
@MOVE
public Response move(@Context UriInfo uriInfo, @Context HttpHeaders headers) {
UriRef nodeUri = new UriRef(uriInfo.getAbsolutePath().toString());
- if (!nodeAtUriExists(nodeUri)) {
- UriRef oppositUri = HierarchyUtils.makeOppositeUriRef(nodeUri);
- if(nodeAtUriExists(oppositUri)) {
- nodeUri = oppositUri;
+ final LockableMGraph mGraph = cgProvider.getContentGraph();
+ GraphNode node = new GraphNode(nodeUri, mGraph);
+ String targetString = WebDavUtils.getHeaderAsString(headers,
+ "Destination");
+ UriRef targetUri = new UriRef(targetString);
+ String overwriteHeader = WebDavUtils.getHeaderAsString(headers, "Overwrite");
+ boolean overwriteTarget = "T".equalsIgnoreCase(overwriteHeader);
+ if (nodeAtUriExists(targetUri)) {
+ if (overwriteTarget) {
+ new GraphNode(targetUri, mGraph).deleteNodeContext();
} else {
- return Response.status(Status.NOT_FOUND).build();
+ return Response.status(Status.PRECONDITION_FAILED).build();
}
}
- HierarchyNode targetNode;
- String overwriteHeader = null;
- CollectionNode newParentCollection = null;
+ Lock l = mGraph.getLock().writeLock();
+ l.lock();
try {
- targetNode = hierarchyService.getHierarchyNode(nodeUri);
- /* ignored at the moment */
- overwriteHeader = WebDavUtils.getHeaderAsString(headers, "Overwrite");
- if (overwriteHeader == null) {
- overwriteHeader = "F";
+ Iterator<Triple> oldParentTripleIter
+ = mGraph.filter(nodeUri, HIERARCHY.parent, null);
+ if (oldParentTripleIter.hasNext()) {
+ oldParentTripleIter.next();
+ oldParentTripleIter.remove();
+ }
+ while (oldParentTripleIter.hasNext()) {
+ logger.error("more than one parent statement: "+oldParentTripleIter.next());
+ oldParentTripleIter.remove();
}
- String newCollectionString = WebDavUtils.getHeaderAsString(headers,
- "Destination");
- if (newCollectionString != null) {
- UriRef newParentUri = HierarchyUtils.extractParentCollectionUri(
- new UriRef(newCollectionString));
- newParentCollection = hierarchyService
- .getCollectionNode(newParentUri);
- targetNode.move(newParentCollection, HierarchyUtils.getName(
- new UriRef(newCollectionString)), newParentCollection
- .getMembers().size());
- return Response.created(new java.net.URI(nodeUri.getUnicodeString()))
- .build();
- } else {
- logger.error("empty Destination header!");
- return Response.status(Status.BAD_REQUEST).build();
- }
- } catch (URISyntaxException e) {
- return Response.status(Status.BAD_REQUEST).build();
- } catch (NodeDoesNotExistException e) {
- return Response.status(Status.NOT_FOUND).build();
- } catch (NodeAlreadyExistsException e) {
- if (overwriteHeader.equals("F")) {
- return Response.status(Status.PRECONDITION_FAILED).build();
- } else if (overwriteHeader.equals("T")) {
- try {
- String name = HierarchyUtils.getName(nodeUri);
- hierarchyService.getHierarchyNode(
- new UriRef(newParentCollection.getNode().
- getUnicodeString() + name)).delete();
- return this.move(uriInfo, headers);
- } catch (NodeDoesNotExistException ex) {
- throw new RuntimeException(e);
- } catch (UnknownRootExcetpion ex) {
- throw new RuntimeException(ex);
- }
- } else {
- return Response.status(Status.BAD_REQUEST).build();
+ node.replaceWith(targetUri);
+ new CollectionCreator(mGraph).createContainingCollections(targetUri);
+ try {
+ return Response.created(new java.net.URI(targetUri.getUnicodeString())).build();
+ } catch (URISyntaxException ex) {
+ throw new IllegalArgumentException(ex);
}
- } catch (IllegalMoveException e) {
- return Response.status(Status.FORBIDDEN).build();
- } catch (UnknownRootExcetpion ex) {
- return Response.status(Status.BAD_REQUEST).build();
+ } finally {
+ l.unlock();
}
}
@@ -429,26 +395,12 @@ public class DiscobitsTypeHandler extend
public Response delete(@Context UriInfo uriInfo) {
UriRef nodeUri = new UriRef(uriInfo.getAbsolutePath().toString());
if (!nodeAtUriExists(nodeUri)) {
- UriRef oppositUri = HierarchyUtils.makeOppositeUriRef(nodeUri);
- if(nodeAtUriExists(oppositUri)) {
- nodeUri = oppositUri;
- } else {
- return Response.status(Status.NOT_FOUND).entity(
- uriInfo.getAbsolutePath()).type(MediaType.TEXT_PLAIN).build();
- }
- }
-
- HierarchyNode hierarchyNode;
- try {
- hierarchyNode = hierarchyService.getHierarchyNode(nodeUri);
- } catch (NodeDoesNotExistException e) {
- return Response.status(Status.NOT_FOUND).entity(
- uriInfo.getAbsolutePath()).type(MediaType.TEXT_PLAIN).build();
- } catch (UnknownRootExcetpion ex) {
return Response.status(Status.NOT_FOUND).entity(
uriInfo.getAbsolutePath()).type(MediaType.TEXT_PLAIN).build();
}
- hierarchyNode.delete();
+ final LockableMGraph mGraph = cgProvider.getContentGraph();
+ GraphNode node = new GraphNode(nodeUri, mGraph);
+ node.deleteNodeContext();
return Response.ok().build();
}
@@ -512,10 +464,7 @@ public class DiscobitsTypeHandler extend
return metaDataGenerators;
}
- @Override
- protected HierarchyService getHierarchyService() {
- return hierarchyService;
- }
+
private boolean nodeAtUriExists(UriRef nodeUri) {
MGraph mGraph = getMGraph();
@@ -525,11 +474,25 @@ public class DiscobitsTypeHandler extend
private Response checkIfOppositExistsAndRedirectIfSo(UriRef nodeUri,
UriInfo uriInfo) {
- UriRef oppositUri = HierarchyUtils.makeOppositeUriRef(nodeUri);
+ UriRef oppositUri = makeOppositeUriRef(nodeUri);
if (nodeAtUriExists(oppositUri)) {
return RedirectUtil.createSeeOtherResponse(
oppositUri.getUnicodeString(), uriInfo);
}
return Response.status(Status.NOT_FOUND).build();
}
+ /**
+ * add trailing slash if none present, remove otherwise
+ *
+ * @param uri
+ * @return
+ */
+ private static UriRef makeOppositeUriRef(UriRef uri) {
+ String uriString = uri.getUnicodeString();
+ if (uriString.endsWith("/")) {
+ return new UriRef(uriString.substring(0, uriString.length() - 1));
+ } else {
+ return new UriRef(uriString + "/");
+ }
+ }
}
Modified: incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java?rev=986208&r1=986207&r2=986208&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java (original)
+++ incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java Tue Aug 17 07:10:51 2010
@@ -20,7 +20,6 @@ package org.apache.clerezza.platform.con
import org.apache.clerezza.rdf.metadata.MetaDataGenerator;
import java.util.Set;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyService;
import org.apache.clerezza.rdf.core.MGraph;
/**
@@ -45,9 +44,6 @@ class SimpleDiscobitsHandler extends Abs
return null;
}
- @Override
- protected HierarchyService getHierarchyService() {
- return null;
- }
+
}
Modified: incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java?rev=986208&r1=986207&r2=986208&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java (original)
+++ incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java Tue Aug 17 07:10:51 2010
@@ -40,8 +40,6 @@ import javax.xml.transform.TransformerEx
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMResult;
-import org.apache.clerezza.platform.content.oldhierarchy.CollectionNode;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyNode;
import org.apache.clerezza.rdf.core.Literal;
import org.apache.clerezza.rdf.core.LiteralFactory;
import org.apache.clerezza.rdf.core.Resource;
@@ -50,6 +48,8 @@ import org.apache.clerezza.rdf.core.UriR
import org.apache.clerezza.rdf.core.impl.TripleImpl;
import org.apache.clerezza.rdf.ontologies.DCTERMS;
import org.apache.clerezza.rdf.ontologies.HIERARCHY;
+import org.apache.clerezza.rdf.ontologies.RDF;
+import org.apache.clerezza.rdf.utils.GraphNode;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -282,7 +282,7 @@ class WebDavUtils {
*------------------------------------------------------------*/
static Map<UriRef, PropertyMap> getPropsByName(NodeList children,
- HierarchyNode node, String depthHeader, boolean includeValues) {
+ GraphNode node, String depthHeader, boolean includeValues) {
List<Property> requestedUserProps = new ArrayList<Property>();
List<Property> requestedDavProps = new ArrayList<Property>();
@@ -301,9 +301,9 @@ class WebDavUtils {
}
Map<UriRef, PropertyMap> allprops = new HashMap<UriRef, PropertyMap>();
- if (node instanceof CollectionNode) {
+ if (node.hasProperty(RDF.type, HIERARCHY.Collection)) {
return getCollectionProps(allprops, requestedUserProps, requestedDavProps,
- (CollectionNode) node, depthHeader, includeValues);
+ node, depthHeader, includeValues);
}else{
addNodeProperties(allprops, requestedUserProps, requestedDavProps,
node, includeValues);
@@ -314,14 +314,18 @@ class WebDavUtils {
static Map<UriRef, PropertyMap> getCollectionProps(Map<UriRef, PropertyMap> allprops,
List<Property> requestedUserProps, List<Property> requestedDavProps,
- CollectionNode collection, String depthHeader, boolean includeValues) {
+ GraphNode collection, String depthHeader, boolean includeValues) {
if(allprops == null){
allprops = new HashMap<UriRef, PropertyMap>();
}
- List<HierarchyNode> members = collection.getMembers();
addNodeProperties(allprops, requestedUserProps, requestedDavProps, collection,
includeValues);
if (depthHeader.equals("1") || depthHeader.equals(infinite)) {
+ Iterator<GraphNode> membersIter = collection.getSubjectNodes(HIERARCHY.parent);
+ List<GraphNode> members = new ArrayList<GraphNode>();
+ while (membersIter.hasNext()) {
+ members.add(membersIter.next());
+ }
addMemberProps(allprops, requestedUserProps, requestedDavProps, members,
depthHeader, includeValues);
}
@@ -330,11 +334,11 @@ class WebDavUtils {
private static void addMemberProps(Map<UriRef, PropertyMap> allprops,
List<Property> requestedUserProps, List<Property> requestedDavProps,
- List<HierarchyNode> members, String depthHeader, boolean includeValues) {
- for (HierarchyNode member : members) {
- if (depthHeader.equals(infinite) && member instanceof CollectionNode) {
+ List<GraphNode> members, String depthHeader, boolean includeValues) {
+ for (GraphNode member : members) {
+ if (depthHeader.equals(infinite) && member.hasProperty(RDF.type, HIERARCHY.Collection)) {
getCollectionProps(allprops, requestedUserProps, requestedDavProps,
- (CollectionNode) member, depthHeader, includeValues);
+ member, depthHeader, includeValues);
} else {
addNodeProperties(allprops, requestedUserProps, requestedDavProps,
member, includeValues);
@@ -344,7 +348,7 @@ class WebDavUtils {
static void addNodeProperties(Map<UriRef, PropertyMap> allprops,
List<Property> requestedUserProps, List<Property> requestedDavProps,
- HierarchyNode node, boolean includeValues) {
+ GraphNode node, boolean includeValues) {
if (requestedDavProps == null) {
requestedDavProps = new ArrayList<Property>();
@@ -360,11 +364,11 @@ class WebDavUtils {
addDavPropsWithoutValues(propertyMap);
addUserPropsWithoutValues(node, propertyMap);
}
- allprops.put(node.getNode(), propertyMap);
+ allprops.put((UriRef) node.getNode(), propertyMap);
}
- private static void addUserProps(HierarchyNode node, PropertyMap propertyMap,
+ private static void addUserProps(GraphNode node, PropertyMap propertyMap,
List<Property> requestedProps) {
Iterator<UriRef> userPropsIter = node.getProperties();
Set<UriRef> userProps = new HashSet<UriRef>();
@@ -406,7 +410,7 @@ class WebDavUtils {
}
}
- private static void addUserPropsWithoutValues(HierarchyNode node,
+ private static void addUserPropsWithoutValues(GraphNode node,
PropertyMap propertyMap) {
Iterator<UriRef> userPropsIter = node.getProperties();
Set<UriRef> userProps = new HashSet<UriRef>();
@@ -448,14 +452,14 @@ class WebDavUtils {
* @param includeValues
* @param requestedProps
*/
- private static void addDavProps(HierarchyNode node, PropertyMap propertyMap,
+ private static void addDavProps(GraphNode node, PropertyMap propertyMap,
List<Property> requestedProps) {
for (Property property : requestedProps) {
if (davProps.contains(property.prop)) {
if (property.prop.equalsIgnoreCase(displayname)) {
- propertyMap.put(property, node.getName());
+ propertyMap.put(property, getLastSection(((UriRef)node.getNode()).getUnicodeString()));
} else if (property.prop.equalsIgnoreCase(resourcetype)) {
- if (node instanceof CollectionNode) {
+ if (node.hasProperty(RDF.type, HIERARCHY.Collection)) {
propertyMap.put(property, "collection");
} else {
propertyMap.put(property, "");
@@ -503,13 +507,13 @@ class WebDavUtils {
* Proppatch methods *
*-------------------*/
- static Document modifyProperties(HierarchyNode hierarchyNode, NodeList propsToSet,
+ static Document modifyProperties(GraphNode hierarchyNode, NodeList propsToSet,
NodeList propsToRemove) throws ParserConfigurationException {
Document responseDoc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().newDocument();
- UriRef subject = hierarchyNode.getNode();
+ UriRef subject = (UriRef) hierarchyNode.getNode();
Element hrefElement = responseDoc.createElementNS(davUri, href);
- hrefElement.setTextContent(hierarchyNode.getNode().getUnicodeString());
+ hrefElement.setTextContent(subject.getUnicodeString());
Element multistatus = responseDoc.createElementNS(davUri, multistat);
Element responseElement = responseDoc.createElementNS(davUri, response);
Element propOk = responseDoc.createElementNS(davUri, prop);
@@ -606,6 +610,10 @@ class WebDavUtils {
fac.createTypedLiteral(entry.getValue())));
}
+ private static String getLastSection(String s) {
+ return s.substring(s.lastIndexOf('/', s.length()-2));
+ }
+
/**
* Helper class whicht is a {@link HashMap} that maps {@link Property} to a {@link String}
* @author ali
Copied: incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/CollectionsCreatorTest.java (from r985375, incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/oldhierarchy/HierarchyTest.java)
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/CollectionsCreatorTest.java?p2=incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/CollectionsCreatorTest.java&p1=incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/oldhierarchy/HierarchyTest.java&r1=985375&r2=986208&rev=986208&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/oldhierarchy/HierarchyTest.java (original)
+++ incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/CollectionsCreatorTest.java Tue Aug 17 07:10:51 2010
@@ -16,343 +16,39 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.clerezza.platform.content.oldhierarchy;
+package org.apache.clerezza.platform.content.collections;
-import org.apache.clerezza.platform.content.oldhierarchy.CollectionNode;
-import org.apache.clerezza.platform.content.oldhierarchy.NodeAlreadyExistsException;
-import org.apache.clerezza.platform.content.oldhierarchy.UnknownRootExcetpion;
-import org.apache.clerezza.platform.content.oldhierarchy.IllegalMoveException;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyNode;
-import org.apache.clerezza.platform.content.oldhierarchy.NodeDoesNotExistException;
-import org.apache.clerezza.platform.content.oldhierarchy.HierarchyService;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.locks.Lock;
-import org.apache.clerezza.rdf.utils.GraphNode;
import org.junit.Assert;
import org.junit.Test;
-import org.apache.clerezza.platform.config.PlatformConfig;
-import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
-import org.apache.clerezza.rdf.core.BNode;
import org.apache.clerezza.rdf.core.MGraph;
-import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.UriRef;
-import org.apache.clerezza.rdf.core.access.LockableMGraph;
-import org.apache.clerezza.rdf.core.access.LockableMGraphWrapper;
-import org.apache.clerezza.rdf.core.impl.PlainLiteralImpl;
import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
import org.apache.clerezza.rdf.core.impl.TripleImpl;
-import org.apache.clerezza.rdf.core.test.LockableMGraphWrapperForTesting;
import org.apache.clerezza.rdf.ontologies.HIERARCHY;
-import org.apache.clerezza.rdf.ontologies.PLATFORM;
import org.apache.clerezza.rdf.ontologies.RDF;
/**
- * @author mir
+ * @author mir, rbn
*/
-public class HierarchyTest{
+public class CollectionsCreatorTest{
private static UriRef root = new UriRef("http://localhost:8282/");
private UriRef foo = new UriRef("http://localhost:8282/foo/");
private UriRef fooResource = new UriRef("http://localhost:8282/foo/resource");
- private UriRef fooResource2 = new UriRef("http://localhost:8282/foo/resource2");
- private UriRef fooResource3 = new UriRef("http://localhost:8282/foo/resource3");
private UriRef fooTest = new UriRef("http://localhost:8282/foo/test/");
private UriRef fooTestResource4 = new UriRef("http://localhost:8282/foo/test/resource4");
- private UriRef fooFolder1 = new UriRef("http://localhost:8282/foo/folder1/");
- private UriRef bar = new UriRef("http://localhost:8282/bar/");
- private UriRef barResource = new UriRef("http://localhost:8282/bar/resource");
- private UriRef barResource2 = new UriRef("http://localhost:8282/bar/resource2");
- private UriRef barFoo = new UriRef("http://localhost:8282/bar/foo/");
- private UriRef barFooResource = new UriRef("http://localhost:8282/bar/foo/resource");
- private UriRef barFooTest = new UriRef("http://localhost:8282/bar/foo/test/");
- private UriRef newRoot = new UriRef("http://newRoot/");
- private UriRef newRootTest = new UriRef("http://newRoot/test/");
- private UriRef newRoot2Resource = new UriRef("http://newRoot2/resource");
- private UriRef newRoot2 = new UriRef("http://newRoot2/");
@Test
- public void listPositionTest() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- HierarchyNode res1Node = hierarchyService.createNonCollectionNode(fooResource);
- HierarchyNode res3Node = hierarchyService.createNonCollectionNode(fooResource3);
- HierarchyNode res2Node = hierarchyService.createNonCollectionNode(fooResource2, 1);
- CollectionNode fooNode = res1Node.getParent();
- Iterator<HierarchyNode> fooMembers = fooNode.getMembers().iterator();
-
- Assert.assertEquals(res1Node, fooMembers.next());
- Assert.assertEquals(res2Node, fooMembers.next());
- Assert.assertEquals(res3Node, fooMembers.next());
- }
-
- @Test
- public void collectionNodeCreationAndDeletionTest() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- CollectionNode fooFolder1Node = hierarchyService.createCollectionNode(fooFolder1, 0);
- boolean exceptionThrown = false;
- try {
- hierarchyService.createCollectionNode(foo);
- } catch(NodeAlreadyExistsException e) {
- exceptionThrown = true;
- }
- Assert.assertTrue(exceptionThrown);
- try {
- hierarchyService.createCollectionNode(fooResource);
- } catch(IllegalArgumentException e) {
- exceptionThrown = true;
- }
-
- Assert.assertTrue(exceptionThrown);
- CollectionNode fooNode = (CollectionNode)hierarchyService.getHierarchyNode(foo);
- List<HierarchyNode> fooMembers = fooNode.getMembers();
- Assert.assertEquals(1, fooMembers.size());
- Assert.assertEquals(fooFolder1Node, fooMembers.get(0));
- CollectionNode rootNode = (CollectionNode)hierarchyService.getHierarchyNode(root);
- List<HierarchyNode> rootList = rootNode.getMembers();
- Assert.assertEquals(1, rootList.size());
- Assert.assertEquals(fooNode, rootList.get(0));
-
- fooNode.delete();
-
- exceptionThrown = false;
- try {
- fooFolder1Node = (CollectionNode) hierarchyService.getHierarchyNode(fooFolder1);
- } catch(NodeDoesNotExistException e) {
- exceptionThrown = true;
- }
- Assert.assertTrue(exceptionThrown);
-
- exceptionThrown = false;
- try {
- fooNode = (CollectionNode) hierarchyService.getHierarchyNode(foo);
- } catch(NodeDoesNotExistException e) {
- exceptionThrown = true;
- }
- Assert.assertTrue(exceptionThrown);
- }
-
- @Test
- public void nonCollectionNodeCreation() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- HierarchyNode fooTestResource4Node = hierarchyService.
- createNonCollectionNode(fooTestResource4, 0);
- CollectionNode fooTestNode = fooTestResource4Node.getParent();
- Assert.assertEquals(fooTest, fooTestNode.getNode());
- CollectionNode fooNode = fooTestNode.getParent();
- Assert.assertEquals(foo, fooNode.getNode());
- }
-
- @Test
- public void nonCollectionMoveTest() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- HierarchyNode resourceNode = hierarchyService.createNonCollectionNode(fooResource);
- CollectionNode barNode = hierarchyService.createCollectionNode(bar);
-
- CollectionNode fooNode = (CollectionNode)hierarchyService.getHierarchyNode(foo);
- List<HierarchyNode> fooList = fooNode.getMembers();
- Assert.assertEquals(1, fooList.size());
- Assert.assertEquals(resourceNode, fooList.get(0));
- resourceNode.move(barNode, 0);
- List<HierarchyNode> barList = barNode.getMembers();
- fooList = fooNode.getMembers();
- Assert.assertEquals(0, fooList.size());
- Assert.assertEquals(1, barList.size());
- HierarchyNode movedResourceNode = hierarchyService.getHierarchyNode(barResource);
- Assert.assertEquals(movedResourceNode, barList.get(0));
- hierarchyService.createNonCollectionNode(barResource2, 1);
- barList = barNode.getMembers();
- HierarchyNode barResource2Node = hierarchyService.getHierarchyNode(barResource2);
- Assert.assertEquals(barResource2Node, barList.get(1));
- movedResourceNode.move(barNode, 2);
- barList = barNode.getMembers();
- Assert.assertEquals(barResource2Node, barList.get(0));
- Assert.assertEquals(movedResourceNode, barList.get(1));
- movedResourceNode.move(barNode, 0);
- barList = barNode.getMembers();
- Assert.assertEquals(movedResourceNode, barList.get(0));
- Assert.assertEquals(barResource2Node, barList.get(1));
- }
-
- @Test
- public void nonCollectionMoveTest2() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- hierarchyService.createNonCollectionNode(fooResource);
- CollectionNode barNode = hierarchyService.createCollectionNode(bar);
-
- CollectionNode fooNode = (CollectionNode)hierarchyService.getHierarchyNode(foo);
- fooNode.move(barNode, 0);
- List<HierarchyNode> barList = barNode.getMembers();
- CollectionNode barFooNode = hierarchyService.getCollectionNode(barFoo);
- Assert.assertEquals(1, barList.size());
- Assert.assertEquals(barFooNode, barList.get(0));
- List<HierarchyNode> barFooList = barFooNode.getMembers();
- Assert.assertEquals(1, barFooList.size());
- HierarchyNode barFooResourceNode = hierarchyService.getHierarchyNode(barFooResource);
- Assert.assertEquals(barFooResourceNode, barFooList.get(0));
- }
-
- @Test
- public void collectionMoveTest() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- hierarchyService.createCollectionNode(fooFolder1);
- CollectionNode barNode = hierarchyService.createCollectionNode(bar);
- CollectionNode rootNode = (CollectionNode) hierarchyService.getHierarchyNode(root);
- CollectionNode fooNode = (CollectionNode) hierarchyService.getHierarchyNode(foo);
- Assert.assertEquals(0, barNode.getMembers().size());
- Assert.assertTrue(rootNode.getMembers().contains(fooNode));
- fooNode.move(barNode, 0);
- HierarchyNode barFooNode = hierarchyService.getHierarchyNode(barFoo);
- Assert.assertTrue(barNode.getMembers().contains(barFooNode));
- Assert.assertFalse(rootNode.getMembers().contains(fooNode));
- }
-
- @Test
- public void collectionMoveTest2() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- hierarchyService.createCollectionNode(fooTest);
- CollectionNode barNode = hierarchyService.createCollectionNode(bar);
-
- CollectionNode fooNode = (CollectionNode)hierarchyService.getHierarchyNode(foo);
- fooNode.move(barNode, 0);
- List<HierarchyNode> barList = barNode.getMembers();
- CollectionNode barFooNode = hierarchyService.getCollectionNode(barFoo);
- Assert.assertEquals(1, barList.size());
- Assert.assertEquals(barFooNode, barList.get(0));
- List<HierarchyNode> barFooList = barFooNode.getMembers();
- Assert.assertEquals(1, barFooList.size());
- HierarchyNode barFooTestNode = hierarchyService.getHierarchyNode(barFooTest);
- Assert.assertEquals(barFooTestNode, barFooList.get(0));
- }
-
- @Test
- public void collectionMoveIntoItselfTest() throws Exception {
- HierarchyService hierarchyService = getHierarchyService();
- CollectionNode barNode = hierarchyService.createCollectionNode(bar);
- try {
- barNode.move(barNode, 0);
- Assert.assertTrue(false);
- } catch (IllegalMoveException ex) {
- Assert.assertTrue(true);
- }
- }
-
- @Test
- public void renamingTest() throws Exception {
- HierarchyService hierarchyService = getHierarchyService();
- CollectionNode barNode = hierarchyService.createCollectionNode(bar);
- barNode.move(barNode.getParent(), "foo", 0);
- try {
- barNode = hierarchyService.getCollectionNode(bar);
- Assert.assertTrue(false);
- } catch (NodeDoesNotExistException e) {}
- try {
- hierarchyService.getCollectionNode(foo);
- } catch (NodeDoesNotExistException e) {
- Assert.assertTrue(false);
- }
- HierarchyNode resource = hierarchyService.createNonCollectionNode(fooResource);
- resource.move(resource.getParent(), "resource2", 0);
- try {
- resource = hierarchyService.getHierarchyNode(fooResource);
- Assert.assertTrue(false);
- } catch (NodeDoesNotExistException e) {}
- try {
- hierarchyService.getHierarchyNode(fooResource2);
- } catch (NodeDoesNotExistException e) {
- Assert.assertTrue(false);
- }
- HierarchyNode resource3 = hierarchyService.createNonCollectionNode(fooResource3);
- try {
- resource.move(resource3.getParent(), "resource2", 0);
- Assert.assertTrue(false);
- } catch (NodeAlreadyExistsException ex) {}
- }
-
- @Test(expected=UnknownRootExcetpion.class)
- public void missingRootTest() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- hierarchyService.getHierarchyNode(newRootTest);
- }
-
- @Test
- public void rootAutoCreationTest() throws Exception{
- HierarchyService hierarchyService = getHierarchyService();
- hierarchyService.createCollectionNode(newRootTest);
- CollectionNode newRootNode = hierarchyService.getCollectionNode(newRoot);
- Assert.assertTrue(hierarchyService.getRoots().contains(newRootNode));
-
- hierarchyService.createNonCollectionNode(newRoot2Resource);
- CollectionNode newRoot2Node = hierarchyService.getCollectionNode(newRoot2);
- Assert.assertTrue(hierarchyService.getRoots().contains(newRoot2Node));
-
- boolean exceptionThrown = false;
- try {
- hierarchyService.createCollectionNode(
- new UriRef("http:///test2/"));
- } catch(IllegalArgumentException e) {
- exceptionThrown = true;
- }
- Assert.assertTrue(exceptionThrown);
- }
-
- private class MyContentGraphProvider extends ContentGraphProvider {
- SimpleMGraph contentGraph = new SimpleMGraph();
- {
- contentGraph.setCheckConcurrency(true);
- }
- private MGraph graph = new LockableMGraphWrapperForTesting(contentGraph);
- @Override
- public MGraph getContentGraph() {
- return graph;
- }
- }
-
- private static class MyPlatformConfig extends PlatformConfig {
-
- MyPlatformConfig() {
- final SimpleMGraph systemGraph = new SimpleMGraph();
- systemGraph.add(new TripleImpl(new BNode(),
- RDF.type, PLATFORM.Instance));
- bindSystemGraph(new LockableMGraphWrapper(systemGraph));
- }
- @Override
- public Set<UriRef> getBaseUris() {
- return Collections.singleton(root);
- }
- }
-
- private HierarchyService getHierarchyService() {
- HierarchyService hierarchyService = new TestHierarchyService();
- ContentGraphProvider myCgProvider = new MyContentGraphProvider();
- final SimpleMGraph systemGraph = new SimpleMGraph();
- PlatformConfig myPlatConf = new MyPlatformConfig();
- hierarchyService.cgProvider = myCgProvider;
- hierarchyService.config = myPlatConf;
-
- hierarchyService.systemGraph = systemGraph;
- Triple rootTriple = new TripleImpl(root,
- RDF.type, HIERARCHY.Collection);
- LockableMGraph lockableContentGraph = (LockableMGraph) myCgProvider.getContentGraph();
- Lock writeLock = lockableContentGraph.getLock().writeLock();
- writeLock.lock();
- try {
- lockableContentGraph.add(rootTriple);
- } finally {
- writeLock.unlock();
- }
- hierarchyService.activate(null);
- return hierarchyService;
- }
-
- private class TestHierarchyService extends HierarchyService {
- @Override
- protected GraphNode getCreator() {
- GraphNode node = new GraphNode(new BNode(), new SimpleMGraph());
- node.addProperty(PLATFORM.userName, new PlainLiteralImpl("userName"));
- return node;
- }
+ public void listPositionTest() throws Exception {
+ MGraph mGraph = new SimpleMGraph();
+ CollectionCreator collectionCreator = new CollectionCreator(mGraph);
+ collectionCreator.createContainingCollections(fooTestResource4);
+ Assert.assertTrue(mGraph.contains(new TripleImpl(fooTest, RDF.type, HIERARCHY.Collection)));
+ Assert.assertTrue(mGraph.contains(new TripleImpl(fooTestResource4, HIERARCHY.parent, fooTest)));
+ Assert.assertTrue(mGraph.contains(new TripleImpl(foo, HIERARCHY.parent, root)));
+ Assert.assertTrue(mGraph.contains(new TripleImpl(root, RDF.type, HIERARCHY.Collection)));
+ collectionCreator.createContainingCollections(fooResource);
+ Assert.assertTrue(mGraph.contains(new TripleImpl(fooResource, HIERARCHY.parent, foo)));
}
}