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 />