JBoss.org Community Documentation
The URLDeploymentScanner
MBean service provides the JBoss hot deployment capability. This service watches one or more URLs for deployable archives and deploys the archives as they appear or change. It also undeploys previously deployed applications if the archive from which the application was deployed is removed. The configurable attributes include:
URLs
: A comma separated list of URL strings for the locations that should be watched for changes. Strings that do not correspond to valid URLs are treated as file paths. Relative file paths are resolved against the server home URL, for example, JBOSS_DIST/server/production
for the production config file set. If a URL represents a file then the file is deployed and watched for subsequent updates or removal. If a URL ends in /
to represent a directory, then the contents of the directory are treated as a collection of deployables and scanned for content that are to be watched for updates or removal. The requirement that a URL end in a /
to identify a directory follows the RFC2518 convention and allows discrimination between collections and directories that are simply unpacked archives.
The default value for the URLs attribute is deploy/
which means that any SARs, EARs, JARs, WARs, RARs, etc. dropped into the server/<name>/deploy
directory will be automatically deployed and watched for updates.
Example URLs include:
deploy/
scans ${jboss.server.url}/deploy/
, which is local or remote depending on the URL used to boot the server
${jboss.server.home.dir}/deploy/ scans ${jboss.server.home.dir)/deploy , which is always local
file:/var/opt/myapp.ear
deploys myapp.ear
from a local location
file:/var/opt/apps/ scans the specified directory
http://www.test.com/netboot/myapp.ear
deploys myapp.ear
from a remote location
http://www.test.com/netboot/apps/ scans the specified remote location using WebDAV. This will only work if the remote http server supports the WebDAV PROPFIND command.
ScanPeriod : The time in milliseconds between runs of the scanner thread. The default is 5000 (5 seconds).
URLComparator
: The class name of a java.util.Comparator
implementation used to specify a deployment ordering for deployments found in a scanned directory. The implementation must be able to compare two java.net.URL
objects passed to its compare method. The default setting is the org.jboss.deployment.DeploymentSorter
class which orders based on the deployment URL suffix. The ordering of suffixes is: deployer
, deployer.xml
, sar
, rar
, ds.xml
, service.xml
, har
, jar
, war
, wsr
, ear
, zip
, bsh
, last
.
An alternate implementation is the org.jboss.deployment.scanner.PrefixDeploymentSorter
class. This orders the URLs based on numeric prefixes. The prefix digits are converted to an int (ignoring leading zeroes), smaller prefixes are ordered ahead of larger numbers. Deployments that do not start with any digits will be deployed after all numbered deployments. Deployments with the same prefix value are further sorted by the DeploymentSorter
logic.
Filter
: The class name of a java.io.FileFilter
implementation that is used to filter the contents of scanned directories. Any file not accepted by this filter will not be deployed. The default is org.jboss.deployment.scanner.DeploymentFilter
which is an implementation that rejects the following patterns:
"#*
", "%*
", ",*
", ".*
", "_$*
", "*#
", "*$
", "*%
", "*.BAK
", "*.old
", "*.orig
", "*.rej
", "*.bak
", "*.sh
", "*,v
", "*~
", ".make.state
", ".nse_depinfo
", "CVS
", "CVS.admin
", "RCS
", "RCSLOG
", "SCCS
", "TAGS
", "core
", "tags
"
RecursiveSearch
: This property indicates whether or not deploy subdirectories are seen to be holding deployable content. If this is false, deploy subdirectories that do not contain a dot (.
) in their name are seen to be unpackaged JARs with nested subdeployments. If true, then deploy subdirectories are just groupings of deployable content. The difference between the two views shows is related to the depth first deployment model JBoss supports. The false setting which treats directories as unpackaged JARs with nested content triggers the deployment of the nested content as soon as the JAR directory is deployed. The true setting simply ignores the directory and adds its content to the list of deployable packages and calculates the order based on the previous filter logic. The default is true.
Deployer
: The JMX ObjectName
string of the MBean that implements the org.jboss.deployment.Deployer
interface operations. The default setting is to use the MainDeployer
created by the bootstrap startup process.