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/01/13 14:45:30 UTC

svn commit: r898749 - in /incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main: java/org/apache/clerezza/platform/concepts/core/ resources/org/apache/clerezza/platform/concepts/...

Author: ito
Date: Wed Jan 13 13:45:30 2010
New Revision: 898749

URL: http://svn.apache.org/viewvc?rev=898749&view=rev
Log:
CLEREZZA-58: concept tagger in to files splitted

Added:
    incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java
    incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java
      - copied, changed from r898676, incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SelectedConcepts.java
    incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp
      - copied, changed from r898580, incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts-page.ssp
Removed:
    incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SelectedConcepts.java
    incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts-page.ssp
Modified:
    incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp

Added: incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java?rev=898749&view=auto
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java (added)
+++ incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/GenericResourcePage.java Wed Jan 13 13:45:30 2010
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.clerezza.platform.concepts.core;
+
+import java.net.URISyntaxException;
+import java.net.URL;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.core.UriInfo;
+import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
+import org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesRenderlet;
+import org.apache.felix.scr.annotations.Component;
+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.concepts.ontologies.CONCEPTS;
+import org.apache.clerezza.platform.typerendering.RenderletManager;
+import org.apache.clerezza.rdf.core.BNode;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+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.rdf.utils.UnionMGraph;
+import org.osgi.service.component.ComponentContext;
+
+/**
+ * This JAX-RS resource can be used to show selected concepts of a resource.
+ * The URI path of this service is /concepts/generic-resource.
+ *
+ * @author tio
+ */
+@Component
+@Service(Object.class)
+@Property(name = "javax.ws.rs", boolValue = true)
+@Path("/concepts/generic-resource")
+public class GenericResourcePage {
+
+	@Reference
+	protected ContentGraphProvider cgProvider;
+	@Reference
+	private RenderletManager renderletManager;
+
+	protected void activate(ComponentContext context)
+			throws URISyntaxException {
+
+		URL template = getClass().getResource("generic-resource-page.ssp");
+		renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
+				new UriRef(template.toURI().toString()),
+				CONCEPTS.GenericResourcePage, "naked",
+				MediaType.APPLICATION_XHTML_XML_TYPE, true);
+	}
+
+	/**
+	 * Retrieves a resource and its associated concepts to be rendered with a template
+	 * registered for CONCEPTS.GenericResourcePage.
+	 *
+	 * @param uri specifies the uri of a resource
+	 *
+	 * @return GraphNode
+	 */
+	@GET
+	public GraphNode GenericResourcePage(@QueryParam("uri") UriRef uri,
+			@Context UriInfo uriInfo) {
+
+		GraphNode node = new GraphNode(new BNode(), new UnionMGraph(new SimpleMGraph(),
+				cgProvider.getContentGraph()));
+		node.addProperty(RDF.type, PLATFORM.HeadedPage);
+		node.addProperty(RDF.type, CONCEPTS.GenericResourcePage);
+		if (uri != null) {
+			node.addProperty(CONCEPTS.resource, uri);
+		} else {
+			throw new WebApplicationException(Response.status(Status.BAD_REQUEST)
+					.entity("No resource uri defined.").build());
+		}
+		return node;
+	}
+}

Copied: incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java (from r898676, incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SelectedConcepts.java)
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java?p2=incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java&p1=incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SelectedConcepts.java&r1=898676&r2=898749&rev=898749&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SelectedConcepts.java (original)
+++ incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ResourceTagger.java Wed Jan 13 13:45:30 2010
@@ -22,128 +22,89 @@
 import java.net.URL;
 import java.util.List;
 import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriInfo;
+import org.apache.clerezza.jaxrs.utils.RedirectUtil;
 import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
 import org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesRenderlet;
 import org.apache.felix.scr.annotations.Component;
 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.concepts.ontologies.CONCEPTS;
 import org.apache.clerezza.platform.typerendering.RenderletManager;
-import org.apache.clerezza.rdf.core.BNode;
 import org.apache.clerezza.rdf.core.UriRef;
-import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
 import org.apache.clerezza.rdf.ontologies.DCTERMS;
-import org.apache.clerezza.rdf.ontologies.PLATFORM;
-import org.apache.clerezza.rdf.ontologies.RDF;
 import org.apache.clerezza.rdf.ontologies.RDFS;
 import org.apache.clerezza.rdf.utils.GraphNode;
-import org.apache.clerezza.rdf.utils.UnionMGraph;
 import org.osgi.service.component.ComponentContext;
 
 /**
- * This JAX-RS resource can be used to retrieve a resource and its associated
- * concepts. There is also a method for adding concepts to a resource.
+ * This JAX-RS resource can be used for adding concepts to a resource.
  *
- * The URI path of this service is /concepts/find.
+ * The URI path of this service is /concepts/tagger.
  *
  * @author tio
  */
 @Component
 @Service(Object.class)
 @Property(name = "javax.ws.rs", boolValue = true)
