Author: rwesten
Date: Wed Aug 26 12:18:57 2015
New Revision: 1697898

URL: http://svn.apache.org/r1697898
Log:
STANBOL-1439: (re)-implementation of JSON-LD support. Now based on the 
java-jsonld library. This removed the old outdated implementation by using this 
library. Also includes changes to the integration tests as a lot of string 
checks have no longer worked with the new JSON-LD serialization.

Added:
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/ClerezzaRDFParser.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdParsingProvider.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdSerializingProvider.java
    stanbol/branches/release-0.12/commons/jsonld/src/main/resources/
    stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/
    
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/
    
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.ParsingProvider
    
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.SerializingProvider
Removed:
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonComparator.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLd.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdCommon.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdIRI.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdParser.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdParserCommon.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdProfile.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdProfileParser.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdProperty.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdPropertyValue.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonLdResource.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/JsonSerializer.java
    
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/ShorteningException.java
    stanbol/branches/release-0.12/commons/jsonld/src/test/java/eu/
    stanbol/branches/release-0.12/commons/jsonld/src/test/java/org/
    
stanbol/branches/release-0.12/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProvider.java
    
stanbol/branches/release-0.12/commons/web/base/src/test/java/org/apache/stanbol/commons/web/base/writers/
Modified:
    stanbol/branches/release-0.12/commons/jsonld/pom.xml
    stanbol/branches/release-0.12/commons/pom.xml
    stanbol/branches/release-0.12/commons/web/base/pom.xml
    
stanbol/branches/release-0.12/enhancer/jersey/src/main/resources/templates/imports/enhancerweb.ftl
    stanbol/branches/release-0.12/integration-tests/pom.xml
    
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/commons/httpqueryheaders/it/HttpQueryHeaderPostTest.java
    
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/DefaultChainTest.java
    
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/MultipartRequestTest.java
    
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/entityhub/it/ldpath/DbpediaLDPathTest.java

Modified: stanbol/branches/release-0.12/commons/jsonld/pom.xml
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/jsonld/pom.xml?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- stanbol/branches/release-0.12/commons/jsonld/pom.xml (original)
+++ stanbol/branches/release-0.12/commons/jsonld/pom.xml Wed Aug 26 12:18:57 
2015
@@ -55,25 +55,38 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
+            <Export-Package></Export-Package>
             <Import-Package>
-              org.apache.stanbol.commons.jsonld.*,
               *
             </Import-Package>
-            <Export-Package>
-              org.apache.stanbol.commons.jsonld.*;version=${project.version}
-            </Export-Package>
+            <Private-Package>
+              
org.apache.stanbol.commons.jsonld.clerezza;version=${project.version}
+            </Private-Package>
           </instructions>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-scr-plugin</artifactId>
+      </plugin>
+      
     </plugins>
   </build>
 
   <dependencies>
     <dependency>
-      <groupId>org.codehaus.jettison</groupId>
-      <artifactId>jettison</artifactId>
+      <groupId>com.github.jsonld-java</groupId>
+      <artifactId>jsonld-java-clerezza</artifactId>
+      <version>0.6.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.clerezza</groupId>
+      <artifactId>rdf.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.scr.annotations</artifactId>
     </dependency>
-   
     <!-- Logging -->
     <dependency>
       <groupId>org.slf4j</groupId>

Added: 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/ClerezzaRDFParser.java
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/ClerezzaRDFParser.java?rev=1697898&view=auto
==============================================================================
--- 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/ClerezzaRDFParser.java
 (added)
+++ 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/ClerezzaRDFParser.java
 Wed Aug 26 12:18:57 2015
