package org.aksw.jena_sparql_api.example.proxy;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.servlet.ServletContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SparqlEndpointProxyMain {
/**
* @param exitCode
*/
public static void printHelpAndExit(int exitCode) {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp(SparqlEndpointProxyMain.class.getName(), cliOptions);
System.exit(exitCode);
}
private static final Logger logger = LoggerFactory
.getLogger(SparqlEndpointProxyMain.class);
private static final Options cliOptions = new Options();
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) throws Exception {
logger.info("Launching server...");
/*
PropertyConfigurator.configure("log4j.properties");
LogManager.getLogManager().readConfiguration(
new FileInputStream("jdklog.properties"));
*/
CommandLineParser cliParser = new GnuParser();
cliOptions.addOption("P", "port", true, "Server port");
//cliOptions.addOption("C", "context", true, "Context e.g. /sparqlify");
//cliOptions.addOption("B", "backlog", true, "Maximum number of connections");
cliOptions.addOption("s", "default service uri", true, "");
cliOptions.addOption("o", "allow override of default service uri", true, "");
CommandLine commandLine = cliParser.parse(cliOptions, args);
// Parsing of command line args
String portStr = commandLine.getOptionValue("P", "5522");
//String backLogStr = commandLine.getOptionValue("B", "100");
//String contextStr = commandLine.getOptionValue("C", "/sparqlify");
int port = Integer.parseInt(portStr);
//int backLog = Integer.parseInt(backLogStr);
String defaultServiceUri = commandLine.getOptionValue("s", "http://localhost/sparql");
String allowOverrideServiceUriStr = commandLine.getOptionValue("o", "false");
Boolean allowOverrideServiceUri = Boolean.parseBoolean(allowOverrideServiceUriStr);
ServletHolder sh = new ServletHolder(ServletContainer.class);
//ServletHolder sh = new ServletHolder(org.atmosphere.cpr.AtmosphereServlet.class);
//sh.setHeldClass(org.atmosphere.cpr.AtmosphereServlet.class);
sh.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
sh.setInitParameter(
"com.sun.jersey.config.property.resourceConfigClass",
"com.sun.jersey.api.core.PackagesResourceConfig");
sh.setInitParameter("com.sun.jersey.config.property.packages",
"org.aksw.jena_sparql_api.example.proxy");
Server server = new Server(port);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
//Context context = new Context(server, "/", Context.SESSIONS);
//context.addServlet(sh, "/*");
context.addServlet(sh, "/*");
context.setAttribute("defaultServiceUri", defaultServiceUri);
context.setAttribute("allowOverrideServiceUri", allowOverrideServiceUri);
server.start();
}
}