Skip to content

Commit

Permalink
Added JSON-LD writer via rdfxml2json-ld.xsl
Browse files Browse the repository at this point in the history
  • Loading branch information
Martynas committed May 21, 2015
1 parent 8c969ae commit f28389e
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 9 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -75,7 +75,7 @@
<groupId>${project.groupId}</groupId>
<artifactId>processor</artifactId>
<version>${project.version}</version>
</dependency>
</dependency>
</dependencies>

<build>
Expand Down
19 changes: 12 additions & 7 deletions src/main/java/org/graphity/client/ApplicationBase.java
Expand Up @@ -20,12 +20,19 @@
import com.hp.hpl.jena.query.ARQ;
import com.hp.hpl.jena.util.FileManager;
import com.hp.hpl.jena.util.LocationMapper;
import java.io.FileNotFoundException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.HashSet;
import java.util.Set;
import javax.annotation.PostConstruct;
import javax.servlet.ServletConfig;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.stream.StreamSource;
import org.graphity.client.locator.PrefixMapper;
import org.graphity.client.model.impl.GlobalResourceBase;
import org.graphity.client.provider.DataManagerProvider;
Expand All @@ -36,6 +43,8 @@
import org.graphity.core.provider.ResultSetWriter;
import org.graphity.core.provider.UpdateRequestReader;
import org.graphity.client.util.DataManager;
import org.graphity.client.writer.xslt.JSONLDWriter;
import org.graphity.core.riot.RDFLanguages;
import org.graphity.processor.mapper.ConstraintViolationExceptionMapper;
import org.graphity.processor.mapper.NotFoundExceptionMapper;
import org.graphity.processor.provider.GraphStoreOriginProvider;
Expand Down Expand Up @@ -141,11 +150,11 @@ public void init()
OntDocumentManager.getInstance().setCacheModels(true); // lets cache the ontologies FTW!!
if (log.isDebugEnabled()) log.debug("OntDocumentManager.getInstance().getFileManager(): {}", OntDocumentManager.getInstance().getFileManager());

/*
try
{
singletons.add(new JSONLDWriter(XSLTBuilder.fromStylesheet(getSource("/static/org/graphity/client/xsl/rdfxml2json-ld.xsl")).
resolver(DataManager.get()))); // writes JSON-LD responses
singletons.add(new JSONLDWriter(getSource("/static/org/graphity/client/xsl/rdfxml2json-ld.xsl")));
// add RDF/POST serialization. It will support JSON-LD during conneg, even though it's a JAX-RS and not Jena writer
RDFLanguages.register(RDFLanguages.JSONLD) ;
}
catch (TransformerConfigurationException ex)
{
Expand All @@ -163,7 +172,6 @@ public void init()
{
if (log.isErrorEnabled()) log.error("XSLT stylesheet URL error", ex);
}
*/
}

/**
Expand Down Expand Up @@ -201,17 +209,14 @@ public Set<Object> getSingletons()
* @throws java.net.MalformedURLException
* @see <a href="http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Source.html">Source</a>
*/
/*
public Source getSource(String filename) throws FileNotFoundException, URISyntaxException, MalformedURLException
{
if (log.isDebugEnabled()) log.debug("Resource paths used to load Source: {} from filename: {}", getServletConfig().getResourcePaths("/"), filename);
URL xsltUrl = getServletConfig().getServletContext().getResource(filename);
if (xsltUrl == null) throw new FileNotFoundException("File '" + filename + "' not found");
String xsltUri = xsltUrl.toURI().toString();
if (log.isDebugEnabled()) log.debug("XSLT stylesheet URI: {}", xsltUri);
return new StreamSource(xsltUri);
}
*/

/**
* Returns URI information
Expand Down
11 changes: 10 additions & 1 deletion src/main/java/org/graphity/client/writer/xslt/JSONLDWriter.java
Expand Up @@ -19,7 +19,11 @@
import com.sun.jersey.spi.resource.Singleton;
import javax.ws.rs.Produces;
import javax.ws.rs.ext.Provider;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXTransformerFactory;
import org.graphity.client.writer.ModelXSLTWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -32,11 +36,16 @@
*/
@Provider
@Singleton
@Produces("application/ld+json")
@Produces(org.graphity.core.MediaType.APPLICATION_LD_JSON)
public class JSONLDWriter extends ModelXSLTWriter
{
private static final Logger log = LoggerFactory.getLogger(JSONLDWriter.class);

public JSONLDWriter(Source stylesheet) throws TransformerConfigurationException
{
this(((SAXTransformerFactory)TransformerFactory.newInstance()).newTemplates(stylesheet));
}

public JSONLDWriter(Templates templates)
{
super(templates);
Expand Down

0 comments on commit f28389e

Please sign in to comment.