% Deployit JBoass AS Plugin Manual
% 
% January, 2011

-   Preface
-   Introduction
-   JBoss AS Plugin Requirements
-   Supported JBoss AS Versions
-   Supported JBoss Features
-   Known Limitations
-   JBoss AS Runbook
-   JBoss AS Configuration Items (CIs)
    -   JbossasDataSource
    -   JbossasEarMapping
    -   JbossasEjbJarMapping
    -   JbossasPath
    -   JbossasQueue
    -   JbossasResourceMapping
    -   JbossasServer
    -   JbossasTopic
    -   JbossasWarMapping


# 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](http://www.jboss.org/community/wiki/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

-   <ul>
-   <li>
    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}
-   </ul>

\* \* 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
