package de.ifgi.lod4wfs.web;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.log4j.Logger;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
import de.ifgi.lod4wfs.core.GlobalSettings;
import de.ifgi.lod4wfs.facade.Facade;
/**
* @author Jim Jones
*/
public class Start{
public static String startTime;
private static Logger logger = Logger.getLogger("WFS-Servlet");
public static void main(String[] args) throws Exception
{
GlobalSettings.refreshSystemVariables();
/**
* First parameter: SPARQL Endpoint address.
*/
if (args.length >= 1) {
GlobalSettings.setDefaultSPARQLEndpoint(args[0]);
}
/**
* Second parameter: Server port
*/
if (args.length == 2) {
GlobalSettings.setDefaultPort(Integer.parseInt(args[1]));
}
Server server = new Server(GlobalSettings.getDefaultPort());
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date date = new Date();
GlobalSettings.setStartupTime(dateFormat.format(date));
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/"+GlobalSettings.getDefaultServiceName());
server.setHandler(context);
context.addServlet(new ServletHolder(new ServletWFS()),"/*");
//#####################
WebAppContext webAppContext = new WebAppContext();
webAppContext.setDescriptor("jsp/xml/web.xml");
webAppContext.setResourceBase("jsp/");
webAppContext.setContextPath("/");
//*******************
ContextHandler contextGUI = new ContextHandler("/admin");
contextGUI.setHandler(new HandlerGUI("Bonjoir"));
ContextHandlerCollection contexts = new ContextHandlerCollection();
contexts.setHandlers(new Handler[] { context, contextGUI, webAppContext});
server.setHandler(contexts);
//*******************
Facade.getInstance().getCapabilities("1.0.0");
server.start();
logger.info("Service started:"+GlobalSettings.getCrLf() + GlobalSettings.getCrLf() +
"LOD4WFS Adapter (Linked Open Data for Web Feature Service) " + GlobalSettings.getCrLf() + GlobalSettings.getCrLf() +
"Institut für Geoinformatik | Universitäts- und Landesbibliothek " + GlobalSettings.getCrLf() +
"Westfälische Wilhelms-Universität Münster" + GlobalSettings.getCrLf() +
"http://www.uni-muenster.de/" + GlobalSettings.getCrLf() + GlobalSettings.getCrLf() +
"Application Version: " + GlobalSettings.getAppVersion() + GlobalSettings.getCrLf() +
"Startup time: " + GlobalSettings.getStartupTime() + GlobalSettings.getCrLf() +
"Java Runtime: "+ System.getProperty("java.version") + GlobalSettings.getCrLf() +
"Operating System: " + System.getProperty("os.name").toString() + " " +
System.getProperty("os.version").toString() + " (" +
System.getProperty("os.arch").toString()+")"+ GlobalSettings.getCrLf()+
"Port: " + GlobalSettings.getDefaultPort() + GlobalSettings.getCrLf() +
"Default SPARQL Endpoint (SDA Features): " + GlobalSettings.getDefaultSPARQLEndpoint() + GlobalSettings.getCrLf() +
"Connection Time-out in ms: " + GlobalSettings.getConnectionTimeOut() + GlobalSettings.getCrLf() +
"FDA Features Enabled: " + GlobalSettings.isFdaEnabled() + GlobalSettings.getCrLf() +
"SDA Features Enabled: " + GlobalSettings.isSdaEnabled() + GlobalSettings.getCrLf() +
"SOLR Features Enabled: " + GlobalSettings.isSolrEnabled() + GlobalSettings.getCrLf() +
"FDA Features Directory: " + GlobalSettings.getFeatureDirectory() + GlobalSettings.getCrLf() +
"Web Interface Preview Limit: " + GlobalSettings.getPreviewLimit() + GlobalSettings.getCrLf() + GlobalSettings.getCrLf()
);
server.join();
}
}