[Mulgara-svn] r1134 - in trunk/src/jar/server: . java/org/mulgara/server
pag at mulgara.org
pag at mulgara.org
Sun Aug 10 02:15:10 UTC 2008
Author: pag
Date: 2008-08-09 19:15:09 -0700 (Sat, 09 Aug 2008)
New Revision: 1134
Modified:
trunk/src/jar/server/build.xml
trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java
Log:
Added in the QueryServlet context to the web server. This is brought in by reflection, since it wants to ask the Mulgara Server for Connections, and the mutual dependencies this would create cannot be handled by Ant.
Modified: trunk/src/jar/server/build.xml
===================================================================
--- trunk/src/jar/server/build.xml 2008-08-10 02:12:34 UTC (rev 1133)
+++ trunk/src/jar/server/build.xml 2008-08-10 02:15:09 UTC (rev 1134)
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project>
<!-- =================================================================== -->
@@ -26,6 +25,7 @@
<fileset file="${store.dist.dir}/${store.jar}"/>
<fileset file="${store-xa.dist.dir}/${store-xa.jar}"/>
<fileset file="${resolver-spi.dist.dir}/${resolver-spi.jar}"/>
+ <fileset file="${webquery.dist.dir}/${webquery.jar}"/>
<fileset file="${util.dist.dir}/${util.jar}"/>
<fileset file="${util-xa.dist.dir}/${util-xa.jar}"/>
</path>
@@ -100,8 +100,7 @@
</target>
<target name="server-compile"
- depends="server-configure, store-jar, store-xa-jar,
- resolver-spi-jar, util-xa-jar"
+ depends="server-configure, store-jar, store-xa-jar, resolver-spi-jar, util-xa-jar"
description="Compiles all server related files included generated
source code">
Modified: trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java
===================================================================
--- trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java 2008-08-10 02:12:34 UTC (rev 1133)
+++ trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java 2008-08-10 02:15:09 UTC (rev 1134)
@@ -37,6 +37,7 @@
import java.util.*;
import javax.naming.*;
+import javax.servlet.Servlet;
import javax.xml.parsers.*;
import org.xml.sax.SAXException;
@@ -50,16 +51,21 @@
import org.mulgara.server.SessionFactory;
import org.mulgara.store.StoreException;
import org.mulgara.store.xa.SimpleXAResourceException;
+import org.mulgara.util.MortbayLogger;
+import org.mulgara.util.Reflect;
import org.mulgara.util.TempDir;
import static org.mulgara.server.ServerMBean.ServerState;
+import static org.mortbay.jetty.servlet.Context.SESSIONS;
// jetty packages
import org.mortbay.jetty.AbstractConnector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ContextHandler;
+import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.nio.BlockingChannelConnector;
+import org.mortbay.jetty.servlet.ServletHolder;
import org.mortbay.jetty.webapp.WebAppClassLoader;
import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.util.MultiException;
@@ -118,6 +124,9 @@
/** The Web UI path. */
private final static String WEBUI_PATH = "webui";
+ /** The Web Query path. */
+ private final static String WEBQUERY_PATH = "webquery";
+
/** The logging category to log to. */
protected static Logger log = Logger.getLogger(EmbeddedMulgaraServer.class.getName());
@@ -460,7 +469,7 @@
*/
public SessionFactory getSessionFactory() {
SessionFactory sessionFactory = null;
- if (serverManagement != null) sessionFactory = ((AbstractServer)serverManagement).getSessionFactory();
+ if (serverManagement != null) sessionFactory = ((AbstractServer)serverManagement).getSessionFactory();
return sessionFactory;
}
@@ -748,7 +757,7 @@
if (log.isDebugEnabled()) log.debug("Creating HTTP server instance");
// Set the magic logging property for Jetty to use Log4j
- System.setProperty("LOG_CLASSES", "org.mortbay.util.log4j.Log4jSink");
+ System.setProperty(MortbayLogger.LOGGING_CLASS_PROPERTY, MortbayLogger.class.getCanonicalName());
// create and register a new HTTP server
Server server;
@@ -762,8 +771,10 @@
}
// add the webapps
+// server.addHandler(new DefaultHandler());
addWebServicesWebAppContext(server);
addWebUIWebAppContext(server);
+ addWebQueryContext(server);
// add our class loader as the classloader of all contexts, unless this is a webapp in which case we wrap it
ClassLoader classLoader = this.getClass().getClassLoader();
@@ -911,6 +922,23 @@
/**
+ * Creates the Mulgara Semantic Store Query Tool (webui).
+ * @throws IOException if the driver WAR file i not readable
+ */
+ private void addWebQueryContext(Server server) throws IOException {
+ if (log.isDebugEnabled()) log.debug("Adding WebQuery servlet context");
+
+ // create the web query context
+ try {
+ Servlet servlet = (Servlet)Reflect.newInstance(Class.forName("org.mulgara.webquery.QueryServlet"), getHttpHostName(), getServerName(), (AbstractServer)serverManagement);
+ new org.mortbay.jetty.servlet.Context(server, "/" + WEBQUERY_PATH, SESSIONS).addServlet(new ServletHolder(servlet), "/*");
+ } catch (ClassNotFoundException e) {
+ throw new IllegalStateException("Not configured to use the requested Query servlet");
+ }
+ }
+
+
+ /**
* Extracts a resource from the environment (a jar in the classpath) and writes
* this to a file in the working temporary directory.
* @param resourceName The name of the resource. This is a relative file path in the jar file.
More information about the Mulgara-svn
mailing list