# Deployit JBoass AS Plugin Manual

# Preface

This manual describes the Deployit JBoss AS Plugin.

# Introduction

The JBoss AS Plugin supports the deployment, re-deployment and undeployment of a deployment package to a JBoss Application Server.

# JBoss AS Plugin Requirements

In addition to the requirements for Deployit, the JBoss AS Plugin has the following additional requirements:

Because the plugin executes its deployment and configuration tasks by connecting to the target host systems and executing Twiddle commands there, the following must be possible:

- creating a connection to the host on which the "deployment manager" is running, using the host's specified connection methods
- starting `_jboss-installation-dir_/bin/twiddle.sh` (Unix) or `twiddle.bat` (Windows) on the target host server under the user Deployit uses to connect to the host (or the SUDO user, if specified)

Further, the following configuration settings must be applied to the JBoss AS instances being managed:

- the DeleteWorkDirOnContextDestroy attribute in `server-profile/deploy/jboss-web.deployer/META-INF/jboss-service.xml` must be set to true
- the ScanEnabled attribute in `_server-profile_/conf/jboss-service.xml` must be set to false

# Supported JBoss AS Versions

The JBoss AS plugin supports the following versions of JBoss AS:

- 4.2
- 5.1

# Supported JBoss Features

- the initial deployment, re- and undeployment of deployment packages to/from JBoss environments
- via the {@link com.xebialabs.deployit.plugin.jbossas.runbook.JbossasDeploymentRunBook JBoss Deployment RunBook}

* * For details of the exact components supported, sequence in which steps are carried out, limitations * etc. please consult the documentation of the appropriate run book.

The JBoss AS Plugin supports the following features:

Concept | Remarks
--- | ---
WAR files | Deploy and undeploy WAR archives.
EAR files | Deploy and undeploy EAR archives.
Topics / Queues | Deploy and undeploy topics and queues.
Datasources | Deploy and undeploy datasources.
Libraries | Deploy and undeploy Java libraries.
Folders | Deploy and undeploy folders.
Configuration files | Deploy and undeploy configuration files.
SQL files | Deploy and undeploy SQL files.
SQL folders | Deploy and undeploy folders containing SQL files.

# Known Limitations

The plugin does not currently support the following:

- installation, maintenance or removal of JBoss installations and profiles.

# JBoss AS Runbook

When the JBoss AS runbook is triggered, the plugin populates the steplist with steps based on the executed task. First, the JBoss AS runbook determines which servers are affected by the pending task. These are all the JBoss AS servers that are a target of one of the deployed items in the deployment or the JBoss AS server that a deployed application is running on in case of an undeploy.

The JBoss AS runbook adds steps in the following order:

- Undeploy EARs
- Undeploy WARs
- Destroy JBoss resources
- Deploy EARs
- Deploy WARs
- Create JBoss resources
- Undeploy libraries from the host
- Undeploy configuration files from the host
- Deploy libraries to the host
- Deploy configuration files to the host

# JBoss AS Configuration Items (CIs)

The JBoss AS Plugin defines configuration items (CIs) needed to deploy to JBoss AS middleware. To get more information about these CIs, use Deployit's command line interface (CLI). See the Deployit Command Line Interface (CLI) Manual for more information.

## JbossasDataSource

Description unavailable

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasDataSource

Properties:

- connectionUrl(STRING): Connection Url
- driverClass(STRING): Driver Class
- jndiName(STRING): Jndi Name
- maxPoolSize(INTEGER): Max Pool Size
- minPoolSize(INTEGER): Min Pool Size
- password(STRING): Password
- useJavaContext(BOOLEAN): Use Java Context
- username(STRING): Username

## JbossasEarMapping

A mapping of an EAR to a JBoss server

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasEarMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- deploymentStrategy(ENUM): Deployment Strategy
  - Values: [ENABLED_HOT_DEPLOYMENT_STRATEGY, DISABLED_HOT_DEPLOYMENT_STRATEGY]
