[Mulgara-svn] r1118 - in trunk: . conf lib src/jar/descriptor src/jar/server/java/org/mulgara/server src/jar/tag
pag at mulgara.org
pag at mulgara.org
Fri Aug 1 05:15:38 UTC 2008
Author: pag
Date: 2008-07-31 22:15:37 -0700 (Thu, 31 Jul 2008)
New Revision: 1118
Added:
trunk/lib/core-3.1.1.jar
trunk/lib/jetty-6.1.11.jar
trunk/lib/jetty-util-6.1.11.jar
trunk/lib/jsp-2.1.jar
trunk/lib/jsp-api-2.1.jar
trunk/lib/servlet-api-2.5-6.1.11.jar
Removed:
trunk/lib/javax.servlet-2.3.jar
trunk/lib/org.mortbay.jetty-4.2.19.jar
trunk/lib/org.mortbay.jetty.plus-4.2.19.jar
Modified:
trunk/.classpath
trunk/build.properties
trunk/build.xml
trunk/common.properties
trunk/common.xml
trunk/conf/mulgara-config.xml
trunk/conf/mulgara-embedded.dtd
trunk/conf/mulgara-embedded.xsd
trunk/conf/mulgara-rmi.policy
trunk/src/jar/descriptor/build.xml
trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java
trunk/src/jar/tag/build.xml
Log:
This is an integrated checkin, since each modification needs the others in
order to work.
EmbeddedMulgaraServer has been extensively reshaped. This is not its final
form, but hopefully it is easier to understand and refactor.
All static documents have been removed from the web server. This may result
in the tutorial in the webui needing to be updated since the documents to be
loaded may be elsewhere. The web server can also be disabled, either by
setting <Disabled>false</Disabled> in the Jetty section of the config file
or by defining "mulgara.http.disable" in the system properties.
The web server has also been updated from Jetty 4.2.19 to Jetty 6.1.11. This
resulted in changes to the Jetty configuration. For details see:
* conf/mulgara-embedded.dtd (not actually used anywhere)
* conf/mulgara-embedded.xsd (the definition)
* conf/mulgara-config.xml (The default configuration)
The library updates also required a few updates to the build scripts in
"descriptor" and "tag".
Also updated the main build scripts to NOT delete the SableCC and
ideSupport.jar files when building the "clean" target. If you want to remove
these, then use the new "mrclean" target.
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/.classpath 2008-08-01 05:15:37 UTC (rev 1118)
@@ -73,8 +73,6 @@
<classpathentry kind="lib" path="lib/Quick4util.jar"/>
<classpathentry kind="lib" path="lib/Quick4rt.jar"/>
<classpathentry kind="lib" path="lib/plankton-1.2.6.jar"/>
- <classpathentry kind="lib" path="lib/org.mortbay.jetty-4.2.19.jar"/>
- <classpathentry kind="lib" path="lib/org.mortbay.jetty.plus-4.2.19.jar"/>
<classpathentry kind="lib" path="lib/mail-1.3.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.15.jar"/>
<classpathentry kind="lib" path="lib/jxunit3.jar"/>
@@ -92,7 +90,6 @@
<classpathentry kind="lib" path="lib/jid3-0.34.jar"/>
<classpathentry kind="lib" path="lib/jboss-j2ee.jar"/>
<classpathentry kind="lib" path="lib/jaxrpc-1.4.jar"/>
- <classpathentry kind="lib" path="lib/javax.servlet-2.3.jar"/>
<classpathentry kind="lib" path="lib/javacc.jar"/>
<classpathentry kind="lib" path="lib/jasper-runtime-4.2.29.jar"/>
<classpathentry kind="lib" path="lib/jasper-compiler-4.2.29.jar"/>
@@ -138,5 +135,9 @@
<classpathentry kind="lib" path="lib/joda-time-1.5.2.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/sesame-model-2.1.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-6.1.11.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-util-6.1.11.jar"/>
+ <classpathentry kind="lib" path="lib/servlet-api-2.5-6.1.11.jar"/>
+ <classpathentry kind="lib" path="lib/jsp-api-2.1.jar"/>
<classpathentry kind="output" path="obj/jar"/>
</classpath>
Modified: trunk/build.properties
===================================================================
--- trunk/build.properties 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/build.properties 2008-08-01 05:15:37 UTC (rev 1118)
@@ -26,6 +26,7 @@
#javacc.home =/mnt/tools/lucene/javacc2.1/bin
javacc.zip.dir =${lib.dir}
javacc.zip =${javacc.zip.dir}/JavaCC.zip
+javacc.jar =javacc.jar
#j2ee.home =/mnt/tools/java/j2sdkee1.3.1
# Executable pathnames
@@ -122,8 +123,8 @@
jakarta-oro.jar =jakarta-oro-2.0.5.jar
jca.jar =connector-1_5.jar
jena.jar =jena-2.1.jar
-jetty.jar =org.mortbay.jetty-4.2.19.jar
-jetty.plus.jar =org.mortbay.jetty.plus-4.2.19.jar
+jetty.jar =jetty-6.1.11.jar
+jetty.plus.jar =jetty-util-6.1.11.jar
jid3.jar =jid3-0.34.jar
jmdns.jar =jmdns-0.2.jar
joda-time.jar =joda-time-1.5.2.jar
@@ -144,7 +145,7 @@
mail.jar =mail-1.3.jar
saaj.jar =saaj-1.4.jar
serializer.jar =serializer-2.7.0.jar
-servlet.jar =javax.servlet-2.3.jar
+servlet.jar =servlet-api-2.5-6.1.11.jar
simple-jndi.jar =simple-jndi-0.9.jar
sofa-doc.jar =sofa-doc.jar
sofa.jar =sofa-1.0-alpha.jar
@@ -158,3 +159,7 @@
mulgara-sparql.jar =mulgara-sparql-0.0.2.jar
velocity.jar =velocity-1.5.jar
+# The following are JSP libs to be removed when JSP is excised
+jsp-core.jar =core-3.1.1.jar
+jsp.jar =jsp-2.1.jar
+servlet-jsp.jar =jsp-api-2.1.jar
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/build.xml 2008-08-01 05:15:37 UTC (rev 1118)
@@ -512,7 +512,7 @@
lib/${resolver-jar.jar}, lib/${dtd.jar}, lib/${jrdf.base.jar}
lib/activation-1.0.2.jar, lib/icu4j.jar, lib/jena-2.1.jar, lib/antlr.jar,
lib/${joda-time.jar}, lib/${commons-logging.jar}, lib/beepcore-0.9.08.jar, lib/log4j-1.2.15.jar, lib/${lucene.jar}, lib/mail-1.3.jar,
- lib/${jetty.jar}, lib/${jetty.plus.jar}, lib/${jasper.compiler.jar}, lib/${servlet.jar}, lib/jargs-0.2.jar,
+ lib/${jetty.jar}, lib/${jetty.plus.jar}, lib/${jasper.compiler.jar}, lib/${servlet-jsp.jar}, lib/${servlet.jar}, lib/jargs-0.2.jar,
lib/${castor-xml.jar}, lib/${castor-codegen.jar}, lib/${castor-xml-schema.jar}, lib/trove-1.0.2.jar, lib/${jrdf.jar}, lib/${saaj.jar},
lib/${jakarta-oro.jar}, lib/jta-spec1_0_1.jar, lib/${jotm.jar}, lib/${jotm.jrmp.jar}, lib/${carol.jar}, lib/${howl.jar},
lib/${jca.jar}, lib/${httpclient.jar}, lib/${commons-codec.jar}, lib/${mulgara-sparql.jar}, lib/${sesame-model.jar}"/>
@@ -566,7 +566,7 @@
<zipfileset dir="${lib.dir}" prefix="lib" includes="
${log4j.jar}, ${icu4j.jar}, ${activation.jar}, ${beep.jar},
${jargs.jar}, ${jrdf.jar}, ${jetty.jar}, ${jetty.plus.jar},
- ${servlet.jar}, ${jasper.runtime.jar}, ${jasper.compiler.jar},
+ ${servlet-jsp.jar}, ${servlet.jar}, ${jasper.runtime.jar}, ${jasper.compiler.jar},
${lucene.jar}, ${mail.jar}, ${castor-xml.jar}, ${castor-xml-schema.jar}, ${castor-codegen.jar}, ${trove.jar},
${joda-time.jar}, ${commons-logging.jar}, ${commons-httpclient.jar},
${commons-codec.jar}, ${emory-util.jar}, ${mulgara-sparql.jar}
@@ -830,7 +830,8 @@
<classpath path="${lib.dir}/antlr.jar"/>
<classpath path="${lib.dir}/barracuda-1.2.6.jar"/>
<classpath path="${lib.dir}/beepcore-0.9.08.jar"/>
- <classpath path="${lib.dir}/javax.servlet-2.3.jar"/>
+ <classpath path="${lib.dir}/${servlet.jar}"/>
+ <classpath path="${lib.dir}/${servlet-jsp.jar}"/>
<classpath path="${lib.dir}/${jid3.jar}"/>
<classpath path="${lib.dir}/jsr173_07_api.jar"/>
<classpath path="${lib.dir}/${lucene.jar}"/>
@@ -1751,48 +1752,53 @@
mulgara.policy"/>
<!-- third party libraries -->
- <zipfileset src="${lib.dir}/${log4j.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${icu4j.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${activation.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${antlr.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${axis.jar}" excludes="META-INF/**, log4j.properties"/>
<zipfileset src="${lib.dir}/${beep.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jargs.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jrdf.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${sesame-model.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jetty.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jetty.plus.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${servlet.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jasper.runtime.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jasper.compiler.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${lucene.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${mail.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${mulgara-sparql.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${carol.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${castor-xml.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${castor-xml-schema.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${castor-codegen.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${trove.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${joda-time.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${commons-discovery.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${commons-logging.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${commons-httpclient.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${commons-codec.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${emory-util.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${howl.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${icu4j.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jakarta-oro.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jargs.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jasper.runtime.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jasper.compiler.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jaxrpc.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jca.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jena.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jetty.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jetty.plus.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${joda-time.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${jotm.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${jotm.jrmp.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${carol.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${howl.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jta.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jrdf.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${jsr.173.api.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${jsr.173.ri.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jca.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${jta.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${log4j.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${lucene.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${mail.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${mulgara-sparql.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${saaj.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${axis.jar}" excludes="META-INF/**, log4j.properties"/>
- <zipfileset src="${lib.dir}/${commons-discovery.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jaxrpc.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${serializer.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${servlet.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${sesame-model.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${trove.jar}" excludes="META-INF/**"/>
<zipfileset src="${lib.dir}/${wsdl4j.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jakarta-oro.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${jena.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${antlr.jar}" excludes="META-INF/**"/>
- <zipfileset src="${lib.dir}/${serializer.jar}" excludes="META-INF/**"/>
+ <!-- Libs needed for JSP. Remove these when JSP is eliminated. -->
+ <zipfileset src="${jsp-lib.dir}/${jsp-core.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${jsp-lib.dir}/${jsp.jar}" excludes="META-INF/**"/>
+ <zipfileset src="${lib.dir}/${servlet-jsp.jar}" excludes="META-INF/**"/>
+
<!-- core libraries -->
<zipfileset src="${bin.dir}/${query.jar}" excludes="META-INF/**"/>
<zipfileset src="${bin.dir}/${driver.jar}" excludes="META-INF/**"/>
Modified: trunk/common.properties
===================================================================
--- trunk/common.properties 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/common.properties 2008-08-01 05:15:37 UTC (rev 1118)
@@ -36,7 +36,10 @@
resolver.conf.dir = ${conf.dir}/resolvers
jar.obj.dir =${obj.dir}/jar
war.obj.dir =${obj.dir}/war
+# Libraries directory for JSPs until we remove them
+jsp-lib.dir =${basedir}/lib
+
# Javadoc URLs
java.javadoc = file:${java.home}/../docs/api
#java.javadoc = http://java.sun.com/j2se/1.4/docs/api
Modified: trunk/common.xml
===================================================================
--- trunk/common.xml 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/common.xml 2008-08-01 05:15:37 UTC (rev 1118)
@@ -85,11 +85,12 @@
<classpath>
- <pathelement location="${java.home}/../lib/tools.jar"/>
+ <pathelement location="${java.home}/lib/tools.jar"/>
<pathelement location="${lib.dir}/ant-1.7.0.jar"/>
<pathelement location="${lib.dir}/${jasper.runtime.jar}"/>
<pathelement location="${lib.dir}/${jasper.compiler.jar}"/>
<pathelement location="${lib.dir}/${servlet.jar}"/>
+ <pathelement location="${lib.dir}/${servlet-jsp.jar}"/>
<pathelement location="${lib.dir}/${jetty.jar}"/>
</classpath>
@@ -148,11 +149,11 @@
jena-*.jar, jrdf-*.jar, jxunit*.jar, castor*.jar,
mail-*.jar, activation-*.jar, apache-soap-*.jar,
axis-*.jar, saaj-*.jar, emory-*.jar, trove-*.jar,
- jargs-*.jar, org.mortbay.jetty*.jar, jta-spec*.jar,
+ jargs-*.jar, jetty-*.jar, jta-spec*.jar,
jotm*.jar, commons-logging-*.jar, Quick4rt.jar,
commons-discovery-*.jar, commons-httpclient-*.jar,
commons-codec-*.jar, connector-*.jar, jaxrpc-*.jar,
- carol*.jar, howl-logger*.jar,
+ carol*.jar, howl-logger*.jar, javax.servlet*.jar, servlet-api*.jar,
${joda-time.jar}, mulgara-sparql*.jar, sesame-model-*.jar"
excludes="jboss-j2ee.jar"/>
</path>
Modified: trunk/conf/mulgara-config.xml
===================================================================
--- trunk/conf/mulgara-config.xml 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/conf/mulgara-config.xml 2008-08-01 05:15:37 UTC (rev 1118)
@@ -27,15 +27,13 @@
-->
<Jetty>
<Disabled>false</Disabled>
- <Listener>
+ <Connector>
<!--<Host>localhost</Host>-->
<Port>8080</Port>
- <MinThreads>5</MinThreads>
- <MaxThreads>255</MaxThreads>
+ <Acceptors>5</Acceptors>
<MaxIdleTimeMs>60000</MaxIdleTimeMs>
- <MaxReadTimeMs>60000</MaxReadTimeMs>
- <LowResourcePersistTimeMs>5000</LowResourcePersistTimeMs>
- </Listener>
+ <LowResourceMaxIdleTimeMs>5000</LowResourceMaxIdleTimeMs>
+ </Connector>
</Jetty>
<!-- The name of the server, used for RMI binding -->
Modified: trunk/conf/mulgara-embedded.dtd
===================================================================
--- trunk/conf/mulgara-embedded.dtd 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/conf/mulgara-embedded.dtd 2008-08-01 05:15:37 UTC (rev 1118)
@@ -7,17 +7,15 @@
<!ELEMENT MulgaraHost (#PCDATA)>
- <!ELEMENT Jetty (Listener)>
+ <!ELEMENT Jetty (Connector)>
- <!ELEMENT Listener (Host?, Port, MinThreads, MaxThreads, MaxIdleTimeMs, MaxReadTimeMs, LowResourcePersistTimeMs)>
+ <!ELEMENT Connector (Host?, Port, Acceptors?, MaxIdleTimeMs?, LowResourceMaxIdleTimeMs?)>
<!ELEMENT Host (#PCDATA)>
<!ELEMENT Port (#PCDATA)>
- <!ELEMENT MinThreads (#PCDATA)>
- <!ELEMENT MaxThreads (#PCDATA)>
+ <!ELEMENT Acceptors (#PCDATA)>
<!ELEMENT MaxIdleTimeMs (#PCDATA)>
- <!ELEMENT MaxReadTimeMs (#PCDATA)>
- <!ELEMENT LowResourcePersistTimeMs (#PCDATA)>
+ <!ELEMENT LowResourceMaxIdleTimeMs (#PCDATA)>
<!ELEMENT ServerName (#PCDATA)>
Modified: trunk/conf/mulgara-embedded.xsd
===================================================================
--- trunk/conf/mulgara-embedded.xsd 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/conf/mulgara-embedded.xsd 2008-08-01 05:15:37 UTC (rev 1118)
@@ -13,28 +13,24 @@
<xs:complexType>
<xs:sequence>
<xs:element name="Disabled" type="xs:boolean" minOccurs="0"/>
- <xs:element ref="Listener" minOccurs="0"/>
+ <xs:element ref="Connector" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="Listener">
+ <xs:element name="Connector">
<xs:complexType>
<xs:sequence>
<xs:element ref="Host" minOccurs="0"/>
<xs:element ref="Port"/>
- <xs:element ref="MinThreads"/>
- <xs:element ref="MaxThreads"/>
- <xs:element ref="MaxIdleTimeMs"/>
- <xs:element ref="MaxReadTimeMs"/>
- <xs:element ref="LowResourcePersistTimeMs"/>
+ <xs:element ref="Acceptors" minOccurs="0"/>
+ <xs:element ref="MaxIdleTimeMs" minOccurs="0"/>
+ <xs:element ref="LowResourceMaxIdleTimeMs" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="LowResourcePersistTimeMs" type="xs:int"/>
+ <xs:element name="LowResourceMaxIdleTimeMs" type="xs:int"/>
<xs:element name="MaxIdleTimeMs" type="xs:int"/>
- <xs:element name="MaxReadTimeMs" type="xs:int"/>
- <xs:element name="MaxThreads" type="xs:int"/>
- <xs:element name="MinThreads" type="xs:int"/>
+ <xs:element name="Acceptors" type="xs:int"/>
<xs:element name="DefaultGraph" type="xs:string"/>
<xs:element name="PersistencePath" type="xs:string"/>
<xs:element name="Port" type="xs:int"/>
Modified: trunk/conf/mulgara-rmi.policy
===================================================================
--- trunk/conf/mulgara-rmi.policy 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/conf/mulgara-rmi.policy 2008-08-01 05:15:37 UTC (rev 1118)
@@ -12,6 +12,7 @@
permission java.lang.RuntimePermission "setContextClassLoader";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "shutdownHooks";
+ permission java.lang.RuntimePermission "setIO";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.net.SocketPermission "*:80", "connect,resolve";
Added: trunk/lib/core-3.1.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/core-3.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: trunk/lib/javax.servlet-2.3.jar
===================================================================
(Binary files differ)
Added: trunk/lib/jetty-6.1.11.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/jetty-6.1.11.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/lib/jetty-util-6.1.11.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/jetty-util-6.1.11.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/lib/jsp-2.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/jsp-2.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/lib/jsp-api-2.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/jsp-api-2.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: trunk/lib/org.mortbay.jetty-4.2.19.jar
===================================================================
(Binary files differ)
Deleted: trunk/lib/org.mortbay.jetty.plus-4.2.19.jar
===================================================================
(Binary files differ)
Added: trunk/lib/servlet-api-2.5-6.1.11.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/servlet-api-2.5-6.1.11.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/jar/descriptor/build.xml
===================================================================
--- trunk/src/jar/descriptor/build.xml 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/src/jar/descriptor/build.xml 2008-08-01 05:15:37 UTC (rev 1118)
@@ -41,6 +41,7 @@
<pathelement location="${lib.dir}/${jasper.runtime.jar}"/>
<pathelement location="${lib.dir}/${servlet.jar}"/>
+ <pathelement location="${lib.dir}/${servlet-jsp.jar}"/>
<pathelement location="${lib.dir}/${jetty.jar}"/>
<pathelement location="${dist.dir}/${driver.jar}"/>
@@ -113,8 +114,7 @@
<target name="descriptor-compile"
depends="descriptor-jsp-compile"
- description="Compiles all descriptor related files included generated
- source code">
+ description="Compiles all descriptor related files included generated source code">
<javac destdir="${descriptor.obj.dir}/classes" debug="on"
deprecation="on" source="1.5">
Modified: trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java
===================================================================
--- trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/src/jar/server/java/org/mulgara/server/EmbeddedMulgaraServer.java 2008-08-01 05:15:37 UTC (rev 1118)
@@ -46,19 +46,22 @@
// locally written packages
import org.mulgara.config.MulgaraConfig;
-import org.mulgara.config.Listener;
+import org.mulgara.config.Connector;
import org.mulgara.server.SessionFactory;
import org.mulgara.store.StoreException;
import org.mulgara.store.xa.SimpleXAResourceException;
import org.mulgara.util.TempDir;
+
import static org.mulgara.server.ServerMBean.ServerState;
// jetty packages
-import org.mortbay.http.HttpContext;
-import org.mortbay.http.SocketListener;
+import org.mortbay.jetty.AbstractConnector;
+import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
-import org.mortbay.jetty.servlet.WebApplicationContext;
-import org.mortbay.jetty.servlet.WebApplicationHandler;
+import org.mortbay.jetty.handler.ContextHandler;
+import org.mortbay.jetty.nio.BlockingChannelConnector;
+import org.mortbay.jetty.webapp.WebAppClassLoader;
+import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.util.MultiException;
/**
@@ -142,6 +145,9 @@
/** The system property to disable the RMI service. */
private static final String DISABLE_RMI = "no_rmi";
+ /** The maximum number of acceptors that Jetty can handle. It locks above this number. */
+ private static final int WEIRD_JETTY_THREAD_LIMIT = 24;
+
/** The Mulgara server instance. In this case, an RMIServer. */
private ServerMBean serverManagement = null;
@@ -212,7 +218,7 @@
}
} catch (MultiException me) {
- for (Exception e: (List<Exception>)me.getExceptions()) {
+ for (Throwable e: (List<Throwable>)me.getThrowables()) {
log.error("MultiException", e);
e.printStackTrace();
}
@@ -595,17 +601,17 @@
loadLoggingConfig(mulgaraConfig.getExternalConfigPaths().getMulgaraLogging());
}
- Listener httpListener = mulgaraConfig.getJetty().getListener();
+ Connector httpConnector = mulgaraConfig.getJetty().getConnector();
String httpHost = (String)parser.getOptionValue(EmbeddedMulgaraOptionParser.HTTP_HOST);
- httpHostName = (httpHost != null) ? httpHost : httpListener.getHost();
+ httpHostName = (httpHost != null || httpConnector == null) ? httpHost : httpConnector.getHost();
// set the port on which to accept HTTP requests
String httpPort = (String)parser.getOptionValue(EmbeddedMulgaraOptionParser.PORT);
if (httpPort != null) {
ServerInfo.setHttpPort(Integer.parseInt(httpPort));
} else {
- ServerInfo.setHttpPort(httpListener.getPort());
+ if (httpConnector != null) ServerInfo.setHttpPort(httpConnector.getPort());
}
// set the (RMI) name of the server, preferencing the command line
@@ -745,18 +751,26 @@
System.setProperty("LOG_CLASSES", "org.mortbay.util.log4j.Log4jSink");
// create and register a new HTTP server
- Server server = new Server();
+ Server server;
+ if (mulgaraConfig.getJetty().getConnector() == null) {
+ // create a default server
+ server = new Server(ServerInfo.getHttpPort());
+ } else {
+ // create a server with a configured connector
+ server = new Server();
+ addConnector(server);
+ }
- // add a listener to the server
- addListener(server);
-
// add the webapps
addWebServicesWebAppContext(server);
addWebUIWebAppContext(server);
- // add our class loader as the classloader of all contexts
+ // 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();
- for (HttpContext context: server.getContexts()) context.setParentClassLoader(classLoader);
+ for (Handler handler: server.getChildHandlers()) {
+ if (handler instanceof WebAppContext) ((WebAppContext)handler).setClassLoader(new WebAppClassLoader(classLoader, (WebAppContext)handler));
+ else if (handler instanceof ContextHandler) ((ContextHandler)handler).setClassLoader(classLoader);
+ }
// return the server
return server;
@@ -813,31 +827,38 @@
* @param httpServer the server to add the listener to
* @throws UnknownHostException if an invalid hostname was specified in the Mulgara server configuration
*/
- private void addListener(Server httpServer) throws UnknownHostException {
+ private void addConnector(Server httpServer) throws UnknownHostException {
if (httpServer == null) throw new IllegalArgumentException("Null \"httpServer\" parameter");
- log.debug("Adding socket listener");
+ if (log.isDebugEnabled()) log.debug("Adding socket listener");
// create and configure a listener
- SocketListener listener = new SocketListener();
+ AbstractConnector connector = new BlockingChannelConnector();
if ((httpHostName != null) && !httpHostName.equals("")) {
- listener.setHost(httpHostName);
- log.debug("Servlet container listening on host " + this.getHttpHostName());
+ connector.setHost(httpHostName);
+ if (log.isDebugEnabled()) log.debug("Servlet container listening on host " + this.getHttpHostName());
} else {
httpHostName = getResolvedLocalHost();
- log.debug("Servlet container listening on all host interfaces");
+ if (log.isDebugEnabled()) log.debug("Servlet container listening on all host interfaces");
}
// set the listener to the jetty configuration
- Listener jettyConfig = (Listener)mulgaraConfig.getJetty().getListener();
- listener.setPort(ServerInfo.getHttpPort());
- listener.setMinThreads(jettyConfig.getMinThreads());
- listener.setMaxThreads(jettyConfig.getMaxThreads());
- listener.setMaxIdleTimeMs(jettyConfig.getMaxIdleTimeMs());
- listener.setLowResourcePersistTimeMs(jettyConfig. getLowResourcePersistTimeMs());
+ Connector jettyConfig = (Connector)mulgaraConfig.getJetty().getConnector();
+ connector.setPort(ServerInfo.getHttpPort());
+ if (jettyConfig.hasMaxIdleTimeMs()) connector.setMaxIdleTime(jettyConfig.getMaxIdleTimeMs());
+ if (jettyConfig.hasLowResourceMaxIdleTimeMs()) connector.setLowResourceMaxIdleTime(jettyConfig.getLowResourceMaxIdleTimeMs());
+ if (jettyConfig.hasAcceptors()) {
+ int acceptors = jettyConfig.getAcceptors();
+ if (acceptors > WEIRD_JETTY_THREAD_LIMIT) {
+ log.warn("Acceptor threads set beyond HTTP Server limits. Reducing from" + acceptors + " to " + WEIRD_JETTY_THREAD_LIMIT);
+ acceptors = WEIRD_JETTY_THREAD_LIMIT;
+ }
+ connector.setAcceptors(acceptors);
+ }
+
// add the listener to the http server
- httpServer.addListener(listener);
+ httpServer.addConnector(connector);
}
@@ -847,9 +868,6 @@
* @throws IOException if the driver WAR file is not readable
*/
private void addWebServicesWebAppContext(Server server) throws IOException {
- // Create a servlet handler for web services
- WebApplicationHandler descriptorServletHandler = new WebApplicationHandler();
-
// get the URL to the WAR file
URL webServicesWebAppURL = ClassLoader.getSystemResource(WEBAPP_PATH + "/" + WEBSERVICES_WEBAPP);
@@ -858,17 +876,15 @@
return;
}
+ String warPath = extractToTemp(WEBAPP_PATH + "/" + WEBSERVICES_WEBAPP);
+
// Add Descriptors and Axis
- WebApplicationContext descriptorWARContext = server.addWebApplication(
- null, "/" + WEBSERVICES_PATH + "/*", webServicesWebAppURL.toString());
+ WebAppContext descriptorWARContext = new WebAppContext(server, warPath, "/" + WEBSERVICES_PATH);
// make some attributes available
descriptorWARContext.setAttribute(BOUND_HOST_NAME_KEY, ServerInfo.getBoundHostname());
descriptorWARContext.setAttribute(SERVER_MODEL_URI_KEY, ServerInfo.getServerURI().toString());
- // add the handler for the servlets
- descriptorWARContext.addHandler(descriptorServletHandler);
-
// log that we're adding the test webapp context
if (log.isDebugEnabled()) log.debug("Added Web Services webapp context");
}
@@ -882,14 +898,12 @@
if (log.isDebugEnabled()) log.debug("Adding WebUI webapp context");
// get the URL to the WebUI WAR file
- URL webUIWebAppURL = ClassLoader.getSystemResource(WEBAPP_PATH + "/" + WEBUI_WEBAPP);
+ String warPath = extractToTemp(WEBAPP_PATH + "/" + WEBUI_WEBAPP);
// load the webapp if the WAR file exists
- if (webUIWebAppURL != null) {
+ if (warPath != null) {
// create the test webapp handler context
- WebApplicationContext webUIWARContext =
- server.addWebApplication(null, "/" + WEBUI_PATH + "/*", webUIWebAppURL.toString());
- webUIWARContext.setParentClassLoader(this.getClass().getClassLoader());
+ new WebAppContext(server, warPath, "/" + WEBUI_PATH);
} else {
log.warn("Could not find WebUI webapp WAR file -> not adding to servlet container");
}
@@ -897,6 +911,37 @@
/**
+ * 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.
+ * @return The absolute path of the file the resource is extracted to, or <code>null</code>
+ * if the resource does not exist.
+ * @throws IOException If there was an error reading the resource, or writing to the extracted file.
+ */
+ private String extractToTemp(String resourceName) throws IOException {
+ // Find the resource
+ URL resourceUrl = ClassLoader.getSystemResource(resourceName);
+ if (resourceUrl == null) return null;
+
+ // open the resource and the file where it will be copied to
+ InputStream in = resourceUrl.openStream();
+ File outFile = new File(TempDir.getTempDir(), new File(resourceName).getName());
+ log.info("Extracting: " + resourceUrl + " to " + outFile);
+ OutputStream out = new FileOutputStream(outFile);
+
+ // loop to copy from the resource to the output file
+ byte[] buffer = new byte[10240];
+ int len;
+ while ((len = in.read(buffer)) >= 0) out.write(buffer, 0, len);
+ in.close();
+ out.close();
+
+ // return the file that the resource was extracted to
+ return outFile.getAbsolutePath();
+ }
+
+
+ /**
* Prints the usage instructions for starting the server.
*/
public static void printUsage() {
Modified: trunk/src/jar/tag/build.xml
===================================================================
--- trunk/src/jar/tag/build.xml 2008-07-29 00:18:09 UTC (rev 1117)
+++ trunk/src/jar/tag/build.xml 2008-08-01 05:15:37 UTC (rev 1118)
@@ -23,7 +23,7 @@
<pathelement path="${query.dist.dir}/${query.jar}"/>
- <fileset file="${lib.dir}/javax.servlet-2.3.jar"/>
+ <fileset file="${lib.dir}/${servlet-jsp.jar}"/>
</path>
<path id="tag-test-classpath">
More information about the Mulgara-svn
mailing list