This short tutorial show how you can support inter deployment dependencies on WildFly / JBoss AS 7.
If you have a deployment scenario like this, where you have multiple Enterprise applications which are required to be started up (and shut down) in a certain order:
Then you can specify the deployment dependency using the jboss-all.xml file which is a JBoss custom XML descriptor for EAR archives. The jboss-all.xml file needs to be placed in the META-INF folder of your EAR archive.
Here's for example how to solve the above dependency between the three EAR files:
<jboss umlns="urn:jboss:1.0"> <jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0"> <dependency name="base.ear" /> <dependency name="app2.ear" /> </jboss-deployment-dependencies> </jboss>
<jboss umlns="urn:jboss:1.0"> <jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0"> <dependency name="base.ear" /> </jboss-deployment-dependencies> </jboss>
Using a CLI Batch to guarantee deployment order
The deployment order enforced by jboss-all.xml requires, however, that both EAR files are available to the deployer at the same time. If you are deploying the dependent ear first, when the base ear is still not available your deployment will fail.
In this case, the best option to go is relying on a CLI batch which will be able to deploy both EAR files, whatever is the order used to deploy them:
batch deploy app1.ear deploy app2.ear run-batch