2.6. Hot Deployment
Hot deployment in JBoss Enterprise Application Platform 5 is controlled by the
Profile
implementations associated with the ProfileService
. The HDScanner
bean deployed via the deploy/hdscanner-jboss-beans.xml
MC deployment, queries the profile service for changes in application directory contents and redeploys updated content, undeploys removed content, and adds new deployment content to the current server profile via the ProfileService
.
If you want to disable hot deployment, temporarily or permanently, use either of the following methods. The second method is best used if you are disabling hot deployment only temporarily, since it's the easiest to undo.
- Remove the
hdscanner-jboss-beans.xml
file from deployment; - Edit the
hdscanner-jboss-beans.xml
file, add thescanEnabled
attribute (if it's not already present)and set its value tofalse
.
Below is an extract of a
hdscanner-jboss-beans.xml
file in which hot deployment has been disabled.
<?xml version="1.0" encoding="UTF-8"?> <!-- Hot deployment scanning $Id: hdscanner-jboss-beans.xml 98983 2010-01-04 13:35:41Z emuckenhuber $ --> <deployment xmlns="urn:jboss:bean-deployer:2.0"> <!-- Hotdeployment of applications --> <bean name="HDScanner" class="org.jboss.system.server.profileservice.hotdeploy.HDScanner"> <property name="deployer"><inject bean="ProfileServiceDeployer"/></property> <property name="profileService"><inject bean="ProfileService"/></property> <property name="scanPeriod">5000</property> <property name="scanThreadName">HDScanner</property> <property name="scanEnabled">false</property> </bean> ...(snip)... </deployment>
2.6.1. Adding a Custom Deploy Folder
JBoss Enterprise Application Platform, by default, looks for deployments under the
<JBOSS_HOME>/jboss-as/server/<PROFILE>/deploy
folder. However you can configure the server to even include your custom folder for scanning deployments. This can be done by configuring the BootstrapProfileFactory
MC bean in <JBOSS_HOME>/jboss-as/server/<PROFILE>/conf/bootstrap/profile.xml
file. The applicationURIs property of the BootstrapProfileFactory
accepts a list of URLs which will be scanned for applications. You can add your custom deploy folder to this list. For example, if you want /home/me/myapps
to be scanned for deployments, then you can add the following:
<bean name="BootstrapProfileFactory" class="org.jboss.system.server.profileservice.repository. StaticProfileFactory"> ... <property name="applicationURIs"> <list elementClass="java.net.URI"> <value>${jboss.server.home.url}deploy</value> <value>file:///home/me/myapps</value> </list> ...
Important
Modifying the
<JBOSS_HOME>/jboss-as/server/<PROFILE>/conf/bootstrap/profile.xml
requires a server restart, for the changes to take effect.
For performance reasons, adding a new deployment folder to the
BootstrapProfileFactory
also requires the same URL to be added to the VFSCache
MC bean configuration in <JBOSS_HOME>/jboss-as/server/<PROFILE>/conf/bootstrap/vfs.xml
. For example:
<bean name="VFSCache"> ... <property name="permanentRoots"> <map keyClass="java.net.URL" valueClass="org.jboss.virtual.spi.ExceptionHandler"> ... <entry> <key>file:///home/me/myapps</key> <value><inject bean="VfsNamesExceptionHandler"/></value> </entry> </map> </property> ...
Important
Not adding the custom deployment folder to
VFSCache
might result in growing disk space usage by the server, over a period of time.