Merge branch 'jetty-9.1' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project into jetty-9.1
This commit is contained in:
commit
5fce6408d0
|
@ -2,13 +2,16 @@
|
|||
# Jetty Annotation Scanning Module
|
||||
#
|
||||
|
||||
[depend]
|
||||
# Annotations needs plus, and jndi features
|
||||
DEPEND=plus
|
||||
plus
|
||||
|
||||
[lib]
|
||||
# Annotations needs jetty annotation jars
|
||||
LIB=lib/jetty-annotations-${jetty.version}.jar
|
||||
lib/jetty-annotations-${jetty.version}.jar
|
||||
# Need annotation processing jars too
|
||||
LIB=lib/annotations/*.jar
|
||||
lib/annotations/*.jar
|
||||
|
||||
[xml]
|
||||
# Enable annotation scanning webapp configurations
|
||||
etc/jetty-annotations.xml
|
||||
|
|
|
@ -2,5 +2,6 @@
|
|||
# Client Feature
|
||||
#
|
||||
|
||||
[lib]
|
||||
# Client jars
|
||||
LIB=lib/jetty-client-${jetty.version}.jar
|
||||
lib/jetty-client-${jetty.version}.jar
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
# Deploy Feature
|
||||
#
|
||||
|
||||
DEPEND=webapp
|
||||
[depend]
|
||||
webapp
|
||||
|
||||
[lib]
|
||||
# Deploy jars
|
||||
LIB=lib/jetty-deploy-${jetty.version}.jar
|
||||
lib/jetty-deploy-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Deploy configuration
|
||||
etc/jetty-deploy.xml
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<url>http://www.eclipse.org/jetty</url>
|
||||
<packaging>pom</packaging>
|
||||
<properties>
|
||||
<assembly-directory>target/distribution</assembly-directory>
|
||||
<assembly-directory>${basedir}/target/distribution</assembly-directory>
|
||||
<jetty-setuid-version>1.0.1</jetty-setuid-version>
|
||||
</properties>
|
||||
<build>
|
||||
|
@ -101,7 +101,7 @@
|
|||
<type>war</type>
|
||||
<overWrite>true</overWrite>
|
||||
<includes>**</includes>
|
||||
<outputDirectory>${assembly-directory}/demo/webapps</outputDirectory>
|
||||
<outputDirectory>${assembly-directory}/demo-base/webapps</outputDirectory>
|
||||
<destFileName>test.war</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
|
@ -111,7 +111,7 @@
|
|||
<type>war</type>
|
||||
<overWrite>true</overWrite>
|
||||
<includes>**</includes>
|
||||
<outputDirectory>${assembly-directory}/demo/webapps</outputDirectory>
|
||||
<outputDirectory>${assembly-directory}/demo-base/webapps</outputDirectory>
|
||||
<destFileName>test-jaas.war</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
|
@ -121,7 +121,7 @@
|
|||
<type>war</type>
|
||||
<overWrite>true</overWrite>
|
||||
<includes>**</includes>
|
||||
<outputDirectory>${assembly-directory}/demo/webapps</outputDirectory>
|
||||
<outputDirectory>${assembly-directory}/demo-base/webapps</outputDirectory>
|
||||
<destFileName>test-jndi.war</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
|
@ -131,7 +131,7 @@
|
|||
<type>war</type>
|
||||
<overWrite>true</overWrite>
|
||||
<includes>**</includes>
|
||||
<outputDirectory>${assembly-directory}/demo/webapps</outputDirectory>
|
||||
<outputDirectory>${assembly-directory}/demo-base/webapps</outputDirectory>
|
||||
<destFileName>test-spec.war</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
|
@ -141,7 +141,7 @@
|
|||
<type>war</type>
|
||||
<overWrite>true</overWrite>
|
||||
<includes>**</includes>
|
||||
<outputDirectory>${assembly-directory}/demo/webapps</outputDirectory>
|
||||
<outputDirectory>${assembly-directory}/demo-base/webapps</outputDirectory>
|
||||
<destFileName>xref-proxy.war</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
|
@ -151,7 +151,7 @@
|
|||
<type>war</type>
|
||||
<overWrite>true</overWrite>
|
||||
<includes>**</includes>
|
||||
<outputDirectory>${assembly-directory}/demo/webapps</outputDirectory>
|
||||
<outputDirectory>${assembly-directory}/demo-base/webapps</outputDirectory>
|
||||
<destFileName>async-rest.war</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
|
@ -466,20 +466,19 @@
|
|||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<phase>process-classes</phase>
|
||||
<goals>
|
||||
<goal>exec</goal>
|
||||
<goal>java</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<executable>java</executable>
|
||||
<workingDirectory>${assembly-directory}</workingDirectory>
|
||||
<mainClass>org.eclipse.jetty.start.Main</mainClass>
|
||||
<arguments>
|
||||
<argument>-jar</argument>
|
||||
<argument>start.jar</argument>
|
||||
<argument>--module-start-ini=server,ext,resources,jsp,annotations</argument>
|
||||
<argument>--module-ini=http,demo</argument>
|
||||
<argument>--debug</argument>
|
||||
<argument>jetty.home=${assembly-directory}</argument>
|
||||
<argument>jetty.base=${assembly-directory}</argument>
|
||||
<argument>--module-start-ini=server,deploy,http,websocket,jsp,ext,resources</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
@ -1,9 +1,14 @@
|
|||
DEPEND=server
|
||||
LIB=jetty-setuid-java-1.0.1.jar
|
||||
[depend]
|
||||
server
|
||||
|
||||
[lib]
|
||||
jetty-setuid-java-1.0.1.jar
|
||||
|
||||
[xml]
|
||||
etc/jetty-setuid.xml
|
||||
|
||||
INI=# jetty.startServerAsPrivileged=false
|
||||
INI=# jetty.username=jetty
|
||||
INI=# jetty.groupname=jetty
|
||||
INI=# jetty.umask=002
|
||||
[ini]
|
||||
# jetty.startServerAsPrivileged=false
|
||||
# jetty.username=jetty
|
||||
# jetty.groupname=jetty
|
||||
# jetty.umask=002
|
||||
|
|
|
@ -362,25 +362,11 @@ public abstract class SelectorManager extends AbstractLifeCycle implements Dumpa
|
|||
*/
|
||||
public void submit(Runnable change)
|
||||
{
|
||||
if (isSelectorThread())
|
||||
{
|
||||
if (_state.get() == State.PROCESS)
|
||||
{
|
||||
// We are processing, so lets handle existing changes
|
||||
runChanges();
|
||||
// and then directly run the passed change without queueing it
|
||||
runChange(change);
|
||||
}
|
||||
else
|
||||
{
|
||||
// We must be iterating in CHANGES or MORE_CHANGES
|
||||
// state, so just append to the queue to preserve order.
|
||||
_changes.offer(change);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Otherwise we have to queue the change and possibly wakeup the selector
|
||||
// This method may be called from the selector thread, and therefore
|
||||
// we could directly run the change without queueing, but this may
|
||||
// lead to stack overflows on a busy server, so we always offer the
|
||||
// change to the queue and process the state.
|
||||
|
||||
_changes.offer(change);
|
||||
LOG.debug("Queued change {}", change);
|
||||
|
||||
|
@ -414,7 +400,6 @@ public abstract class SelectorManager extends AbstractLifeCycle implements Dumpa
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void runChanges()
|
||||
{
|
||||
|
|
|
@ -2,12 +2,16 @@
|
|||
# JAAS Feature
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[lib]
|
||||
# JAAS jars
|
||||
LIB=lib/jetty-jaas-${jetty.version}.jar
|
||||
lib/jetty-jaas-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# JAAS configuration
|
||||
etc/jetty-jaas.xml
|
||||
|
||||
INI=jaas.login.conf=etc/login.conf
|
||||
[ini]
|
||||
jaas.login.conf=etc/login.conf
|
|
@ -2,12 +2,15 @@
|
|||
# JMX Feature
|
||||
#
|
||||
|
||||
[lib]
|
||||
# JMX jars (as defined in start.config)
|
||||
LIB=lib/jetty-jmx-${jetty.version}.jar
|
||||
lib/jetty-jmx-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# JMX configuration
|
||||
etc/jetty-jmx.xml
|
||||
|
||||
INI=# jetty.jmxrmihost=localhost
|
||||
INI=# jetty.jmxrmiport=1099
|
||||
INI=# -Dcom.sun.management.jmxremote
|
||||
[ini]
|
||||
# jetty.jmxrmihost=localhost
|
||||
# jetty.jmxrmiport=1099
|
||||
# -Dcom.sun.management.jmxremote
|
|
@ -2,8 +2,10 @@
|
|||
# JNDI Support
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-jndi-${jetty.version}.jar
|
||||
LIB=lib/jndi/*.jar
|
||||
[lib]
|
||||
lib/jetty-jndi-${jetty.version}.jar
|
||||
lib/jndi/*.jar
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
# Jetty Servlet Module
|
||||
#
|
||||
|
||||
DEPEND=servlet
|
||||
[depend]
|
||||
servlet
|
||||
|
||||
LIB=lib/jsp/*.jar
|
||||
[lib]
|
||||
lib/jsp/*.jar
|
||||
|
||||
|
|
|
@ -2,9 +2,12 @@
|
|||
# Jetty Monitor module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
DEPEND=client
|
||||
[depend]
|
||||
server
|
||||
client
|
||||
|
||||
LIB=lib/jetty-monitor-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-monitor-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
etc/jetty-monitor.xml
|
|
@ -2,6 +2,8 @@
|
|||
# Jetty Nosql module
|
||||
#
|
||||
|
||||
DEPEND=webapp
|
||||
[depend]
|
||||
webapp
|
||||
|
||||
LIB=lib/jetty-nosql-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-nosql-${jetty.version}.jar
|
|
@ -2,9 +2,12 @@
|
|||
# Jetty Overlay module
|
||||
#
|
||||
|
||||
DEPEND=deploy
|
||||
[depend]
|
||||
deploy
|
||||
|
||||
LIB=lib/jetty-overlay-deployer-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-overlay-deployer-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Plus requires configuration
|
||||
etc/jetty-overlay.xml
|
||||
|
|
|
@ -2,11 +2,14 @@
|
|||
# Jetty Proxy module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
DEPEND=security
|
||||
DEPEND=jndi
|
||||
[depend]
|
||||
server
|
||||
security
|
||||
jndi
|
||||
|
||||
LIB=lib/jetty-plus-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-plus-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Plus requires configuration
|
||||
etc/jetty-plus.xml
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
# Jetty Proxy module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
DEPEND=client
|
||||
[depend]
|
||||
server
|
||||
client
|
||||
|
||||
LIB=lib/jetty-proxy-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-proxy-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Proxy requires configuration
|
||||
etc/jetty-proxy.xml
|
||||
|
|
|
@ -2,9 +2,12 @@
|
|||
# Jetty Rewrite module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-rewrite-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-rewrite-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Annotations needs annotations configuration
|
||||
etc/jetty-rewrite.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Jetty Security Module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-security-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-security-${jetty.version}.jar
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Debug module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-debug.xml
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
LIB=lib/ext/*
|
||||
[lib]
|
||||
lib/ext/*
|
|
@ -2,9 +2,12 @@
|
|||
# Jetty HTTP Connector
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-http.xml
|
||||
|
||||
INI=jetty.port=8080
|
||||
INI=http.timeout=30000
|
||||
[ini]
|
||||
jetty.port=8080
|
||||
http.timeout=30000
|
|
@ -2,9 +2,12 @@
|
|||
# Jetty HTTPS Connector
|
||||
#
|
||||
|
||||
DEPEND=ssl
|
||||
[depend]
|
||||
ssl
|
||||
|
||||
[xml]
|
||||
etc/jetty-https.xml
|
||||
|
||||
INI=https.port=8443
|
||||
INI=https.timeout=30000
|
||||
[ini]
|
||||
https.port=8443
|
||||
https.timeout=30000
|
|
@ -2,6 +2,8 @@
|
|||
# IPAccess module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-ipaccess.xml
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
|
||||
INI=#===========================================================
|
||||
INI=# Configure JVM arguments.
|
||||
INI=# If JVM args are include in an ini file then --exec is needed
|
||||
INI=# to start a new JVM from start.jar with the extra args.
|
||||
INI=# If you wish to avoid an extra JVM running, place JVM args
|
||||
INI=# on the normal command line and do not use --exec
|
||||
INI=#-----------------------------------------------------------
|
||||
INI=# --exec
|
||||
INI=# -Xmx2000m
|
||||
INI=# -Xmn512m
|
||||
INI=# -XX:+UseConcMarkSweepGC
|
||||
INI=# -XX:ParallelCMSThreads=2
|
||||
INI=# -XX:+CMSClassUnloadingEnabled
|
||||
INI=# -XX:+UseCMSCompactAtFullCollection
|
||||
INI=# -XX:CMSInitiatingOccupancyFraction=80
|
||||
INI=# -verbose:gc
|
||||
INI=# -XX:+PrintGCDateStamps
|
||||
INI=# -XX:+PrintGCTimeStamps
|
||||
INI=# -XX:+PrintGCDetails
|
||||
INI=# -XX:+PrintTenuringDistribution
|
||||
INI=# -XX:+PrintCommandLineFlags
|
||||
INI=# -XX:+DisableExplicitGC
|
||||
INI=# -Dorg.apache.jasper.compiler.disablejsr199=true
|
||||
[ini]
|
||||
#===========================================================
|
||||
# Configure JVM arguments.
|
||||
# If JVM args are include in an ini file then --exec is needed
|
||||
# to start a new JVM from start.jar with the extra args.
|
||||
# If you wish to avoid an extra JVM running, place JVM args
|
||||
# on the normal command line and do not use --exec
|
||||
#-----------------------------------------------------------
|
||||
# --exec
|
||||
# -Xmx2000m
|
||||
# -Xmn512m
|
||||
# -XX:+UseConcMarkSweepGC
|
||||
# -XX:ParallelCMSThreads=2
|
||||
# -XX:+CMSClassUnloadingEnabled
|
||||
# -XX:+UseCMSCompactAtFullCollection
|
||||
# -XX:CMSInitiatingOccupancyFraction=80
|
||||
# -verbose:gc
|
||||
# -XX:+PrintGCDateStamps
|
||||
# -XX:+PrintGCTimeStamps
|
||||
# -XX:+PrintGCDetails
|
||||
# -XX:+PrintTenuringDistribution
|
||||
# -XX:+PrintCommandLineFlags
|
||||
# -XX:+DisableExplicitGC
|
||||
# -Dorg.apache.jasper.compiler.disablejsr199=true
|
|
@ -2,13 +2,16 @@
|
|||
# Low Resources module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-lowresources.xml
|
||||
|
||||
INI=# lowresources.period=1050
|
||||
INI=# lowresources.lowResourcesIdleTimeout=200
|
||||
INI=# lowresources.monitorThreads=true
|
||||
INI=# lowresources.maxConnections=0
|
||||
INI=# lowresources.maxMemory=0
|
||||
INI=# lowresources.maxLowResourcesTime=5000
|
||||
[ini]
|
||||
# lowresources.period=1050
|
||||
# lowresources.lowResourcesIdleTimeout=200
|
||||
# lowresources.monitorThreads=true
|
||||
# lowresources.maxConnections=0
|
||||
# lowresources.maxMemory=0
|
||||
# lowresources.maxLowResourcesTime=5000
|
|
@ -2,10 +2,13 @@
|
|||
# Request Log module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-requestlog.xml
|
||||
|
||||
INI=# requestlog.retain=90
|
||||
INI=# requestlog.append=true
|
||||
INI=# requestlog.extended=true
|
||||
[ini]
|
||||
# requestlog.retain=90
|
||||
# requestlog.append=true
|
||||
# requestlog.extended=true
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
LIB=resources
|
||||
[lib]
|
||||
resources
|
|
@ -2,29 +2,32 @@
|
|||
# Base server
|
||||
#
|
||||
|
||||
OPTIONAL=jvm
|
||||
OPTIONAL=jmx
|
||||
OPTIONAL=ext
|
||||
OPTIONAL=resources
|
||||
|
||||
LIB=lib/servlet-api-3.1.jar
|
||||
LIB=lib/jetty-schemas-3.1.jar
|
||||
LIB=lib/jetty-http-${jetty.version}.jar
|
||||
LIB=lib/jetty-continuation-${jetty.version}.jar
|
||||
LIB=lib/jetty-server-${jetty.version}.jar
|
||||
LIB=lib/jetty-xml-${jetty.version}.jar
|
||||
LIB=lib/jetty-util-${jetty.version}.jar
|
||||
LIB=lib/jetty-io-${jetty.version}.jar
|
||||
[optional]
|
||||
jvm
|
||||
jmx
|
||||
ext
|
||||
resources
|
||||
|
||||
[lib]
|
||||
lib/servlet-api-3.1.jar
|
||||
lib/jetty-schemas-3.1.jar
|
||||
lib/jetty-http-${jetty.version}.jar
|
||||
lib/jetty-continuation-${jetty.version}.jar
|
||||
lib/jetty-server-${jetty.version}.jar
|
||||
lib/jetty-xml-${jetty.version}.jar
|
||||
lib/jetty-util-${jetty.version}.jar
|
||||
lib/jetty-io-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Annotations needs annotations configuration
|
||||
etc/jetty.xml
|
||||
|
||||
INI=threads.min=10
|
||||
INI=threads.max=200
|
||||
INI=threads.timeout=60000
|
||||
INI=#jetty.host=myhost.com
|
||||
INI=jetty.dump.start=false
|
||||
INI=jetty.dump.stop=false
|
||||
[ini]
|
||||
threads.min=10
|
||||
threads.max=200
|
||||
threads.timeout=60000
|
||||
#jetty.host=myhost.com
|
||||
jetty.dump.start=false
|
||||
jetty.dump.stop=false
|
||||
|
||||
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
|
||||
# SSL Keystore module
|
||||
|
||||
DEPEND=server
|
||||
etc/jetty-ssl.xml
|
||||
DOWNLOAD=http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/jetty-server/src/main/config/etc/keystore:etc/keystore
|
||||
[depend]
|
||||
server
|
||||
|
||||
INI=jetty.keystore=etc/keystore
|
||||
INI=jetty.keystore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
|
||||
INI=jetty.keymanager.password=OBF:1u2u1wml1z7s1z7a1wnl1u2g
|
||||
INI=jetty.truststore=etc/keystore
|
||||
INI=jetty.truststore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
|
||||
INI=jetty.secure.port=8443
|
||||
[xml]
|
||||
etc/jetty-ssl.xml
|
||||
|
||||
[download]
|
||||
http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/jetty-server/src/main/config/etc/keystore:etc/keystore
|
||||
|
||||
[ini]
|
||||
jetty.keystore=etc/keystore
|
||||
jetty.keystore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
|
||||
jetty.keymanager.password=OBF:1u2u1wml1z7s1z7a1wnl1u2g
|
||||
jetty.truststore=etc/keystore
|
||||
jetty.truststore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
|
||||
jetty.secure.port=8443
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Stats module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-stats.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Stats module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-xinetd.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Jetty Servlet Module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-servlet-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-servlet-${jetty.version}.jar
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Jetty Servlets Module
|
||||
#
|
||||
|
||||
DEPEND=servlet
|
||||
[depend]
|
||||
servlet
|
||||
|
||||
LIB=lib/jetty-servlets-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-servlets-${jetty.version}.jar
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
|
||||
DOWNLOAD=http://repo1.maven.org/maven2/org/mortbay/jetty/npn/npn-boot/1.1.5.v20130313/npn-boot-1.1.5.v20130313.jar:lib/npn/npn-boot-1.1.5.v20130313.jar
|
||||
[download]
|
||||
http://repo1.maven.org/maven2/org/mortbay/jetty/npn/npn-boot/1.1.5.v20130313/npn-boot-1.1.5.v20130313.jar:lib/npn/npn-boot-1.1.5.v20130313.jar
|
||||
|
||||
INI=-Xbootclasspath/p:lib/npn/npn-boot-1.1.5.v20130313.jar
|
||||
INI=--exec
|
||||
[ini]
|
||||
-Xbootclasspath/p:lib/npn/npn-boot-1.1.5.v20130313.jar
|
||||
--exec
|
|
@ -1,12 +1,15 @@
|
|||
[depend]
|
||||
ssl
|
||||
npn
|
||||
|
||||
DEPEND=ssl
|
||||
DEPEND=npn
|
||||
|
||||
LIB=lib/spdy/*.jar
|
||||
[lib]
|
||||
lib/spdy/*.jar
|
||||
|
||||
[xml]
|
||||
etc/jetty-ssl.xml
|
||||
etc/jetty-spdy.xml
|
||||
|
||||
INI=spdy.port=8443
|
||||
INI=spdy.timeout=30000
|
||||
INI=#spdy.initialWindowSize=65536
|
||||
[ini]
|
||||
spdy.port=8443
|
||||
spdy.timeout=30000
|
||||
#spdy.initialWindowSize=65536
|
|
@ -51,19 +51,21 @@ public class BaseHome
|
|||
try
|
||||
{
|
||||
this.baseDir = new File(System.getProperty("jetty.base",System.getProperty("user.dir",".")));
|
||||
URL jarfile=this.getClass().getClassLoader().getResource("org/eclipse/jetty/start/BaseHome.class");
|
||||
if (jarfile!=null)
|
||||
URL jarfile = this.getClass().getClassLoader().getResource("org/eclipse/jetty/start/BaseHome.class");
|
||||
if (jarfile != null)
|
||||
{
|
||||
Matcher m =Pattern.compile("jar:(file:.*)!/org/eclipse/jetty/start/BaseHome.class").matcher(jarfile.toString());
|
||||
Matcher m = Pattern.compile("jar:(file:.*)!/org/eclipse/jetty/start/BaseHome.class").matcher(jarfile.toString());
|
||||
if (m.matches())
|
||||
homeDir=new File(new URI(m.group(1))).getParentFile();
|
||||
{
|
||||
homeDir = new File(new URI(m.group(1))).getParentFile();
|
||||
}
|
||||
homeDir = new File(System.getProperty("jetty.home",(homeDir==null?baseDir:homeDir).getAbsolutePath()));
|
||||
}
|
||||
homeDir = new File(System.getProperty("jetty.home",(homeDir == null?baseDir:homeDir).getAbsolutePath()));
|
||||
|
||||
baseDir=baseDir.getAbsoluteFile().getCanonicalFile();
|
||||
homeDir=homeDir.getAbsoluteFile().getCanonicalFile();
|
||||
baseDir = baseDir.getAbsoluteFile().getCanonicalFile();
|
||||
homeDir = homeDir.getAbsoluteFile().getCanonicalFile();
|
||||
}
|
||||
catch(IOException | URISyntaxException e)
|
||||
catch (IOException | URISyntaxException e)
|
||||
{
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
@ -71,8 +73,15 @@ public class BaseHome
|
|||
|
||||
public BaseHome(File homeDir, File baseDir)
|
||||
{
|
||||
this.homeDir = homeDir;
|
||||
this.baseDir = baseDir == null?homeDir:baseDir;
|
||||
try
|
||||
{
|
||||
this.homeDir = homeDir.getCanonicalFile();
|
||||
this.baseDir = baseDir == null?this.homeDir:baseDir.getCanonicalFile();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public String getBase()
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
//
|
||||
// ========================================================================
|
||||
// Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
|
||||
// ------------------------------------------------------------------------
|
||||
// All rights reserved. This program and the accompanying materials
|
||||
// are made available under the terms of the Eclipse Public License v1.0
|
||||
// and Apache License v2.0 which accompanies this distribution.
|
||||
//
|
||||
// The Eclipse Public License is available at
|
||||
// http://www.eclipse.org/legal/epl-v10.html
|
||||
//
|
||||
// The Apache License v2.0 is available at
|
||||
// http://www.opensource.org/licenses/apache2.0.php
|
||||
//
|
||||
// You may elect to redistribute this code under either of these licenses.
|
||||
// ========================================================================
|
||||
//
|
||||
|
||||
package org.eclipse.jetty.start;
|
||||
|
||||
public class DownloadArg
|
||||
{
|
||||
public String uri;
|
||||
public String location;
|
||||
|
||||
public DownloadArg(String uriLocation)
|
||||
{
|
||||
String parts[] = uriLocation.split(":",3);
|
||||
if (parts.length != 3)
|
||||
{
|
||||
throw new IllegalArgumentException("Not <http uri>:<location>");
|
||||
}
|
||||
if (!"http".equalsIgnoreCase(parts[0]))
|
||||
{
|
||||
throw new IllegalArgumentException("Download only supports http protocol");
|
||||
}
|
||||
if (!parts[1].startsWith("//"))
|
||||
{
|
||||
throw new IllegalArgumentException("Download URI invalid: " + uriLocation);
|
||||
}
|
||||
this.uri = String.format("%s:%s",parts[0],parts[1]);
|
||||
this.location = parts[2];
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (this == obj)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
DownloadArg other = (DownloadArg)obj;
|
||||
if (uri == null)
|
||||
{
|
||||
if (other.uri != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!uri.equals(other.uri))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (location == null)
|
||||
{
|
||||
if (other.location != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!location.equals(other.location))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = (prime * result) + ((uri == null)?0:uri.hashCode());
|
||||
result = (prime * result) + ((location == null)?0:location.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("DownloadArg [uri=");
|
||||
builder.append(uri);
|
||||
builder.append(", location=");
|
||||
builder.append(location);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
|
@ -29,7 +29,6 @@ import java.io.InputStream;
|
|||
import java.io.InputStreamReader;
|
||||
import java.io.LineNumberReader;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
@ -38,18 +37,14 @@ import java.net.InetAddress;
|
|||
import java.net.Socket;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.eclipse.jetty.start.StartArgs.DownloadArg;
|
||||
|
||||
/**
|
||||
* Main start class.
|
||||
* <p>
|
||||
|
@ -233,7 +228,7 @@ public class Main
|
|||
|
||||
System.out.println("Version Information on " + classpath.count() + " entr" + ((classpath.count() > 1)?"ies":"y") + " in the classpath.");
|
||||
System.out.println("Note: order presented here is how they would appear on the classpath.");
|
||||
System.out.println(" changes to the MODULES=[name,name,...] command line option will be reflected here.");
|
||||
System.out.println(" changes to the --module=name command line options will be reflected here.");
|
||||
|
||||
int i = 0;
|
||||
for (File element : classpath.getElements())
|
||||
|
@ -335,6 +330,166 @@ public class Main
|
|||
modules.dumpEnabledTree();
|
||||
}
|
||||
|
||||
private void moduleIni(StartArgs args, String name, boolean topLevel, boolean appendStartIni) throws IOException
|
||||
{
|
||||
// Find the start.d relative to the base directory only.
|
||||
File start_d = baseHome.getBaseFile("start.d");
|
||||
|
||||
// Is this a module?
|
||||
Modules modules = args.getAllModules();
|
||||
Module module = modules.get(name);
|
||||
if (module == null)
|
||||
{
|
||||
StartLog.warn("ERROR: No known module for %s",name);
|
||||
return;
|
||||
}
|
||||
|
||||
// Find any named ini file and check it follows the convention
|
||||
File start_ini = baseHome.getBaseFile("start.ini");
|
||||
String short_start_ini = baseHome.toShortForm(start_ini);
|
||||
File ini = new File(start_d,name + ".ini");
|
||||
String short_ini = baseHome.toShortForm(ini);
|
||||
StartIni module_ini = null;
|
||||
if (ini.exists())
|
||||
{
|
||||
module_ini = new StartIni(ini);
|
||||
if (module_ini.getLineMatches(Pattern.compile("--module=(.*, *)*" + name)).size() == 0)
|
||||
{
|
||||
StartLog.warn("ERROR: %s is not enabled in %s!",name,short_ini);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
boolean transitive = module.isEnabled() && (module.getSources().size() == 0);
|
||||
boolean has_ini_lines = module.getInitialise().size() > 0;
|
||||
|
||||
// If it is not enabled or is transitive with ini template lines or toplevel and doesn't exist
|
||||
if (!module.isEnabled() || (transitive && has_ini_lines) || (topLevel && !ini.exists() && !appendStartIni))
|
||||
{
|
||||
String source = null;
|
||||
PrintWriter out = null;
|
||||
try
|
||||
{
|
||||
if (appendStartIni)
|
||||
{
|
||||
if ((!start_ini.exists() && !start_ini.createNewFile()) || !start_ini.canWrite())
|
||||
{
|
||||
StartLog.warn("ERROR: Bad %s! ",start_ini);
|
||||
return;
|
||||
}
|
||||
source = short_start_ini;
|
||||
StartLog.warn("%-15s initialised in %s (appended)",name,source);
|
||||
out = new PrintWriter(new FileWriter(start_ini,true));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Create the directory if needed
|
||||
if (!start_d.exists())
|
||||
{
|
||||
start_d.mkdirs();
|
||||
}
|
||||
if (!start_d.isDirectory() || !start_d.canWrite())
|
||||
{
|
||||
StartLog.warn("ERROR: Bad start.d %s! ",start_d);
|
||||
return;
|
||||
}
|
||||
// Create a new ini file for it
|
||||
if (!ini.createNewFile())
|
||||
{
|
||||
StartLog.warn("ERROR: %s cannot be initialised in %s! ",name,short_ini);
|
||||
return;
|
||||
}
|
||||
source = short_ini;
|
||||
StartLog.warn("%-15s initialised in %s (created)",name,source);
|
||||
out = new PrintWriter(ini);
|
||||
}
|
||||
|
||||
if (appendStartIni)
|
||||
{
|
||||
out.println();
|
||||
}
|
||||
out.println("#");
|
||||
out.println("# Initialize module " + name);
|
||||
out.println("#");
|
||||
Pattern p = Pattern.compile("--module=([^,]+)(,([^,]+))*");
|
||||
|
||||
out.println("--module=" + name);
|
||||
args.parse("--module=" + name,source);
|
||||
modules.enable(name,Collections.singletonList(source));
|
||||
for (String line : module.getInitialise())
|
||||
{
|
||||
out.println(line);
|
||||
args.parse(line,source);
|
||||
Matcher m = p.matcher(line);
|
||||
if (m.matches())
|
||||
{
|
||||
for (int i = 1; i <= m.groupCount(); i++)
|
||||
{
|
||||
String n = m.group(i);
|
||||
if (n == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
n = n.trim();
|
||||
if ((n.length() == 0) || n.startsWith(","))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
modules.enable(n,Collections.singletonList(source));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (out != null)
|
||||
{
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (ini.exists())
|
||||
{
|
||||
StartLog.info("%-15s initialised in %s",name,short_ini);
|
||||
}
|
||||
|
||||
// Also list other places this module is enabled
|
||||
for (String source : module.getSources())
|
||||
{
|
||||
if (!short_ini.equals(source))
|
||||
{
|
||||
StartLog.warn("%-15s enabled in %s",name,baseHome.toShortForm(source));
|
||||
}
|
||||
}
|
||||
|
||||
// Do downloads now
|
||||
for (String download : module.getDownloads())
|
||||
{
|
||||
download(new DownloadArg(download));
|
||||
}
|
||||
|
||||
// Process dependencies from top level only
|
||||
if (topLevel)
|
||||
{
|
||||
List<Module> parents = new ArrayList<>();
|
||||
for (String parent : modules.resolveParentModulesOf(name))
|
||||
{
|
||||
if (!name.equals(parent))
|
||||
{
|
||||
Module m = modules.get(parent);
|
||||
m.setEnabled(true);
|
||||
parents.add(m);
|
||||
}
|
||||
}
|
||||
Collections.sort(parents,Collections.reverseOrder(new Module.DepthComparator()));
|
||||
for (Module m : parents)
|
||||
{
|
||||
moduleIni(args,m.getName(),false,appendStartIni);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience for <code>processCommandLine(cmdLine.toArray(new String[cmdLine.size()]))</code>
|
||||
*/
|
||||
|
@ -481,7 +636,6 @@ public class Main
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// Initialize
|
||||
for (String module : args.getModuleStartIni())
|
||||
{
|
||||
|
@ -614,152 +768,6 @@ public class Main
|
|||
}
|
||||
}
|
||||
|
||||
private void moduleIni(StartArgs args, String name, boolean topLevel,boolean appendStartIni) throws IOException
|
||||
{
|
||||
// Find the start.d relative to the base directory only.
|
||||
File start_d=baseHome.getBaseFile("start.d");
|
||||
|
||||
// Is this a module?
|
||||
Modules modules=args.getAllModules();
|
||||
Module module=modules.get(name);
|
||||
if (module==null)
|
||||
{
|
||||
StartLog.warn("ERROR: No known module for %s",name);
|
||||
return;
|
||||
}
|
||||
|
||||
// Find any named ini file and check it follows the convention
|
||||
File start_ini=baseHome.getBaseFile("start.ini");
|
||||
String short_start_ini = baseHome.toShortForm(start_ini);
|
||||
File ini=new File(start_d,name+".ini");
|
||||
String short_ini = baseHome.toShortForm(ini);
|
||||
StartIni module_ini=null;
|
||||
if (ini.exists())
|
||||
{
|
||||
module_ini=new StartIni(ini);
|
||||
if (module_ini.getLineMatches(Pattern.compile("--module=(.*, *)*"+name)).size()==0)
|
||||
{
|
||||
StartLog.warn("ERROR: %s is not enabled in %s!",name,short_ini);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
boolean transitive=module.isEnabled() && module.getSources().size()==0;
|
||||
boolean has_ini_lines = module.getInitialise().size()>0;
|
||||
|
||||
// If it is not enabled or is transitive with ini template lines or toplevel and doesn't exist
|
||||
if (!module.isEnabled() || (transitive && has_ini_lines) || (topLevel && !ini.exists() && !appendStartIni))
|
||||
{
|
||||
String source=null;
|
||||
PrintWriter out=null;
|
||||
try
|
||||
{
|
||||
if (appendStartIni)
|
||||
{
|
||||
if (!start_ini.exists() && !start_ini.createNewFile() || !start_ini.canWrite())
|
||||
{
|
||||
StartLog.warn("ERROR: Bad %s! ",start_ini);
|
||||
return;
|
||||
}
|
||||
source = short_start_ini;
|
||||
StartLog.warn("%-15s initialised in %s (appended)",name,source);
|
||||
out = new PrintWriter(new FileWriter(start_ini,true));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Create the directory if needed
|
||||
if (!start_d.exists())
|
||||
start_d.mkdirs();
|
||||
if (!start_d.isDirectory() || !start_d.canWrite())
|
||||
{
|
||||
StartLog.warn("ERROR: Bad start.d %s! ",start_d);
|
||||
return;
|
||||
}
|
||||
// Create a new ini file for it
|
||||
if (!ini.createNewFile())
|
||||
{
|
||||
StartLog.warn("ERROR: %s cannot be initialised in %s! ",name,short_ini);
|
||||
return;
|
||||
}
|
||||
source=short_ini;
|
||||
StartLog.warn("%-15s initialised in %s (created)",name,source);
|
||||
out = new PrintWriter(ini);
|
||||
}
|
||||
|
||||
if (appendStartIni)
|
||||
out.println();
|
||||
out.println("#");
|
||||
out.println("# Initialize module "+name);
|
||||
out.println("#");
|
||||
Pattern p = Pattern.compile("--module=([^,]+)(,([^,]+))*");
|
||||
|
||||
out.println("--module="+name);
|
||||
args.parse("--module="+name,source);
|
||||
modules.enable(name,Collections.singletonList(source));
|
||||
for (String line : module.getInitialise())
|
||||
{
|
||||
out.println(line);
|
||||
args.parse(line,source);
|
||||
Matcher m=p.matcher(line);
|
||||
if (m.matches())
|
||||
{
|
||||
for (int i=1;i<=m.groupCount();i++)
|
||||
{
|
||||
String n=m.group(i);
|
||||
if (n==null)
|
||||
continue;
|
||||
n=n.trim();
|
||||
if (n.length()==0||n.startsWith(","))
|
||||
continue;
|
||||
|
||||
modules.enable(n,Collections.singletonList(source));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (out!=null)
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
else if (ini.exists())
|
||||
{
|
||||
StartLog.info("%-15s initialised in %s",name,short_ini);
|
||||
}
|
||||
|
||||
// Also list other places this module is enabled
|
||||
for(String source:module.getSources())
|
||||
{
|
||||
if (!short_ini.equals(source))
|
||||
StartLog.warn("%-15s enabled in %s",name,baseHome.toShortForm(source));
|
||||
}
|
||||
|
||||
// Do downloads now
|
||||
for (String download : module.getDownloads())
|
||||
download(StartArgs.toDownloadArg(download));
|
||||
|
||||
// Process dependencies from top level only
|
||||
if (topLevel)
|
||||
{
|
||||
List<Module> parents = new ArrayList<>();
|
||||
for (String parent:modules.resolveParentModulesOf(name))
|
||||
{
|
||||
if (!name.equals(parent))
|
||||
{
|
||||
Module m=modules.get(parent);
|
||||
m.setEnabled(true);
|
||||
parents.add(m);
|
||||
}
|
||||
}
|
||||
Collections.sort(parents,Collections.reverseOrder(new Module.DepthComparator()));
|
||||
for (Module m : parents)
|
||||
{
|
||||
moduleIni(args,m.getName(),false,appendStartIni);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void usage(boolean exit)
|
||||
{
|
||||
String usageResource = "org/eclipse/jetty/start/usage.txt";
|
||||
|
|
|
@ -18,8 +18,10 @@
|
|||
|
||||
package org.eclipse.jetty.start;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.text.CollationKey;
|
||||
import java.text.Collator;
|
||||
|
@ -30,12 +32,15 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.omg.CORBA.INITIALIZE;
|
||||
|
||||
/**
|
||||
* Represents a Module metadata, as defined in Jetty.
|
||||
*/
|
||||
public class Module extends TextFile
|
||||
public class Module // extends TextFile
|
||||
{
|
||||
public static class NameComparator implements Comparator<Module>
|
||||
{
|
||||
|
@ -71,6 +76,8 @@ public class Module extends TextFile
|
|||
}
|
||||
}
|
||||
|
||||
/** The file of the module */
|
||||
private File file;
|
||||
/** The name of this Module */
|
||||
private String name;
|
||||
/** The depth of the module in the tree */
|
||||
|
@ -92,7 +99,6 @@ public class Module extends TextFile
|
|||
/** List of downloads for this Module */
|
||||
private List<String> downloads;
|
||||
|
||||
|
||||
/** Is this Module enabled via start.jar command line, start.ini, or start.d/*.ini ? */
|
||||
private boolean enabled = false;
|
||||
/** List of sources that enabled this module */
|
||||
|
@ -100,11 +106,14 @@ public class Module extends TextFile
|
|||
|
||||
public Module(File file) throws FileNotFoundException, IOException
|
||||
{
|
||||
super(file);
|
||||
this.file = file;
|
||||
|
||||
String name = file.getName();
|
||||
// Strip .ini
|
||||
name = Pattern.compile(".mod$",Pattern.CASE_INSENSITIVE).matcher(name).replaceFirst("");
|
||||
|
||||
init();
|
||||
process();
|
||||
}
|
||||
|
||||
public void addChildEdge(Module child)
|
||||
|
@ -216,22 +225,21 @@ public class Module extends TextFile
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
String name = getFile().getName();
|
||||
String name = file.getName();
|
||||
|
||||
// Strip .ini
|
||||
this.name = Pattern.compile(".mod$",Pattern.CASE_INSENSITIVE).matcher(name).replaceFirst("");
|
||||
|
||||
parentNames=new HashSet<>();
|
||||
optionalParentNames=new HashSet<>();
|
||||
parentEdges=new HashSet<>();
|
||||
childEdges=new HashSet<>();
|
||||
xmls=new ArrayList<>();
|
||||
initialise=new ArrayList<>();
|
||||
libs=new ArrayList<>();
|
||||
downloads=new ArrayList<>();
|
||||
parentNames = new HashSet<>();
|
||||
optionalParentNames = new HashSet<>();
|
||||
parentEdges = new HashSet<>();
|
||||
childEdges = new HashSet<>();
|
||||
xmls = new ArrayList<>();
|
||||
initialise = new ArrayList<>();
|
||||
libs = new ArrayList<>();
|
||||
downloads = new ArrayList<>();
|
||||
}
|
||||
|
||||
public boolean isEnabled()
|
||||
|
@ -239,61 +247,69 @@ public class Module extends TextFile
|
|||
return enabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(String line)
|
||||
public void process() throws FileNotFoundException, IOException
|
||||
{
|
||||
boolean handled = false;
|
||||
Pattern section = Pattern.compile("\\s*\\[([^]]*)\\]\\s*");
|
||||
|
||||
if (line == null)
|
||||
if (!FS.canReadFile(file))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// has assignment
|
||||
int idx = line.indexOf('=');
|
||||
if (idx >= 0)
|
||||
{
|
||||
String key = line.substring(0,idx);
|
||||
String value = line.substring(idx + 1);
|
||||
|
||||
switch (key.toUpperCase(Locale.ENGLISH))
|
||||
{
|
||||
case "DEPEND":
|
||||
parentNames.add(value);
|
||||
handled = true;
|
||||
break;
|
||||
case "LIB":
|
||||
libs.add(value);
|
||||
handled = true;
|
||||
break;
|
||||
case "OPTIONAL":
|
||||
optionalParentNames.add(value);
|
||||
handled = true;
|
||||
break;
|
||||
case "DOWNLOAD":
|
||||
downloads.add(value);
|
||||
handled = true;
|
||||
break;
|
||||
case "INI":
|
||||
initialise.add(value);
|
||||
handled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (handled)
|
||||
{
|
||||
return; // no further processing of line needed
|
||||
}
|
||||
|
||||
// Is it an XML line?
|
||||
if (FS.isXml(line))
|
||||
{
|
||||
xmls.add(line);
|
||||
StartLog.debug("Skipping read of missing file: %s",file.getAbsolutePath());
|
||||
return;
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException("Unrecognized Module Metadata line [" + line + "] in Module file [" + getFile() + "]");
|
||||
try (FileReader reader = new FileReader(file))
|
||||
{
|
||||
try (BufferedReader buf = new BufferedReader(reader))
|
||||
{
|
||||
String line;
|
||||
String sectionType = "";
|
||||
while ((line = buf.readLine()) != null)
|
||||
{
|
||||
line = line.trim();
|
||||
Matcher sectionMatcher = section.matcher(line);
|
||||
|
||||
if (sectionMatcher.matches())
|
||||
{
|
||||
sectionType = sectionMatcher.group(1).trim().toUpperCase();
|
||||
}
|
||||
else
|
||||
{
|
||||
// blank lines and comments are valid for initialize section
|
||||
if (line.length() == 0 || line.startsWith("#"))
|
||||
{
|
||||
if ("INI".equals(sectionType))
|
||||
{
|
||||
initialise.add(line);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (sectionType)
|
||||
{
|
||||
case "DEPEND":
|
||||
parentNames.add(line);
|
||||
break;
|
||||
case "LIB":
|
||||
libs.add(line);
|
||||
break;
|
||||
case "XML":
|
||||
xmls.add(line);
|
||||
break;
|
||||
case "OPTIONAL":
|
||||
optionalParentNames.add(line);
|
||||
break;
|
||||
case "DOWNLOAD":
|
||||
downloads.add(line);
|
||||
break;
|
||||
case "INI":
|
||||
initialise.add(line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setDepth(int depth)
|
||||
|
@ -333,5 +349,4 @@ public class Module extends TextFile
|
|||
str.append(']');
|
||||
return str.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -39,76 +39,7 @@ import java.util.Set;
|
|||
*/
|
||||
public class StartArgs
|
||||
{
|
||||
public static class DownloadArg
|
||||
{
|
||||
public String uri;
|
||||
public String location;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (this == obj)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
DownloadArg other = (DownloadArg)obj;
|
||||
if (uri == null)
|
||||
{
|
||||
if (other.uri != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!uri.equals(other.uri))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (location == null)
|
||||
{
|
||||
if (other.location != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!location.equals(other.location))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = (prime * result) + ((uri == null)?0:uri.hashCode());
|
||||
result = (prime * result) + ((location == null)?0:location.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("DownloadArg [uri=");
|
||||
builder.append(uri);
|
||||
builder.append(", location=");
|
||||
builder.append(location);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
public static final String CMD_LINE_SOURCE = "<cmd-line>";
|
||||
|
||||
public static final String VERSION;
|
||||
|
||||
static
|
||||
|
@ -148,10 +79,8 @@ public class StartArgs
|
|||
private List<String> jvmArgs = new ArrayList<>();
|
||||
private List<String> moduleIni = new ArrayList<>();
|
||||
private List<String> moduleStartIni = new ArrayList<>();
|
||||
private List<String> modulePersistEnable = new ArrayList<>();
|
||||
private List<String> modulePersistDisable = new ArrayList<>();
|
||||
private Modules allModules;
|
||||
|
||||
private Modules allModules;
|
||||
// Should the server be run?
|
||||
private boolean run = true;
|
||||
private boolean help = false;
|
||||
|
@ -161,6 +90,7 @@ public class StartArgs
|
|||
private boolean listConfig = false;
|
||||
private boolean version = false;
|
||||
private boolean dryRun = false;
|
||||
|
||||
private boolean exec = false;
|
||||
|
||||
public StartArgs(String[] commandLineArgs)
|
||||
|
@ -169,30 +99,9 @@ public class StartArgs
|
|||
classpath = new Classpath();
|
||||
}
|
||||
|
||||
static DownloadArg toDownloadArg(String uriLocation)
|
||||
{
|
||||
String parts[] = uriLocation.split(":",3);
|
||||
if (parts.length != 3)
|
||||
{
|
||||
throw new IllegalArgumentException("Not <http uri>:<location>");
|
||||
}
|
||||
if (!"http".equalsIgnoreCase(parts[0]))
|
||||
{
|
||||
throw new IllegalArgumentException("Download only supports http protocol");
|
||||
}
|
||||
if (!parts[1].startsWith("//"))
|
||||
{
|
||||
throw new IllegalArgumentException("Download URI invalid: " + uriLocation);
|
||||
}
|
||||
DownloadArg arg = new DownloadArg();
|
||||
arg.uri = String.format("%s:%s",parts[0],parts[1]);
|
||||
arg.location = parts[2];
|
||||
return arg;
|
||||
}
|
||||
|
||||
private void addDownload(String uriLocation)
|
||||
{
|
||||
DownloadArg arg=toDownloadArg(uriLocation);
|
||||
DownloadArg arg = new DownloadArg(uriLocation);
|
||||
if (!downloads.contains(arg))
|
||||
{
|
||||
downloads.add(arg);
|
||||
|
@ -452,16 +361,6 @@ public class StartArgs
|
|||
return this.commandLine;
|
||||
}
|
||||
|
||||
public List<String> getModuleIni()
|
||||
{
|
||||
return moduleIni;
|
||||
}
|
||||
|
||||
public List<String> getModuleStartIni()
|
||||
{
|
||||
return moduleStartIni;
|
||||
}
|
||||
|
||||
public List<DownloadArg> getDownloads()
|
||||
|
||||
{
|
||||
|
@ -540,14 +439,14 @@ public class StartArgs
|
|||
return System.getProperty("main.class",mainclass);
|
||||
}
|
||||
|
||||
public List<String> getModulePersistDisable()
|
||||
public List<String> getModuleIni()
|
||||
{
|
||||
return modulePersistDisable;
|
||||
return moduleIni;
|
||||
}
|
||||
|
||||
public List<String> getModulePersistEnable()
|
||||
public List<String> getModuleStartIni()
|
||||
{
|
||||
return modulePersistEnable;
|
||||
return moduleStartIni;
|
||||
}
|
||||
|
||||
public Properties getProperties()
|
||||
|
@ -648,11 +547,6 @@ public class StartArgs
|
|||
return listModules;
|
||||
}
|
||||
|
||||
public boolean isModulePersistenceChanging()
|
||||
{
|
||||
return (modulePersistDisable.size() > 0) || (modulePersistEnable.size() > 0);
|
||||
}
|
||||
|
||||
public boolean isRun()
|
||||
{
|
||||
return run;
|
||||
|
@ -685,10 +579,24 @@ public class StartArgs
|
|||
}
|
||||
}
|
||||
|
||||
public void parse(String arg, String source)
|
||||
public void parse(final String rawarg, String source)
|
||||
{
|
||||
if (rawarg == null)
|
||||
{
|
||||
if (arg.trim().startsWith("#"))
|
||||
return;
|
||||
}
|
||||
|
||||
final String arg = rawarg.trim();
|
||||
|
||||
if (arg.length() <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.startsWith("#"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ("--help".equals(arg) || "-?".equals(arg))
|
||||
{
|
||||
|
@ -768,7 +676,9 @@ public class StartArgs
|
|||
if (arg.startsWith("--module-ini="))
|
||||
{
|
||||
if (!CMD_LINE_SOURCE.equals(source))
|
||||
{
|
||||
throw new UsageException(ERR_BAD_ARG,"%s not allowed in %s",arg,source);
|
||||
}
|
||||
moduleIni.addAll(getValues(arg));
|
||||
run = false;
|
||||
return;
|
||||
|
@ -777,7 +687,9 @@ public class StartArgs
|
|||
if (arg.startsWith("--module-start-ini="))
|
||||
{
|
||||
if (!CMD_LINE_SOURCE.equals(source))
|
||||
{
|
||||
throw new UsageException(ERR_BAD_ARG,"%s not allowed in %s",arg,source);
|
||||
}
|
||||
moduleStartIni.addAll(getValues(arg));
|
||||
run = false;
|
||||
return;
|
||||
|
@ -799,28 +711,6 @@ public class StartArgs
|
|||
return;
|
||||
}
|
||||
|
||||
if (arg.startsWith("--enable-module="))
|
||||
{
|
||||
if (!CMD_LINE_SOURCE.equals(source))
|
||||
{
|
||||
throw new UsageException(ERR_BAD_ARG,"%s not allowed in %s",arg,source);
|
||||
}
|
||||
modulePersistEnable.addAll(getValues(arg));
|
||||
run = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.startsWith("--disable-module="))
|
||||
{
|
||||
if (!CMD_LINE_SOURCE.equals(source))
|
||||
{
|
||||
throw new UsageException(ERR_BAD_ARG,"%s not allowed in %s",arg,source);
|
||||
}
|
||||
modulePersistDisable.addAll(getValues(arg));
|
||||
run = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Start property (syntax similar to System property)
|
||||
if (arg.startsWith("-D"))
|
||||
{
|
||||
|
@ -873,7 +763,7 @@ public class StartArgs
|
|||
}
|
||||
|
||||
// Anything else is unrecognized
|
||||
throw new UsageException(ERR_BAD_ARG,"Unrecognized argument: %s in %s",arg,source);
|
||||
throw new UsageException(ERR_BAD_ARG,"Unrecognized argument: \"%s\" in %s",arg,source);
|
||||
}
|
||||
|
||||
public void parseCommandLine()
|
||||
|
@ -904,16 +794,6 @@ public class StartArgs
|
|||
this.allModules = allModules;
|
||||
}
|
||||
|
||||
public void setModulePersistDisable(List<String> modulePersistDisable)
|
||||
{
|
||||
this.modulePersistDisable = modulePersistDisable;
|
||||
}
|
||||
|
||||
public void setModulePersistEnable(List<String> modulePersistEnable)
|
||||
{
|
||||
this.modulePersistEnable = modulePersistEnable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
|
|
|
@ -59,23 +59,28 @@ Module Management:
|
|||
o The ${jetty.base}/start.d/*.ini files
|
||||
|
||||
--module=<modulename>
|
||||
Will temporarily enable a module from the command line.
|
||||
Temporarily enable a module from the command line.
|
||||
Note: this can also be used in the ${jetty.base}/start.ini
|
||||
or ${jetty.base}/start.d/*.ini files.
|
||||
|
||||
--module-ini=<modulename>
|
||||
Will enable a module by adding an ini file to the
|
||||
${jetty.base}/start.d/ directory from the template
|
||||
contained in the module definition. Transitive
|
||||
dependencies are followed and ini files are created
|
||||
for them if they too have a ini template.
|
||||
Enable a module via creation of an ini file in the
|
||||
${jetty.base}/start.d/ directory.
|
||||
Uses ini template that the module itself maintains.
|
||||
Transitive module dependencies are followed and all
|
||||
modules that the specified module depends on are also
|
||||
enabled via their own ini files in the same directory.
|
||||
Note: not all modules have ini templates.
|
||||
|
||||
--module-start-ini=<modulename>
|
||||
Will enable a module by appending lines to the
|
||||
${jetty.base}/start.ini file from the template
|
||||
contained in the module definition. Transitive
|
||||
dependencies are followed and lines are appended
|
||||
for them if they too have a ini template.
|
||||
Enable a module by appending lines to the
|
||||
${jetty.base}/start.ini file.
|
||||
Lines that are added come from the ini template that
|
||||
the module itself maintains.
|
||||
Transitive module dependencies are followed and all
|
||||
modules that the specified module depends on are also
|
||||
enabled in the ${jetty.base}/start.ini using the same
|
||||
techniques.
|
||||
|
||||
Startup / Shutdown Command Line:
|
||||
--------------------------------
|
||||
|
|
|
@ -39,7 +39,7 @@ public class BaseHomeTest
|
|||
{
|
||||
actual.add(hb.toShortForm(file));
|
||||
}
|
||||
Assert.assertThat(message,actual,containsInAnyOrder(expected.toArray()));
|
||||
Assert.assertThat(message + ": " + Main.join(actual,", "),actual,containsInAnyOrder(expected.toArray()));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -84,7 +84,7 @@ public class BaseHomeTest
|
|||
File baseDir = null;
|
||||
|
||||
BaseHome hb = new BaseHome(homeDir,baseDir);
|
||||
List<File> files = hb.listFiles("/start.d", new FS.IniFilter());
|
||||
List<File> files = hb.listFiles("/start.d",new FS.IniFilter());
|
||||
|
||||
List<String> expected = new ArrayList<>();
|
||||
expected.add("${jetty.home}/start.d/jmx.ini");
|
||||
|
@ -120,6 +120,8 @@ public class BaseHomeTest
|
|||
public void testDefault() throws IOException
|
||||
{
|
||||
BaseHome bh = new BaseHome();
|
||||
Assert.assertThat("Home",bh.getHome(),notNullValue());
|
||||
Assert.assertThat("Base",bh.getBase(),notNullValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -31,7 +31,6 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.jetty.start.StartArgs.DownloadArg;
|
||||
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
|
||||
import org.junit.Assert;
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ public class ModulesTest
|
|||
|
||||
Modules modules = new Modules();
|
||||
modules.registerAll(basehome);
|
||||
Assert.assertThat("Module count",modules.count(),is(29));
|
||||
Assert.assertThat("Module count",modules.count(),is(28));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -67,5 +67,4 @@ public class TestUseCases
|
|||
{
|
||||
assertUseCase("home","base.with.db","assert-with-db.txt");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
LIB=lib/example*with spaces.jar
|
||||
[lib]
|
||||
lib/example*with spaces.jar
|
|
@ -1,8 +1,11 @@
|
|||
|
||||
DEPEND=deploy
|
||||
DEPEND=jndi
|
||||
DEPEND=plus
|
||||
[depend]
|
||||
deploy
|
||||
jndi
|
||||
plus
|
||||
|
||||
LIB=lib/db/*.jar
|
||||
[lib]
|
||||
lib/db/*.jar
|
||||
|
||||
[xml]
|
||||
etc/jetty-db.xml
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
https
|
||||
websocket
|
|
@ -1,2 +0,0 @@
|
|||
|
||||
--module=requestlog
|
|
@ -1,2 +0,0 @@
|
|||
|
||||
--module=websocket
|
|
@ -1,13 +0,0 @@
|
|||
|
||||
# this should not be picked up as there is a module persistence layer present
|
||||
--module=debug
|
||||
--module=ipaccess
|
||||
--module=rewrite
|
||||
|
||||
jetty.port=12345
|
||||
|
||||
jetty.keystore=etc/keystore
|
||||
jetty.keystore.password=friendly
|
||||
jetty.keymanager.password=icecream
|
||||
jetty.truststore=etc/keystore
|
||||
jetty.truststore.password=sundae
|
|
@ -2,13 +2,16 @@
|
|||
# Jetty Annotation Scanning Module
|
||||
#
|
||||
|
||||
[depend]
|
||||
# Annotations needs plus, and jndi features
|
||||
DEPEND=plus
|
||||
plus
|
||||
|
||||
[lib]
|
||||
# Annotations needs jetty annotation jars
|
||||
LIB=lib/jetty-annotations-${jetty.version}.jar
|
||||
lib/jetty-annotations-${jetty.version}.jar
|
||||
# Need annotation processing jars too
|
||||
LIB=lib/annotations/*.jar
|
||||
lib/annotations/*.jar
|
||||
|
||||
[xml]
|
||||
# Enable annotation scanning webapp configurations
|
||||
etc/jetty-annotations.xml
|
||||
|
|
|
@ -2,7 +2,10 @@
|
|||
# Base Module
|
||||
#
|
||||
|
||||
OPTIONAL=jmx
|
||||
[optional]
|
||||
# JMX is optional, if it appears in the module tree then depend on it
|
||||
jmx
|
||||
|
||||
LIB=lib/jetty-util-${jetty.version}.jar
|
||||
LIB=lib/jetty-io-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-util-${jetty.version}.jar
|
||||
lib/jetty-io-${jetty.version}.jar
|
||||
|
|
|
@ -2,5 +2,6 @@
|
|||
# Client Feature
|
||||
#
|
||||
|
||||
[lib]
|
||||
# Client jars
|
||||
LIB=lib/jetty-client-${jetty.version}.jar
|
||||
lib/jetty-client-${jetty.version}.jar
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Debug module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-debug.xml
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
#
|
||||
# Jetty Demo Module
|
||||
#
|
||||
|
||||
DEPEND=jndi
|
||||
DEPEND=jaas
|
||||
DEPEND=rewrite
|
||||
DEPEND=client
|
||||
DEPEND=annotations
|
||||
DEPEND=websocket
|
||||
DEPEND=webapp
|
||||
|
||||
LIB=demo/lib/*.jar
|
||||
|
||||
demo/test-realm.xml
|
||||
demo/jetty-demo.xml
|
|
@ -2,10 +2,13 @@
|
|||
# Deploy Feature
|
||||
#
|
||||
|
||||
DEPEND=webapp
|
||||
[depend]
|
||||
webapp
|
||||
|
||||
[lib]
|
||||
# Deploy jars
|
||||
LIB=lib/jetty-deploy-${jetty.version}.jar
|
||||
lib/jetty-deploy-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Deploy configuration
|
||||
etc/jetty-deploy.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Jetty HTTP Server
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-http.xml
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
# Jetty HTTP Server
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-ssl.xml
|
||||
etc/jetty-https.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# IPAccess module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-ipaccess.xml
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
# JAAS Feature
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[lib]
|
||||
# JAAS jars
|
||||
LIB=lib/jetty-jaas-${jetty.version}.jar
|
||||
lib/jetty-jaas-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# JAAS configuration
|
||||
etc/jetty-jaas.xml
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
# JMX Feature
|
||||
#
|
||||
|
||||
[lib]
|
||||
# JMX jars (as defined in start.config)
|
||||
LIB=lib/jetty-jmx-${jetty.version}.jar
|
||||
lib/jetty-jmx-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# JMX configuration
|
||||
etc/jetty-jmx.xml
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
# JNDI Support
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-jndi-${jetty.version}.jar
|
||||
LIB=lib/jndi/*.jar
|
||||
[lib]
|
||||
lib/jetty-jndi-${jetty.version}.jar
|
||||
lib/jndi/*.jar
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
# Jetty Servlet Module
|
||||
#
|
||||
|
||||
DEPEND=servlet
|
||||
[depend]
|
||||
servlet
|
||||
|
||||
LIB=lib/jsp/*.jar
|
||||
[lib]
|
||||
lib/jsp/*.jar
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Low Resources module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-lowresources.xml
|
||||
|
|
|
@ -2,9 +2,12 @@
|
|||
# Jetty Monitor module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
DEPEND=client
|
||||
[depend]
|
||||
server
|
||||
client
|
||||
|
||||
LIB=lib/jetty-monitor-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-monitor-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
etc/jetty-monitor.xml
|
|
@ -1,4 +1,6 @@
|
|||
|
||||
DOWNLOAD=http://repo1.maven.org/maven2/org/mortbay/jetty/npn/npn-boot/1.1.5.v20130313/npn-boot-1.1.5.v20130313.jar:lib/npn/npn-boot-1.1.5.v20130313.jar
|
||||
[download]
|
||||
http://repo1.maven.org/maven2/org/mortbay/jetty/npn/npn-boot/1.1.5.v20130313/npn-boot-1.1.5.v20130313.jar:lib/npn/npn-boot-1.1.5.v20130313.jar
|
||||
|
||||
INI=-Xbootclasspath/p:lib/npn/npn-boot-1.1.5.v20130313.jar
|
||||
[ini]
|
||||
-Xbootclasspath/p:lib/npn/npn-boot-1.1.5.v20130313.jar
|
|
@ -2,11 +2,14 @@
|
|||
# Jetty Proxy module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
DEPEND=security
|
||||
DEPEND=jndi
|
||||
[depend]
|
||||
server
|
||||
security
|
||||
jndi
|
||||
|
||||
LIB=lib/jetty-plus-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-plus-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Plus requires configuration
|
||||
etc/jetty-plus.xml
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
# Jetty Proxy module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
DEPEND=client
|
||||
[depend]
|
||||
server
|
||||
client
|
||||
|
||||
LIB=lib/jetty-proxy-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-proxy-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Proxy requires configuration
|
||||
etc/jetty-proxy.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Request Log module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-requestlog.xml
|
||||
|
|
|
@ -2,9 +2,12 @@
|
|||
# Jetty Rewrite module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-rewrite-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-rewrite-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Annotations needs annotations configuration
|
||||
etc/jetty-rewrite.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Jetty Security Module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-security-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-security-${jetty.version}.jar
|
||||
|
|
|
@ -2,14 +2,17 @@
|
|||
# Base server
|
||||
#
|
||||
|
||||
DEPEND=base
|
||||
DEPEND=xml
|
||||
[depend]
|
||||
base
|
||||
xml
|
||||
|
||||
LIB=lib/servlet-api-3.1.jar
|
||||
LIB=lib/jetty-schemas-3.1.jar
|
||||
LIB=lib/jetty-http-${jetty.version}.jar
|
||||
LIB=lib/jetty-continuation-${jetty.version}.jar
|
||||
LIB=lib/jetty-server-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/servlet-api-3.1.jar
|
||||
lib/jetty-schemas-3.1.jar
|
||||
lib/jetty-http-${jetty.version}.jar
|
||||
lib/jetty-continuation-${jetty.version}.jar
|
||||
lib/jetty-server-${jetty.version}.jar
|
||||
|
||||
[xml]
|
||||
# Annotations needs annotations configuration
|
||||
etc/jetty.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Jetty Servlet Module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
LIB=lib/jetty-servlet-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-servlet-${jetty.version}.jar
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
|
||||
DEPEND=server
|
||||
DEPEND=npn
|
||||
[depend]
|
||||
server
|
||||
npn
|
||||
|
||||
LIB=lib/spdy/*.jar
|
||||
[lib]
|
||||
lib/spdy/*.jar
|
||||
|
||||
[xml]
|
||||
etc/jetty-ssl.xml
|
||||
etc/jetty-spdy.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Stats module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-stats.xml
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Base server
|
||||
#
|
||||
|
||||
DEPEND=servlet
|
||||
[depend]
|
||||
servlet
|
||||
|
||||
LIB=lib/jetty-webapp-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-webapp-${jetty.version}.jar
|
||||
|
|
|
@ -3,12 +3,15 @@
|
|||
#
|
||||
|
||||
# WebSocket needs Annotations feature
|
||||
DEPEND=server
|
||||
DEPEND=annotations
|
||||
[depend]
|
||||
server
|
||||
annotations
|
||||
|
||||
# WebSocket needs websocket jars (as defined in start.config)
|
||||
LIB=lib/websocket/*.jar
|
||||
[lib]
|
||||
lib/websocket/*.jar
|
||||
|
||||
# WebSocket needs websocket configuration
|
||||
[xml]
|
||||
etc/jetty-websockets.xml
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Stats module
|
||||
#
|
||||
|
||||
DEPEND=server
|
||||
[depend]
|
||||
server
|
||||
|
||||
[xml]
|
||||
etc/jetty-xinetd.xml
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
# Jetty XML Configuration
|
||||
#
|
||||
|
||||
DEPEND=base
|
||||
[depend]
|
||||
base
|
||||
|
||||
LIB=lib/jetty-xml-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-xml-${jetty.version}.jar
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Base server
|
||||
#
|
||||
|
||||
DEPEND=servlet
|
||||
[depend]
|
||||
servlet
|
||||
|
||||
LIB=lib/jetty-webapp-${jetty.version}.jar
|
||||
[lib]
|
||||
lib/jetty-webapp-${jetty.version}.jar
|
||||
|
|
|
@ -2,13 +2,16 @@
|
|||
# WebSocket Feature
|
||||
#
|
||||
|
||||
[depend]
|
||||
# WebSocket needs Annotations feature
|
||||
DEPEND=server
|
||||
DEPEND=annotations
|
||||
server
|
||||
annotations
|
||||
|
||||
[lib]
|
||||
# WebSocket needs websocket jars (as defined in start.config)
|
||||
LIB=lib/websocket/*.jar
|
||||
lib/websocket/*.jar
|
||||
|
||||
[xml]
|
||||
# WebSocket needs websocket configuration
|
||||
etc/jetty-websockets.xml
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<!-- Mandatory. This system property tells JAAS where to find the login module configuration file -->
|
||||
<systemProperty>
|
||||
<name>java.security.auth.login.config</name>
|
||||
<value>${basedir}/src/main/config/demo/login.conf</value>
|
||||
<value>${basedir}/src/main/config/demo-base/etc/login.conf</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
<webAppConfig>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
xyz {
|
||||
org.eclipse.jetty.jaas.spi.PropertyFileLoginModule required
|
||||
debug="true"
|
||||
file="${jetty.home}/demo/login.properties";
|
||||
file="${jetty.base}/etc/login.properties";
|
||||
};
|
|
@ -24,7 +24,7 @@
|
|||
etc/jetty-jaas.xml
|
||||
</pre>
|
||||
</p>
|
||||
<p>For the jetty distribution demos, jaas is already enabled in the start.d/900-demo.ini file and sets the jaas.login.conf property to demo/login.conf for use with the demo/webapps/test-jaas.war web application. </p>
|
||||
<p>For the jetty distribution demos, jaas is already enabled in the demo-base/start.ini file and sets the jaas.login.conf property to ${jetty.base}/etc/login.conf for use with the demo-base/webapps/test-jaas.war web application. </p>
|
||||
|
||||
<p>The full source of this demonstration is available <a
|
||||
href="http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/tests/test-webapps/test-jaas-webapp">here</a>.</p>
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
<loginServices>
|
||||
<loginService implementation="org.eclipse.jetty.security.HashLoginService">
|
||||
<name>Test Realm</name>
|
||||
<config>src/main/config/demo/realm.properties</config>
|
||||
<config>src/main/config/demo-base/etc/realm.properties</config>
|
||||
</loginService>
|
||||
</loginServices>
|
||||
</configuration>
|
||||
|
|
|
@ -28,7 +28,7 @@ detected.
|
|||
<Set name="extractWAR">true</Set>
|
||||
<Set name="copyWebDir">false</Set>
|
||||
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
|
||||
<Set name="overrideDescriptor"><SystemProperty name="jetty.base" default="."/>/demo/override-web.xml</Set>
|
||||
<Set name="overrideDescriptor"><SystemProperty name="jetty.base" default="."/>/etc/override-web.xml</Set>
|
||||
|
||||
<!-- virtual hosts
|
||||
<Set name="virtualHosts">
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<destName>jetty-web.xml</destName>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/main/config/demo/realm.properties</source>
|
||||
<source>src/main/config/demo-base/etc/realm.properties</source>
|
||||
<outputDirectory>WEB-INF</outputDirectory>
|
||||
<destName>realm.properties</destName>
|
||||
</file>
|
||||
|
|
|
@ -6,26 +6,6 @@
|
|||
<!-- =============================================================== -->
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<!-- ============================================================= -->
|
||||
<!-- Add demo/webapps to deployment manager scans -->
|
||||
<!-- ============================================================= -->
|
||||
<Ref refid="DeploymentManager">
|
||||
<Call id="webappprovider" name="addAppProvider">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
|
||||
<Set name="monitoredDirName"><Property name="jetty.base" default="." />/demo/webapps</Set>
|
||||
<Set name="defaultsDescriptor"><Property name="jetty.home" default="." />/etc/webdefault.xml</Set>
|
||||
<Set name="scanInterval">1</Set>
|
||||
<Set name="extractWars">true</Set>
|
||||
<Set name="configurationManager">
|
||||
<New class="org.eclipse.jetty.deploy.PropertiesConfigurationManager"/>
|
||||
</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
</Ref>
|
||||
|
||||
|
||||
<!-- ============================================================= -->
|
||||
<!-- Add rewrite rules -->
|
||||
<!-- ============================================================= -->
|
|
@ -12,7 +12,7 @@
|
|||
<Arg>
|
||||
<New class="org.eclipse.jetty.security.HashLoginService">
|
||||
<Set name="name">Test Realm</Set>
|
||||
<Set name="config"><Property name="demo.realm" default="demo/realm.properties"/></Set>
|
||||
<Set name="config"><Property name="demo.realm" default="etc/realm.properties"/></Set>
|
||||
<Set name="refreshInterval">0</Set>
|
||||
</New>
|
||||
</Arg>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue