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;
                }
        }
 }


Reply via email to