310094 Improved start.jar usage and config files
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@1548 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
parent
5731200946
commit
4fe6fa388f
|
@ -12,6 +12,7 @@ jetty-7.1-SNAPSHOT
|
|||
+ 309466 Removed synchronization from StdErrLog
|
||||
+ 309765 Added JSP module
|
||||
+ 310051 _configurationClasses now defaults to null in WebAppContext
|
||||
+ 310094 Improved start.jar usage and config files
|
||||
+ JETTY-903 Stop both caches
|
||||
+ JETTY-1200 SSL NIO Endpoint wraps non NIO buffers
|
||||
+ JETTY-1202 Use platform default algorithm for SecureRandom
|
||||
|
|
|
@ -26,6 +26,23 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>config.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<!--
|
||||
Required for OSGI
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
|
||||
|
||||
<!-- =============================================================== -->
|
||||
<!-- Configure the Jetty Deployers -->
|
||||
<!-- =============================================================== -->
|
||||
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure the deployment manager -->
|
||||
<!-- -->
|
||||
<!-- Sets up 2 monitored dir app providers that are configured -->
|
||||
<!-- to behave in a similaraly to the legacy ContextDeployer -->
|
||||
<!-- and WebAppDeployer from previous versions of Jetty. -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addBean">
|
||||
<Arg>
|
||||
<New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
|
||||
<Set name="contexts">
|
||||
<Ref id="Contexts" />
|
||||
</Set>
|
||||
<Call name="setContextAttribute">
|
||||
<Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg>
|
||||
<Arg>.*/jsp-api-[^/]*\.jar$|.*/jsp-[^/]*\.jar$</Arg>
|
||||
</Call>
|
||||
<!-- Providers of Apps via Context XML files.
|
||||
Configured to behave similar to the legacy ContextDeployer -->
|
||||
<Call name="addAppProvider">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.providers.ContextProvider">
|
||||
<Set name="monitoredDir"><SystemProperty name="jetty.home" default="." />/contexts</Set>
|
||||
<Set name="scanInterval">5</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
<!-- Providers of Apps via WAR file existence.
|
||||
Configured to behave similar to the legacy WebAppDeployer -->
|
||||
<Call name="addAppProvider">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
|
||||
<Set name="monitoredDir"><SystemProperty name="jetty.home" default="." />/webapps</Set>
|
||||
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
|
||||
<Set name="scanInterval">5</Set>
|
||||
<Set name="contextXmlDir"><SystemProperty name="jetty.home" default="." />/contexts</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
</Configure>
|
|
@ -15,7 +15,7 @@
|
|||
<Array type="org.eclipse.jetty.deploy.AppProvider">
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.deploy.providers.ContextProvider">
|
||||
<Set name="monitoredDir"><Property name="jetty.home" />/contexts</Set>
|
||||
<Set name="monitoredDir"><SystemProperty name="jetty.home" />/contexts</Set>
|
||||
<Set name="scanInterval">1</Set>
|
||||
<Set name="configurationManager">
|
||||
<New class="org.eclipse.jetty.deploy.FileConfigurationManager">
|
||||
|
@ -28,9 +28,9 @@
|
|||
</Item>
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
|
||||
<Set name="monitoredDir"><Property name="jetty.home" />/webapps</Set>
|
||||
<Set name="monitoredDir"><SystemProperty name="jetty.home" />/webapps</Set>
|
||||
<Set name="scanInterval">1</Set>
|
||||
<Set name="contextXmlDir"><Property name="jetty.home" />/contexts</Set>
|
||||
<Set name="contextXmlDir"><SystemProperty name="jetty.home" />/contexts</Set>
|
||||
</New>
|
||||
</Item>
|
||||
</Array>
|
||||
|
|
|
@ -143,6 +143,16 @@
|
|||
<includes>**</includes>
|
||||
<outputDirectory>${assembly.directory}</outputDirectory>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-deploy</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<classifier>config</classifier>
|
||||
<type>jar</type>
|
||||
<overWrite>true</overWrite>
|
||||
<includes>**</includes>
|
||||
<outputDirectory>${assembly.directory}</outputDirectory>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-plus</artifactId>
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
#===========================================================
|
||||
# Jetty start.jar arguments
|
||||
#-----------------------------------------------------------
|
||||
# Each line of this file is prepended to the command line
|
||||
# arguments # of a call to:
|
||||
# java -jar start.jar [arg...]
|
||||
#
|
||||
#===========================================================
|
||||
|
||||
|
||||
|
||||
#===========================================================
|
||||
# If the arguements in this file include JVM arguments
|
||||
# (eg -Xmx512m) or JVM System properties (eg com.sun.???),
|
||||
# then these will not take affect unless the --exec
|
||||
|
@ -12,20 +15,46 @@
|
|||
# is executed like:
|
||||
# eval $(java -jar start.jar --dry-run)
|
||||
#
|
||||
#===========================================================
|
||||
|
||||
OPTIONS=Server,jsp,jmx,resources,websocket,ext
|
||||
|
||||
#===========================================================
|
||||
# The following is an example of the ini args to run the
|
||||
# server with a heap size, JMX remote enabled, JMX mbeans
|
||||
# and ssl
|
||||
# Below are some recommended options for Sun's JRE
|
||||
#-----------------------------------------------------------
|
||||
# --exec
|
||||
# -Xmx512m
|
||||
# -Dcom.sun.management.jmxremote
|
||||
# OPTIONS=Server,jmx,resources
|
||||
# etc/jetty-jmx.xml
|
||||
# etc/jetty.xml
|
||||
# etc/jetty-ssl.xml
|
||||
# -Xmx2000m
|
||||
# -Xmn512m
|
||||
# -verbose:gc
|
||||
# -XX:+PrintGCDateStamps
|
||||
# -XX:+PrintGCTimeStamps
|
||||
# -XX:+PrintGCDetails
|
||||
# -XX:+PrintTenuringDistribution
|
||||
# -XX:+PrintCommandLineFlags
|
||||
# -XX:+DisableExplicitGC
|
||||
# -XX:+UseConcMarkSweepGC
|
||||
# -XX:ParallelCMSThreads=2
|
||||
# -XX:+CMSClassUnloadingEnabled
|
||||
# -XX:+UseCMSCompactAtFullCollection
|
||||
# -XX:CMSInitiatingOccupancyFraction=80
|
||||
#-----------------------------------------------------------
|
||||
|
||||
|
||||
#===========================================================
|
||||
# Start classpath OPTIONS.
|
||||
# These control what classes are on the classpath
|
||||
# for a full listing do
|
||||
# java -jar start.jar --list-options
|
||||
#-----------------------------------------------------------
|
||||
OPTIONS=Server,jsp,jmx,resources,websocket,ext
|
||||
#-----------------------------------------------------------
|
||||
|
||||
|
||||
#===========================================================
|
||||
# Configuration files.
|
||||
# For a full list of available configuration files do
|
||||
# java -jar start.jar --help
|
||||
#-----------------------------------------------------------
|
||||
#etc/jetty-jmx.xml
|
||||
etc/jetty.xml
|
||||
# etc/jetty-ssl.xml
|
||||
# etc/jetty-requestlog.xml
|
||||
etc/jetty-deploy.xml
|
||||
etc/jetty-testrealm.xml
|
||||
#===========================================================
|
||||
|
|
|
@ -63,10 +63,10 @@
|
|||
<Call name="addAppProvider">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
|
||||
<Set name="monitoredDir"><Property name="jetty.home" default="." />/webapps-plus</Set>
|
||||
<Set name="monitoredDir"><SystemProperty name="jetty.home" default="." />/webapps-plus</Set>
|
||||
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
|
||||
<Set name="scanInterval">5</Set>
|
||||
<Set name="contextXmlDir"><Property name="jetty.home" default="." />/contexts</Set>
|
||||
<Set name="contextXmlDir"><SystemProperty name="jetty.home" default="." />/contexts</Set>
|
||||
<Set name="parentLoaderPriority">false</Set>
|
||||
<Set name="extractWars">true</Set>
|
||||
<Set name="configurationClasses"><Ref id="plusConfig"/></Set>
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
|
||||
|
||||
<!-- =============================================================== -->
|
||||
<!-- Configure the Jetty Request Log -->
|
||||
<!-- =============================================================== -->
|
||||
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure Request Log -->
|
||||
<!-- =========================================================== -->
|
||||
<Ref id="Handlers">
|
||||
<Call name="addHandler">
|
||||
<Arg>
|
||||
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
|
||||
<Set name="requestLog">
|
||||
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
|
||||
<Set name="filename"><SystemProperty name="jetty.home" default="."/>/logs/yyyy_mm_dd.request.log</Set>
|
||||
<Set name="filenameDateFormat">yyyy_MM_dd</Set>
|
||||
<Set name="retainDays">90</Set>
|
||||
<Set name="append">true</Set>
|
||||
<Set name="extended">false</Set>
|
||||
<Set name="logCookies">false</Set>
|
||||
<Set name="LogTimeZone">GMT</Set>
|
||||
</New>
|
||||
</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
</Ref>
|
||||
|
||||
</Configure>
|
|
@ -5,8 +5,13 @@
|
|||
<!-- Configure the Jetty Server -->
|
||||
<!-- -->
|
||||
<!-- Documentation of this file format can be found at: -->
|
||||
<!-- http://docs.codehaus.org/display/JETTY/jetty.xml -->
|
||||
<!-- http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax -->
|
||||
<!-- -->
|
||||
<!-- Additional configuration files are available in $JETTY_HOME/etc -->
|
||||
<!-- and can be mixed in. For example: -->
|
||||
<!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
|
||||
<!-- -->
|
||||
<!-- See start.ini file for the default configuraton files -->
|
||||
<!-- =============================================================== -->
|
||||
|
||||
|
||||
|
@ -23,8 +28,6 @@
|
|||
</New>
|
||||
</Set>
|
||||
|
||||
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Set connectors -->
|
||||
<!-- =========================================================== -->
|
||||
|
@ -44,26 +47,6 @@
|
|||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
<!-- To add a HTTPS SSL connector -->
|
||||
<!-- mixin jetty-ssl.xml: -->
|
||||
<!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
<!-- To add a HTTP blocking connector -->
|
||||
<!-- mixin jetty-bio.xml: -->
|
||||
<!-- java -jar start.jar etc/jetty.xml etc/jetty-bio.xml -->
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
<!-- To allow Jetty to be started from xinetd -->
|
||||
<!-- mixin jetty-xinetd.xml: -->
|
||||
<!-- java -jar start.jar etc/jetty.xml etc/jetty-xinetd.xml -->
|
||||
<!-- -->
|
||||
<!-- See jetty-xinetd.xml for further instructions. -->
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Set handler Collection Structure -->
|
||||
<!-- =========================================================== -->
|
||||
|
@ -77,95 +60,11 @@
|
|||
<Item>
|
||||
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
|
||||
</Item>
|
||||
</Array>
|
||||
</Set>
|
||||
</New>
|
||||
</Set>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure the deployment manager -->
|
||||
<!-- -->
|
||||
<!-- Sets up 2 monitored dir app providers that are configured -->
|
||||
<!-- to behave in a similaraly to the legacy ContextDeployer -->
|
||||
<!-- and WebAppDeployer from previous versions of Jetty. -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addBean">
|
||||
<Arg>
|
||||
<New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
|
||||
<Set name="contexts">
|
||||
<Ref id="Contexts" />
|
||||
</Set>
|
||||
<Call name="setContextAttribute">
|
||||
<Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg>
|
||||
<Arg>.*/jsp-api-[^/]*\.jar$|.*/jsp-[^/]*\.jar$</Arg>
|
||||
</Call>
|
||||
<!-- Providers of Apps via Context XML files.
|
||||
Configured to behave similar to the legacy ContextDeployer -->
|
||||
<Call name="addAppProvider">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.providers.ContextProvider">
|
||||
<Set name="monitoredDir"><Property name="jetty.home" default="." />/contexts</Set>
|
||||
<Set name="scanInterval">5</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
<!-- Providers of Apps via WAR file existence.
|
||||
Configured to behave similar to the legacy WebAppDeployer -->
|
||||
<Call name="addAppProvider">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
|
||||
<Set name="monitoredDir"><Property name="jetty.home" default="." />/webapps</Set>
|
||||
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
|
||||
<Set name="scanInterval">5</Set>
|
||||
<Set name="contextXmlDir"><Property name="jetty.home" default="." />/contexts</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure Authentication Login Service -->
|
||||
<!-- Realms may be configured for the entire server here, or -->
|
||||
<!-- they can be configured for a specific web app in a context -->
|
||||
<!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
|
||||
<!-- example). -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addBean">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.security.HashLoginService">
|
||||
<Set name="name">Test Realm</Set>
|
||||
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
|
||||
<Set name="refreshInterval">0</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure Request Log -->
|
||||
<!-- Request logs may be configured for the entire server here, -->
|
||||
<!-- or they can be configured for a specific web app in a -->
|
||||
<!-- contexts configuration (see $(jetty.home)/contexts/test.xml -->
|
||||
<!-- for an example). -->
|
||||
<!-- =========================================================== -->
|
||||
<Ref id="RequestLog">
|
||||
<Set name="requestLog">
|
||||
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
|
||||
<Set name="filename"><SystemProperty name="jetty.home" default="."/>/logs/yyyy_mm_dd.request.log</Set>
|
||||
<Set name="filenameDateFormat">yyyy_MM_dd</Set>
|
||||
<Set name="retainDays">90</Set>
|
||||
<Set name="append">true</Set>
|
||||
<Set name="extended">false</Set>
|
||||
<Set name="logCookies">false</Set>
|
||||
<Set name="LogTimeZone">GMT</Set>
|
||||
</New>
|
||||
</Set>
|
||||
</Ref>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- extra options -->
|
||||
<!-- =========================================================== -->
|
||||
|
|
|
@ -63,7 +63,7 @@ public class Main
|
|||
private boolean _fromDaemon = false;
|
||||
private final Config _config = new Config();
|
||||
private Set<String> _sysProps = new HashSet<String>();
|
||||
private List<String> _xArgs = new ArrayList<String>();
|
||||
private List<String> _jvmArgs = new ArrayList<String>();
|
||||
|
||||
private String _jettyHome;
|
||||
|
||||
|
@ -86,16 +86,35 @@ public class Main
|
|||
{
|
||||
List<String> arguments = new ArrayList<String>();
|
||||
|
||||
arguments.addAll(loadStartIni()); // Add Arguments from start.ini (if it exists)
|
||||
if (args.length>0)
|
||||
arguments.addAll(Arrays.asList(args)); // Add Arguments on Command Line
|
||||
// do we have any non option args
|
||||
boolean has_args=false;
|
||||
for (String arg : args)
|
||||
has_args|=!arg.startsWith("-");
|
||||
|
||||
// if no non-option args, add the start.ini
|
||||
if (!has_args)
|
||||
arguments.addAll(loadStartIni()); // Add Arguments from start.ini (if it exists)
|
||||
|
||||
// add the command line args
|
||||
for (String arg : args)
|
||||
{
|
||||
if ("%start.ini".equals(arg))
|
||||
{
|
||||
arguments.addAll(loadStartIni());
|
||||
continue;
|
||||
}
|
||||
|
||||
arguments.add(arg);
|
||||
}
|
||||
|
||||
// The XML Configuration Files to initialize with
|
||||
List<String> xmls = new ArrayList<String>();
|
||||
|
||||
// Process the arguments
|
||||
for (String arg : arguments)
|
||||
{
|
||||
if ("--help".equals(arg))
|
||||
|
||||
if ("--help".equals(arg) || "-?".equals(arg))
|
||||
{
|
||||
_showUsage = true;
|
||||
continue;
|
||||
|
@ -148,12 +167,6 @@ public class Main
|
|||
_secure = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (arg.startsWith("-X"))
|
||||
{
|
||||
_xArgs.add(arg);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (arg.startsWith("-D"))
|
||||
{
|
||||
|
@ -173,15 +186,28 @@ public class Main
|
|||
continue;
|
||||
}
|
||||
|
||||
if (arg.startsWith("-"))
|
||||
{
|
||||
_jvmArgs.add(arg);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Is this a Property?
|
||||
else if (arg.indexOf('=') >= 0)
|
||||
if (arg.indexOf('=') >= 0)
|
||||
{
|
||||
String[] assign = arg.split("=",2);
|
||||
|
||||
switch(assign.length)
|
||||
{
|
||||
case 2:
|
||||
this._config.setProperty(assign[0],assign[1]);
|
||||
if ("OPTIONS".equals(assign[0]))
|
||||
{
|
||||
String opts[] = assign[1].split(",");
|
||||
for (String opt : opts)
|
||||
_config.addActiveOption(opt);
|
||||
}
|
||||
else
|
||||
this._config.setProperty(assign[0],assign[1]);
|
||||
break;
|
||||
case 1:
|
||||
this._config.setProperty(assign[0],null);
|
||||
|
@ -189,21 +215,13 @@ public class Main
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// Anything else is considered an XML file.
|
||||
xmls.add(arg);
|
||||
}
|
||||
|
||||
// Special case for OPTIONS property
|
||||
String options = _config.getProperty("OPTIONS");
|
||||
if (options!=null)
|
||||
{
|
||||
String ids[] = options.split(",");
|
||||
for (String id : ids)
|
||||
_config.addActiveOption(id);
|
||||
}
|
||||
|
||||
start(xmls);
|
||||
}
|
||||
|
@ -278,61 +296,81 @@ public class Main
|
|||
|
||||
while ((line = buf.readLine()) != null)
|
||||
{
|
||||
if (line.startsWith("@OPTIONS@"))
|
||||
if (line.endsWith("@") && line.indexOf('@')!=line.lastIndexOf('@'))
|
||||
{
|
||||
List<String> sortedOptions = new ArrayList<String>();
|
||||
sortedOptions.addAll(_config.getSectionIds());
|
||||
Collections.sort(sortedOptions);
|
||||
String indent=line.substring(0,line.indexOf("@"));
|
||||
String info=line.substring(line.indexOf('@'),line.lastIndexOf('@'));
|
||||
|
||||
System.err.println(" Available OPTIONS: ");
|
||||
if (info.equals("@OPTIONS"))
|
||||
{
|
||||
List<String> sortedOptions = new ArrayList<String>();
|
||||
sortedOptions.addAll(_config.getSectionIds());
|
||||
Collections.sort(sortedOptions);
|
||||
|
||||
for (String option : sortedOptions)
|
||||
{
|
||||
System.err.println(" [" + option + "]");
|
||||
}
|
||||
}
|
||||
else if (line.startsWith("@CONFIGS@"))
|
||||
{
|
||||
System.err.println(" Configurations Available in ${jetty.home}/etc/: ");
|
||||
File etc = new File(System.getProperty("jetty.home","."),"etc");
|
||||
if (!etc.exists())
|
||||
{
|
||||
System.err.println(" Unable to find " + etc);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!etc.isDirectory())
|
||||
{
|
||||
System.err.println(" Unable list dir " + etc);
|
||||
continue;
|
||||
}
|
||||
|
||||
File configs[] = etc.listFiles(new FileFilter()
|
||||
{
|
||||
public boolean accept(File path)
|
||||
for (String option : sortedOptions)
|
||||
{
|
||||
if (!path.isFile())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
String name = path.getName().toLowerCase();
|
||||
return (name.startsWith("jetty") && name.endsWith(".xml"));
|
||||
if ("*".equals(option) || option.trim().length()==0)
|
||||
continue;
|
||||
System.out.print(indent);
|
||||
System.out.println(option);
|
||||
}
|
||||
});
|
||||
|
||||
List<File> configFiles = new ArrayList<File>();
|
||||
configFiles.addAll(Arrays.asList(configs));
|
||||
Collections.sort(configFiles);
|
||||
|
||||
for (File configFile : configFiles)
|
||||
}
|
||||
else if (info.equals("@CONFIGS"))
|
||||
{
|
||||
System.err.println(" etc/" + configFile.getName());
|
||||
File etc = new File(System.getProperty("jetty.home","."),"etc");
|
||||
if (!etc.exists() || !etc.isDirectory())
|
||||
{
|
||||
System.out.print(indent);
|
||||
System.out.println("Unable to find/list " + etc);
|
||||
continue;
|
||||
}
|
||||
|
||||
File configs[] = etc.listFiles(new FileFilter()
|
||||
{
|
||||
public boolean accept(File path)
|
||||
{
|
||||
if (!path.isFile())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
String name = path.getName().toLowerCase();
|
||||
return (name.startsWith("jetty") && name.endsWith(".xml"));
|
||||
}
|
||||
});
|
||||
|
||||
List<File> configFiles = new ArrayList<File>();
|
||||
configFiles.addAll(Arrays.asList(configs));
|
||||
Collections.sort(configFiles);
|
||||
|
||||
for (File configFile : configFiles)
|
||||
{
|
||||
System.out.print(indent);
|
||||
System.out.print("etc/");
|
||||
System.out.println(configFile.getName());
|
||||
}
|
||||
}
|
||||
else if (info.equals("@STARTINI"))
|
||||
{
|
||||
List<String> ini = loadStartIni();
|
||||
if (ini!=null && ini.size()>0)
|
||||
{
|
||||
for (String a : ini)
|
||||
{
|
||||
System.out.print(indent);
|
||||
System.out.println(a);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
System.out.print(indent);
|
||||
System.out.println("none");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
System.err.println(line);
|
||||
System.out.println(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -380,7 +418,8 @@ public class Main
|
|||
|
||||
if (invoked_class == null)
|
||||
{
|
||||
usage();
|
||||
System.err.println("Usage: java -jar start.jar [options] [properties] [configs]");
|
||||
System.err.println(" java -jar start.jar --help # for more information");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -516,7 +555,7 @@ public class Main
|
|||
return;
|
||||
}
|
||||
|
||||
if (_xArgs.size()>0 || _sysProps.size()>0)
|
||||
if (_jvmArgs.size()>0 || _sysProps.size()>0)
|
||||
System.err.println("WARNING: System properties and/or JVM args set. Consider using --dry-run or --exec");
|
||||
|
||||
// Set current context class loader to what is selected.
|
||||
|
@ -609,18 +648,18 @@ public class Main
|
|||
{
|
||||
StringBuilder cmd = new StringBuilder();
|
||||
cmd.append(findJavaBin());
|
||||
for (String x:_xArgs)
|
||||
for (String x:_jvmArgs)
|
||||
cmd.append(' ').append(x);
|
||||
cmd.append(" -Djetty.home=").append(_jettyHome);
|
||||
for (String p:_sysProps)
|
||||
{
|
||||
cmd.append(" -D").append(p);
|
||||
cmd.append(" -D").append(p);
|
||||
String v=System.getProperty(p);
|
||||
if (v!=null)
|
||||
if (v!=null && v.length()>0)
|
||||
cmd.append('=').append(v);
|
||||
}
|
||||
cmd.append(" -cp ").append(classpath.toString());
|
||||
cmd.append(' ').append(_config.getMainClassname());
|
||||
cmd.append(" -cp ").append(classpath.toString());
|
||||
cmd.append(" ").append(_config.getMainClassname());
|
||||
for (String xml : xmls)
|
||||
{
|
||||
cmd.append(' ').append(xml);
|
||||
|
|
|
@ -139,13 +139,17 @@ $(jetty.home)/lib/setuid/**
|
|||
$(jetty.home)/lib/jetty-policy-$(version).jar ! available org.eclipse.jetty.policy.JettyPolicy
|
||||
$(jetty.home)/lib/policy/jetty.policy
|
||||
|
||||
[All,client]
|
||||
[All,Client,client]
|
||||
$(jetty.home)/lib/jetty-http-$(version).jar ! available org.eclipse.jetty.http.HttpParser
|
||||
$(jetty.home)/lib/jetty-client-$(version).jar ! available org.eclipse.jetty.client.HttpClient
|
||||
|
||||
[Client]
|
||||
$(jetty.home)/lib/jetty-http-$(version).jar ! available org.eclipse.jetty.http.HttpParser
|
||||
|
||||
[All,websocket]
|
||||
$(jetty.home)/lib/jetty-websocket-$(version).jar ! available org.eclipse.jetty.websocket.WebSocket
|
||||
|
||||
|
||||
|
||||
# Add ext if it exists
|
||||
[Server,All,default,ext]
|
||||
$(jetty.home)/lib/ext/**
|
||||
|
|
|
@ -1,58 +1,60 @@
|
|||
Usage: java -jar start.jar [options] [properties] [configs]
|
||||
Usage: java -jar start.jar [options...] [properties...] [configs...]
|
||||
|
||||
The start.jar builds a classpath and executes a main java class with
|
||||
a classloader built from that classpath. By default the start.jar
|
||||
mechanism is configured to start the jetty server, but it can be
|
||||
configured to start any java main class.
|
||||
|
||||
Common Options:
|
||||
Command Line Options:
|
||||
--help This help / usage information.
|
||||
--version Print the version information for Jetty, then exit.
|
||||
--stop Stop the running Jetty instance.
|
||||
|
||||
Advanced Options:
|
||||
|
||||
--list-options List available options, then exit.
|
||||
(see OPTION property in section below)
|
||||
|
||||
--version Print the version information for Jetty and
|
||||
dependent jars, then exit.
|
||||
|
||||
--list-options List the details of each classpath OPTION
|
||||
|
||||
--dry-run Print the command line that the start.jar generates,
|
||||
then exit. This may be used to generate command lines
|
||||
when the start.ini includes -X or -D arguments.
|
||||
On unix, the resulting command line can be run with
|
||||
eval $(java -jar start.jar --dry-run)
|
||||
This is more efficient than the --exec option, which
|
||||
creates a second JVM instance
|
||||
|
||||
--exec Run the generated command line (see --dry-run) in
|
||||
a sub processes. This can be used when start.ini
|
||||
contains -X or -D arguments, but creates an extra
|
||||
JVM instance.
|
||||
|
||||
|
||||
--secure Enable Security:
|
||||
* JVM Security Manager
|
||||
* Security Policies
|
||||
* Secure Logging
|
||||
* Audit Logging
|
||||
|
||||
If the file start.ini exists in the working directory, then it's each line
|
||||
of it's contents is prepended to the as an argument to the command line.
|
||||
|
||||
--stop Stop the running Jetty instance.
|
||||
|
||||
|
||||
System Properties:
|
||||
These are set with a command line like "java -Dname=value ..." and are
|
||||
accessible via the java.lang.System#getProperty(String) API.
|
||||
Some key system properties are:
|
||||
|
||||
org.eclipse.jetty.util.log.class=[class]
|
||||
A Low Level Jetty Logger Implementation to use
|
||||
(default: org.eclipse.jetty.util.log.Slf4jLog)
|
||||
|
||||
org.eclipse.jetty.util.log.DEBUG=[boolean]
|
||||
Debug logging for the stderr and javautil Loggers. Slf4j
|
||||
and other loggers must be separately configured for debug.
|
||||
(default: false)
|
||||
|
||||
org.eclipse.jetty.util.log.IGNORED=[boolean]
|
||||
Ignored exceptions are logged, independent of DEBUG settings
|
||||
(default: false)
|
||||
|
||||
Start Properties:
|
||||
com.sun.management.jmxremote
|
||||
Enable remote JMX management in Sun JVMS.
|
||||
|
||||
|
||||
Properties:
|
||||
These are set with a command line like "java -jar start.jar name=value"
|
||||
and only affect the start mechanism. Some of these are defined in the
|
||||
default start.config and will not be available if another configuration
|
||||
|
@ -61,29 +63,47 @@ Start Properties:
|
|||
path=[directory]
|
||||
An additional class path element to add to the started class path. Typically
|
||||
this is used to add directories of classes and/or resources
|
||||
|
||||
lib=[directory]
|
||||
An additional library directory to add to the started class path. This must
|
||||
be a (deep) directory of jars
|
||||
|
||||
STOP.PORT=[number]
|
||||
The port to use to stop the running Jetty server.
|
||||
Required along with STOP.KEY if you want to use the --stop option above.
|
||||
|
||||
STOP.KEY=[alphanumeric]
|
||||
The passphrase defined to stop the server.
|
||||
Requried along with STOP.PORT if you want to use the --stop option above.
|
||||
|
||||
DEBUG=true
|
||||
Enable debug on the start mechanism and sets the
|
||||
org.eclipse.jetty.util.log.stderr.DEBUG system property to true.
|
||||
(default: false)
|
||||
OPTIONS=[option,option,...]
|
||||
Classpath Options to use. By convention, option names starting with capitals
|
||||
will include associated options (eg Server includes jetty-server, jetty-webapp,
|
||||
jetty-deploy, etc). An option starting with a lowercase letter includes
|
||||
just the direct dependencies of the option (eg jsp includes just jetty-jsp
|
||||
module and it's dependencies).
|
||||
(default: "default,*")
|
||||
|
||||
@OPTIONS@
|
||||
OPTIONS=[option,option,...]
|
||||
Enable classpath OPTIONS. Each options represents one or more jars
|
||||
to be added to the classpath. The options are defined in
|
||||
the start.config file and can be listed with --help or --list-options.
|
||||
By convention, options starting with a capital letter (eg Server)
|
||||
are aggregations of other available options. Available OPTIONS:
|
||||
|
||||
Configs:
|
||||
XML Configurations to use.
|
||||
@CONFIGS@
|
||||
@OPTIONS@
|
||||
|
||||
|
||||
Available Configurations:
|
||||
By convention, configuration files are kept in $JETTY_HOME/etc.
|
||||
The known configuration files are:
|
||||
|
||||
@CONFIGS@
|
||||
|
||||
|
||||
Defaults:
|
||||
A start.ini file may be used to specify default arguments to start.jar,
|
||||
which are used if no command line arguments are provided and override
|
||||
the defaults in the start.config file. If arguments are provided on the
|
||||
command line, the special "%start.ini" argument may be used to include
|
||||
the start.ini arguments and merge any OPTIONS. The current start.ini
|
||||
arguments are:
|
||||
|
||||
@STARTINI@
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
|
||||
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure Authentication Login Service -->
|
||||
<!-- Realms may be configured for the entire server here, or -->
|
||||
<!-- they can be configured for a specific web app in a context -->
|
||||
<!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
|
||||
<!-- example). -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addBean">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.security.HashLoginService">
|
||||
<Set name="name">Test Realm</Set>
|
||||
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
|
||||
<Set name="refreshInterval">0</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
</Configure>
|
Loading…
Reference in New Issue