- keyValuePairs(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Key Value Pairs
- placeholderFormat(ENUM): Placeholder Format
  - Values: [SPRING, WINDOWS_SHELL, STARS, NONE]
- virtualHost(STRING): Virtual Host

## JbossasEjbJarMapping

A mapping of an EJB JAR to a JBoss server

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasEjbJarMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- deploymentStrategy(ENUM): Deployment Strategy
  - Values: [ENABLED_HOT_DEPLOYMENT_STRATEGY, DISABLED_HOT_DEPLOYMENT_STRATEGY]
- keyValuePairs(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Key Value Pairs
- mdbListenerPortJndiNameBindings(List<com.xebialabs.deployit.ci.mapping.MdbListenerPortBinding>): Bindings of message driven beans JNDI names to the corresponding listener ports present on the target middleware
- placeholderFormat(ENUM): Placeholder Format
  - Values: [SPRING, WINDOWS_SHELL, STARS, NONE]

## JbossasPath

Description unavailable

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasPath

Properties:

- name(STRING): Name

## JbossasQueue

Description unavailable

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasQueue

Properties:

- name(STRING): Name
- jndiName(STRING): Jndi Name
- maxDepth(INTEGER): Max. depth

## JbossasResourceMapping

Description unavailable

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasResourceMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- sourcePropertyOverrides(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Overrides for properties of the mapping's source. The key is the property name (consult the documentation or run 'describe' in the CLI), the value is the value to set. Only string, integer and enumerable properties can be overridden. Example: Key: redeliveryLimits, Value: 2

## JbossasServer

JBoss Application Server instance

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasServer

Properties:

- home(STRING): Place where JBoss is installed such as /usr/local/jboss-5.1.0.GA.
- host(com.xebialabs.deployit.ci.Host): Host on which the JBoss server is running.
- name(STRING): Name of the JBoss server instance, e.g. default or minimal.
- startCommand(STRING): Path to the script that should be executed to start the JBoss server in the background
- version(ENUM): Version of the JBoss server.
  - Values: [JBOSSAS_40, JBOSSAS_50, JBOSSAS_60, JBOSSAS_UNKNOWN]
- ajpPort(INTEGER): AJP Port for the JBoss Server, default is 8009
- controlPort(INTEGER): ControlPort of the JBoss Server, default is 1099 for JBoss 5, 1090 for JBoss 6+
- deployDirectories(List<com.xebialabs.deployit.plugin.jbossas.ci.JbossasPath>): Deploy Directories
- deploymentCompletionWaitTime(INTEGER): Estimated time in miliseconds to wait for the deployment completion.
- restartCommand(STRING): Command that should be executed to restart the JBoss server.
- stopCommand(STRING): Command that should be executed to stop the JBoss server.
- strategy(ENUM): Strategy
  - Values: [RESTART, STOP_START]

## JbossasTopic

Description unavailable

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasTopic

Properties:

- name(STRING): Name
- jndiName(STRING): Jndi Name
- maxDepth(INTEGER): Max. depth

## JbossasWarMapping

A mapping of a WAR to a JBoss server

Type: com.xebialabs.deployit.plugin.jbossas.ci.JbossasWarMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- contextRoot(STRING): Context root to deploy to
- deploymentStrategy(ENUM): Deployment Strategy
  - Values: [ENABLED_HOT_DEPLOYMENT_STRATEGY, DISABLED_HOT_DEPLOYMENT_STRATEGY]
- ejbReferences(List<com.xebialabs.deployit.ci.mapping.EjbReference>): Specifies the mapping from ejb reference jndi names and locals used in the web.xml to bean jndi names available in middleware
- keyValuePairs(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Key Value Pairs
- placeholderFormat(ENUM): Placeholder Format
  - Values: [SPRING, WINDOWS_SHELL, STARS, NONE]
- resourceEnvironmentEntryReferences(List<com.xebialabs.deployit.ci.mapping.ResourceReference>): Specifies the mapping from resource environment references jndi names and types used in the web.xml to resource references jndi names available in middleware
- resourceReferences(List<com.xebialabs.deployit.ci.mapping.ResourceReference>): Specifies the mapping from resource references jndi names and types used in the web.xml to resource references jndi names available in middleware
- virtualHost(STRING): Virtual host to deploy to