You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/03/03 17:51:37 UTC

svn commit: r918567 - in /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content: ./ src/main/java/org/apache/clerezza/platform/content/hierarchy/ src/test/java/org/apache/clerezza/platform/content/hierarchy/

Author: mir
Date: Wed Mar  3 16:51:37 2010
New Revision: 918567

URL: http://svn.apache.org/viewvc?rev=918567&view=rev
Log:
CLEREZZA-129: merged with trunk

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/pom.xml
    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/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java

Propchange: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Mar  3 16:51:37 2010
@@ -1,5 +1,6 @@
 /incubator/clerezza/issues/CLEREZZA-103/org.apache.clerezza.platform.content:907223-909027
 /incubator/clerezza/issues/CLEREZZA-113/org.apache.clerezza.platform.content:908544-911013
+/incubator/clerezza/issues/CLEREZZA-129/org.apache.clerezza.platform.content:917938-918563
 /incubator/clerezza/issues/CLEREZZA-25/org.apache.clerezza.platform.content:891178-892849
 /incubator/clerezza/issues/CLEREZZA-65/org.apache.clerezza.platform.content:897875-897920
 /incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content:897917-903631

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/pom.xml?rev=918567&r1=918566&r2=918567&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/pom.xml Wed Mar  3 16:51:37 2010
@@ -90,5 +90,9 @@
 			<artifactId>junit</artifactId>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>org.apache.clerezza.utils</artifactId>
+		</dependency>
 	</dependencies>
 </project>
