Author: ito
Date: Tue Aug 24 10:08:28 2010
New Revision: 988461

URL: http://svn.apache.org/viewvc?rev=988461&view=rev
Log:
CLEREZZA-270: HierarchyService replaced by CollectionsCreator to improve 
performace (commit from reto)

Added:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/collections/
      - copied from r988433, 
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/collections/
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/collections/CollectionCreator.java
      - copied unchanged from r988433, 
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/collections/CollectionCreator.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/
      - copied from r988433, 
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/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/collections/CollectionsCreatorTest.java
      - copied unchanged from r988433, 
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
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/oldhierarchy/
      - copied from r988433, 
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/oldhierarchy/
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.ontologies/src/main/resources/org/apache/clerezza/rdf/ontologies/menu.rdf
      - copied unchanged from r988433, 
incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.rdf.ontologies/src/main/resources/org/apache/clerezza/rdf/ontologies/menu.rdf
Removed:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/CollectionNode.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyManager.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyNode.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyService.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyUtils.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/IllegalMoveException.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/NodeAlreadyExistsException.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/NodeDoesNotExistException.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/UnknownRootExcetpion.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.menumanager/
Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/collection.ssp
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.auth.cookie/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/RdfList.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.web.resources.scripts/
   (props changed)
    incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -4,5 +4,7 @@
 
/incubator/clerezza/issues/CLEREZZA-129/org.apache.clerezza.platform.content:917938-918563
 
/incubator/clerezza/issues/CLEREZZA-248/org.apache.clerezza.platform.content:958551-959023
 
/incubator/clerezza/issues/CLEREZZA-25/org.apache.clerezza.platform.content:891178-892849
+/incubator/clerezza/issues/CLEREZZA-270/org.apache.clerezza.parent/org.apache.clerezza.platform.content:984369-988433
 
/incubator/clerezza/issues/CLEREZZA-65/org.apache.clerezza.platform.content:897875-897920
 
/incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content:897917-903631
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content:889374-916719

Modified: 
incubator/clerezza/trunk/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/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
 Tue Aug 24 10:08:28 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.hierarchy.HierarchyNode;
-import org.apache.clerezza.platform.content.hierarchy.HierarchyService;
-import 
org.apache.clerezza.platform.content.hierarchy.NodeAlreadyExistsException;
-import 
org.apache.clerezza.platform.content.hierarchy.NodeDoesNotExistException;
-import org.apache.clerezza.platform.content.hierarchy.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/trunk/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/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/CollectionTypeHandler.java
 Tue Aug 24 10:08:28 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.hierarchy.CollectionNode;
-import org.apache.clerezza.platform.content.hierarchy.HierarchyNode;
-import 
org.apache.clerezza.platform.content.hierarchy.NodeDoesNotExistException;
-import org.apache.clerezza.platform.content.hierarchy.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/trunk/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/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
 Tue Aug 24 10:08:28 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.hierarchy.CollectionNode;
-import org.apache.clerezza.platform.content.hierarchy.HierarchyNode;
-import org.apache.clerezza.platform.content.hierarchy.HierarchyService;
-import org.apache.clerezza.platform.content.hierarchy.HierarchyUtils;
-import org.apache.clerezza.platform.content.hierarchy.IllegalMoveException;
-import 
org.apache.clerezza.platform.content.hierarchy.NodeAlreadyExistsException;
-import 
org.apache.clerezza.platform.content.hierarchy.NodeDoesNotExistException;
-import org.apache.clerezza.platform.content.hierarchy.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/trunk/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/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
 Tue Aug 24 10:08:28 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.hierarchy.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/trunk/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/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/WebDavUtils.java
 Tue Aug 24 10:08:28 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.hierarchy.CollectionNode;
-import org.apache.clerezza.platform.content.hierarchy.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

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/collection.ssp
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/collection.ssp?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/collection.ssp
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/collection.ssp
 Tue Aug 24 10:08:28 2010
@@ -1,16 +1,13 @@
 def hierarchy(s: Any) = new UriRef("http://clerezza.org/2009/09/hierarchy#"; + 
s)
 <div id="tx-content">
        <h3>{res*}</h3>
