You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by re...@apache.org on 2013/06/26 22:23:00 UTC
svn commit: r1497076 [1/2] - in /stanbol/branches/commons-ng: ./ entityhub/
entityhub/jersey/
entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/fragment/
entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/
entit...
Author: reto
Date: Wed Jun 26 20:23:00 2013
New Revision: 1497076
URL: http://svn.apache.org/r1497076
Log:
STANBOL-1094: Migrated entityhub.jersey to work in new environment
Modified:
stanbol/branches/commons-ng/entityhub/jersey/pom.xml
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/fragment/EntityhubWebFragment.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/RepresentationReader.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/EntityhubRootResource.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/ReferencedSiteRootResource.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/SiteManagerRootResource.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/BaseGoogleRefineReconcileResource.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/EntityhubReconcileResource.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/ReferencedSiteReconcileResource.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/SiteManagerReconcileResource.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/utils/LDPathHelper.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/QueryResultListWriter.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/RepresentationWriter.java
stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/writers/SignWriter.java
stanbol/branches/commons-ng/entityhub/pom.xml
stanbol/branches/commons-ng/entityhub/site/linkeddata/pom.xml
stanbol/branches/commons-ng/launchers/bundlelists/entityhub/pom.xml
stanbol/branches/commons-ng/launchers/bundlelists/entityhub/src/main/bundles/list.xml
stanbol/branches/commons-ng/launchers/bundlelists/pom.xml
stanbol/branches/commons-ng/launchers/mini/pom.xml
stanbol/branches/commons-ng/launchers/stable/pom.xml
stanbol/branches/commons-ng/pom.xml
Modified: stanbol/branches/commons-ng/entityhub/jersey/pom.xml
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/pom.xml?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/pom.xml (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/pom.xml Wed Jun 26 20:23:00 2013
@@ -16,7 +16,7 @@
<parent>
<groupId>org.apache.stanbol</groupId>
<artifactId>apache-stanbol-entityhub</artifactId>
- <version>0.12.0-SNAPSHOT</version>
+ <version>1.0.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
@@ -58,8 +58,6 @@
org.apache.stanbol.entityhub.jersey.*
</Export-Package -->
<Import-Package>
- javax.ws.rs.*; version="[0,2)",
- org.apache.stanbol.commons.web.base; provide:=true,
*
</Import-Package>
<Private-Package>
@@ -87,7 +85,7 @@
<dependency>
<groupId>org.apache.stanbol</groupId>
<artifactId>org.apache.stanbol.commons.web.base</artifactId>
- <version>0.12.0-SNAPSHOT</version>
+ <version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.stanbol</groupId>
@@ -103,7 +101,7 @@
<dependency>
<groupId>org.apache.stanbol</groupId>
<artifactId>org.apache.stanbol.commons.web.viewable</artifactId>
- <version>0.11.0</version>
+ <version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- dependencies on other Entityhub modules -->
@@ -189,16 +187,6 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-server</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/fragment/EntityhubWebFragment.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/fragment/EntityhubWebFragment.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/fragment/EntityhubWebFragment.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/fragment/EntityhubWebFragment.java Wed Jun 26 20:23:00 2013
@@ -30,22 +30,11 @@ import org.apache.stanbol.commons.web.ba
import org.apache.stanbol.commons.web.base.NavigationLink;
import org.apache.stanbol.commons.web.base.ScriptResource;
import org.apache.stanbol.commons.web.base.WebFragment;
-import org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader;
-import org.apache.stanbol.entityhub.jersey.parsers.RepresentationReader;
-import org.apache.stanbol.entityhub.jersey.resource.EntityhubRootResource;
-import org.apache.stanbol.entityhub.jersey.resource.ReferencedSiteRootResource;
-import org.apache.stanbol.entityhub.jersey.resource.SiteManagerRootResource;
-import org.apache.stanbol.entityhub.jersey.resource.reconcile.EntityhubReconcileResource;
-import org.apache.stanbol.entityhub.jersey.resource.reconcile.ReferencedSiteReconcileResource;
-import org.apache.stanbol.entityhub.jersey.resource.reconcile.SiteManagerReconcileResource;
import org.apache.stanbol.entityhub.jersey.writers.JettisonWriter;
-import org.apache.stanbol.entityhub.jersey.writers.QueryResultListWriter;
-import org.apache.stanbol.entityhub.jersey.writers.RepresentationWriter;
-import org.apache.stanbol.entityhub.jersey.writers.SignWriter;
import org.osgi.framework.BundleContext;
import org.osgi.service.component.ComponentContext;
-@Component(immediate = true, metatype = true)
+@Component(immediate = true)
@Service
public class EntityhubWebFragment implements WebFragment {
@@ -71,22 +60,19 @@ public class EntityhubWebFragment implem
public Set<Class<?>> getJaxrsResourceClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
// resources
- classes.add(EntityhubRootResource.class);
+ //classes.add(EntityhubRootResource.class);
//classes.add(EntityMappingResource.class);
- classes.add(ReferencedSiteRootResource.class);
- classes.add(SiteManagerRootResource.class);
+ //classes.add(ReferencedSiteRootResource.class);
+ //classes.add(SiteManagerRootResource.class);
//Google Refine Reconciliation API support
- classes.add(ReferencedSiteReconcileResource.class);
- classes.add(EntityhubReconcileResource.class);
- classes.add(SiteManagerReconcileResource.class);
+ //classes.add(SiteManagerReconcileResource.class);
//classes.add(SymbolResource.class);
// message body readers and writers
- classes.add(FieldQueryReader.class);
- classes.add(QueryResultListWriter.class);
- classes.add(SignWriter.class);
- classes.add(RepresentationWriter.class);
- classes.add(FieldQueryReader.class);
- classes.add(RepresentationReader.class);
+ //classes.add(FieldQueryReader.class);
+ //classes.add(SignWriter.class);
+ //classes.add(RepresentationWriter.class);
+ //classes.add(FieldQueryReader.class);
+ //classes.add(RepresentationReader.class);
//TODO: somehow writing of Json has not worked because of
// A message body writer for Java class org.codehaus.jettison.json.JSONArray,
// and Java type class org.codehaus.jettison.json.JSONArray, and MIME media
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/FieldQueryReader.java Wed Jun 26 20:23:00 2013
@@ -39,9 +39,12 @@ import javax.ws.rs.ext.MessageBodyReader
import javax.ws.rs.ext.Provider;
import org.apache.commons.io.IOUtils;
+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.stanbol.commons.namespaceprefix.NamespaceMappingUtils;
import org.apache.stanbol.commons.namespaceprefix.NamespacePrefixService;
-import org.apache.stanbol.commons.web.base.ContextHelper;
import org.apache.stanbol.entityhub.core.mapping.ValueConverterFactory;
import org.apache.stanbol.entityhub.core.model.InMemoryValueFactory;
import org.apache.stanbol.entityhub.core.query.FieldQueryImpl;
@@ -63,6 +66,9 @@ import org.codehaus.jettison.json.JSONOb
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component
+@Service(Object.class)
+@Property(name="javax.ws.rs", boolValue=true)
@Provider
public class FieldQueryReader implements MessageBodyReader<FieldQuery> {
private static final Logger log = LoggerFactory.getLogger(FieldQueryReader.class);
@@ -70,14 +76,11 @@ public class FieldQueryReader implements
private static final ValueFactory valueFactory = InMemoryValueFactory.getInstance();
private static final ValueConverterFactory converterFactory = ValueConverterFactory.getDefaultInstance();
- private ServletContext context;
-
- public FieldQueryReader(@Context ServletContext context) {
- this.context = context;
- }
+ @Reference
+ NamespacePrefixService namespacePrefixService;
private NamespacePrefixService getNsPrefixService(){
- return ContextHelper.getServiceFromContext(NamespacePrefixService.class, context);
+ return namespacePrefixService;
}
@Override
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/RepresentationReader.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/RepresentationReader.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/RepresentationReader.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/parsers/RepresentationReader.java Wed Jun 26 20:23:00 2013
@@ -48,8 +48,11 @@ import org.apache.clerezza.rdf.core.UriR
import org.apache.clerezza.rdf.core.serializedform.Parser;
import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
import org.apache.clerezza.rdf.core.serializedform.UnsupportedParsingFormatException;
+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.stanbol.commons.indexedgraph.IndexedMGraph;
-import org.apache.stanbol.commons.web.base.ContextHelper;
import org.apache.stanbol.entityhub.jersey.utils.JerseyUtils;
import org.apache.stanbol.entityhub.jersey.utils.MessageBodyReaderUtils;
import org.apache.stanbol.entityhub.jersey.utils.MessageBodyReaderUtils.RequestData;
@@ -68,6 +71,9 @@ import org.slf4j.LoggerFactory;
* @author Rupert Westenthaler
*
*/
+@Component
+@Service(Object.class)
+@Property(name="javax.ws.rs", boolValue=true)
@Provider
@Consumes({ //First the data types directly supported for parsing representations
MediaType.APPLICATION_JSON, SupportedFormat.N3, SupportedFormat.N_TRIPLE,
@@ -79,8 +85,7 @@ import org.slf4j.LoggerFactory;
public class RepresentationReader implements MessageBodyReader<Map<String,Representation>> {
private static final Logger log = LoggerFactory.getLogger(RepresentationReader.class);
- @Context
- protected ServletContext servletContext;
+
public static final Set<String> supportedMediaTypes;
private static final MediaType DEFAULT_ACCEPTED_MEDIA_TYPE = MediaType.TEXT_PLAIN_TYPE;
@@ -97,6 +102,9 @@ public class RepresentationReader implem
supportedMediaTypes = Collections.unmodifiableSet(types);
}
+ @Reference
+ private Parser parser;
+
@Override
public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
String mediaTypeWithoutParameter =
@@ -240,7 +248,6 @@ public class RepresentationReader implem
RdfValueFactory valueFactory = RdfValueFactory.getInstance();
Map<String,Representation> representations = new HashMap<String,Representation>();
Set<NonLiteral> processed = new HashSet<NonLiteral>();
- Parser parser = ContextHelper.getServiceFromContext(Parser.class, servletContext);
MGraph graph = new IndexedMGraph();
try {
parser.parse(graph,content.getEntityStream(), content.getMediaType().toString());
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/EntityhubRootResource.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/EntityhubRootResource.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/EntityhubRootResource.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/EntityhubRootResource.java Wed Jun 26 20:23:00 2013
@@ -34,8 +34,6 @@ import static org.apache.clerezza.rdf.co
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_XML;
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.TURTLE;
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.X_TURTLE;
-import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
-import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
import static org.apache.stanbol.commons.web.base.utils.MediaTypeUtil.getAcceptableMediaType;
import static org.apache.stanbol.entityhub.jersey.utils.LDPathHelper.getLDPathParseExceptionMessage;
import static org.apache.stanbol.entityhub.jersey.utils.LDPathHelper.handleLDPathRequest;
@@ -77,8 +75,7 @@ import javax.ws.rs.core.Response.Status;
import org.apache.stanbol.commons.indexedgraph.IndexedMGraph;
import org.apache.stanbol.commons.namespaceprefix.NamespaceMappingUtils;
import org.apache.stanbol.commons.namespaceprefix.NamespacePrefixService;
-import org.apache.stanbol.commons.viewable.Viewable;
-import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.viewable.Viewable;
import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
import org.apache.stanbol.entityhub.core.query.QueryResultListImpl;
import org.apache.stanbol.entityhub.jersey.utils.JerseyUtils;
@@ -100,8 +97,14 @@ import org.slf4j.LoggerFactory;
import at.newmedialab.ldpath.exception.LDPathParseException;
import at.newmedialab.ldpath.model.programs.Program;
-
-
+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;
+
+@Component
+@Service(Object.class)
+@Property(name="javax.ws.rs", boolValue=true)
@Path("/entityhub")
public class EntityhubRootResource extends BaseStanbolResource {
@@ -124,23 +127,21 @@ public class EntityhubRootResource exten
* The default number of maximal results of searched sites.
*/
private static final int DEFAULT_FIND_RESULT_LIMIT = 5;
+
+ @Reference
private NamespacePrefixService nsPrefixService;
+
+ @Reference
private Entityhub entityhub;
- // bind the job manager by looking it up from the servlet request context
- public EntityhubRootResource(@Context ServletContext servletContext) {
+ public EntityhubRootResource() {
super();
- entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
- if(entityhub == null){
- throw new WebApplicationException(Response.status(Status.NOT_FOUND)
- .entity("The Entityhub Service is currently not active!").build());
- }
- nsPrefixService = ContextHelper.getServiceFromContext(NamespacePrefixService.class, servletContext);
}
+
@OPTIONS
public Response handleCorsPreflight(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@GET
@@ -148,7 +149,7 @@ public class EntityhubRootResource exten
public Response get(@Context HttpHeaders headers) {
ResponseBuilder rb = Response.ok(new Viewable("index", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
@@ -166,14 +167,14 @@ public class EntityhubRootResource exten
//return HTML docu
ResponseBuilder rb = Response.ok(new Viewable("entity", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
if (symbolId == null || symbolId.isEmpty()) {
// TODO: how to parse an error message
throw new WebApplicationException(BAD_REQUEST);
}
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
Entity entity;
try {
entity = entityhub.getEntity(symbolId);
@@ -185,7 +186,7 @@ public class EntityhubRootResource exten
} else {
ResponseBuilder rb = Response.ok(entity);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -207,7 +208,7 @@ public class EntityhubRootResource exten
//return docu
ResponseBuilder rb = Response.ok(new Viewable("lookup", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
if (reference == null || reference.isEmpty()) {
@@ -226,7 +227,7 @@ public class EntityhubRootResource exten
} else {
ResponseBuilder rb = Response.ok(entity);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -236,7 +237,7 @@ public class EntityhubRootResource exten
public Response handleCorsPreflightEntity(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
//we need also PUT and DELETE because /entity has full CRUD
- enableCORS(servletContext, res, headers,GET,POST,PUT,DELETE,OPTIONS);
+ //enableCORS(servletContext, res, headers,GET,POST,PUT,DELETE,OPTIONS);
return res.build();
}
@@ -282,7 +283,7 @@ public class EntityhubRootResource exten
"not provide the id of the Entity to delete (parameter 'id').")
.header(HttpHeaders.ACCEPT, accepted).build();
}
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
Entity entity;
ResponseBuilder rb;
try {
@@ -306,7 +307,7 @@ public class EntityhubRootResource exten
rb = Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage())
.header(HttpHeaders.ACCEPT, accepted);
}
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
/**
@@ -327,7 +328,7 @@ public class EntityhubRootResource exten
boolean create,
boolean update,
HttpHeaders headers){
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
MediaType accepted = getAcceptableMediaType(headers,
JerseyUtils.ENTITY_SUPPORTED_MEDIA_TYPES,
MediaType.APPLICATION_JSON_TYPE);
@@ -408,7 +409,7 @@ public class EntityhubRootResource exten
if(updated.isEmpty()){
// No (valid) data parsed
ResponseBuilder rb = Response.status(Status.NOT_MODIFIED);
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
Entity entity = updated.values().iterator().next();
@@ -416,14 +417,14 @@ public class EntityhubRootResource exten
ResponseBuilder rb = Response.created(uriInfo.getAbsolutePathBuilder()
.queryParam("id", "{entityId}")
.build(entity.getId()));
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
//return Response.noContent().build();
//As alternative return the modified entity
ResponseBuilder rb = Response.ok(entity);
rb.header(HttpHeaders.CONTENT_TYPE, accepted+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
// if (updated.size() == 1){
@@ -442,7 +443,7 @@ public class EntityhubRootResource exten
@Path("/find")
public Response handleCorsPreflightFind(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@@ -486,7 +487,7 @@ public class EntityhubRootResource exten
//return HTML docu
ResponseBuilder rb = Response.ok(new Viewable("find", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
return Response.status(Status.BAD_REQUEST)
@@ -537,7 +538,7 @@ public class EntityhubRootResource exten
@Path("/query")
public Response handleCorsPreflightQuery(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@@ -546,7 +547,7 @@ public class EntityhubRootResource exten
public Response getQueryDocumentation(@Context HttpHeaders headers){
ResponseBuilder rb = Response.ok(new Viewable("query", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
/**
@@ -583,7 +584,7 @@ public class EntityhubRootResource exten
* @return the response (results of error)
*/
private Response executeQuery(FieldQuery query, HttpHeaders headers, MediaType acceptedMediaType) throws WebApplicationException {
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
if(query instanceof LDPathSelect && ((LDPathSelect)query).getLDPathSelect() != null){
//use the LDPath variant to process this query
return executeLDPathQuery(entityhub,query, ((LDPathSelect)query).getLDPathSelect(),
@@ -602,7 +603,7 @@ public class EntityhubRootResource exten
}
ResponseBuilder rb = Response.ok(result);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -658,7 +659,7 @@ public class EntityhubRootResource exten
result = new QueryResultListImpl<Representation>(query, transformedResults, Representation.class);
ResponseBuilder rb = Response.ok(result);
rb.header(HttpHeaders.CONTENT_TYPE, mediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
/*--------------------------------------------------------------------------
@@ -669,7 +670,7 @@ public class EntityhubRootResource exten
@Path("/mapping")
public Response handleCorsPreflightMapping(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers,GET,OPTIONS);
+ //enableCORS(servletContext, res, headers,GET,OPTIONS);
return res.build();
}
@@ -690,13 +691,13 @@ public class EntityhubRootResource exten
if(TEXT_HTML_TYPE.isCompatible(acceptedMediaType)){
ResponseBuilder rb = Response.ok(new Viewable("mapping", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
} else {
return Response.status(Status.BAD_REQUEST).entity("The mapping id (URI) is missing.\n").header(
HttpHeaders.ACCEPT, acceptedMediaType).build();
}
}
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
Entity mapping;
try {
mapping = entityhub.getMappingById(reference);
@@ -710,7 +711,7 @@ public class EntityhubRootResource exten
} else {
ResponseBuilder rb = Response.ok(mapping);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -719,7 +720,7 @@ public class EntityhubRootResource exten
@Path("/mapping/entity")
public Response handleCorsPreflightMappingEntity(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers,GET,OPTIONS);
+ //enableCORS(servletContext, res, headers,GET,OPTIONS);
return res.build();
}
@@ -741,14 +742,14 @@ public class EntityhubRootResource exten
if(TEXT_HTML_TYPE.isCompatible(acceptedMediaType)){
ResponseBuilder rb = Response.ok(new Viewable("mapping_entity", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
} else {
return Response.status(Status.BAD_REQUEST).entity("No entity given. Missing parameter id.\n")
.header(HttpHeaders.ACCEPT, acceptedMediaType).build();
}
}
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
Entity mapping;
try {
mapping = entityhub.getMappingBySource(entity);
@@ -761,7 +762,7 @@ public class EntityhubRootResource exten
} else {
ResponseBuilder rb = Response.ok(mapping);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -770,7 +771,7 @@ public class EntityhubRootResource exten
@Path("/mapping/symbol")
public Response handleCorsPreflightMappingSymbol(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers,GET,OPTIONS);
+ //enableCORS(servletContext, res, headers,GET,OPTIONS);
return res.build();
}
@@ -792,14 +793,14 @@ public class EntityhubRootResource exten
if(TEXT_HTML_TYPE.isCompatible(acceptedMediaType)){
ResponseBuilder rb = Response.ok(new Viewable("mapping_symbol", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
return Response.status(Status.BAD_REQUEST).entity("No symbol given. Missing parameter id.\n")
.header(HttpHeaders.ACCEPT, acceptedMediaType).build();
}
}
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
Collection<Entity> mappings;
try {
mappings = entityhub.getMappingsByTarget(symbol);
@@ -816,7 +817,7 @@ public class EntityhubRootResource exten
mappings, Entity.class);
ResponseBuilder rb = Response.ok(mappingResultList);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -827,7 +828,7 @@ public class EntityhubRootResource exten
@Path("/ldpath")
public Response handleCorsPreflightLDPath(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers,OPTIONS,GET,POST);
+ //enableCORS(servletContext, res, headers,OPTIONS,GET,POST);
return res.build();
}
@GET
@@ -844,9 +845,9 @@ public class EntityhubRootResource exten
@FormParam(value = "context")Set<String> contexts,
@FormParam(value = "ldpath")String ldpath,
@Context HttpHeaders headers){
- Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
+ //Entityhub entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
return handleLDPathRequest(this,new YardBackend(entityhub.getYard()),
- ldpath, contexts, headers, servletContext);
+ ldpath, contexts, headers);
}
}
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/ReferencedSiteRootResource.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/ReferencedSiteRootResource.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/ReferencedSiteRootResource.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/ReferencedSiteRootResource.java Wed Jun 26 20:23:00 2013
@@ -16,11 +16,6 @@
*/
package org.apache.stanbol.entityhub.jersey.resource;
-import static javax.ws.rs.HttpMethod.DELETE;
-import static javax.ws.rs.HttpMethod.GET;
-import static javax.ws.rs.HttpMethod.OPTIONS;
-import static javax.ws.rs.HttpMethod.POST;
-import static javax.ws.rs.HttpMethod.PUT;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
import static javax.ws.rs.core.MediaType.TEXT_HTML;
@@ -30,8 +25,6 @@ import static org.apache.clerezza.rdf.co
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_XML;
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.TURTLE;
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.X_TURTLE;
-import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
-import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
import static org.apache.stanbol.commons.web.base.utils.MediaTypeUtil.getAcceptableMediaType;
import static org.apache.stanbol.entityhub.jersey.utils.JerseyUtils.ENTITY_SUPPORTED_MEDIA_TYPES;
import static org.apache.stanbol.entityhub.jersey.utils.JerseyUtils.REPRESENTATION_SUPPORTED_MEDIA_TYPES;
@@ -53,7 +46,6 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;
-import javax.servlet.ServletContext;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
@@ -81,8 +73,7 @@ import org.apache.clerezza.rdf.ontologie
import org.apache.stanbol.commons.indexedgraph.IndexedMGraph;
import org.apache.stanbol.commons.namespaceprefix.NamespaceMappingUtils;
import org.apache.stanbol.commons.namespaceprefix.NamespacePrefixService;
-import org.apache.stanbol.commons.viewable.Viewable;
-import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.viewable.Viewable;
import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
import org.apache.stanbol.entityhub.core.query.QueryResultListImpl;
import org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader;
@@ -112,12 +103,19 @@ import org.slf4j.LoggerFactory;
import at.newmedialab.ldpath.exception.LDPathParseException;
import at.newmedialab.ldpath.model.programs.Program;
+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;
/**
* Resource to provide a REST API for the {@link SiteManager}
* <p/>
* TODO: add description
*/
+@Component
+@Service(Object.class)
+@Property(name="javax.ws.rs", boolValue=true)
@Path("/entityhub/site/{site}")
public class ReferencedSiteRootResource extends BaseStanbolResource {
@@ -156,21 +154,16 @@ public class ReferencedSiteRootResource
*/
private static final int DEFAULT_FIND_RESULT_LIMIT = 5;
- private Site site;
+ //private Site site;
+ @Reference
private NamespacePrefixService nsPrefixService;
- public ReferencedSiteRootResource(@PathParam(value = "site") String siteId,
- @Context ServletContext servletContext) {
- super();
- log.debug("<init> with site {}", siteId);
- SiteManager referencedSiteManager = ContextHelper.getServiceFromContext(
- SiteManager.class, servletContext);
- if (siteId == null || siteId.isEmpty()) {
- log.error("Missing path parameter site={}", siteId);
- throw new WebApplicationException(Response.Status.NOT_FOUND);
- }
- site = referencedSiteManager.getSite(siteId);
+ @Reference
+ private SiteManager referencedSiteManager;
+
+ private Site getSite(String siteId) {
+ Site site = referencedSiteManager.getSite(siteId);
if (site == null) {
log.error("Site {} not found (no referenced site with that ID is present within the Entityhub",
siteId);
@@ -179,22 +172,17 @@ public class ReferencedSiteRootResource
if(site instanceof ManagedSite){
log.debug(" ... init ManagedSite");
}
- nsPrefixService = ContextHelper.getServiceFromContext(NamespacePrefixService.class, servletContext);
+ return site;
}
- @OPTIONS
- public Response handleCorsPreflight(@Context HttpHeaders headers){
- ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
- return res.build();
- }
@GET
@Produces(value=MediaType.TEXT_HTML)
- public Response getHtmlInfo(@Context HttpHeaders headers){
+ public Response getHtmlInfo(@PathParam(value = "site") String siteId,
+ @Context HttpHeaders headers){
ResponseBuilder rb = Response.ok(new Viewable("index", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
/**
@@ -205,19 +193,22 @@ public class ReferencedSiteRootResource
*/
@GET
@Produces({APPLICATION_JSON,RDF_XML,N3,TURTLE,X_TURTLE,RDF_JSON,N_TRIPLE})
- public Response getInfo(@Context HttpHeaders headers,
+ public Response getInfo(@PathParam(value = "site") String siteId,
+ @Context HttpHeaders headers,
@Context UriInfo uriInfo) {
MediaType acceptedMediaType = getAcceptableMediaType(headers, REPRESENTATION_SUPPORTED_MEDIA_TYPES,MediaType.APPLICATION_JSON_TYPE);
- ResponseBuilder rb = Response.ok(site2Representation(uriInfo.getAbsolutePath().toString()));
+ ResponseBuilder rb = Response.ok(site2Representation(getSite(siteId), uriInfo.getAbsolutePath().toString()));
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
@GET
@Path(value=ReferencedSiteRootResource.LICENSE_PATH+"/{name}")
- public Response getLicenseInfo(@Context HttpHeaders headers,
+ public Response getLicenseInfo(@PathParam(value = "site") String siteId,
+ @Context HttpHeaders headers,
@Context UriInfo uriInfo,
@PathParam(value = "name") String name) {
+ Site site = getSite(siteId);
MediaType acceptedMediaType = getAcceptableMediaType(headers, MediaType.APPLICATION_JSON_TYPE);
if(name == null || name.isEmpty()){
//return all
@@ -237,7 +228,7 @@ public class ReferencedSiteRootResource
ResponseBuilder rb = Response.ok(
license2Representation(uriInfo.getAbsolutePath().toString(),license));
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -252,12 +243,14 @@ public class ReferencedSiteRootResource
}
@OPTIONS
@Path("/entity")
- public Response handleCorsPreflightEntity(@Context HttpHeaders headers){
+ public Response handleCorsPreflightEntity(@PathParam(value = "site") String siteId,
+ @Context HttpHeaders headers){
+ Site site = getSite(siteId);
ResponseBuilder res = Response.ok();
if(site instanceof ManagedSite){
- enableCORS(servletContext, res, headers, OPTIONS,GET,POST,PUT,DELETE);
+ //enableCORS(servletContext, res, headers, OPTIONS,GET,POST,PUT,DELETE);
} else {
- enableCORS(servletContext, res, headers,OPTIONS,GET);
+ //enableCORS(servletContext, res, headers,OPTIONS,GET);
}
return res.build();
}
@@ -273,7 +266,9 @@ public class ReferencedSiteRootResource
*/
@GET
@Path("/entity")
- public Response getEntityById(@QueryParam(value = "id") String id, @Context HttpHeaders headers) {
+ public Response getEntityById(@PathParam(value = "site") String siteId,
+ @QueryParam(value = "id") String id, @Context HttpHeaders headers) {
+ Site site = getSite(siteId);
log.debug("site/{}/entity Request",site.getId());
log.debug(" > id : " + id);
log.debug(" > accept : " + headers.getAcceptableMediaTypes());
@@ -286,7 +281,7 @@ public class ReferencedSiteRootResource
if(MediaType.TEXT_HTML_TYPE.isCompatible(acceptedMediaType)){
ResponseBuilder rb = Response.ok(new Viewable("entity", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ // addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
return Response.status(Status.BAD_REQUEST)
@@ -306,7 +301,7 @@ public class ReferencedSiteRootResource
if (entity != null) {
ResponseBuilder rb = Response.ok(entity);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
// TODO: How to parse an ErrorMessage?
@@ -321,7 +316,8 @@ public class ReferencedSiteRootResource
@POST
@Path("entity/")
@Consumes(MediaType.WILDCARD)
- public Response createEntity(@QueryParam(value = "id") String id,
+ public Response createEntity(@PathParam(value = "site") String siteId,
+ @QueryParam(value = "id") String id,
@QueryParam(value = "update") boolean allowUpdate,
Map<String,Representation> parsed,
@Context HttpHeaders headers){
@@ -330,13 +326,14 @@ public class ReferencedSiteRootResource
log.info("Headers: "+headers.getRequestHeaders());
log.info("Entity: "+id);
log.info("Representations : {} parsed",parsed.size());
- return updateOrCreateEntity(id, parsed, HttpMethod.POST, true,allowUpdate,headers);
+ return updateOrCreateEntity(getSite(siteId), id, parsed, HttpMethod.POST, true,allowUpdate,headers);
}
@PUT
@Path("entity/")
@Consumes(MediaType.WILDCARD)
- public Response updateEntity(@QueryParam(value = "id") String id,
+ public Response updateEntity(@PathParam(value = "site") String siteId,
+ @QueryParam(value = "id") String id,
@QueryParam(value = "create") @DefaultValue("true") boolean allowCreate,
Map<String,Representation> parsed,
@Context HttpHeaders headers){
@@ -345,10 +342,10 @@ public class ReferencedSiteRootResource
log.info("Headers: "+headers.getRequestHeaders());
log.info("Entity: "+id);
log.info("Representations : {} parsed", parsed.size());
- return updateOrCreateEntity(id, parsed, HttpMethod.PUT, allowCreate, true, headers);
+ return updateOrCreateEntity(getSite(siteId), id, parsed, HttpMethod.PUT, allowCreate, true, headers);
}
- private Response updateOrCreateEntity(String id,
+ private Response updateOrCreateEntity(Site site, String id,
Map<String,Representation> parsed,
String requestMethod,
boolean create,
@@ -366,7 +363,7 @@ public class ReferencedSiteRootResource
String.format("The Site '%s' is not managed and does not support "
+"create/update nor delete operations",site.getId()))
.header(HttpHeaders.ACCEPT, accepted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
//(1) if an id is parsed we need to ignore all other representations
@@ -377,7 +374,7 @@ public class ReferencedSiteRootResource
.entity(String.format("Parsed RDF data do not contain any "
+ "Information about the parsed id '%s'",id))
.header(HttpHeaders.ACCEPT, accepted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
} else {
parsed = Collections.singletonMap(id, r);
@@ -401,7 +398,7 @@ public class ReferencedSiteRootResource
"Entity within the Entityhub (Message: %s)",
entry.getKey(),e.getMessage()))
.header(HttpHeaders.ACCEPT, accepted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
if((exists && !update) || (!exists && !create)){
@@ -414,7 +411,7 @@ public class ReferencedSiteRootResource
exists ? "does already" : "does not exists",
exists ? "update" : "create"))
.header(HttpHeaders.ACCEPT, accepted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
@@ -433,7 +430,7 @@ public class ReferencedSiteRootResource
+ managedSite.getId() +" because of an error (Message: "
+ e.getMessage()+")")
.header(HttpHeaders.ACCEPT, accepted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
ResponseBuilder builder;
@@ -447,18 +444,20 @@ public class ReferencedSiteRootResource
}
log.info(" ... create/update {} entities in {}ms",
parsed.size(),System.currentTimeMillis()-validateCompleted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
@DELETE
@Path("entity/")
- public Response deleteEntity(@QueryParam(value="id") String id,
+ public Response deleteEntity(@PathParam(value = "site") String siteId,
+ @QueryParam(value="id") String id,
@Context HttpHeaders headers){
MediaType accepted = getAcceptableMediaType(headers,
JerseyUtils.ENTITY_SUPPORTED_MEDIA_TYPES,
MediaType.APPLICATION_JSON_TYPE);
ManagedSite managedSite;
+ Site site = getSite(siteId);
if(site instanceof ManagedSite){
managedSite = (ManagedSite)site;
} else {
@@ -466,14 +465,14 @@ public class ReferencedSiteRootResource
String.format("The Site '%s' is not managed and does not support "
+"create/update nor delete operations",site.getId()))
.header(HttpHeaders.ACCEPT, accepted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
if(id == null || id.isEmpty()){
ResponseBuilder builder = Response.status(Status.BAD_REQUEST).entity("The Request does" +
"not provide the id of the Entity to delete (parameter 'id').")
.header(HttpHeaders.ACCEPT, accepted);
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
ResponseBuilder builder;
@@ -498,20 +497,21 @@ public class ReferencedSiteRootResource
.entity(message + ' '+ e.getClass().getSimpleName()+": "+ e.getMessage())
.header(HttpHeaders.ACCEPT, accepted);
}
- addCORSOrigin(servletContext, builder, headers);
+ //addCORSOrigin(servletContext, builder, headers);
return builder.build();
}
@OPTIONS
@Path("/find")
public Response handleCorsPreflightFind(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@GET
@Path("/find")
- public Response findEntitybyGet(@QueryParam(value = "name") String name,
+ public Response findEntitybyGet(@PathParam(value = "site") String siteId,
+ @QueryParam(value = "name") String name,
@QueryParam(value = "field") String field,
@QueryParam(value = "lang") String language,
// @QueryParam(value="select") String select,
@@ -519,12 +519,13 @@ public class ReferencedSiteRootResource
@QueryParam(value = "offset") @DefaultValue(value = "0") int offset,
@QueryParam(value = "ldpath") String ldpath,
@Context HttpHeaders headers) {
- return findEntity(name, field, language, limit, offset, ldpath, headers);
+ return findEntity(siteId, name, field, language, limit, offset, ldpath, headers);
}
@POST
@Path("/find")
- public Response findEntity(@FormParam(value = "name") String name,
+ public Response findEntity(@PathParam(value = "site") String siteId,
+ @FormParam(value = "name") String name,
@FormParam(value = "field") String parsedField,
@FormParam(value = "lang") String language,
// @FormParam(value="select") String select,
@@ -532,6 +533,7 @@ public class ReferencedSiteRootResource
@FormParam(value = "offset") Integer offset,
@FormParam(value = "ldpath") String ldpath,
@Context HttpHeaders headers) {
+ Site site = getSite(siteId);
log.debug("site/{}/find Request",site.getId());
Collection<String> supported = new HashSet<String>(JerseyUtils.QUERY_RESULT_SUPPORTED_MEDIA_TYPES);
supported.add(TEXT_HTML);
@@ -541,7 +543,7 @@ public class ReferencedSiteRootResource
if(MediaType.TEXT_HTML_TYPE.isCompatible(acceptedMediaType)){
ResponseBuilder rb = Response.ok(new Viewable("find", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
return Response.status(Status.BAD_REQUEST)
@@ -568,7 +570,7 @@ public class ReferencedSiteRootResource
}
}
}
- return executeQuery(createFieldQueryForFindRequest(
+ return executeQuery(site, createFieldQueryForFindRequest(
name, property, language,
limit == null || limit < 1 ? DEFAULT_FIND_RESULT_LIMIT : limit,
offset,ldpath),
@@ -579,7 +581,7 @@ public class ReferencedSiteRootResource
@Path("/query")
public Response handleCorsPreflightQuery(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
/**
@@ -596,9 +598,10 @@ public class ReferencedSiteRootResource
@POST
@Path("/query")
@Consumes( {APPLICATION_JSON})
- public Response queryEntities(FieldQuery query,
+ public Response queryEntities(@PathParam(value = "site") String siteId,
+ FieldQuery query,
@Context HttpHeaders headers) {
- return executeQuery(query,headers);
+ return executeQuery(getSite(siteId), query,headers);
}
@GET
@Path("/query")
@@ -606,7 +609,7 @@ public class ReferencedSiteRootResource
public Response getQueryDocumentation(@Context HttpHeaders headers){
ResponseBuilder rb = Response.ok(new Viewable("query", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
@@ -619,12 +622,12 @@ public class ReferencedSiteRootResource
* @param headers the request headers
* @return the response (results of error)
*/
- private Response executeQuery(FieldQuery query, HttpHeaders headers) throws WebApplicationException {
+ private Response executeQuery(Site site, FieldQuery query, HttpHeaders headers) throws WebApplicationException {
MediaType mediaType = getAcceptableMediaType(headers, ENTITY_SUPPORTED_MEDIA_TYPES,
APPLICATION_JSON_TYPE);
if(query instanceof LDPathSelect && ((LDPathSelect)query).getLDPathSelect() != null){
//use the LDPath variant to process this query
- return executeLDPathQuery(query, ((LDPathSelect)query).getLDPathSelect(),
+ return executeLDPathQuery(site, query, ((LDPathSelect)query).getLDPathSelect(),
mediaType, headers);
} else { //use the default query execution
QueryResultList<Representation> result;
@@ -640,7 +643,7 @@ public class ReferencedSiteRootResource
}
ResponseBuilder rb = Response.ok(result);
rb.header(HttpHeaders.CONTENT_TYPE, mediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -652,7 +655,7 @@ public class ReferencedSiteRootResource
* @param headers the http headers of the request
* @return the response
*/
- private Response executeLDPathQuery(FieldQuery query, String ldpathProgramString, MediaType mediaType, HttpHeaders headers) {
+ private Response executeLDPathQuery(Site site, FieldQuery query, String ldpathProgramString, MediaType mediaType, HttpHeaders headers) {
QueryResultList<Representation> result;
ValueFactory vf = new RdfValueFactory(new IndexedMGraph());
SiteBackend backend = new SiteBackend(site,vf);
@@ -702,7 +705,7 @@ public class ReferencedSiteRootResource
result = new QueryResultListImpl<Representation>(query, transformedResults, Representation.class);
ResponseBuilder rb = Response.ok(result);
rb.header(HttpHeaders.CONTENT_TYPE, mediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
@@ -714,25 +717,27 @@ public class ReferencedSiteRootResource
@Path("/ldpath")
public Response handleCorsPreflightLDPath(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers,OPTIONS,GET,POST);
+ //enableCORS(servletContext, res, headers,OPTIONS,GET,POST);
return res.build();
}
@GET
@Path("/ldpath")
- public Response handleLDPathGet(
+ public Response handleLDPathGet(@PathParam(value = "site") String siteId,
@QueryParam(value = "context")Set<String> contexts,
@QueryParam(value = "ldpath")String ldpath,
@Context HttpHeaders headers){
- return handleLDPathPost(contexts, ldpath, headers);
+ return handleLDPathPost(siteId, contexts, ldpath, headers);
}
@POST
@Path("/ldpath")
public Response handleLDPathPost(
+ @PathParam(value = "site") String siteId,
@FormParam(value = "context")Set<String> contexts,
@FormParam(value = "ldpath")String ldpath,
@Context HttpHeaders headers){
+ Site site = getSite(siteId);
return handleLDPathRequest(this,new SiteBackend(site),
- ldpath, contexts, headers, servletContext);
+ ldpath, contexts, headers);
}
/*
@@ -743,7 +748,7 @@ public class ReferencedSiteRootResource
* @param context
* @return
*/
- private Representation site2Representation(String id){
+ private Representation site2Representation(Site site, String id){
RdfValueFactory valueFactory = RdfValueFactory.getInstance();
RdfRepresentation rep = valueFactory.createRepresentation(id);
String namespace = NamespaceEnum.entityhub.getNamespace();
@@ -822,10 +827,4 @@ public class ReferencedSiteRootResource
return rep;
}
- public boolean isManagedSite(){
- return site instanceof ManagedSite;
- }
- public Site getSite(){
- return site;
- }
}
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/SiteManagerRootResource.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/SiteManagerRootResource.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/SiteManagerRootResource.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/SiteManagerRootResource.java Wed Jun 26 20:23:00 2013
@@ -26,8 +26,6 @@ import static org.apache.clerezza.rdf.co
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_XML;
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.TURTLE;
import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.X_TURTLE;
-import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
-import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
import static org.apache.stanbol.commons.web.base.utils.MediaTypeUtil.getAcceptableMediaType;
import static org.apache.stanbol.entityhub.jersey.utils.LDPathHelper.getLDPathParseExceptionMessage;
import static org.apache.stanbol.entityhub.jersey.utils.LDPathHelper.handleLDPathRequest;
@@ -66,7 +64,6 @@ import org.apache.stanbol.commons.indexe
import org.apache.stanbol.commons.namespaceprefix.NamespaceMappingUtils;
import org.apache.stanbol.commons.namespaceprefix.NamespacePrefixService;
import org.apache.stanbol.commons.viewable.Viewable;
-import org.apache.stanbol.commons.web.base.ContextHelper;
import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
import org.apache.stanbol.entityhub.core.query.QueryResultListImpl;
import org.apache.stanbol.entityhub.jersey.utils.JerseyUtils;
@@ -87,6 +84,10 @@ import org.slf4j.LoggerFactory;
import at.newmedialab.ldpath.exception.LDPathParseException;
import at.newmedialab.ldpath.model.programs.Program;
+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;
/**
@@ -94,12 +95,19 @@ import at.newmedialab.ldpath.model.progr
*
* TODO: add description
*/
+@Component
+@Service(Object.class)
+@Property(name="javax.ws.rs", boolValue=true)
@Path("/entityhub/sites")
public class SiteManagerRootResource extends BaseStanbolResource {
private final Logger log = LoggerFactory.getLogger(getClass());
+ @Reference
private NamespacePrefixService nsPrefixService;
+
+ @Reference
+ private SiteManager referencedSiteManager;
public static final Set<String> RDF_MEDIA_TYPES = new TreeSet<String>(Arrays.asList(N3, N_TRIPLE,
RDF_XML, TURTLE, X_TURTLE, RDF_JSON));
@@ -116,22 +124,18 @@ public class SiteManagerRootResource ext
private static final int DEFAULT_FIND_RESULT_LIMIT = 5;
- public SiteManagerRootResource(@Context ServletContext context) {
- super();
- nsPrefixService = ContextHelper.getServiceFromContext(NamespacePrefixService.class, context);
- }
@OPTIONS
public Response handleCorsPreflight(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@OPTIONS
@Path("/find")
public Response handleCorsPreflightFind(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@@ -139,7 +143,7 @@ public class SiteManagerRootResource ext
@Path("/query")
public Response handleCorsPreflightQuery(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@@ -148,7 +152,7 @@ public class SiteManagerRootResource ext
public Response getSitesPage(@Context HttpHeaders headers) {
ResponseBuilder rb = Response.ok(new Viewable("index", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
@@ -178,18 +182,16 @@ public class SiteManagerRootResource ext
if(MediaType.TEXT_HTML_TYPE.isCompatible(acceptable)){
ResponseBuilder rb = Response.ok(new Viewable("referenced", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
- SiteManager referencedSiteManager = ContextHelper.getServiceFromContext(
- SiteManager.class, servletContext);
JSONArray referencedSites = new JSONArray();
for (String site : referencedSiteManager.getSiteIds()) {
referencedSites.put(String.format("%sentityhub/site/%s/", uriInfo.getBaseUri(), site));
}
ResponseBuilder rb = Response.ok(referencedSites);
rb.header(HttpHeaders.CONTENT_TYPE, acceptable+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -198,7 +200,7 @@ public class SiteManagerRootResource ext
@Path("/entity")
public Response handleCorsPreflightEntity(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers,OPTIONS,GET);
+ //enableCORS(servletContext, res, headers,OPTIONS,GET);
return res.build();
}
/**
@@ -224,7 +226,7 @@ public class SiteManagerRootResource ext
if(MediaType.TEXT_HTML_TYPE.isCompatible(acceptedMediaType)){
ResponseBuilder rb = Response.ok(new Viewable("entity", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
return Response.status(Status.BAD_REQUEST)
@@ -232,13 +234,11 @@ public class SiteManagerRootResource ext
.header(HttpHeaders.ACCEPT, acceptedMediaType).build();
}
}
- SiteManager referencedSiteManager = ContextHelper.getServiceFromContext(
- SiteManager.class, servletContext);
Entity sign = referencedSiteManager.getEntity(id);
if (sign != null) {
ResponseBuilder rb = Response.ok(sign);
rb.header(HttpHeaders.CONTENT_TYPE, acceptedMediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
// TODO: How to parse an ErrorMessage?
@@ -290,7 +290,7 @@ public class SiteManagerRootResource ext
if(MediaType.TEXT_HTML_TYPE.isCompatible(acceptedMediaType)){
ResponseBuilder rb = Response.ok(new Viewable("find", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
} else {
return Response.status(Status.BAD_REQUEST)
@@ -319,15 +319,14 @@ public class SiteManagerRootResource ext
}
FieldQuery query = JerseyUtils.createFieldQueryForFindRequest(name, property, language,
limit == null || limit < 1 ? DEFAULT_FIND_RESULT_LIMIT : limit, offset,ldpath);
- return executeQuery(ContextHelper.getServiceFromContext(
- SiteManager.class, servletContext), query, acceptedMediaType, headers);
+ return executeQuery(referencedSiteManager, query, acceptedMediaType, headers);
}
@GET
@Path("/query")
public Response getQueryDocumentation(@Context HttpHeaders headers){
ResponseBuilder rb = Response.ok(new Viewable("query", this));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
/**
@@ -363,8 +362,7 @@ public class SiteManagerRootResource ext
.header(HttpHeaders.ACCEPT, acceptedMediaType).build();
}
} else {
- return executeQuery(ContextHelper.getServiceFromContext(
- SiteManager.class, servletContext), query, acceptedMediaType, headers);
+ return executeQuery(referencedSiteManager, query, acceptedMediaType, headers);
}
}
/*
@@ -374,7 +372,7 @@ public class SiteManagerRootResource ext
@Path("/ldpath")
public Response handleCorsPreflightLDPath(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers,OPTIONS,GET,POST);
+ //enableCORS(servletContext, res, headers,OPTIONS,GET,POST);
return res.build();
}
@GET
@@ -391,10 +389,8 @@ public class SiteManagerRootResource ext
@FormParam(value = "context")Set<String> contexts,
@FormParam(value = "ldpath")String ldpath,
@Context HttpHeaders headers){
- SiteManager referencedSiteManager = ContextHelper.getServiceFromContext(
- SiteManager.class, servletContext);
return handleLDPathRequest(this,new SiteManagerBackend(referencedSiteManager),
- ldpath, contexts, headers, servletContext);
+ ldpath, contexts, headers);
}
/**
* Executes the query parsed by {@link #queryEntities(String, File, HttpHeaders)} or created based
@@ -417,7 +413,7 @@ public class SiteManagerRootResource ext
QueryResultList<Representation> result = manager.find(query);
ResponseBuilder rb = Response.ok(result);
rb.header(HttpHeaders.CONTENT_TYPE, mediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
@@ -472,7 +468,7 @@ public class SiteManagerRootResource ext
result = new QueryResultListImpl<Representation>(query, transformedResults, Representation.class);
ResponseBuilder rb = Response.ok(result);
rb.header(HttpHeaders.CONTENT_TYPE, mediaType+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
+ //addCORSOrigin(servletContext, rb, headers);
return rb.build();
}
}
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/BaseGoogleRefineReconcileResource.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/BaseGoogleRefineReconcileResource.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/BaseGoogleRefineReconcileResource.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/BaseGoogleRefineReconcileResource.java Wed Jun 26 20:23:00 2013
@@ -17,8 +17,6 @@
package org.apache.stanbol.entityhub.jersey.resource.reconcile;
import static javax.ws.rs.core.MediaType.TEXT_HTML;
-import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
-import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
import static org.apache.stanbol.entityhub.servicesapi.model.rdf.RdfResourceEnum.resultScore;
import java.util.ArrayList;
@@ -39,6 +37,7 @@ import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.OPTIONS;
import javax.ws.rs.POST;
+import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
@@ -46,12 +45,11 @@ import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
+import org.apache.felix.scr.annotations.Component;
import org.apache.stanbol.commons.namespaceprefix.NamespaceMappingUtils;
import org.apache.stanbol.commons.namespaceprefix.NamespacePrefixService;
import org.apache.stanbol.commons.viewable.Viewable;
-import org.apache.stanbol.commons.web.base.ContextHelper;
-import org.apache.stanbol.commons.web.base.CorsHelper;
import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
import org.apache.stanbol.commons.web.base.utils.MediaTypeUtil;
import org.apache.stanbol.entityhub.jersey.grefine.ReconcileProperty;
@@ -88,6 +86,9 @@ import org.slf4j.LoggerFactory;
* @author Rupert Westenthaler
*
*/
+//TODO rather than having the siteId as path param here instances of this class
+//should be returned as subresource
+@Component(componentAbstract = true)
public abstract class BaseGoogleRefineReconcileResource extends BaseStanbolResource {
private final Logger log = LoggerFactory.getLogger(BaseGoogleRefineReconcileResource.class);
@@ -109,38 +110,37 @@ public abstract class BaseGoogleRefineRe
}
};
-
- protected final NamespacePrefixService nsPrefixService;
+ @org.apache.felix.scr.annotations.Reference
+ private NamespacePrefixService nsPrefixService;
- protected BaseGoogleRefineReconcileResource(ServletContext context){
- super();
- nsPrefixService = ContextHelper.getServiceFromContext(
- NamespacePrefixService.class, context);
+ protected BaseGoogleRefineReconcileResource(){
}
@OPTIONS
public final Response handleCorsPreflight(@Context HttpHeaders headers){
ResponseBuilder res = Response.ok();
- enableCORS(servletContext, res, headers);
+ //enableCORS(servletContext, res, headers);
return res.build();
}
@POST
- public final Response queryPOST(@FormParam(value="query") String query,
+ public final Response queryPOST(@PathParam(value = "site") String siteId,
+ @FormParam(value="query") String query,
@FormParam(value="queries")String queries,
@FormParam(value="callback")String callback,
@Context HttpHeaders header) throws WebApplicationException {
- return query(query,queries,callback,header);
+ return query(siteId, query,queries,callback,header);
}
@GET
- public final Response query(@QueryParam(value="query") String query,
+ public final Response query(@PathParam(value = "site") String siteId,
+ @QueryParam(value="query") String query,
@QueryParam(value="queries")String queries,
@QueryParam(value="callback")String callback,
@Context HttpHeaders header) throws WebApplicationException {
if(callback != null){
log.info("callback: {}",callback);
try {
- return sendMetadata(callback,header);
+ return sendMetadata(siteId,callback,header);
} catch (JSONException e) {
throw new WebApplicationException(e);
}
@@ -149,7 +149,7 @@ public abstract class BaseGoogleRefineRe
if(query != null){
log.debug("query: {}",query);
try {
- jResult = reconcile(ReconcileQuery.parseQuery(query,nsPrefixService));
+ jResult = reconcile(siteId, ReconcileQuery.parseQuery(query,nsPrefixService));
} catch (JSONException e) {
throw new WebApplicationException(
Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
@@ -159,12 +159,12 @@ public abstract class BaseGoogleRefineRe
throw new WebApplicationException(
Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
String.format("Error while searching on %s (%s: %s)",
- getSiteName(),SiteException.class.getSimpleName(),e.getMessage())).build());
+ getSiteName(siteId),SiteException.class.getSimpleName(),e.getMessage())).build());
}
} else if(queries != null){
log.debug("multi-query: {}",queries);
try {
- jResult = reconcile(ReconcileQuery.parseQueries(queries,nsPrefixService));
+ jResult = reconcile(siteId, ReconcileQuery.parseQueries(queries,nsPrefixService));
} catch (JSONException e) {
throw new WebApplicationException(
Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
@@ -174,13 +174,13 @@ public abstract class BaseGoogleRefineRe
throw new WebApplicationException(
Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
String.format("Error while searching on %s (%s: %s)",
- getSiteName(),SiteException.class.getSimpleName(),e.getMessage())).build());
+ getSiteName(siteId),SiteException.class.getSimpleName(),e.getMessage())).build());
}
} else {
if(MediaTypeUtil.isAcceptableMediaType(header,MediaType.TEXT_HTML_TYPE)){
ResponseBuilder rb = Response.ok(new Viewable("index", this, BaseGoogleRefineReconcileResource.class));
rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8");
- addCORSOrigin(servletContext, rb, header);
+ //addCORSOrigin(servletContext, rb, header);
return rb.build();
}
throw new WebApplicationException(
@@ -189,28 +189,28 @@ public abstract class BaseGoogleRefineRe
}
//return the results and enable Cors
ResponseBuilder rb = Response.ok(jResult.toString()).type(MediaType.APPLICATION_JSON_TYPE);
- CorsHelper.addCORSOrigin(servletContext, rb, header);
+ //CorsHelper.addCORSOrigin(servletContext, rb, header);
return rb.build();
}
- private JSONObject reconcile(Map<String,ReconcileQuery> parsedQueries) throws JSONException, EntityhubException {
+ private JSONObject reconcile(@PathParam(value = "site") String siteId, Map<String,ReconcileQuery> parsedQueries) throws JSONException, EntityhubException {
JSONObject container = new JSONObject();
for(Entry<String,ReconcileQuery> query : parsedQueries.entrySet()){
- container.put(query.getKey(), reconcile(query.getValue()));
+ container.put(query.getKey(), reconcile(siteId, query.getValue()));
}
return container;
}
- private JSONObject reconcile(ReconcileQuery rQuery) throws JSONException, EntityhubException {
- FieldQuery query = createFieldQuery();
+ private JSONObject reconcile(String siteId, ReconcileQuery rQuery) throws JSONException, EntityhubException {
+ FieldQuery query = createFieldQuery(siteId);
query.addSelectedFields(SELECTED_FIELDS);
addNameConstraint(rQuery, query);
addTypeConstraint(rQuery, query);
addPropertyConstraints(rQuery, query);
query.setLimit(query.getLimit());
- QueryResultList<Representation> results = performQuery(query);
+ QueryResultList<Representation> results = performQuery(siteId, query);
List<JSONObject> jResultList = new ArrayList<JSONObject>(results.size());
//we need to know the highest score to normalise between [0..1]
double maxQueryScore = -1;
@@ -260,19 +260,19 @@ public abstract class BaseGoogleRefineRe
* @return
* @throws SiteException
*/
- protected abstract QueryResultList<Representation> performQuery(FieldQuery query) throws EntityhubException;
+ protected abstract QueryResultList<Representation> performQuery(String siteId, FieldQuery query) throws EntityhubException;
/**
* Getter for the name of the Site as used for logging
* @return
*/
- protected abstract String getSiteName();
+ protected abstract String getSiteName(String siteId);
/**
* Creates a new FieldQuery
* @return
*/
- protected abstract FieldQuery createFieldQuery();
+ protected abstract FieldQuery createFieldQuery(String siteId);
/**
* @param rQuery
@@ -472,16 +472,17 @@ public abstract class BaseGoogleRefineRe
* @return
* @throws JSONException
*/
- protected Response sendMetadata(String callback, HttpHeaders header) throws JSONException {
+ protected Response sendMetadata(String siteId,
+ String callback, HttpHeaders header) throws JSONException {
//TODO: implement!!
JSONObject jMetadata = new JSONObject();
- jMetadata.put("name", "Stanbol Entityhub: "+getSiteName());
+ jMetadata.put("name", "Stanbol Entityhub: "+getSiteName(siteId));
StringBuilder callbackString = new StringBuilder(callback);
callbackString.append('(');
callbackString.append(jMetadata.toString());
callbackString.append(')');
ResponseBuilder rb = Response.ok(callbackString.toString()).type(MediaType.APPLICATION_JSON_TYPE);
- CorsHelper.addCORSOrigin(servletContext, rb, header);
+ //CorsHelper.addCORSOrigin(servletContext, rb, header);
return rb.build();
}
}
Modified: stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/EntityhubReconcileResource.java
URL: http://svn.apache.org/viewvc/stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/EntityhubReconcileResource.java?rev=1497076&r1=1497075&r2=1497076&view=diff
==============================================================================
--- stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/EntityhubReconcileResource.java (original)
+++ stanbol/branches/commons-ng/entityhub/jersey/src/main/java/org/apache/stanbol/entityhub/jersey/resource/reconcile/EntityhubReconcileResource.java Wed Jun 26 20:23:00 2013
@@ -19,45 +19,45 @@ package org.apache.stanbol.entityhub.jer
import javax.servlet.ServletContext;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
+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.stanbol.commons.web.base.ContextHelper;
import org.apache.stanbol.entityhub.servicesapi.Entityhub;
import org.apache.stanbol.entityhub.servicesapi.EntityhubException;
import org.apache.stanbol.entityhub.servicesapi.model.Representation;
import org.apache.stanbol.entityhub.servicesapi.query.FieldQuery;
import org.apache.stanbol.entityhub.servicesapi.query.QueryResultList;
+@Component
+@Service(Object.class)
+@Property(name="javax.ws.rs", boolValue=true)
@Path("/entityhub/reconcile")
public class EntityhubReconcileResource extends BaseGoogleRefineReconcileResource {
private Entityhub _entityhub;
- public EntityhubReconcileResource(@Context ServletContext context) {
- super(context);
- }
- private Entityhub getEntityhub(){
- if(_entityhub == null){
- _entityhub = ContextHelper.getServiceFromContext(Entityhub.class, servletContext);
- if(_entityhub == null){
- throw new IllegalArgumentException("The Entityhub service is currently not available!");
- }
- }
- return _entityhub;
+ public EntityhubReconcileResource() {
+ super();
}
+ @Reference
+ private Entityhub entityhub;
+
@Override
- protected QueryResultList<Representation> performQuery(FieldQuery query) throws EntityhubException {
- return getEntityhub().find(query);
+ protected QueryResultList<Representation> performQuery(String siteId, FieldQuery query) throws EntityhubException {
+ return entityhub.find(query);
}
@Override
- protected String getSiteName() {
+ protected String getSiteName(String siteId) {
return "Entityhub (local managed Entities)";
}
@Override
- protected FieldQuery createFieldQuery() {
- return getEntityhub().getQueryFactory().createFieldQuery();
+ protected FieldQuery createFieldQuery(String siteId) {
+ return entityhub.getQueryFactory().createFieldQuery();
}
}