@@ -0,0 +1,108 @@
+package org.apache.stanbol.commons.jsonld.clerezza;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.clerezza.rdf.core.BNode;
+import org.apache.clerezza.rdf.core.Language;
+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.Resource;
+import org.apache.clerezza.rdf.core.Triple;
+import org.apache.clerezza.rdf.core.TripleCollection;
+import org.apache.clerezza.rdf.core.TypedLiteral;
+import org.apache.clerezza.rdf.core.UriRef;
+
+import com.github.jsonldjava.core.JsonLdError;
+import com.github.jsonldjava.core.JsonLdProcessor;
+import com.github.jsonldjava.core.RDFDataset;
+import com.github.jsonldjava.core.RDFParser;
+
+/**
+ * Converts a Clerezza {@link TripleCollection} to the {@link RDFDataset} used
+ * by the {@link JsonLdProcessor}
+ * 
+ * @author Rupert Westenthaler
+ *
+ */
+public class ClerezzaRDFParser implements RDFParser {
+
+    private static String RDF_LANG_STRING = 
"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString";;
+    
+    private long count = 0;
+    
+    @Override
+    public RDFDataset parse(Object input) throws JsonLdError {
+        count = 0;
+        Map<BNode,String> bNodeMap = new HashMap<BNode,String>(1024);
+        final RDFDataset result = new RDFDataset();
+        if(input instanceof TripleCollection){
+            for(Triple t : ((TripleCollection)input)){
+                handleStatement(result,t, bNodeMap);
+            }
+        }
+        bNodeMap.clear(); //help gc
+        return result;
+    }
+
+    private void handleStatement(RDFDataset result, Triple t, 
Map<BNode,String> bNodeMap) {
+        final String subject = getResourceValue(t.getSubject(), bNodeMap);
+        final String predicate = getResourceValue(t.getPredicate(), bNodeMap);
+        final Resource object = t.getObject();
+        
+        if (object instanceof Literal) {
+            
+            final String value = ((Literal)object).getLexicalForm();
+            final String language;
+            final String datatype;
+            if(object instanceof TypedLiteral){
+                language = null;
+                datatype = 
getResourceValue(((TypedLiteral)object).getDataType(), bNodeMap);
+            } else if(object instanceof PlainLiteral){
+                //we use RDF 1.1 literals so we do set the RDF_LANG_STRING 
datatype
+                datatype = RDF_LANG_STRING;
+                Language l = ((PlainLiteral)object).getLanguage();
+                if(l == null){
+                    language = null;
+                } else {
+                    language = l.toString();
+                }
+            } else {
+                throw new IllegalStateException("Unknown Literal class " + 
object.getClass().getName());
+            }
+            result.addTriple(subject, predicate, value, datatype, language);
+            count++;
+        } else {
+            result.addTriple(subject, predicate, getResourceValue((NonLiteral) 
object, bNodeMap));
+            count++;
+        }
+        
+    }
+    
+    /**
+     * The count of processed triples (not thread save)
+     * @return the count of triples processed by the last {@link 
#parse(Object)} call
+     */
+    public long getCount() {
+        return count;
+    }
+    
+    private String getResourceValue(NonLiteral nl, Map<BNode,String> bNodeMap) 
{
+        if (nl == null) {
+            return null;
+        } else if (nl instanceof UriRef) {
+            return ((UriRef)nl).getUnicodeString();
+        } else if (nl instanceof BNode) {
+            String bNodeId = bNodeMap.get(nl);
+            if(bNodeId == null){
+                bNodeId = Integer.toString(bNodeMap.size());
+                bNodeMap.put((BNode)nl, bNodeId);
+            }
+            return new StringBuilder("_:").append(bNodeId).toString();
+        } else {
+            throw new IllegalStateException("Unknwon NonLiteral type 
"+nl.getClass().getName()+"!");
+        }
+    }
+}
+    

Added: 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdParsingProvider.java
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdParsingProvider.java?rev=1697898&view=auto
==============================================================================
--- 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdParsingProvider.java
 (added)
+++ 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdParsingProvider.java
 Wed Aug 26 12:18:57 2015
@@ -0,0 +1,80 @@
+/*
+ * 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.stanbol.commons.jsonld.clerezza;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.serializedform.ParsingProvider;
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.ConfigurationPolicy;
+import org.apache.felix.scr.annotations.Service;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.github.jsonldjava.clerezza.ClerezzaTripleCallback;
+import com.github.jsonldjava.core.JsonLdError;
+import com.github.jsonldjava.core.JsonLdProcessor;
+import com.github.jsonldjava.utils.JsonUtils;
+
+/**
+ * A {@link org.apache.clerezza.rdf.core.serializedform.ParsingProvider} for 
+ * JSON-LD (application/ld+json) based on the java-jsonld library
+ * 
+ * @author Rupert Westenthaler
+ * 
+ */
+@Component(immediate=true,policy=ConfigurationPolicy.OPTIONAL)
+@Service
+@SupportedFormat("application/ld+json")
+public class JsonLdParsingProvider implements ParsingProvider {
+
+    private final Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Override
+    public void parse(MGraph target, InputStream serializedGraph, String 
formatIdentifier, UriRef baseUri) {
+        //The callback will add parsed triples to the target MGraph
+        ClerezzaTripleCallback ctc = new ClerezzaTripleCallback();
+        ctc.setMGraph(target);
+        Object input;
+        int startSize = 0;
+        if(logger.isDebugEnabled()){
+            startSize = target.size();
+        }
+        long start = System.currentTimeMillis();
+        try {
+            input = JsonUtils.fromInputStream(serializedGraph,"UTF-8");
+        } catch (IOException e) {
+            logger.error("Unable to read from the parsed input stream",e);
+            throw new RuntimeException(e.getMessage(), e);
+        }
+        try {
+            JsonLdProcessor.toRDF(input,ctc);
+        } catch (JsonLdError e) {
+            logger.error("Unable to parse JSON-LD from the parsed input 
stream",e);
+            throw new RuntimeException(e.getMessage(), e);
+        }
+        if(logger.isDebugEnabled()){
+            logger.debug(" - parsed {} triples in {}ms", target.size() - 
startSize,
+                System.currentTimeMillis()-start);
+        }
+    }
+
+}

Added: 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdSerializingProvider.java
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdSerializingProvider.java?rev=1697898&view=auto
==============================================================================
--- 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdSerializingProvider.java
 (added)
+++ 
stanbol/branches/release-0.12/commons/jsonld/src/main/java/org/apache/stanbol/commons/jsonld/clerezza/JsonLdSerializingProvider.java
 Wed Aug 26 12:18:57 2015
@@ -0,0 +1,200 @@
+/*
+ * 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.stanbol.commons.jsonld.clerezza;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.Charset;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.clerezza.rdf.core.TripleCollection;
+import org.apache.clerezza.rdf.core.serializedform.SerializingProvider;
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.ConfigurationPolicy;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.PropertyOption;
+import org.apache.felix.scr.annotations.Service;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.github.jsonldjava.core.JsonLdError;
+import com.github.jsonldjava.core.JsonLdOptions;
+import com.github.jsonldjava.core.JsonLdProcessor;
+import com.github.jsonldjava.utils.JsonUtils;
+
+/**
+ * A {@link org.apache.clerezza.rdf.core.serializedform.SerializingProvider} 
for 
+ * JSON-LD (application/ld+json) based on the java-jsonld library
+ * 
+ * @author Rupert Westenthaler
+ */
+@Component(immediate = true,policy=ConfigurationPolicy.OPTIONAL)
+@Service
+@SupportedFormat(value={"application/ld+json","application/json"})
+public class JsonLdSerializingProvider implements SerializingProvider {
+
+    private final Logger logger = LoggerFactory.getLogger(getClass());
+    
+    private static final Charset UTF8 = Charset.forName("UTF-8");
+    
+    private static final String MODE_EXPAND = "expand";
+    private static final String MODE_FLATTEN = "flatten";
+    private static final String MODE_COMPACT = "compact";
+
+    @Property(value="",options={
+            @PropertyOption(value="%mode.option.none",name=""), //none (keep 
the default)
+            @PropertyOption(value="%mode.option.flatten",name="flatten"),
+            @PropertyOption(value="%mode.option.compact",name="compact"),
+            @PropertyOption(value="%mode.option.expand",name=MODE_EXPAND)}) 
+    private static final String PROP_MODE = "mode";
+    
+    @Property(boolValue=false)
+    private static final String PROP_USE_RDF_TYPE = "useRdfTye";
+    
+    @Property(boolValue=false)
+    private static final String PROP_USE_NATIVE_TYPES = "useNativeTypes";
+
+    @Property(boolValue=true)
+    private static final String PROP_PRETTY_PRINT = "prettyPrint";
+
+    //TODO: make configurable or read the whole prefix.cc list from a file and
+    //      search for really used namespaces while parsing the triples in the 
+    //      ClerezzaRDFParser
+    private static Map<String,String> DEFAULT_NAMESPACES;
+    static {
+        //core ontologies, top from prefixcc and some stanbol specific
+        Map<String,String> ns = new LinkedHashMap<String,String>();
+        //core schemas
+        ns.put("xsd", "http://www.w3.org/2001/XMLSchema#";);
+        ns.put("owl", "http://www.w3.org/2002/07/owl#";);
+        ns.put("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#";);
+        ns.put("rdfs", "http://www.w3.org/2000/01/rdf-schema#";);
+        //well known ontologies
+        ns.put("skos", "http://www.w3.org/2004/02/skos/core#";);
+        ns.put("geo", "http://www.w3.org/2003/01/geo/wgs84_pos#";);
+        ns.put("dc", "http://purl.org/dc/elements/1.1/";);
+        ns.put("foaf", "http://xmlns.com/foaf/0.1/";);
+        ns.put("ma","http://www.w3.org/ns/ma-ont#";);
+        //big datasets
+        ns.put("dbo", "http://dbpedia.org/ontology/";);
+        ns.put("dbp", "http://dbpedia.org/property/";);
+        ns.put("yago", "http://yago-knowledge.org/resource/";);
+        ns.put("fb", "http://rdf.freebase.com/ns/";);
+        ns.put("geonames", "http://www.geonames.org/ontology#";);
+        //stanbol specific
+        ns.put("fise", "http://fise.iks-project.eu/ontology/";);
+        
ns.put("enhancer","http://stanbol.apache.org/ontology/enhancer/enhancer#";);
+        ns.put("entityhub", 
"http://stanbol.apache.org/ontology/entityhub/entityhub#";);
+        
+        DEFAULT_NAMESPACES = Collections.unmodifiableMap(ns);
+    }
+    
+    
+    private JsonLdOptions opts = null;
+    private String mode;
+
+    private boolean prettyPrint;
+    
+    @Override
+    public void serialize(OutputStream serializedGraph, TripleCollection tc,  
String formatIdentifier) {
+        ClerezzaRDFParser serializer = new ClerezzaRDFParser();
+        try {
+            long start = System.currentTimeMillis();
+            Object output = JsonLdProcessor.fromRDF(tc, serializer);
+            
+            if(MODE_EXPAND.equalsIgnoreCase(mode)){
+                logger.debug(" - mode: {}", MODE_EXPAND);
+                output = JsonLdProcessor.expand(output,opts);
+            }
+            if(MODE_FLATTEN.equalsIgnoreCase(mode)){
+                logger.debug(" - mode: {}", MODE_FLATTEN);
+                // TODO: Allow inframe config
+                final Object inframe = null;
+                output = JsonLdProcessor.flatten(output, inframe, opts);
+            }
+            if(MODE_COMPACT.equalsIgnoreCase(mode)){
+                logger.debug(" - mode: {}", MODE_COMPACT);
+                //TODO: collect namespaces used in the triples in the 
ClerezzaRDFParser
+                final Map<String, Object> localCtx = new HashMap<String, 
Object>();
+                localCtx.put("@context", DEFAULT_NAMESPACES);
+                output = JsonLdProcessor.compact(output, localCtx, opts);
+            }
+            Writer writer = new OutputStreamWriter(serializedGraph, UTF8);
+            logger.debug(" - prettyPrint: {}", prettyPrint);
+            if (prettyPrint) {
+                JsonUtils.writePrettyPrint(writer, output);
+            } else {
+                JsonUtils.write(writer, output);
+            }
+            if(logger.isDebugEnabled()){
+                logger.debug(" - serialized {} triples in {}ms", 
serializer.getCount(), 
+                    System.currentTimeMillis()-start);
+            }
+        } catch (JsonLdError e) {
+            throw new RuntimeException(e.getMessage(), e);
+        } catch (IOException e) {
+            throw new RuntimeException(e.getMessage(), e);
+        }
+    }
+
+    @Activate
+    protected void activate(ComponentContext ctx) {
+        opts = new JsonLdOptions();
+        @SuppressWarnings("unchecked")
+        Dictionary<String,Object> config = ctx.getProperties();
+        //boolean properties
+        opts.setUseRdfType(getState(config.get(PROP_USE_RDF_TYPE), false));
+        opts.setUseNativeTypes(getState(config.get(PROP_USE_NATIVE_TYPES), 
false));
+        prettyPrint = getState(config.get(PROP_PRETTY_PRINT),true);
+        //parse the string mode
+        Object value = config.get(PROP_MODE);
+        mode = value == null ? null : value.toString();
+    }
+
+    
+    @Deactivate
+    protected void deactivate(ComponentContext ctx) {
+        opts = null;
+        mode = null;
+        prettyPrint = false;
+    }
+
+    /**
+     * @param value
+     */
+    private boolean getState(Object value, boolean defaultState) {
+        if(value instanceof Boolean){
+            return ((Boolean)value).booleanValue();
+        } else if(value != null){
+            return Boolean.parseBoolean(value.toString());
+        } else {
+            return defaultState;
+        }
+    }
+
+    
+}

Added: 
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.ParsingProvider
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.ParsingProvider?rev=1697898&view=auto
==============================================================================
--- 
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.ParsingProvider
 (added)
+++ 
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.ParsingProvider
 Wed Aug 26 12:18:57 2015
@@ -0,0 +1 @@
+org.apache.stanbol.commons.jsonld.clerezza.JsonLdParsingProvider

Added: 
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.SerializingProvider
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.SerializingProvider?rev=1697898&view=auto
==============================================================================
--- 
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.SerializingProvider
 (added)
+++ 
stanbol/branches/release-0.12/commons/jsonld/src/main/resources/META-INF/services/org.apache.clerezza.rdf.core.serializedform.SerializingProvider
 Wed Aug 26 12:18:57 2015
@@ -0,0 +1 @@
+org.apache.stanbol.commons.jsonld.clerezza.JsonLdSerializingProvider

Modified: stanbol/branches/release-0.12/commons/pom.xml
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/pom.xml?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- stanbol/branches/release-0.12/commons/pom.xml (original)
+++ stanbol/branches/release-0.12/commons/pom.xml Wed Aug 26 12:18:57 2015
@@ -112,7 +112,10 @@
   
     <!-- Apache Clerezza utils and extensions-->
     <module>indexedgraph</module>
-    <module>jsonld</module> <!-- JSON-LD implementation for Stanbol (outdated) 
-->
+    <!-- JSON-LD serializer/parser provider for Clerezza 
+       (should move to 
https://github.com/jsonld-java/jsonld-java/tree/master/integration/clerezza)
+     -->
+    <module>jsonld</module>
     <module>ldpath/clerezza</module>
     <module>launchpad</module>
     

Modified: stanbol/branches/release-0.12/commons/web/base/pom.xml
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/commons/web/base/pom.xml?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- stanbol/branches/release-0.12/commons/web/base/pom.xml (original)
+++ stanbol/branches/release-0.12/commons/web/base/pom.xml Wed Aug 26 12:18:57 
2015
@@ -87,11 +87,6 @@
   </build>
 
   <dependencies>
-    <dependency>
-      <groupId>org.apache.stanbol</groupId>
-      <artifactId>org.apache.stanbol.commons.jsonld</artifactId>
-      <version>0.11.0</version>
-    </dependency>
 
     <!-- Clerezza dependencies -->
     <dependency>

Modified: 
stanbol/branches/release-0.12/enhancer/jersey/src/main/resources/templates/imports/enhancerweb.ftl
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/enhancer/jersey/src/main/resources/templates/imports/enhancerweb.ftl?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- 
stanbol/branches/release-0.12/enhancer/jersey/src/main/resources/templates/imports/enhancerweb.ftl
 (original)
+++ 
stanbol/branches/release-0.12/enhancer/jersey/src/main/resources/templates/imports/enhancerweb.ftl
 Wed Aug 26 12:18:57 2015
@@ -92,7 +92,7 @@ $(".enginelisting p").click(function ()
     <p><textarea rows="15" name="content"></textarea></p>
     <p class="submitButtons">Output format:
       <select name="format">
-        <option value="application/json">JSON-LD</option>
+        <option value="application/ld+json">JSON-LD</option>
         <option value="application/rdf+xml">RDF/XML</option>
         <option value="application/rdf+json">RDF/JSON</option>
         <option value="text/turtle">Turtle</option>

Modified: stanbol/branches/release-0.12/integration-tests/pom.xml
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/integration-tests/pom.xml?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- stanbol/branches/release-0.12/integration-tests/pom.xml (original)
+++ stanbol/branches/release-0.12/integration-tests/pom.xml Wed Aug 26 12:18:57 
2015
@@ -116,10 +116,10 @@
             <server.ready.path.1>/:stanbol.css</server.ready.path.1>
             <server.ready.path.2>/enhancer:Stateless REST 
analysis:Accept:text/html</server.ready.path.2>
             <server.ready.path.3>/entityhub:The RESTful API of the 
Entityhub</server.ready.path.3>
-            <!-- comment the following paths to use the integration test with 
the stable launcher -->
+            <!-- comment the following paths to use the integration test with 
the stable launcher
             <server.ready.path.4>/contenthub:Recently uploaded Content 
Items</server.ready.path.4>
             <server.ready.path.5>/ontonet:Apache Stanbol 
OntoNet:Accept:text/html</server.ready.path.5>
-            <server.ready.path.6>/reasoners:The Stanbol Reasoners 
provides</server.ready.path.6>
+            <server.ready.path.6>/reasoners:The Stanbol Reasoners 
provides</server.ready.path.6> -->
           </systemPropertyVariables>
           <excludes>
             <!-- Config is to big and Regex check on result causes 
OutOfMemoryExceptions -->

Modified: 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/commons/httpqueryheaders/it/HttpQueryHeaderPostTest.java
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/commons/httpqueryheaders/it/HttpQueryHeaderPostTest.java?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/commons/httpqueryheaders/it/HttpQueryHeaderPostTest.java
 (original)
+++ 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/commons/httpqueryheaders/it/HttpQueryHeaderPostTest.java
 Wed Aug 26 12:18:57 2015
@@ -69,8 +69,11 @@ public class HttpQueryHeaderPostTest ext
         .assertStatus(200)
         //check for JSON-LD (the default content type
         .assertContentType("application/ld+json")
-        .assertContentRegexp("entity-reference\": 
\"http://dbpedia.org/resource/London\"";,
-            "creator\": 
\"org.apache.stanbol.enhancer.engines.langdetect.LanguageDetectionEnhancementEngine\"",
-            "creator\": 
\"org.apache.stanbol.enhancer.engines.entitytagging.impl.NamedEntityTaggingEngine\"");
+        .assertContentContains(
+            "\"http://fise.iks-project.eu/ontology/entity-reference\"; : [ {",
+            "\"@id\" : \"http://dbpedia.org/resource/London\"";,
+            "\"http://purl.org/dc/terms/creator\"; : [ {",
+            "\"@value\" : 
\"org.apache.stanbol.enhancer.engines.langdetect.LanguageDetectionEnhancementEngine\"",
+            "\"@value\" : 
\"org.apache.stanbol.enhancer.engines.entitytagging.impl.NamedEntityTaggingEngine\"");
     }
 }

Modified: 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/DefaultChainTest.java
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/DefaultChainTest.java?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/DefaultChainTest.java
 (original)
+++ 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/DefaultChainTest.java
 Wed Aug 26 12:18:57 2015
@@ -36,9 +36,9 @@ public class DefaultChainTest extends En
      * Expected content-type, Expected regexp
      */
     public final static String [] ACCEPT_FORMAT_TEST_DATA  = new String[] {
-        "application/json",
-        "application/json", //now JSON LD uses application/json
-        "\"creator\": 
\"org.apache.stanbol.enhancer.engines.langdetect.LanguageDetectionEnhancementEngine\",",
+        "application/ld+json",
+        "application/ld+json", //now JSON LD uses application/ld+json
+        "\"@value\" : 
\"org.apache.stanbol.enhancer.engines.langdetect.LanguageDetectionEnhancementEngine\"",
         
         "application/rdf+xml",
         "application/rdf+xml",

Modified: 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/MultipartRequestTest.java
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/MultipartRequestTest.java?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/MultipartRequestTest.java
 (original)
+++ 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/MultipartRequestTest.java
 Wed Aug 26 12:18:57 2015
@@ -113,9 +113,10 @@ public class MultipartRequestTest extend
         //This is basically testing backward compatibility 
         
         String[] jsonLDMetadataTests = new String[]{
-            "\"@id\": \"http://dbpedia.org/resource/Paris\",";,
-            "\"@id\": \"http://dbpedia.org/resource/Bob_Marley\",";,
-            "\"dc:creator\": 
\"org.apache.stanbol.enhancer.engines.entitytagging.impl.NamedEntityTaggingEngine\","
+            "\"@id\" : \"http://dbpedia.org/resource/Paris\",";,
+            "\"@id\" : \"http://dbpedia.org/resource/Bob_Marley\",";,
+            "\"http://purl.org/dc/terms/creator\"; : [ {",
+            "\"@value\" : 
\"org.apache.stanbol.enhancer.engines.entitytagging.impl.NamedEntityTaggingEngine\""
         };
         String[] params = new String []{
                     "outputContent","text/plain"
@@ -127,7 +128,7 @@ public class MultipartRequestTest extend
             .withContent(HTML_CONTENT)
         )
         .assertStatus(200) //metadata as JSONLD
-        .assertContentRegexp(jsonLDMetadataTests);
+        .assertContentContains(jsonLDMetadataTests);
         
         params = new String []{
             "outputContent","application/octet-stream"}; //omitMetadata=false
@@ -138,7 +139,7 @@ public class MultipartRequestTest extend
             .withContent(HTML_CONTENT)
         )
         .assertStatus(200) //metadata as JSONLD
-        .assertContentRegexp(jsonLDMetadataTests);
+        .assertContentContains(jsonLDMetadataTests);
 
         params = new String []{
            "outputContent","application/octet-stream"}; //omitMetadata=false
@@ -149,7 +150,7 @@ public class MultipartRequestTest extend
             .withContent(HTML_CONTENT)
         )
         .assertStatus(200) //metadata as JSONLD
