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

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

Author: ito
Date: Tue Feb  9 16:36:30 2010
New Revision: 908111

URL: http://svn.apache.org/viewvc?rev=908111&view=rev
Log:
HierarchyService: addCreationProperties fixed

Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/pom.xml
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.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.webapp.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/pom.xml?rev=908111&r1=908110&r2=908111&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/pom.xml Tue Feb  9 16:36:30 2010
@@ -82,6 +82,10 @@
 			<artifactId>org.apache.clerezza.platform.config</artifactId>
 		</dependency>
 		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>org.apache.clerezza.platform.security</artifactId>
+		</dependency>
+		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
 			<scope>test</scope>

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.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.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyService.java?rev=908111&r1=908110&r2=908111&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.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.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/hierarchy/HierarchyService.java Tue Feb  9 16:36:30 2010
@@ -20,12 +20,10 @@
 
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.security.AccessController;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
-import javax.security.auth.Subject;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
@@ -33,10 +31,12 @@
 import org.apache.clerezza.platform.config.PlatformConfig;
 import org.apache.clerezza.platform.config.SystemConfig;
 import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
+import org.apache.clerezza.platform.security.UserUtil;
 import org.apache.clerezza.platform.usermanager.UserManager;
 import org.apache.clerezza.rdf.core.LiteralFactory;
 import org.apache.clerezza.rdf.core.MGraph;
 import org.apache.clerezza.rdf.core.NonLiteral;
+import org.apache.clerezza.rdf.core.Resource;
 import org.apache.clerezza.rdf.core.Triple;
 import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.clerezza.rdf.core.impl.TripleImpl;
@@ -45,6 +45,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.rdf.utils.GraphNode;
 
 /**
  * The hierarchy service is an OSGi service that provides methods for managing
@@ -307,21 +308,29 @@
 	}
 
 	private void addCreationProperties(HierarchyNode node) {
-		NonLiteral user = getCreator();
-		if (node.hasProperty(FOAF.maker, user)) {
-			throw new RuntimeException(
-					"Creator information already exists for node " + 
-					node.getName());
-		}
-		node.addProperty(FOAF.maker, user);
+		GraphNode agentNode = getCreator();
+		if(!(node.getObjects(FOAF.maker).hasNext())) {
+
+			Iterator<Triple> agents = node.getGraph().filter(null, PLATFORM.userName,
+					agentNode.getObjects(PLATFORM.userName).next());
+
+			NonLiteral agent = null;
+			if(agents.hasNext()) {
+				agent = (NonLiteral) agents.next();
+			} else {
+				agent = (NonLiteral) agentNode.getNode();
+			}
+			node.addProperty(FOAF.maker, agent);
+			node.getGraph().add(new TripleImpl(agent,
+					PLATFORM.userName, agentNode.getObjects(
+					PLATFORM.userName).next()));
+		} 
 		node.addProperty(DCTERMS.created,
 				LiteralFactory.getInstance().createTypedLiteral(new Date()));
 	}
 
-	protected NonLiteral getCreator() {
-		String userName = Subject.getSubject(AccessController.getContext()).
-				getPrincipals().iterator().next().getName();
-		return userManager.getUserByName(userName);
+	protected GraphNode getCreator() {
+		return userManager.getUserGraphNode(UserUtil.getCurrentUserName());
 	}
 
 	void deleteCreationProperties(HierarchyNode node) {

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.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.webapp.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java?rev=908111&r1=908110&r2=908111&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.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.webapp.parent/org.apache.clerezza.platform.content/src/test/java/org/apache/clerezza/platform/content/hierarchy/HierarchyTest.java Tue Feb  9 16:36:30 2010
@@ -22,18 +22,20 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+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.NonLiteral;
 import org.apache.clerezza.rdf.core.Triple;
 import org.apache.clerezza.rdf.core.UriRef;
+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.ontologies.HIERARCHY;
+import org.apache.clerezza.rdf.ontologies.PLATFORM;
 import org.apache.clerezza.rdf.ontologies.RDF;
 
 
@@ -208,8 +210,10 @@
 
 	private class TestHierarchyService extends HierarchyService {
 		@Override
-		protected NonLiteral getCreator() {
-			return new BNode();
+		protected GraphNode getCreator() {
+			GraphNode node = new GraphNode(new BNode(), new SimpleMGraph());
+			node.addProperty(PLATFORM.userName, new PlainLiteralImpl("userName"));
+			return node;
 		}
 	}
 }