# This file controls what file are to be put on classpath or command line.
#
# Format is as follows:
#
# Each line contains entry in the format:
#
#	SUBJECT [ [!] CONDITION [AND|OR] ]*
# 
# where SUBJECT: 
#	ends with ".class" is the Main class to run.
#	ends with ".xml" is a configuration file for the command line
#	ends with "/" is a directory from which to add all jar and zip files. 
#	ends with "/*" is a directory from which to add all unconsidered jar and zip files.
#	ends with "/**" is a directory from which to recursively add all unconsidered jar and zip files.
#	Containing = are used to assign system properties.
#	Containing ~= are used to assign start properties.
#	Containing /= are used to assign a canonical path.
#	all other subjects are treated as files to be added to the classpath.
#
# ${name} is expanded to a start property
# $(name) is expanded to either a start property or a system property. 
# The start property ${version} is defined as the version of the start.jar
#
# Files starting with "/" are considered absolute, all others are relative to
# the home directory.
#
# CONDITION is one of:
#	always
#	never
#	available classname	# true if class on classpath
#	property name		# true if set as start property
#	system	name		# true if set as system property
#	exists file		# true if file/dir exists
#	java OPERATOR version	# java version compared to literal
#	nargs OPERATOR number	# number of command line args compared to literal
#	OPERATOR := one of "<",">","<=",">=","==","!="
#
# CONTITIONS can be combined with AND OR or !, with AND being the assume
# operator for a list of CONDITIONS.
#
# Classpath operations are evaluated on the fly, so once a class or jar is
# added to the classpath, subsequent available conditions will see that class.
#
# The configuration file may be divided into sections with option names like:
# [ssl,default]
#
# Clauses after a section header will only be included if they match one of the tags in the 
# options property.	By default options are set to "default,*" or the OPTIONS property may
# be used to pass in a list of tags, eg. :
#
#	java -jar start.jar OPTIONS=jetty,jsp,ssl
#
# The tag '*' is always appended to the options, so any section with the * tag is always 
# applied.
#

# add a property defined classpath
${path}.path					property path

# add a property defined library directory
${lib}/**					exists ${lib}

# Try different settings of jetty.home until the start.jar is found.
jetty.home=.					! exists $(jetty.home)/start.jar 
jetty.home=..					! exists $(jetty.home)/start.jar 
jetty.home=jetty-distribution/src/main/resources	! exists $(jetty.home)/start.jar 
jetty.home=../jetty-distribution/src/main/resources	! exists $(jetty.home)/start.jar 
jetty.home=.					! exists $(jetty.home)/start.jar
jetty.home/=$(jetty.home)			exists $(jetty.home)/start.jar

# The main class to run
org.eclipse.jetty.xml.XmlConfiguration.class
${start.class}.class				property start.class

# The default configuration files
$(jetty.home)/etc/jetty.xml			nargs == 0
./jetty-server/src/main/config/etc/jetty.xml	nargs == 0 AND ! exists $(jetty.home)/etc/jetty.xml

# Default OPTIONS if not specified on the command line
OPTIONS~=default,*				! property OPTIONS

# Add a resources directory if it is there
[All,resources,default]
$(jetty.home)/resources/
		
# Add jetty modules
[*]
$(jetty.home)/lib/jetty-util-$(version).jar			! available org.eclipse.jetty.util.StringUtil
$(jetty.home)/lib/jetty-io-$(version).jar			! available org.eclipse.jetty.io.Buffer

[Server,All,xml,default]
$(jetty.home)/lib/jetty-xml-$(version).jar			! available org.eclipse.jetty.xml.XmlParser
	 
[Server,All,server,default]
$(jetty.home)/lib/servlet-api-3.0.jar				! available javax.servlet.ServletContext
$(jetty.home)/lib/jetty-http-$(version).jar			! available org.eclipse.jetty.http.HttpParser
$(jetty.home)/lib/jetty-continuation-$(version).jar		! available org.eclipse.jetty.continuation.Continuation
$(jetty.home)/lib/jetty-server-$(version).jar			! available org.eclipse.jetty.server.Server
						
[Server,All,security,default]
$(jetty.home)/lib/jetty-security-$(version).jar			! available org.eclipse.jetty.security.LoginService
							
[Server,All,servlet,default]
$(jetty.home)/lib/servlet-api-3.0.jar				! available javax.servlet.ServletContext
$(jetty.home)/lib/jetty-servlet-$(version).jar			! available org.eclipse.jetty.servlet.ServletHandler

[servlets]
$(jetty.home)/lib/jetty-servlets-$(version).jar			! available org.eclipse.jetty.servlets.MultiPartFilter
				
[Server,All,webapp,default]
$(jetty.home)/lib/jetty-webapp-$(version).jar			! available org.eclipse.jetty.webapp.WebAppContext
					
[Server,All,deploy,default]
$(jetty.home)/lib/jetty-deploy-$(version).jar			! available org.eclipse.jetty.deploy.ContextDeployer
		
[All,rewrite]
$(jetty.home)/lib/jetty-rewrite-$(version).jar			! available org.eclipse.jetty.rewrite.handler.RewriteHandler

[All,jmx]
$(jetty.home)/lib/jetty-jmx-$(version).jar			! available org.eclipse.jetty.jmx.MBeanContainer
			
[All,ajp]
$(jetty.home)/lib/jetty-ajp-$(version).jar			! available org.eclipse.jetty.ajp.Ajp13Connection	
			
[All,plus,jndi]
$(jetty.home)/lib/jetty-jndi-${version}.jar			! available org.eclipse.jetty.jndi.ContextFactory
$(jetty.home)/lib/jetty-plus-${version}.jar			! available org.eclipse.jetty.plus.jndi.NamingEntry
$(jetty.home)/lib/jndi/**					exists $(jetty.home)/lib/jndi 

[All,jaas]
$(jetty.home)/lib/jetty-jaas-${version}.jar			! available org.eclipse.jetty.jaas.JAASLoginService

[All,annotations]
$(jetty.home)/lib/jetty-annotations-$(version).jar                                      ! available org.eclipse.jetty.annotations.AnnotationParser
$(jetty.home)/lib/annotations/**                                                        exists $(jetty.home)/lib/annotations 
		
[All,setuid]
$(jetty.home)/lib/jetty-setuid-$(version).jar			! available org.eclipse.jetty.setuid.SetUID
$(jetty.home)/lib/setuid/**							
					
[All,policy]
$(jetty.home)/lib/jetty-policy-$(version).jar			! available org.eclipse.jetty.policy.JettyPolicy
					
[All,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
            
[All,proxy]
$(jetty.home)/lib/jetty-proxy-$(version).jar         ! available org.eclipse.jetty.proxy.ConnectHandler
$(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

[All,websocket]
$(jetty.home)/lib/websocket/**
	
[All,overlay,overlays]
$(jetty.home)/lib/jetty-overlay-deployer-$(version).jar		! available org.eclipse.jetty.overlay.OverlayedAppProvider
	
	
# Add ext if it exists
[Server,All,default,ext]	
$(jetty.home)/lib/ext/**

# Add all other sub-directories in /lib/ as options in a dynamic way
[All,=$(jetty.home)/lib/**]	

