Class WebAppProvider
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.deploy.providers.ScanningAppProvider
org.eclipse.jetty.deploy.providers.WebAppProvider
- All Implemented Interfaces:
AppProvider
,Container
,Destroyable
,Dumpable
,Dumpable.DumpableContainer
,LifeCycle
@ManagedObject("Provider for start-up deployement of webapps based on presence in directory")
public class WebAppProvider
extends ScanningAppProvider
The webapps directory scanning provider.
This provider scans one or more directories (typically "webapps") for contexts to deploy, which may be:
- A standard WAR file (must end in ".war")
- A directory containing an expanded WAR file
- A directory containing static content
- An XML descriptor in
XmlConfiguration
format that configures aContextHandler
instance
To avoid double deployments and allow flexibility of the content of the scanned directories, the provider implements some heuristics to ignore some files found in the scans:
- Hidden files (starting with ".") are ignored
- Directories with names ending in ".d" are ignored
- If a directory and a WAR file exist ( eg foo/ and foo.war) then the directory is assumed to be the unpacked WAR and only the WAR is deployed (which may reused the unpacked directory)
- If a directory and a matching XML file exist ( eg foo/ and foo.xml) then the directory is assumed to be an unpacked WAR and only the XML is deployed (which may used the directory in it's configuration)
- If a WAR file and a matching XML exist (eg foo.war and foo.xml) then the WAR is assumed to be configured by the XML and only the XML is deployed.
For XML configured contexts, the ID map will contain a reference to the Server
instance called "Server" and
properties for the webapp file as "jetty.webapp" and directory as "jetty.webapps".
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopException
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateContextHandler
(App app) Create a ContextHandler for an Appprotected void
protected void
fileChanged
(String filename) protected void
fileRemoved
(String filename) String[]
Get the defaultsDescriptor.Get the user supplied Work Directory.protected void
initializeContextPath
(ContextHandler context, String contextName, boolean stripExtension) protected void
boolean
Get the extractWars.boolean
Get the parentLoaderPriority.void
setConfigurationClasses
(String[] configurations) void
setConfigurationManager
(ConfigurationManager configurationManager) Set the configurationManager.void
setDefaultsDescriptor
(String defaultsDescriptor) Set the defaultsDescriptor.void
setExtractWars
(boolean extractWars) Set the extractWars.void
setParentLoaderPriority
(boolean parentLoaderPriority) Set the parentLoaderPriority.void
setTempDir
(File directory) Set the Work directory where unpacked WAR files are managed from.Methods inherited from class org.eclipse.jetty.deploy.providers.ScanningAppProvider
addScannerListener, createApp, doStart, doStop, exists, getDeployedApps, getDeploymentManager, getMonitoredDirName, getMonitoredDirResource, getMonitoredResources, getScanInterval, isDeferInitialScan, isUseRealPaths, scan, setDeferInitialScan, setDeploymentManager, setFilenameFilter, setMonitoredDirectories, setMonitoredDirName, setMonitoredDirResource, setMonitoredResources, setScanInterval, setUseRealPaths, toString
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListeners
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
-
Constructor Details
-
WebAppProvider
public WebAppProvider()
-
-
Method Details
-
isExtractWars
Get the extractWars.- Returns:
- the extractWars
-
setExtractWars
public void setExtractWars(boolean extractWars) Set the extractWars.- Parameters:
extractWars
- the extractWars to set
-
isParentLoaderPriority
Get the parentLoaderPriority.- Returns:
- the parentLoaderPriority
-
setParentLoaderPriority
public void setParentLoaderPriority(boolean parentLoaderPriority) Set the parentLoaderPriority.- Parameters:
parentLoaderPriority
- the parentLoaderPriority to set
-
getDefaultsDescriptor
Get the defaultsDescriptor.- Returns:
- the defaultsDescriptor
-
setDefaultsDescriptor
Set the defaultsDescriptor.- Parameters:
defaultsDescriptor
- the defaultsDescriptor to set
-
getConfigurationManager
-
setConfigurationManager
Set the configurationManager.- Parameters:
configurationManager
- the configurationManager to set
-
setConfigurationClasses
- Parameters:
configurations
- The configuration class names.
-
getConfigurationClasses
@ManagedAttribute("configuration classes for webapps to be processed through") public String[] getConfigurationClasses() -
setTempDir
Set the Work directory where unpacked WAR files are managed from.Default is the same as the
java.io.tmpdir
System Property.- Parameters:
directory
- the new work directory
-
getTempDir
@ManagedAttribute("temp directory for use, null if no user set temp directory") public File getTempDir()Get the user supplied Work Directory.- Returns:
- the user supplied work directory (null if user has not set Temp Directory yet)
-
initializeWebAppContextDefaults
-
createContextHandler
Description copied from interface:AppProvider
Create a ContextHandler for an App- Parameters:
app
- The App- Returns:
- A ContextHandler
- Throws:
IOException
- if unable to create contextException
- if unable to create context
-
initializeContextPath
protected void initializeContextPath(ContextHandler context, String contextName, boolean stripExtension) -
fileChanged
- Overrides:
fileChanged
in classScanningAppProvider
- Throws:
Exception
-
fileAdded
- Overrides:
fileAdded
in classScanningAppProvider
- Throws:
Exception
-
fileRemoved
- Overrides:
fileRemoved
in classScanningAppProvider
- Throws:
Exception
-