Skip to content

Commit

Permalink
Merging
Browse files Browse the repository at this point in the history
  • Loading branch information
barthanssens committed Dec 1, 2015
2 parents 605b15f + 586bfd9 commit 4592605
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 13 deletions.
6 changes: 6 additions & 0 deletions config-example.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@

"datasources": {
"dbpedia": {
"title": "DBPedia",
"type": "HdtDatasource",
"description": "DBPedia with an HDT back-end",
"settings": { "file": "data/dbpedia.hdt" }
},
"swdf": {
"title": "Semantic Web Dog Food",
"type": "HdtDatasource",
"description": "Semantic Web Dog Food with an HDT back-end",
Expand Down
62 changes: 61 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,66 @@
<properties>
<jettyVersion>9.3.6.v20151106</jettyVersion>
</properties>
<dependencies>
<dependency>
<groupId>org.rdfhdt</groupId>
<artifactId>hdt-jena</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-core</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-arq</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jettyVersion}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jettyVersion}</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
Expand Down Expand Up @@ -82,4 +142,4 @@
<version>9.3.6.v20151106</version>
</dependency>
</dependencies>
</project>
</project>
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@
package org.linkeddatafragments.servlet;

import com.google.gson.JsonObject;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.codec.CharEncoding;

import org.apache.http.HttpHeaders;
import org.apache.http.client.utils.URIBuilder;

import org.linkeddatafragments.config.ConfigReader;
import org.linkeddatafragments.datasource.TriplePatternFragment;
import org.linkeddatafragments.datasource.IDataSource;
import org.linkeddatafragments.datasource.DataSourceFactory;
import org.linkeddatafragments.exceptions.DataSourceException;
import org.linkeddatafragments.util.CommonResources;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.riot.RDFLanguages;

import com.google.gson.JsonObject;

import com.hp.hpl.jena.datatypes.TypeMapper;
import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
Expand All @@ -37,7 +35,13 @@
import com.hp.hpl.jena.rdf.model.ResourceFactory;
import com.hp.hpl.jena.shared.InvalidPropertyURIException;

import org.apache.commons.codec.CharEncoding;
import org.linkeddatafragments.config.ConfigReader;
import org.linkeddatafragments.datasource.DataSourceFactory;
import org.linkeddatafragments.datasource.IDataSource;
import org.linkeddatafragments.exceptions.DataSourceException;
import org.linkeddatafragments.util.CommonResources;

import org.linkeddatafragments.util.MIMEParse;

/**
* Servlet that responds with a Basic Linked Data Fragment.
Expand All @@ -63,6 +67,7 @@ public class TriplePatternFragmentServlet extends HttpServlet {

private ConfigReader config;
private final HashMap<String, IDataSource> dataSources = new HashMap<>();
private final Collection<String> mimeTypes = new ArrayList<>();


private File getConfigFile(ServletConfig config) throws IOException {
Expand Down Expand Up @@ -94,6 +99,11 @@ public void init(ServletConfig servletConfig) throws ServletException {
for (Entry<String, JsonObject> dataSource : config.getDataSources().entrySet()) {
dataSources.put(dataSource.getKey(), DataSourceFactory.create(dataSource.getValue()));
}
// register content types
mimeTypes.add(Lang.TTL.getHeaderString());
mimeTypes.add(Lang.JSONLD.getHeaderString());
mimeTypes.add(Lang.NTRIPLES.getHeaderString());
mimeTypes.add(Lang.RDFXML.getHeaderString() );
} catch (IOException | DataSourceException e) {
throw new ServletException(e);
}
Expand Down Expand Up @@ -243,6 +253,16 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
// fill the output model
Model output = fragment.getTriples();
output.setNsPrefixes(config.getPrefixes());

// do conneg
String bestMatch = MIMEParse.bestMatch(mimeTypes, request.getHeader("Accept"));
Lang contentType = RDFLanguages.contentTypeToLang(bestMatch);

// serialize the output
response.setHeader("Server", "Linked Data Fragments Server");
response.setContentType(bestMatch);
response.setCharacterEncoding("utf-8");
RDFDataMgr.write(response.getOutputStream(), output, contentType);

// add dataset metadata
String datasetUrl = getDatasetUrl(request);
Expand Down

0 comments on commit 4592605

Please # to comment.