-        .assertContentRegexp(jsonLDMetadataTests);
+        .assertContentContains(jsonLDMetadataTests);
     }
     
     @Test

Modified: 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/entityhub/it/ldpath/DbpediaLDPathTest.java
URL: 
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/entityhub/it/ldpath/DbpediaLDPathTest.java?rev=1697898&r1=1697897&r2=1697898&view=diff
==============================================================================
--- 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/entityhub/it/ldpath/DbpediaLDPathTest.java
 (original)
+++ 
stanbol/branches/release-0.12/integration-tests/src/test/java/org/apache/stanbol/entityhub/it/ldpath/DbpediaLDPathTest.java
 Wed Aug 26 12:18:57 2015
@@ -135,10 +135,10 @@ public class DbpediaLDPathTest extends E
         )
         .assertStatus(200)
         .assertContentContains(
-            "\"@id\": \"http://dbpedia.org/resource/London\"";,
-            "\"@value\": \"London\"",
-            "\"@id\": \"http://dbpedia.org/resource/Paris\"";,
-            "\"@value\": \"Paris\"");
+            "\"@id\" : \"http://dbpedia.org/resource/London\"";,
+            "\"@value\" : \"London\"",
+            "\"@id\" : \"http://dbpedia.org/resource/Paris\"";,
+            "\"@value\" : \"Paris\"");
     }
     @Test
     public void testUnknownContext() throws IOException {
@@ -149,7 +149,7 @@ public class DbpediaLDPathTest extends E
                 "ldpath","name = rdfs:label[@en] :: xsd:string;")
         )
         .assertStatus(200)