-@Path("/concepts/selection")
-public class SelectedConcepts {
+@Path("/concepts/tagger/")
+public class ResourceTagger {
 
 	@Reference
 	protected ContentGraphProvider cgProvider;
 	@Reference
 	private RenderletManager renderletManager;
 
-	/**
-	 * The activate method is called when SCR activates the component
-	 * configuration. This method registers template definitions to be used for
-	 * presenting the overview page and edit-concept page.
-	 *
-	 * @param context
-	 * @throws URISyntaxException
-	 */
 	protected void activate(ComponentContext context)
 			throws URISyntaxException {
 
 
-		URL template = getClass().getResource("selected-concepts-page.ssp");
+		URL template = getClass().getResource("selected-concepts.ssp");
 		renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
 				new UriRef(template.toURI().toString()),
 				RDFS.Resource, "selectedconcepts",
 				MediaType.APPLICATION_XHTML_XML_TYPE, true);
-
-		template = getClass().getResource("generic-resource-page.ssp");
-		renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
-				new UriRef(template.toURI().toString()),
-				CONCEPTS.GenericResourcePage, "naked",
-				MediaType.APPLICATION_XHTML_XML_TYPE, true);
-	}
-
-	/**
-	 * Retrieves a resource and its associated concepts.
-	 *
-	 * @param uri specifies the uri of a resource
-	 *
-	 * @return GraphNode
-	 */
-	@GET
-	public GraphNode GenericResourcePage(@QueryParam("uri") UriRef uri,
-			@Context UriInfo uriInfo) {
-
-		GraphNode node = new GraphNode(new BNode(), new UnionMGraph(new SimpleMGraph(),
-				cgProvider.getContentGraph()));
-		node.addProperty(RDF.type, PLATFORM.HeadedPage);
-		node.addProperty(RDF.type, CONCEPTS.GenericResourcePage);
-		if (uri != null) {
-			node.addProperty(CONCEPTS.resource, uri);
-		} else {
-			throw new WebApplicationException(Response.status(Status.BAD_REQUEST).build());
-		}
-		return node;
 	}
 
 	/**
-	 * Adds concepts to a resource via DC.subject. If parameters uri and
-	 * subjects are not defined a response with code BAD_REQUEST is returned. If
-	 * the relation is succefully added code CREATED is returned.
-	 * otherwise
+	 * Adds concepts to a resource. If parameters uri and
+	 * concepts are not defined a response with code BAD_REQUEST is returned. If
+	 * the relation is succefully added a redirect to /concepts/generic-resource with
+	 * the UriRef of the resource as parameter.
 	 *
 	 * @param uri specifies the uri of a resource
-	 * @param subjects specifies a list of concept uris.
+	 * @param concepts specifies a list of concept uris.
 	 *
 	 * @return
 	 *		A Response
 	 */
 	@POST
-	@Path("add")
-	public Response addConcepts(@FormParam("resource") UriRef resource,
-			@FormParam("subjects") List<String> subjects) {
+	@Path("set")
+	public Response updateConcepts(@FormParam("uri") UriRef uri,
+			@FormParam("concepts") List<String> concepts,
+			@Context UriInfo uriInfo) {
 
-		if (resource != null && subjects != null) {
-			GraphNode node = new GraphNode(resource, cgProvider.getContentGraph());
+		
+		if (uri != null) {
+			GraphNode node = new GraphNode(uri, cgProvider.getContentGraph());
 			node.deleteProperties(DCTERMS.subject);
-			for (String subject : subjects) {
-				node.addProperty(DCTERMS.subject, new UriRef(subject));
+			if(concepts != null) {
+				for (String subject : concepts) {
+					node.addProperty(DCTERMS.subject, new UriRef(subject));
+				}
 			}
-		} else {
-			return Response.status(Status.BAD_REQUEST).entity("No resource uri defined.").build();
+		} else if(uri != null){
+			throw new WebApplicationException(Response.status(
+					Status.BAD_REQUEST).entity("No resource uri defined.").build());
 		}
-		return Response.status(Status.CREATED).entity(resource.getUnicodeString()).build();
+		return RedirectUtil.createSeeOtherResponse("/concepts/generic-resource?uri=" +
+				uri.getUnicodeString(), uriInfo);
 	}
 }

Modified: incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp?rev=898749&r1=898748&r2=898749&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp (original)
+++ incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/generic-resource-page.ssp Wed Jan 13 13:45:30 2010
@@ -18,8 +18,8 @@
 	<h4>About: {res/cpt("resource")*}</h4>
 	<div><object width="200" data={res/cpt("resource")*}></object></div>
 	<br/>
-	<form action="/concepts/suggestions/add">
-		<input type="hidden" name="resource" value={res/cpt("resource")*}></input>
+	<form method="post" action="/concepts/tagger/set">
+		<input type="hidden" name="uri" value={res/cpt("resource")*}></input>
 		{render(res/cpt("resource"), "selectedconcepts")}
 	</form>
 </div>

Copied: incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp (from r898580, incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts-page.ssp)
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp?p2=incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp&p1=incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts-page.ssp&r1=898580&r2=898749&rev=898749&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts-page.ssp (original)
+++ incubator/clerezza/issues/CLEREZZA-58/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/resources/org/apache/clerezza/platform/concepts/core/selected-concepts.ssp Wed Jan 13 13:45:30 2010
@@ -11,9 +11,9 @@
 	</script>
 	{for (concept <- (res/dct("subject"))) yield {
 	<div>
-		<div>{concept/skos("prefLabel")*}</div>
-		<div>{concept*}</div>
-		<input type="hidden" name="subjects" value={concept*}></input>
+		<div><strong>PrefLabel: </strong>{concept/skos("prefLabel")*}</div>
+		<div><strong>Uri: </strong>{concept*}</div>
+		<input type="hidden" name="concepts" value={concept*}></input>
 		<a href="#" class="tx-icon tx-icon-delete" >Add</a>
 		<br />
 		<br />