You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by fc...@apache.org on 2011/11/29 12:06:00 UTC

svn commit: r1207822 - in /incubator/stanbol/trunk: commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/ enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/

Author: fchrist
Date: Tue Nov 29 11:05:58 2011
New Revision: 1207822

URL: http://svn.apache.org/viewvc?rev=1207822&view=rev
Log:
STANBOL-101 fixed problems with Accept header.

If accept header is omitted or wildcard, then JSON-LD is produced as the default output format.
If accept header is application/json, then JSON-LD is produced.

Modified:
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProvider.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource.java

Modified: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java?rev=1207822&r1=1207821&r2=1207822&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java (original)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java Tue Nov 29 11:05:58 2011
@@ -18,6 +18,7 @@ package org.apache.stanbol.commons.web.b
 
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
+import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM;
 import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.N3;
 import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.N_TRIPLE;
 import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_JSON;
@@ -66,9 +67,12 @@ public class GraphWriter implements Mess
         types.add(X_TURTLE);
         types.add(RDF_JSON);
         types.add(APPLICATION_JSON);
+        types.add(APPLICATION_OCTET_STREAM);
         supportedMediaTypes = Collections.unmodifiableSet(types);
     }
 
+    public static final String ENCODING = "UTF-8";
+    
     @Context
     protected ServletContext servletContext;
 
@@ -92,13 +96,15 @@ public class GraphWriter implements Mess
             MultivaluedMap<String, Object> httpHeaders,
             OutputStream entityStream) throws IOException,
             WebApplicationException {
+        
         long start = System.currentTimeMillis();
         String mediaTypeString = mediaType.getType()+'/'+mediaType.getSubtype();
-        if (mediaType.isWildcardType() || TEXT_PLAIN.equals(mediaTypeString)) {
+        if (mediaType.isWildcardType() || TEXT_PLAIN.equals(mediaTypeString) || APPLICATION_OCTET_STREAM.equals(mediaTypeString)) {
             getSerializer().serialize(entityStream, t, APPLICATION_JSON);
         } else {
             getSerializer().serialize(entityStream, t, mediaTypeString);
         }
+        
         log.debug("Serialized {} in {}ms",t.size(),System.currentTimeMillis()-start);
     }
 }

Modified: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProvider.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProvider.java?rev=1207822&r1=1207821&r2=1207822&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProvider.java (original)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProvider.java Tue Nov 29 11:05:58 2011
@@ -27,7 +27,6 @@ import java.util.Iterator;
 import java.util.Map;
 
 import org.apache.clerezza.rdf.core.BNode;
-import org.apache.clerezza.rdf.core.Literal;
 import org.apache.clerezza.rdf.core.NonLiteral;
 import org.apache.clerezza.rdf.core.PlainLiteral;
 import org.apache.clerezza.rdf.core.Triple;

Modified: incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource.java?rev=1207822&r1=1207821&r2=1207822&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource.java (original)
+++ incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource.java Tue Nov 29 11:05:58 2011
@@ -17,11 +17,9 @@
 package org.apache.stanbol.enhancer.jersey.resource;
 
 import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
 import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
 import static javax.ws.rs.core.MediaType.WILDCARD;
-import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_JSON;
 import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_XML;
 import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
 import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
@@ -77,8 +75,8 @@ public class EnginesRootResource extends
 
     protected Serializer serializer;
 
-    // bind the job manager by looking it up from the servlet request context
     public EnginesRootResource(@Context ServletContext context) {
+        // bind the job manager by looking it up from the servlet request context
         jobManager = ContextHelper.getServiceFromContext(EnhancementJobManager.class, context);
         tcManager = ContextHelper.getServiceFromContext(TcManager.class, context);
         serializer = ContextHelper.getServiceFromContext(Serializer.class, context);
@@ -97,8 +95,6 @@ public class EnginesRootResource extends
         ResponseBuilder res = Response.ok(new Viewable("index", this),TEXT_HTML);
         addCORSOrigin(servletContext,res, headers);
         return res.build();
-//        return Response.ok(new Viewable("index", this))
-//        .header(HttpHeaders.CONTENT_TYPE, TEXT_HTML+"; charset=utf-8").build();
     }
 
     public List<EnhancementEngine> getActiveEngines() {
@@ -164,7 +160,7 @@ public class EnginesRootResource extends
             format = headers.getMediaType().toString();
         }
         if (uri != null && uri.isEmpty()) {
-            // let the store build an internal URI basted on the content
+            // let the store build an internal URI based on the content
             uri = null;
         }
         ContentItem ci = new InMemoryContentItem(uri, data, format);
@@ -178,7 +174,6 @@ public class EnginesRootResource extends
         if (jobManager != null) {
             jobManager.enhanceContent(ci);
         }
-        MGraph graph = ci.getMetadata();
 
         if (buildAjaxview) {
             ContentItemResource contentItemResource = new ContentItemResource(null, ci, uriInfo, tcManager,
@@ -190,19 +185,16 @@ public class EnginesRootResource extends
             addCORSOrigin(servletContext,rb, headers);
             return rb.build();
         }
+        
+        MGraph graph = ci.getMetadata();
         ResponseBuilder rb = Response.ok(graph);
-        if (format != null) {
-            // force mimetype from form params
-            rb.header(HttpHeaders.CONTENT_TYPE, format+"; charset=UTF-8");
-        }
-        if (headers.getAcceptableMediaTypes().contains(APPLICATION_JSON_TYPE)) {
-            // force RDF JSON media type (TODO: move this logic
-            rb.header(HttpHeaders.CONTENT_TYPE, RDF_JSON+"; charset=UTF-8");
-        } else if (headers.getAcceptableMediaTypes().isEmpty()) {
+        if (headers.getAcceptableMediaTypes().isEmpty()) {
             // use RDF/XML as default format to keep compat with OpenCalais
             // clients
+            System.out.println("NO ACCEPTABLE MEDIA TYPE");
             rb.header(HttpHeaders.CONTENT_TYPE, RDF_XML+"; charset=UTF-8");
         }
+        
         addCORSOrigin(servletContext,rb, headers);
         return rb.build();
     }