\ No newline at end of file

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/CollectionNode.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/hierarchy/CollectionNode.java?rev=918567&r1=918566&r2=918567&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/CollectionNode.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/CollectionNode.java Wed Mar  3 16:51:37 2010
@@ -84,7 +84,7 @@
 		while (membersIter.hasNext()) {
 			UriRef uri = (UriRef) membersIter.next();
 			try {
-				nodes.add(hierarchyService.getHierarchyNode(uri));
+				nodes.add(hierarchyService.getHierarchyNodeWithEncodedUri(uri));
 			} catch (NodeDoesNotExistException ex) {
 				throw new RuntimeException(ex);
 			}
@@ -179,8 +179,9 @@
 	}
 
 	private boolean isSubcollectionOf(CollectionNode collection) {
-		return collection.getNode().getUnicodeString().
-				startsWith(getNode().getUnicodeString());
+		return getNode().getUnicodeString().startsWith(
+				collection.getNode().getUnicodeString());
+				
 	}
 
 }

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyManager.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/hierarchy/HierarchyManager.java?rev=918567&r1=918566&r2=918567&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyManager.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyManager.java Wed Mar  3 16:51:37 2010
@@ -84,15 +84,14 @@
 			@FormParam(value = "parentCollectionUri") UriRef parentCollectionUri,
 			@FormParam(value = "pos") Integer pos,
 			@FormParam(value = "name") String name) {
-		UriRef resourceUri = hierarchyService.createNonCollectionUri(parentCollectionUri, name);
-		try {
-			HierarchyNode node;
+		HierarchyNode node = null;
+		try {			
 			if (pos == null) {
 				node = hierarchyService.
-						createNonCollectionNode(resourceUri);
+						createNonCollectionNode(parentCollectionUri, name);
 			} else {
 				node = hierarchyService.
-						createNonCollectionNode(resourceUri, pos);
+						createNonCollectionNode(parentCollectionUri, name, pos);
 			}
 		} catch (NodeAlreadyExistsException ex) {
 			return Response.status(Response.Status.CONFLICT).entity(ex.toString()).
@@ -101,7 +100,7 @@
 			return Response.status(Response.Status.BAD_REQUEST).entity(e.toString()).
 					type(MediaType.TEXT_PLAIN_TYPE).build();
 		}
-		return Response.created(URI.create(resourceUri.getUnicodeString())).build();
+		return Response.created(URI.create(node.getNode().getUnicodeString())).build();
 	}
 
 	/**
@@ -123,13 +122,13 @@
 			@FormParam(value = "parentCollectionUri") UriRef parentCollectionUri,
 			@FormParam(value = "pos") Integer pos,
 			@FormParam(value = "name") String name) {
-		UriRef collectionUri = hierarchyService.createCollectionUri(parentCollectionUri, name);
+		CollectionNode node = null;
 		try {
-			CollectionNode node;
+			
 			if (pos == null) {
-				node = hierarchyService.createCollectionNode(collectionUri);
+				node = hierarchyService.createCollectionNode(parentCollectionUri, name);
 			} else {
-				node = hierarchyService.createCollectionNode(collectionUri, pos);
+				node = hierarchyService.createCollectionNode(parentCollectionUri, name, pos);
 			}
 		} catch (NodeAlreadyExistsException e) {
 			return Response.status(Response.Status.CONFLICT).entity(e.toString()).
@@ -138,7 +137,7 @@
 			return Response.status(Response.Status.BAD_REQUEST).entity(e.toString()).
 					type(MediaType.TEXT_PLAIN_TYPE).build();
 		}
-		return Response.created(URI.create(collectionUri.getUnicodeString())).build();
+		return Response.created(URI.create(node.getNode().getUnicodeString())).build();
 	}
 
 	/**

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyNode.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/hierarchy/HierarchyNode.java?rev=918567&r1=918566&r2=918567&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyNode.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyNode.java Wed Mar  3 16:51:37 2010
@@ -72,7 +72,7 @@
 		try {
 			UriRef parentCollectionUri = HierarchyUtils
 					.extractParentCollectionUri(getNode());
-			return hierarchyService.getCollectionNode(parentCollectionUri);
+			return hierarchyService.getCollectionNodeWithEncodedUri(parentCollectionUri);
 		} catch (NodeDoesNotExistException ex) {
 			throw new RuntimeException(ex);
 		}
@@ -115,7 +115,7 @@
 		if (newParentCollection.getMembersRdf().contains(newUri)) {
 			HierarchyNode existingNode = null;
 			try {
-				existingNode = hierarchyService.getHierarchyNode(newUri);
+				existingNode = hierarchyService.getHierarchyNodeWithEncodedUri(newUri);
 			} catch (NodeDoesNotExistException ex) {
 				throw new RuntimeException(ex);
 			}

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyService.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/hierarchy/HierarchyService.java?rev=918567&r1=918566&r2=918567&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyService.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyService.java Wed Mar  3 16:51:37 2010
@@ -18,10 +18,8 @@
  */
 package org.apache.clerezza.platform.content.hierarchy;
 
-import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.net.URLEncoder;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -51,6 +49,8 @@
 import org.apache.clerezza.rdf.ontologies.PLATFORM;
 import org.apache.clerezza.rdf.ontologies.RDF;
 import org.apache.clerezza.rdf.utils.GraphNode;
+import org.apache.clerezza.utils.UriException;
+import org.apache.clerezza.utils.UriUtil;
 
 /**
  * The hierarchy service is an OSGi service that provides methods for managing
@@ -91,13 +91,23 @@
 	 * @param uri
 	 */
 	public HierarchyNode getHierarchyNode(UriRef uri)
+			throws NodeDoesNotExistException{		
+		try {
+			uri = new UriRef(UriUtil.encodePartlyEncodedPath(uri.getUnicodeString(), "UTF-8"));
+		} catch (UriException ex) {
+			throw new RuntimeException(ex);
+		}
+		return getHierarchyNodeWithEncodedUri(uri);
+	}
+
+	HierarchyNode getHierarchyNodeWithEncodedUri(UriRef uri)
 			throws NodeDoesNotExistException{
 		HierarchyNode hierarchyNode;
 		try {
-			hierarchyNode = 
+			hierarchyNode =
 					new CollectionNode(uri, cgProvider.getContentGraph(), this);
 		} catch(IllegalArgumentException e) {
-			hierarchyNode = 
+			hierarchyNode =
 					new HierarchyNode(uri, cgProvider.getContentGraph(), this);
 		}
 		checkExistence(hierarchyNode);
@@ -129,7 +139,16 @@
 	 */
 	public CollectionNode getCollectionNode(UriRef uri)
 			throws NodeDoesNotExistException{
+		try {
+			uri = new UriRef(UriUtil.encodePartlyEncodedPath(uri.getUnicodeString(), "UTF-8"));
+		} catch (UriException ex) {
+			throw new RuntimeException(ex);
+		}
+		return getCollectionNodeWithEncodedUri(uri);
+	}
 
+	CollectionNode getCollectionNodeWithEncodedUri(UriRef uri)
+			throws NodeDoesNotExistException{
 		CollectionNode collectionNode =
 				new CollectionNode(uri, cgProvider.getContentGraph(), this);
 		checkExistence(collectionNode);
@@ -153,6 +172,11 @@
 	 */
 	public HierarchyNode createNonCollectionNode(UriRef uri, int posInParent)
 			throws NodeAlreadyExistsException {
+		try {
+			uri = new UriRef(UriUtil.encodePath(uri.getUnicodeString(), "UTF-8"));
+		} catch (UriException ex) {
+			throw new RuntimeException(ex);
+		}
 		HierarchyUtils.ensureNonCollectionUri(uri);
 		handleRootOfUri(uri);
 		HierarchyNode hierarchyNode = new HierarchyNode(uri,
@@ -300,6 +324,11 @@
 	 */
 	public CollectionNode createCollectionNode(UriRef uri, int posInParent)
 			throws NodeAlreadyExistsException {
+		try {
+			uri = new UriRef(UriUtil.encodePartlyEncodedPath(uri.getUnicodeString(), "UTF-8"));
+		} catch (UriException ex) {
+			throw new RuntimeException(ex);
+		}
 		HierarchyUtils.ensureCollectionUri(uri);
 		handleRootOfUri(uri);
 		addCollectionTypeTriple(uri);
@@ -328,7 +357,7 @@
 	 * @throws IllegalArgumentException Thrown if uri ends not with a '/'
 	 * @return the created collection node.
 	 */
-	public HierarchyNode createCollectionNode(UriRef parentCollection, String name, int posInParent)
+	public CollectionNode createCollectionNode(UriRef parentCollection, String name, int posInParent)
 			throws NodeAlreadyExistsException {
 		UriRef uri = createCollectionUri(parentCollection, name);
 		return createCollectionNode(uri, posInParent);
@@ -350,7 +379,7 @@
 	 * @throws IllegalArgumentException Thrown if uri ends not with a '/'
 	 * @return the created collection node.
 	 */
-	public HierarchyNode createCollectionNode(UriRef parentCollection, String name)
+	public CollectionNode createCollectionNode(UriRef parentCollection, String name)
 			throws NodeAlreadyExistsException {
 		UriRef uri = createCollectionUri(parentCollection, name);
 		return createCollectionNode(uri);
@@ -455,16 +484,11 @@
 	 * @return
 	 */
 	UriRef createCollectionUri(UriRef parrentCollectionUri, String name) {
-		return new UriRef(
-				createNonCollectionUri(parrentCollectionUri, name).getUnicodeString() + "/");
+		return new UriRef(parrentCollectionUri.getUnicodeString() + name + "/");
 	}
 
 	UriRef createNonCollectionUri(UriRef parentCollectionUri, String name) {
-		try {
-			return new UriRef(parentCollectionUri.getUnicodeString() +
-					URLEncoder.encode(name, "UTF-8"));
-		} catch (UnsupportedEncodingException ex) {
-			throw new RuntimeException(ex);
-		}
+		return new UriRef(parentCollectionUri.getUnicodeString() + name);
 	}
+
 }

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java?rev=918567&r1=918566&r2=918567&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java Wed Mar  3 16:51:37 2010
@@ -37,6 +37,7 @@
 import org.apache.clerezza.rdf.ontologies.HIERARCHY;
 import org.apache.clerezza.rdf.ontologies.PLATFORM;
 import org.apache.clerezza.rdf.ontologies.RDF;
+import org.apache.clerezza.utils.UriUtil;
 
 
 /**
@@ -51,7 +52,7 @@
 	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 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");
@@ -62,6 +63,9 @@
 	private UriRef newRootTest = new UriRef("http://newRoot/test/");
 	private UriRef newRoot2Resource = new UriRef("http://newRoot2/resource");
 	private UriRef newRoot2 = new UriRef("http://newRoot2/");
+	private UriRef encodedResource = new UriRef("http://localhost:8282/t +");
+	private UriRef encodedCollection = new UriRef("http://localhost:8282/t +/");
+
         
 
 	@Test
@@ -117,15 +121,33 @@
 		Assert.assertTrue(exceptionThrown);
 	}
 
-        @Test
+    @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());
+		createNonCollectionNode(fooTestResource4, 0);
+		CollectionNode fooTestNode = fooTestResource4Node.getParent();
+		Assert.assertEquals(fooTest, fooTestNode.getNode());
+		CollectionNode fooNode = fooTestNode.getParent();
+		Assert.assertEquals(foo, fooNode.getNode());
+	}
+
+	@Test
+	public void nonCollectionNodeCreationWithEncodedCharacters() throws Exception{
+		HierarchyService hierarchyService = getHierarchyService();
+		hierarchyService.createNonCollectionNode(encodedResource, 0);
+        HierarchyNode encodedNode = hierarchyService.getHierarchyNode(encodedResource);
+		Assert.assertEquals(UriUtil.encodePath(encodedResource.getUnicodeString(), "UTF-8"),
+				encodedNode.getNode().getUnicodeString());
+	}
+
+	@Test
+	public void collectionNodeCreationWithEncodedCharacters() throws Exception{
+		HierarchyService hierarchyService = getHierarchyService();
+		hierarchyService.createCollectionNode(encodedCollection, 0);
+        CollectionNode encodedNode = hierarchyService.getCollectionNode(encodedCollection);
+		Assert.assertEquals(UriUtil.encodePath(encodedCollection.getUnicodeString(), "UTF-8"),
+				encodedNode.getNode().getUnicodeString());
 	}
 
 	@Test