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