JBoss AS Plugin
This topic describes the Deploy JBoss Application Server (AS) plugin that adds the capability to manage deployments and resources on a JBoss Application Server.
It can be used to deploy and undeploy application artifacts, data sources, and other JMS resources. You can extend the plugin to support more deployment options or management of new artifacts and resources on JBoss Application Server.
For more information, see JBoss Application Server Plugin Reference.
Features
- Deploy application artifacts:
- Enterprise application (EAR)
- Web application (WAR)
- Deploy JBoss-specific artifacts:
- Service Archive (SAR)
- Resource Archive (RAR)
- Hibernate Archive (HAR)
- Aspect archive (AOP)
- Deploy resources:
- Datasource
- JMS Queue
- JMS Topic
- Discover middleware containers
JBoss AS 7+ Support
This plugin now includes enhanced support for JBoss Application Server 7+ (including WildFly) while maintaining backward compatibility with legacy versions (JBoss AS 4, 5, 6).

Key Improvements for JBoss AS 7+
- CLI-based inspection and management: Uses JBoss CLI instead of legacy twiddle commands for modern servers.
- Enhanced server control: Added proper start/stop control tasks with health checks and status validation.
- Improved deployment validation: Validates deployment status instead of relying on startup failure detection.
- ServerV7 support: Automatic detection and handling of JBoss AS 7+ servers with CLI-based inspection.
- JBoss AS 7+/WildFly: Uses modern deployment path (
{home}/standalone/deployments) and CLI-based management, unlike previous versions (JBoss AS 4, 5, 6) that use legacy deployment paths ({home}/server/{server-name}/deploy) and twiddle-based management. Server name configuration is not required for JBoss AS 7+ servers.
For JBoss AS 7+ and WildFly deployments, consider using the JBoss Domain plugin for advanced features like domain mode support and enhanced CLI management.
Use in Deployment Packages
This is a sample deployit-manifest.xml file that can be used to create a deployment package. It contains declarations for a jbossas.Ear, a jbossas.DataSourceSpec, and JMS resources.
<?xml version="1.0" encoding="UTF-8"?>
<udm.DeploymentPackage version="1.0" application="SampleApp">
<deployables>
<jbossas.QueueSpec name="testQueue">
<jndiName>jms/testQueue</jndiName>
</jbossas.QueueSpec>
<jbossas.ConfigurationFolder name="testConfigFolder" file="testConfigFolder/">
<scanPlaceholders>true</scanPlaceholders>
</jbossas.ConfigurationFolder>
<jbossas.TopicSpec name="testTopic">
<jndiName>jms/testTopic</jndiName>
</jbossas.TopicSpec>
<jbossas.TransactionalDatasourceSpec name="testDatasource">
<jndiName>jdbc/sampleDatasource</jndiName>
<userName>{{DATABASE_USERNAME}}</userName>
<password>{{DATABASE_PASSWORD}}</password>
<connectionUrl>jdbc:mysql://localhost/test</connectionUrl>
<driverClass>com.mysql.jdbc.Driver</driverClass>
<connectionProperties />
</jbossas.TransactionalDatasourceSpec>
<jbossas.ConfigurationFile name="testConfigFiles" file="testConfigFiles/testConfigFile.xml">
<scanPlaceholders>true</scanPlaceholders>
</jbossas.ConfigurationFile>
<jee.Ear name="PetClinic" file="PetClinic/PetClinic.ear">
<scanPlaceholders>false</scanPlaceholders>
</jee.Ear>
</deployables>
</udm.DeploymentPackage>
Deploying Applications
By default, Deploy deploys the application artifacts and resource specifications, datasource, queues, topics etc. to the deploy directory in the server configuration. If the server configuration is set to default, which is the default value for server name, the artifact is copied to {home}/server/default/deploy. Also, the server is stopped before copying the artifact and then started again. These configurations are customizable to suit specific scenarios.

Improved Server Reliability and Control
The plugin now provides enhanced server management to reduce deployment failures and improve operational visibility:
- Automatic health monitoring: Verifies server status before and after deployments to prevent failed operations
- Reduced downtime: Proper server lifecycle management ensures clean starts and stops

Creating JMS Resources
When creating JMS resources such as JMS queues and JMS topics for JBoss Application Server 6, only the JNDI name is used. Other properties such as RedeliveryDelay, MaxDeliveryAttempts, etc. are not used, even if they are defined and set on CI in synthetic.xml. You can define these properties by editing the global server configuration at %JBOSS_HOME%/server/<configuration>/deploy/hornetq/hornetq-jms.xml.