-        .assertContentContains("{","}");
+        .assertContentContains("[","]");
     }
     @Test
     public void testLDPath() throws IOException {
@@ -169,16 +169,18 @@ public class DbpediaLDPathTest extends E
         .assertStatus(200)
         .assertContentType("application/json")
         .assertContentContains(
-            "\"@id\": \"http://dbpedia.org/resource/Paris\"";,
-            "\"comment\": {",
+            "\"@id\" : \"http://dbpedia.org/resource/Paris\"";,
+            "\"comment\" : [ {",
             "Paris is the capital and largest city of France.",
-            "\"homepage\": \"http://www.paris.fr/\"";,
-            "\"labels\": [",
-            "\"@value\": \"Parigi\"",
-            "\"@value\": \"巴黎\"",
-            "\"location\": \"[48.8567,2.3508]\"",
-            "\"name\": {",
-            "\"@value\": \"Paris\""
+            "\"homepage\" : [ {",
+            "\"@id\" : \"http://www.paris.fr/\"";,
+            "\"labels\" : [ {",
+            "\"@value\" : \"Parigi\"",
+            "\"@value\" : \"巴黎\"",
+            "\"location\" : [ {",
+            "\"@value\" : \"[48.8567,2.3508]\"",
+            "\"name\" : [ {",
+            "\"@value\" : \"Paris\""
             );
     }
     /*


Reply via email to