-       {if ((res/hierarchy("parent")).length != 0){
+       {ifx ((res/hierarchy("parent")).length != 0){
        <h4>Parent: <a 
href={res/hierarchy("parent")*}>{res/hierarchy("parent")*}</a></h4>
-       }else{
-       <h4>Parent: -</h4>
        }
        }
-
-       {if ((res/hierarchy("members")).length != 0){
+       {if ((res/-hierarchy("parent")).length != 0){
        <ul>
-               {for (member <- (res/hierarchy("members"))!!) yield
+               {for (member <- (res/-hierarchy("parent"))) yield
                        {
                        <li><a href={member*}>{member*}</a></li>
                        }

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -1,2 +1,3 @@
 
/incubator/clerezza/issues/CLEREZZA-113/org.apache.clerezza.platform.language:908544-911024
 
/incubator/clerezza/issues/CLEREZZA-72/org.apache.clerezza.platform.language:898371-901144
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.language:903315-916719

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
 Tue Aug 24 10:08:28 2010
@@ -437,11 +437,6 @@
                </dependency>
                <dependency>
                        <groupId>org.apache.clerezza</groupId>
-                       
<artifactId>org.apache.clerezza.platform.menumanager</artifactId>
-                       <scope>runtime</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.clerezza</groupId>
                        
<artifactId>org.apache.clerezza.platform.language.ontologies</artifactId>
                        <scope>runtime</scope>
                </dependency>

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -1 +1,2 @@
 
/incubator/clerezza/issues/CLEREZZA-52/org.apache.clerezza.platform.scripting.scriptmanager:894321-894392
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager:889374-916719

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -1 +1,2 @@
 
/incubator/clerezza/issues/CLEREZZA-80/org.apache.clerezza.platform.security:900994-901238
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security:889374-916719

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.auth.cookie/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -1 +1,2 @@
 
/incubator/clerezza/issues/CLEREZZA-80/org.apache.clerezza.platform.security.auth.cookie:900994-901238
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.security.auth.cookie:889374-916719

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
 Tue Aug 24 10:08:28 2010
@@ -332,11 +332,6 @@
                </dependency>
                <dependency>
                        <groupId>org.apache.clerezza</groupId>
-                       
<artifactId>org.apache.clerezza.platform.menumanager</artifactId>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.clerezza</groupId>
                        
<artifactId>org.apache.clerezza.platform.language.core</artifactId>
                        <scope>provided</scope>
                </dependency>

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -1 +1,2 @@
 
/incubator/clerezza/issues/CLEREZZA-91/org.apache.clerezza.platform.typehandlerspace:905991-906055
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace:889374-916719

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/RdfList.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/RdfList.java?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/RdfList.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/RdfList.java
 Tue Aug 24 10:08:28 2010
@@ -18,6 +18,8 @@
  */
 package org.apache.clerezza.rdf.utils;
 
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.util.AbstractList;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -32,8 +34,12 @@ import org.apache.clerezza.rdf.core.Trip
 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.core.serializedform.Serializer;
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
 import org.apache.clerezza.rdf.ontologies.OWL;
 import org.apache.clerezza.rdf.ontologies.RDF;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * An implementation of an <code>java.util.List</code> backed by an RDF
@@ -51,6 +57,8 @@ import org.apache.clerezza.rdf.ontologie
  */
 public class RdfList extends AbstractList<Resource> {
 
+       private static final Logger logger = 
LoggerFactory.getLogger(RdfList.class);
+
        private final static UriRef RDF_NIL =
                        new 
UriRef("http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";);
        /**
@@ -240,7 +248,28 @@ public class RdfList extends AbstractLis
        }
 
        private Resource getFirstEntry(NonLiteral listResource) {
-               return tc.filter(listResource, RDF.first, 
null).next().getObject();
+               try {
+                       return tc.filter(listResource, RDF.first, 
null).next().getObject();
+               } catch (NullPointerException e) {
+                       try {
+                               final FileOutputStream fileOutputStream = new 
FileOutputStream("/tmp/broken-list.nt");
+                               final GraphNode graphNode = new 
GraphNode(listResource, tc);
+                               Serializer.getInstance().serialize(
+                                               fileOutputStream,
+                                               graphNode.getNodeContext(),
+                                               SupportedFormat.N_TRIPLE);
+                               fileOutputStream.flush();
+                               logger.warn("GraphNode: "+graphNode);
+                               final Iterator<UriRef> properties = 
graphNode.getProperties();
+                               while (properties.hasNext()) {
+                                       logger.warn("available: 
"+properties.next());
+                               }
+
+                               throw new RuntimeException("broken list 
"+listResource, e);
+                       } catch (Exception ex) {
+                               throw new RuntimeException(ex);
+                       }
+               }
        }
 
        public NonLiteral getListResource() {

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -4,3 +4,4 @@
 
/incubator/clerezza/issues/CLEREZZA-48/org.apache.clerezza.triaxrs:893435-898896
 
/incubator/clerezza/issues/CLEREZZA-86/org.apache.clerezza.triaxrs:903135-910335
 
/incubator/clerezza/issues/CLEREZZA-94/org.apache.clerezza.triaxrs:905562-905566
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs:918016-918029

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.web.resources.scripts/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 24 10:08:28 2010
@@ -1,2 +1,2 @@
 
/incubator/clerezza/issues/CLEREZZA-47/org.apache.clerezza.web.resources.scripts:892743-917522
-/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.web.resources.scripts:916331-916719
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.web.resources.scripts:889374-916719

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml?rev=988461&r1=988460&r2=988461&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml Tue Aug 24 
10:08:28 2010
@@ -57,7 +57,6 @@
                
<module>org.apache.clerezza.platform.launcher.storageless.parent</module>
                <module>org.apache.clerezza.platform.launcher.tdb</module>
                <module>org.apache.clerezza.platform.mail</module>
-               <module>org.apache.clerezza.platform.menumanager</module>
                <module>org.apache.clerezza.platform.scripting</module>
                
<module>org.apache.clerezza.platform.scripting.scriptmanager</module>
                
<module>org.apache.clerezza.platform.security.auth.basic</module>
@@ -1016,11 +1015,6 @@
                        </dependency>
                        <dependency>
                                <groupId>org.apache.clerezza</groupId>
-                               
<artifactId>org.apache.clerezza.platform.menumanager</artifactId>
-                               <version>0.3-incubating-SNAPSHOT</version>
-                       </dependency>
-                       <dependency>
-                               <groupId>org.apache.clerezza</groupId>
                                
<artifactId>org.apache.clerezza.rdf.file.storage</artifactId>
                                <version>0.3-incubating-SNAPSHOT</version>
                        </dependency>


Reply via email to