# JBoss Application Server 7+ Plugin Manual

## Preface

This document describes the functionality provided by the JBoss Domain (JBoss AS 7.1+, JBoss EAP 6) plugin.

See the XL Deploy Reference Manual for background information on XL Deploy and deployment concepts.

## Overview

The JBoss Domain plugin is an XL Deploy plugin that adds the capability to manage deployments and resources on JBoss application server 7.1+ or JBoss EAP 6. The plugin has the capability of managing application artifacts, datasource and other JMS resources via the JBoss Cli, and can easily be extended to support more deployment options or management of new artifacts/resources on JBoss AS.

### Features

- Domain and Standalone mode support
- Deployment of application artifacts
  - Enterprise application (EAR)
  - Web application (WAR)
- Deployment of resources
  - Datasource including XA Datasource
  - JMS Queue
  - JMS Topic
- Discovery of Profiles and ServerGroups in Domain

### Requirements

- XL Deploy requirements

  - XL Deploy: version 4.5.0+

- Infrastructural requirements

  - JBoss AS versions: 7.1+
  - JBoss EAP versions: 6.2.0, 6.3.0
  - WildFly: 8.0.x, 8.1.x
  - User credentials for accessing the Host and JBoss CLI.

### Usage in Deployment Packages

The plugin works with XL Deploy's standard deployment package DAR format. Please see the Packaging Manual for more details about the DAR format and the ways to compose one.

The following is a sample `deployit-manifest.xml` file that can be used to create a JBoss AS specific deployment package. It contains declarations for an Ear, a datasource and a couple of JMS resources.

    <?xml version="1.0" encoding="UTF-8"?>
    <udm.DeploymentPackage version="1.0" application="SampleApp">
      <deployables>
        <jbossdm.QueueSpec name="testQueue">
          <jndiName>java:jboss/jms/testQueue</jndiName>
        </jbossdm.QueueSpec>
        <jbossdm.TopicSpec name="testTopic">
          <jndiName>jms/testTopic</jndiName>
        </jbossdm.TopicSpec>
        <jbossdm.DataSourceSpec name="testDatasource">
          <jndiName>java:jboss/jdbc/sampleDatasource</jndiName>
          <driverName>mysql</driverName>
          <username>{{DATABASE_USERNAME}}</username>
          <password>{{DATABASE_PASSWORD}}</password>
          <connectionUrl>jdbc:mysql://localhost/test</connectionUrl>
          <connectionProperties />
        </jbossdm.DataSourceSpec>
        <jee.Ear name="PetClinic" file="PetClinic/PetClinic.ear">
          <scanPlaceholders>false</scanPlaceholders>
        </jee.Ear>
      </deployables>
    </udm.DeploymentPackage>

### Using the deployables and deployeds

The following table describes which deployable/container combinations are possible.

#### Deployable vs. Container table

Deployable | Container | Generated deployed
--- | --- | ---
jee.Ear jbossdm.Ear | jbossdm.Domain jbossdm.StandaloneServer jbossdm.ServerGroup | jbossdm.EarModule
jee.War jbossdm.War | jbossdm.Domain jbossdm.StandaloneServer jbossdm.ServerGroup | jbossdm.WarModule
jee.DataSourceSpec | jbossdm.Domain jbossdm.StandaloneServer jbossdm.Profile | jbossdm.JeeXaDataSource jbossdm.JeeDataSource
jbossdm.XaDataSourceSpec | jbossdm.Domain jbossdm.StandaloneServer jbossdm.Profile | jbossdm.XaDataSource
jbossdm.DataSourceSpec | jbossdm.Domain jbossdm.StandaloneServer jbossdm.Profile | jbossdm.Datasource
jee.QueueSpec jbossdm.QueueSpec | jbossdm.Domain jbossdm.StandaloneServer jbossdm.Profile | jbossdm.Queue
jee.TopicSpec jbossdm.TopicSpec | jbossdm.Domain jbossdm.StandaloneServer jbossdm.Profile | jbossdm.Topic

The following table describes the effect a deployed has on its container.

#### Deployed Actions Table

Deployed | Actions performed for operations
--- | ---
| Create | Destroy | Modify
jbossdm.EarModule jbossdm.WarModule | upload artifact deploy application | undeploy old application version | undeploy old application version deploy new application version
jbossdm.DataSource jbossdm.XaDataSource jbossdm.JeeDataSource jbossdm.JeeXaDataSource | create datasource set connection/datasource properties enable datasource | destroy datasource | destroy datasource create datasource set connection/datasource properties enable datasource
jbossdm.Queue | create Queue | destroy Queue | destroy Queue create modified Queue
jbossdm.Topic | create Topic | destroy Topic | destroy Topic create modified Topic

### Deploying applications

Note that the plugin uses the JBoss CLI to (un)install artifacts and resources. As such, the plugin assumes that the JBoss Domain or Standalone server has already been started. The plugin does not support the starting of the domain or standalone server prior to a deployment.

#### Standalone Mode

Artifacts (war, ear) and resources (datasources, queues, topics, etc) can be targeted to a StandaloneServer.

#### Domain Mode

Artifacts (war, ear) can be targeted to either a Domain or ServerGroup. When targeted to a domain, the artifacts are (un)installed on all server groups defined for the domain. For specific targeting of artifacts to certain server groups, you can define the server groups in your environment.

Resources (datasources, queues, topics, etc) can be targeted to either a Domain or Profile. When targeted to a domain, the resources are (un)installed in the "default" profile. For specific targeting of resources to certain profiles, you can define the profiles in your environment.

### Discovery

The plugin supports the discovery of Profiles and Server Groups in a Domain.

Here is an example CLI script which discovers a sample Domain:

    host = repository.create(factory.configurationItem('Infrastructure/jboss-host', 'overthere.SshHost',
        {'connectionType':'SFTP','address': 'jboss-7','username': 'root','password':'centos','os':'UNIX'}))
    jboss = factory.configurationItem('Infrastructure/jboss-host/jboss-domain', 'jbossdm.Domain',
        {'home':'/opt/jboss/7', 'host':'Infrastructure/jboss-host', 'username':"jbossAdmin", "password":"jboss"})

    taskId = deployit.createDiscoveryTask(jboss)
    deployit.startTaskAndWait(taskId)
    cis = deployit.retrieveDiscoveryResults(taskId)
    deployit.print(cis)

    #discovery just discovers the topology and keeps the configuration items in memory. Save them in the XL Deploy repository
    repository.create(cis)

Few things to note about the above discovery example:

- JBoss Domain has a containment relation with a Host (created under a Host), so the server id has been kept as 'Infrastructure/jboss-host/jboss-domain'

### Extension points

The plugin is designed to be extended through XL Deploy's Plugin API type system and jython. The plugin wraps the JBoss CLI with a jython runtime environment, thus allowing extenders to interact with JBoss and XL Deploy from the script. Note that the jython script is executed on the XL Deploy Server itself and has full access to the following XL Deploy objects :

- deployed: The current deployed object on which the operation has been triggered.
- step: The step object that the script is being executed from. Exposes an overthere remote connection for file manipulation and a method to execute JBoss CLI commands.
- container: The container object to which the deployed is targeted to.
- delta: The delta specification that lead to the script being executed.
- deployedApplication: The entire deployed application.

The plugin associates Create, Modify, Destroy, Noop and Inspect operations received from XL Deploy with jython scripts that need to be executed for the specific operation to be performed.

There also exists an advanced method to extend the plugin, but the implementation of this form of extension needs to be written in the Java programming language and consists of writing so-called `Deployed contributors`, `PlanPreProcessors` and `Contributors`.

Please refer to the Customization Manual for a detailed explanation of the type system and advanced methods of customization of plugins. Also refer to the Overthere documentation for working with remote files.

### Extending the plugin to support JDBC Driver deployment

In this example we will deploy a JDBC driver jar to a Domain or StandaloneServer as a module and register the driver with JBoss datasources subsystem.

Define the deployed and deployable to represent a JDBC Driver

The following synthetic.xml snippet shows the definition of the JDBC Driver deployed. The deployed will be targeted to a Domain or a StandaloneServer. Please refer to the CI reference section of this document to understand the interfaces and class hierarchy of these types.

    <type type="jbossdm.JdbcDriverModule" extends="jbossdm.CliManagedDeployedArtifact"
          deployable-type="jbossdm.JdbcDriver" container-type="jbossdm.CliManagingContainer">
      <generate-deployable type="jbossdm.JdbcDriver" extends="udm.BaseDeployableArchiveArtifact">

      <property name="driverName"/>
      <property name="driverModuleName"/>
      <property name="driverXaDatasourceClassName/>

      <!-- hidden properties to specify the jython scripts to execute for an operation -->
      <property name="createScript" default="jboss/dm/ds/create-jdbc-driver.py" hidden="true"/>
    </type>

Defined the create-jdbc-driver.py

    from com.xebialabs.overthere.util import OverthereUtils

    #create module directory to copy jar and module.xml to
    driverModuleName = deployed.getProperty("driverModuleName")
    moduleRelPath = driverModuleName.replaceAll("\\.","/")
    moduleAbsolutePath = "%s/modules/%s" % (container.getProperty("home"), moduleRelPath)
    moduleDir = step.getRemoteConnection().getFile(moduleAbsolutePath);
    moduleDir.mkdirs();
    #upload jar
    moduleJar = moduleDir.getFile(deployed.file.getName())
    deployed.file.copyTo(moduleJar)

    moduleXmlContent = """
     <?xml version="1.0" encoding="UTF-8"?>
     <module xmlns="urn:jboss:module:1.0" name="%s">
        <resources>
            <resource-root path="%s"/>
        </resources>
        <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
          </dependencies>
     </module>
     """ % (deployed.getProperty("driverModuleName"), deployed.file.getName())

    #create module.xml
    moduleXml = moduleDir.getFile("module.xml")
    OverthereUtils.write(moduleXlContent.getBytes(),moduleXml)

    #register driver with the datasource subsystem
    driverName = deployed.getProperty("driveName")
    xaClassName = deployed.getProperty("driverXaDatasourceClassName")
    cmd = '/subsystem=datasources/jdbc-driver=%s:add(driver-name="%s",driver-module-name="%s",driver-xa-datasource-class-name="%s")'      % (driverName, driverName, driverModuleName, xaClasName)
    cmd = prependProfilePath(cmd) #prefix with profile if deploying to domain
    executeCmd(cmd)  #used to execute a JBoss Cli command.

## Extending the plugin with custom control task

The plugin has the capability to add control tasks to CliManagedDeployed or CliManagedContainer. The control task can be specified as a jython script that will be executed on the XL Deploy Server or as an OS shell script that will be run on the target host. The OS shell script is first processed with FreeMarker before being executed.

Creating a jython based control task to list JDBC drivers in a StandaloneServer

Synthetic.xml snippet

    <type-modification type="jbossdm.StandaloneServer">
      <property name="listJdbcDriversPythonTaskScript" hidden="true" default="jboss/dm/container/list-jdbc-drivers.py"/>
      <!-- Note "PythonTaskScript" is appended to the method name to determine the script to run. -->
      <method name="listJdbcDrivers"/>
    </type-modification>

list-jdbc-drivers.py snippet

    drivers = executeCmd("/subsystem=datasources:installed-drivers-list")
    logOutput(drivers)  #outputs to the step log

Start the StandaloneServer

Synthetic.xml snippet

    <type-modification type="jbossdm.StandaloneServer">
      <property name="startShellTaskScript" hidden="true" default="jboss/dm/container/start-standalone"/>
      <!-- Note "ShellTaskScript" is appended to the method name to determine the script to run. -->
      <method name="start"/>
    </type-modification>

start-standalone.sh snippet

    nohup ${container.home}/bin/standalone.sh >>nohup.out 2>&1 &
    sleep 2
    echo background process to start standalone server executed.

## Release notes

### Version 4.5.2

#### Features

- [DEPL-8431] Fixed issue where special characters were not escaped when deploying without a daemon (introduced commandExecutionMode property on CLIBasedContainer)
  - Implemented command execution in non-daemon mode via jboss-cli file paramater

#### Bug fixes

- [DEPL-7782] Fixed issue where the jboss-cli step failed if the connection type was SFTP
- [DEPL-8347] Fixed issue where a deployed datasource with default pool data fails the connection test
- [DEPL-7750] Fixed issue where recovery file couldn't be written throwing a 'SshElevatedUserFile is not serializable' exception
- [DEPL-7937] Fixed error handling problem if Daemon is enabled

### Version 4.5.1

#### Features

- [DEPL-6847] Add jboss-cli step primitive

#### Bug fixes

- [DEPL-7703] Cancelling or rolling back a deployment can give the wrong results in jbossdm plugin

#### Improvements

- [DEPL-5851] CliProcessOutputHandler should handle error lines
- [DEPL-6782] Datasources, jms resources and application names should not contain whitespace characters.

### Version 4.5.0

#### Feature

- [DEPL-4895] - Support JBoss EAP 6.2.0, EAP 6.3.0
- [DEPL-5566] - Support Wildfly 8.0.0.Final, 8.1.0.Final

### Version 4.0.1

#### Feature

- [DEPL-5524] - Support staging of artifacts

#### Bug fixes

- [DEPL-5665] - Deployit hangs when JBoss CLI terminates unexpectedly
- [DEPL-5666] - JBossDM Datasource attributes are truncated when value has spaces.

#### Improvements

- [DEPL-5664] - Show preview of JBoss DM steps in analyser
- [DEPL-5667] - Better propagation JBoss CLI errors and jython scripting errors to the user.

### Version 4.0.0

#### Bug fixes

- [DEPL-5234] - jbossdm-plugin JAR is packaged twice in the distribution zip file
- [DEPL-5304] - A context root is required when deploying to JBoss DM

#### Improvements

- [DEPL-5225] - Update JBoss DM plugin documentation with manifest.xml example

### Version 3.9.1

#### Bug fixes

- DEPLOYITPB-4950 contextRoot is a required parameter on jbossdm.WarModule
- DEPLOYITPB-4896 jbossdm-plugin distribution does not contain jython-standalone-2.5.1.jar
- DEPLOYITPB-4340 Exceptions that occur during execution of JBoss CLI command are masked

### Version 3.9.0

#### Improvements

- [DEPLOYITPB-4430] - Added jbossdm.EjbJar type for EJB deployments.

### Version 3.8.1

#### Bug fixes

- [DEPLOYITPB-3948] - Orders have not been configured correctly
- [DEPLOYITPB-4140] - Jboss DM plugin uses List as an asContainment property

### Version 3.8.0

#### Improvements

- [DEPLOYITPB-2906] - Support JBoss 7+ and JBoss EAP 6+

## CI Reference

### Configuration Item Overview

#### Deployables

#### Deployeds

#### Containers

#### Other Configuration Items

### Configuration Item Details

#### jbossdm.BaseDataSource

Virtual Type
Type Hierarchy | jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

Base definition of a DataSource

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | driverName : STRING
|  | Defines the JDBC driver the datasource should use. It is a symbolic name matching the the name of installed driver. In case the driver is deployed as jar, the name is the name of deployment unit.
|  | jndiName : STRING
|  | Specifies the JNDI name for the datasource
|  | backgroundValidation : BOOLEAN = false
|  | An element to specify that connections should be validated on a background thread versus being validated prior to use. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | checkValidSql : STRING
|  | Specify an SQL statement to check validity of a pool connection. This may be called when managed connection is obtained from the pool
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | exceptionSorter : STRING
|  | An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an isExceptionFatal(SQLException) method to validate if an exception should broadcast an error
|  | maxPoolSize : INTEGER
|  | The max-pool-size element specifies the maximum number of connections for a pool. No more connections will be created in each sub-pool
|  | minPoolSize : INTEGER
|  | The min-pool-size element specifies the minimum number of connections for a pool
|  | password : STRING
|  | Specifies the password used when creating a new connection
|  | prefillEnabled : BOOLEAN = false
|  | Should the pool be prefilled. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | securityDomain : STRING
|  | Specifies the security domain which defines the javax.security.auth.Subject that are used to distinguish connections in the pool
|  | sharePreparedStatements : BOOLEAN
|  | Whether to share prepared statements, i.e. whether asking for same statement twice without closing uses the same underlying prepared statement
|  | staleConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an isStaleConnection(SQLException) method which if it returns true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException
|  | statementCacheSize : INTEGER = -1
|  | The number of prepared statements per connection in an LRU cache
|  | strictMinimum : BOOLEAN = false
|  | Specifies if the min-pool-size should be considered strictly
|  | username : STRING
|  | Specify the user name used when creating a new connection
|  | validConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an isValidConnection(Connection) method to validate a connection. If an exception is returned that means the connection is invalid. This overrides the check-valid-connection-sql element
|  | validateOnMatch : BOOLEAN = false
|  | The validate-on-match element specifies if connection validation should be done when a connection factory attempts to match a managed connection. This is typically exclusive to the use of background validation
|  | validationMillis : INTEGER = -1
|  | The background-validation-millis element specifies the amount of time, in milliseconds, that background validation will run. Changing this value can be done only on disabled datasource, requires a server restart otherwise

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | libraries : LIST_OF_STRING = [jboss/dm/ds/datasource-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | destroyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | inspectScript : STRING
|  | Classpath to the script used to inspect the generic container.
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.CliBasedContainer

Virtual Type
Type Hierarchy | udm.BaseContainer >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, jbossdm.CliManagedContainer, jbossdm.ApplicationContainer, jbossdm.ResourceContainer, udm.ConfigurationItem, jbossdm.CliManagingContainer, udm.Container, overthere.HostContainer

JBoss Cli Managed Container

|  | Parent
--- | --- | ---
|  | host : CI<overthere.Host>
|  | Host

|  | Public Properties
--- | --- | ---
|  | cliScriptPrefix : STRING = jboss-cli
|  | JBoss CLI script prefix. Depending on the host, either an '.sh' or '.bat' will be appended to get the cli script name.
|  | home : STRING
|  | JBoss home directory
|  | adminHostAddress : STRING = localhost
|  | Host which is used to login to JBoss Native Administration, default is localhost
|  | commandExecutionMode : ENUM [CLI_COMMANDS, CLI_FILE] = CLI_COMMANDS
|  | Command execution mode when daemon is disabled. Commands can be executed directly against remote jboss CLI process using --commands option (CLI_COMMANDS) or they can be uploaded to a temporary file and executed using --file option (CLI_FILE). By default it is set to CLI_COMMANDS, but if you have special characters like '{}[]=@()' set it to the CLI_FILE value
|  | enableDaemon : BOOLEAN = true
|  | Connection to CLI is setup using a daemon. Set it to false if connection to the host does not support streaming.
|  | password : STRING
|  | Password which is used to login to JBoss Native Administration.
|  | port : INTEGER = 9999
|  | TCP port which is used to login to JBoss Native Administration, default is 9999
|  | tags : SET_OF_STRING
|  | If set, only deployables with the same tag will be automatically mapped to this container.
|  | username : STRING
|  | Username which is used to login to JBoss Native Administration.

|  | Hidden Properties
--- | --- | ---
|  | libraries : LIST_OF_STRING = [jboss/dm/library/runtime.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script

#### jbossdm.CliManagedDeployed

Virtual Type
Type Hierarchy | udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

Base for all deployed that utilize the JBoss Cli for configuration

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | destroyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | inspectScript : STRING
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.CliManagedDeployedArtifact

Virtual Type
Type Hierarchy | jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Artifact, udm.Deployed, udm.ConfigurationItem, udm.DerivedArtifact

Base for all deployed artifacts that utilize the JBoss Cli for configuration

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | placeholders : MAP_STRING_STRING
|  | A Map containing all the placeholders mapped to their values. Special values are <ignore> or <empty>

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 70
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 30
|  | The order of the step in the step list for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | modifyOrder : INTEGER = 70
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | destroyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | inspectScript : STRING
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.DataSource

Type Hierarchy | jbossdm.JeeDataSource >> jbossdm.BaseDataSource >> jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

DataSource. This deployed is used when a jbossdm.DataSourceSpec is specified in a package.

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | connectionUrl : STRING
|  | The JDBC driver connection URL
|  | driverName : STRING
|  | Defines the JDBC driver the datasource should use. It is a symbolic name matching the the name of installed driver. In case the driver is deployed as jar, the name is the name of deployment unit.
|  | jndiName : STRING
|  | Specifies the JNDI name for the datasource
|  | backgroundValidation : BOOLEAN = false
|  | An element to specify that connections should be validated on a background thread versus being validated prior to use. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | checkValidSql : STRING
|  | Specify an SQL statement to check validity of a pool connection. This may be called when managed connection is obtained from the pool
|  | connectionProperties : MAP_STRING_STRING
|  | JDBC connection properties
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | exceptionSorter : STRING
|  | An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an isExceptionFatal(SQLException) method to validate if an exception should broadcast an error
|  | maxPoolSize : INTEGER
|  | The max-pool-size element specifies the maximum number of connections for a pool. No more connections will be created in each sub-pool
|  | minPoolSize : INTEGER
|  | The min-pool-size element specifies the minimum number of connections for a pool
|  | newConnectionSql : STRING
|  | Specifies an SQL statement to execute whenever a connection is added to the connection pool
|  | password : STRING
|  | Specifies the password used when creating a new connection
|  | prefillEnabled : BOOLEAN = false
|  | Should the pool be prefilled. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | securityDomain : STRING
|  | Specifies the security domain which defines the javax.security.auth.Subject that are used to distinguish connections in the pool
|  | sharePreparedStatements : BOOLEAN
|  | Whether to share prepared statements, i.e. whether asking for same statement twice without closing uses the same underlying prepared statement
|  | staleConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an isStaleConnection(SQLException) method which if it returns true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException
|  | statementCacheSize : INTEGER = -1
|  | The number of prepared statements per connection in an LRU cache
|  | strictMinimum : BOOLEAN = false
|  | Specifies if the min-pool-size should be considered strictly
|  | transactionIsolation : STRING
|  | Set the java.sql.Connection transaction isolation level. Valid values are: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE and TRANSACTION_NONE
|  | useCcm : BOOLEAN = false
|  | Enable the use of a cached connection manager
|  | useJta : BOOLEAN = false
|  | Enable JTA integration
|  | username : STRING
|  | Specify the user name used when creating a new connection
|  | validConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an isValidConnection(Connection) method to validate a connection. If an exception is returned that means the connection is invalid. This overrides the check-valid-connection-sql element
|  | validateOnMatch : BOOLEAN = false
|  | The validate-on-match element specifies if connection validation should be done when a connection factory attempts to match a managed connection. This is typically exclusive to the use of background validation
|  | validationMillis : INTEGER = -1
|  | The background-validation-millis element specifies the amount of time, in milliseconds, that background validation will run. Changing this value can be done only on disabled datasource, requires a server restart otherwise

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/ds/create-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/ds/destroy-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/ds/inspect-datasource.py
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING = [jboss/dm/ds/datasource-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.DataSourceSpec

Type Hierarchy | jee.DataSourceSpec >> jee.JndiResourceSpec >> jee.ResourceSpec >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.ConfigurationItem

DataSource. This deployed is used when a jbossdm.DataSourceSpec is specified in a package. (deployable)

|  | Public Properties
--- | --- | ---
|  | backgroundValidation : STRING
|  | An element to specify that connections should be validated on a background thread versus being validated prior to use. Changing this value can be done only on disabled datasource, requires a server restart otherwise. (boolean) default(false)
|  | checkValidSql : STRING
|  | Specify an SQL statement to check validity of a pool connection. This may be called when managed connection is obtained from the pool (string)
|  | connectionProperties : MAP_STRING_STRING
|  | JDBC connection properties (map_string_string)
|  | connectionUrl : STRING
|  | The JDBC driver connection URL (string)
|  | driverName : STRING
|  | Defines the JDBC driver the datasource should use. It is a symbolic name matching the the name of installed driver. In case the driver is deployed as jar, the name is the name of deployment unit. (string)
|  | exceptionSorter : STRING
|  | An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an isExceptionFatal(SQLException) method to validate if an exception should broadcast an error (string)
|  | jndiName : STRING
|  | Specifies the JNDI name for the datasource (string)
|  | maxPoolSize : STRING
|  | The max-pool-size element specifies the maximum number of connections for a pool. No more connections will be created in each sub-pool (integer)
|  | minPoolSize : STRING
|  | The min-pool-size element specifies the minimum number of connections for a pool (integer)
|  | newConnectionSql : STRING
|  | Specifies an SQL statement to execute whenever a connection is added to the connection pool (string)
|  | password : STRING
|  | Specifies the password used when creating a new connection (string)
|  | prefillEnabled : STRING
|  | Should the pool be prefilled. Changing this value can be done only on disabled datasource, requires a server restart otherwise. (boolean) default(false)
|  | securityDomain : STRING
|  | Specifies the security domain which defines the javax.security.auth.Subject that are used to distinguish connections in the pool (string)
|  | sharePreparedStatements : STRING
|  | Whether to share prepared statements, i.e. whether asking for same statement twice without closing uses the same underlying prepared statement (boolean)
|  | staleConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an isStaleConnection(SQLException) method which if it returns true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException (string)
|  | statementCacheSize : STRING
|  | The number of prepared statements per connection in an LRU cache (integer) default(-1)
|  | strictMinimum : STRING
|  | Specifies if the min-pool-size should be considered strictly (boolean) default(false)
|  | tags : SET_OF_STRING
|  | If set, this deployable will only be mapped automatically to containers with the same tag.
|  | transactionIsolation : STRING
|  | Set the java.sql.Connection transaction isolation level. Valid values are: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE and TRANSACTION_NONE (string)
|  | useCcm : STRING
|  | Enable the use of a cached connection manager (boolean) default(false)
|  | useJta : STRING
|  | Enable JTA integration (boolean) default(false)
|  | username : STRING
|  | Specify the user name used when creating a new connection (string)
|  | validConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an isValidConnection(Connection) method to validate a connection. If an exception is returned that means the connection is invalid. This overrides the check-valid-connection-sql element (string)
|  | validateOnMatch : STRING
|  | The validate-on-match element specifies if connection validation should be done when a connection factory attempts to match a managed connection. This is typically exclusive to the use of background validation (boolean) default(false)
|  | validationMillis : STRING
|  | The background-validation-millis element specifies the amount of time, in milliseconds, that background validation will run. Changing this value can be done only on disabled datasource, requires a server restart otherwise (integer) default(-1)

#### jbossdm.Domain

Type Hierarchy | jbossdm.CliBasedContainer >> udm.BaseContainer >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, jbossdm.CliManagedContainer, jbossdm.ApplicationContainer, jbossdm.ResourceContainer, udm.ConfigurationItem, udm.Container, jbossdm.CliManagingContainer, overthere.HostContainer

Description unavailable

|  | Parent
--- | --- | ---
|  | host : CI<overthere.Host>
|  | Host

|  | Children
--- | --- | ---
|  | profiles : SET_OF_CI<jbossdm.Profile >
|  | Profiles defined in domain
|  | serverGroups : SET_OF_CI<jbossdm.ServerGroup >
|  | Server groups defined in domain

|  | Public Properties
--- | --- | ---
|  | cliScriptPrefix : STRING = jboss-cli
|  | JBoss CLI script prefix. Depending on the host, either an '.sh' or '.bat' will be appended to get the cli script name.
|  | home : STRING
|  | JBoss home directory
|  | port : INTEGER = 9999
|  | TCP port which is used to login to JBoss Native Administration, default is 9999
|  | adminHostAddress : STRING = localhost
|  | Host which is used to login to JBoss Native Administration, default is localhost
|  | commandExecutionMode : ENUM [CLI_COMMANDS, CLI_FILE] = CLI_COMMANDS
|  | Command execution mode when daemon is disabled. Commands can be executed directly against remote jboss CLI process using --commands option (CLI_COMMANDS) or they can be uploaded to a temporary file and executed using --file option (CLI_FILE). By default it is set to CLI_COMMANDS, but if you have special characters like '{}[]=@()' set it to the CLI_FILE value
|  | enableDaemon : BOOLEAN = true
|  | Connection to CLI is setup using a daemon. Set it to false if connection to the host does not support streaming.
|  | password : STRING
|  | Password which is used to login to JBoss Native Administration.
|  | tags : SET_OF_STRING
|  | If set, only deployables with the same tag will be automatically mapped to this container.
|  | username : STRING
|  | Username which is used to login to JBoss Native Administration.

|  | Hidden Properties
--- | --- | ---
|  | libraries : LIST_OF_STRING = [jboss/dm/library/runtime.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script

#### jbossdm.Ear

Type Hierarchy | jee.Ear >> udm.BaseDeployableArchiveArtifact >> udm.BaseDeployableFileArtifact >> udm.BaseDeployableArtifact >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.SourceArtifact, udm.ArchiveArtifact, udm.Artifact, udm.DeployableArtifact, udm.ConfigurationItem, udm.FileArtifact

A JEE EAR archive

|  | Public Properties
--- | --- | ---
|  | checksum : STRING
|  | The checksum used to detect differences on the artifact. If not provided, it will be calculated by XL Deploy.
|  | excludeFileNamesRegex : STRING
|  | Regular expression that matches file names that must be excluded from scanning
|  | placeholders : SET_OF_STRING
|  | Placeholders detected in this artifact
|  | scanPlaceholders : BOOLEAN = false
|  | Whether to scan this artifact for placeholders when it is imported
|  | tags : SET_OF_STRING
|  | If set, this deployable will only be mapped automatically to containers with the same tag.

|  | Hidden Properties
--- | --- | ---
|  | textFileNamesRegex : STRING = .+\.(cfg | conf | config | ini | properties | props | txt | asp | aspx | htm | html | jsf | jsp | xht | xhtml | sql | xml | xsd | xsl | xslt)
|  | Regular expression that matches file names of text files
|  | delimiters : STRING = {{ }}
|  | The delimiters used indicate placeholders, defaults to '{{ }}'. This is a 5 character string with a space in the middle, the first two are the leading delimiter, the last two are the closing delimiter
|  | fileEncodings : MAP_STRING_STRING = {.+\.properties=ISO-8859-1}
|  | A map that maps regular expressions matching the full path of file(s) in the artifact to character set encodings

#### jbossdm.EarModule

Type Hierarchy | jbossdm.CliManagedDeployedArtifact >> jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Artifact, udm.Deployed, udm.ConfigurationItem, udm.DerivedArtifact

Ear with values configured for a deployment

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | placeholders : MAP_STRING_STRING
|  | A Map containing all the placeholders mapped to their values. Special values are <ignore> or <empty>

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 70
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/application/install-ear.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 30
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/application/uninstall-ear.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/application/inspect-ear.py
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING = [jboss/dm/application/application-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 70
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.EjbJar

Type Hierarchy | jee.EjbJar >> udm.BaseDeployableArchiveArtifact >> udm.BaseDeployableFileArtifact >> udm.BaseDeployableArtifact >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.SourceArtifact, udm.ArchiveArtifact, udm.Artifact, udm.DeployableArtifact, udm.ConfigurationItem, udm.FileArtifact

A JEE EJBJAR archive

|  | Public Properties
--- | --- | ---
|  | checksum : STRING
|  | The checksum used to detect differences on the artifact. If not provided, it will be calculated by XL Deploy.
|  | excludeFileNamesRegex : STRING
|  | Regular expression that matches file names that must be excluded from scanning
|  | placeholders : SET_OF_STRING
|  | Placeholders detected in this artifact
|  | scanPlaceholders : BOOLEAN = false
|  | Whether to scan this artifact for placeholders when it is imported
|  | tags : SET_OF_STRING
|  | If set, this deployable will only be mapped automatically to containers with the same tag.

|  | Hidden Properties
--- | --- | ---
|  | textFileNamesRegex : STRING = .+\.(cfg | conf | config | ini | properties | props | txt | asp | aspx | htm | html | jsf | jsp | xht | xhtml | sql | xml | xsd | xsl | xslt)
|  | Regular expression that matches file names of text files
|  | delimiters : STRING = {{ }}
|  | The delimiters used indicate placeholders, defaults to '{{ }}'. This is a 5 character string with a space in the middle, the first two are the leading delimiter, the last two are the closing delimiter
|  | fileEncodings : MAP_STRING_STRING = {.+\.properties=ISO-8859-1}
|  | A map that maps regular expressions matching the full path of file(s) in the artifact to character set encodings

#### jbossdm.EjbJarModule

Type Hierarchy | jbossdm.CliManagedDeployedArtifact >> jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Artifact, udm.Deployed, udm.ConfigurationItem, udm.DerivedArtifact

EJbJar with values configured for a deployment

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | placeholders : MAP_STRING_STRING
|  | A Map containing all the placeholders mapped to their values. Special values are <ignore> or <empty>

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 70
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/application/install-ejbjar.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 30
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/application/uninstall-ejbjar.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/application/inspect-ejbjar.py
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING = [jboss/dm/application/application-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 70
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.JeeDataSource

Type Hierarchy | jbossdm.BaseDataSource >> jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

Datasource. This deployed is used when a jee.DataSourceSpec is specified in a package.

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | connectionUrl : STRING
|  | The JDBC driver connection URL
|  | driverName : STRING
|  | Defines the JDBC driver the datasource should use. It is a symbolic name matching the the name of installed driver. In case the driver is deployed as jar, the name is the name of deployment unit.
|  | jndiName : STRING
|  | Specifies the JNDI name for the datasource
|  | backgroundValidation : BOOLEAN = false
|  | An element to specify that connections should be validated on a background thread versus being validated prior to use. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | checkValidSql : STRING
|  | Specify an SQL statement to check validity of a pool connection. This may be called when managed connection is obtained from the pool
|  | connectionProperties : MAP_STRING_STRING
|  | JDBC connection properties
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | exceptionSorter : STRING
|  | An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an isExceptionFatal(SQLException) method to validate if an exception should broadcast an error
|  | maxPoolSize : INTEGER
|  | The max-pool-size element specifies the maximum number of connections for a pool. No more connections will be created in each sub-pool
|  | minPoolSize : INTEGER
|  | The min-pool-size element specifies the minimum number of connections for a pool
|  | newConnectionSql : STRING
|  | Specifies an SQL statement to execute whenever a connection is added to the connection pool
|  | password : STRING
|  | Specifies the password used when creating a new connection
|  | prefillEnabled : BOOLEAN = false
|  | Should the pool be prefilled. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | securityDomain : STRING
|  | Specifies the security domain which defines the javax.security.auth.Subject that are used to distinguish connections in the pool
|  | sharePreparedStatements : BOOLEAN
|  | Whether to share prepared statements, i.e. whether asking for same statement twice without closing uses the same underlying prepared statement
|  | staleConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an isStaleConnection(SQLException) method which if it returns true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException
|  | statementCacheSize : INTEGER = -1
|  | The number of prepared statements per connection in an LRU cache
|  | strictMinimum : BOOLEAN = false
|  | Specifies if the min-pool-size should be considered strictly
|  | transactionIsolation : STRING
|  | Set the java.sql.Connection transaction isolation level. Valid values are: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE and TRANSACTION_NONE
|  | useCcm : BOOLEAN = false
|  | Enable the use of a cached connection manager
|  | useJta : BOOLEAN = false
|  | Enable JTA integration
|  | username : STRING
|  | Specify the user name used when creating a new connection
|  | validConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an isValidConnection(Connection) method to validate a connection. If an exception is returned that means the connection is invalid. This overrides the check-valid-connection-sql element
|  | validateOnMatch : BOOLEAN = false
|  | The validate-on-match element specifies if connection validation should be done when a connection factory attempts to match a managed connection. This is typically exclusive to the use of background validation
|  | validationMillis : INTEGER = -1
|  | The background-validation-millis element specifies the amount of time, in milliseconds, that background validation will run. Changing this value can be done only on disabled datasource, requires a server restart otherwise

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/ds/create-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/ds/destroy-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/ds/inspect-datasource.py
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING = [jboss/dm/ds/datasource-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.JeeXaDataSource

Type Hierarchy | jbossdm.BaseDataSource >> jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

XA DataSource. This deployed is used when a jee.DataSourceSpec is specified in a package.

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | driverName : STRING
|  | Defines the JDBC driver the datasource should use. It is a symbolic name matching the the name of installed driver. In case the driver is deployed as jar, the name is the name of deployment unit.
|  | jndiName : STRING
|  | Specifies the JNDI name for the datasource
|  | xaProperties : MAP_STRING_STRING
|  | Properties to assign to the XADataSource implementation class. At least one XA property is required (i.e. url)
|  | backgroundValidation : BOOLEAN = false
|  | An element to specify that connections should be validated on a background thread versus being validated prior to use. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | checkValidSql : STRING
|  | Specify an SQL statement to check validity of a pool connection. This may be called when managed connection is obtained from the pool
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | exceptionSorter : STRING
|  | An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an isExceptionFatal(SQLException) method to validate if an exception should broadcast an error
|  | interleave : BOOLEAN = false
|  | An element to enable interleaving for XA connections
|  | maxPoolSize : INTEGER
|  | The max-pool-size element specifies the maximum number of connections for a pool. No more connections will be created in each sub-pool
|  | minPoolSize : INTEGER
|  | The min-pool-size element specifies the minimum number of connections for a pool
|  | newConnectionSql : STRING
|  | Specifies an SQL statement to execute whenever a connection is added to the connection pool
|  | padXid : BOOLEAN = false
|  | Should the Xid be padded
|  | password : STRING
|  | Specifies the password used when creating a new connection
|  | prefillEnabled : BOOLEAN = false
|  | Should the pool be prefilled. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | sameRmOverride : BOOLEAN = false
|  | The is-same-rm-override element allows one to unconditionally set whether the javax.transaction.xa.XAResource.isSameRM(XAResource) returns true or false
|  | securityDomain : STRING
|  | Specifies the security domain which defines the javax.security.auth.Subject that are used to distinguish connections in the pool
|  | sharePreparedStatements : BOOLEAN
|  | Whether to share prepared statements, i.e. whether asking for same statement twice without closing uses the same underlying prepared statement
|  | staleConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an isStaleConnection(SQLException) method which if it returns true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException
|  | statementCacheSize : INTEGER = -1
|  | The number of prepared statements per connection in an LRU cache
|  | strictMinimum : BOOLEAN = false
|  | Specifies if the min-pool-size should be considered strictly
|  | transactionIsolation : STRING
|  | Set the java.sql.Connection transaction isolation level. Valid values are: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE and TRANSACTION_NONE
|  | username : STRING
|  | Specify the user name used when creating a new connection
|  | validConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an isValidConnection(Connection) method to validate a connection. If an exception is returned that means the connection is invalid. This overrides the check-valid-connection-sql element
|  | validateOnMatch : BOOLEAN = false
|  | The validate-on-match element specifies if connection validation should be done when a connection factory attempts to match a managed connection. This is typically exclusive to the use of background validation
|  | validationMillis : INTEGER = -1
|  | The background-validation-millis element specifies the amount of time, in milliseconds, that background validation will run. Changing this value can be done only on disabled datasource, requires a server restart otherwise
|  | wrapXa : BOOLEAN = false
|  | Should the XAResource instances be wrapped in a org.jboss.tm.XAResourceWrapper instance

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/ds/create-xa-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/ds/destroy-xa-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/ds/inspect-xa-datasource.py
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING = [jboss/dm/ds/datasource-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.Profile

Type Hierarchy | udm.BaseContainer >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, jbossdm.CliManagedContainer, jbossdm.ResourceContainer, udm.ConfigurationItem, udm.Container, overthere.HostContainer

JBoss Profile

|  | Parent
--- | --- | ---
|  | domain : CI<jbossdm.Domain >
|  | Domain to which the server group belongs.

|  | Public Properties
--- | --- | ---
|  | tags : SET_OF_STRING
|  | If set, only deployables with the same tag will be automatically mapped to this container.

#### jbossdm.Queue

Type Hierarchy | jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

A Jboss Queue

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | jndiName : STRING
|  | (Comma separated list) The jndi names the queue will be bound to.
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | durable : BOOLEAN = true
|  | Whether the queue is durable or not
|  | selector : STRING
|  | The queue selector

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/jms/create-queue.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/jms/destroy-queue.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/jms/inspect-queue.py
|  | Classpath to the script used to inspect the generic container.
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | libraries : LIST_OF_STRING
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.QueueSpec

Type Hierarchy | jee.QueueSpec >> jee.JndiResourceSpec >> jee.ResourceSpec >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.ConfigurationItem

A Queue

|  | Public Properties
--- | --- | ---
|  | durable : STRING
|  | Whether the queue is durable or not (boolean) default(true)
|  | jndiName : STRING
|  | (Comma separated list) The jndi names the queue will be bound to. (string)
|  | selector : STRING
|  | The queue selector (string)
|  | tags : SET_OF_STRING
|  | If set, this deployable will only be mapped automatically to containers with the same tag.

#### jbossdm.ServerGroup

Type Hierarchy | udm.BaseContainer >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, jbossdm.CliManagedContainer, jbossdm.ApplicationContainer, udm.ConfigurationItem, udm.Container, overthere.HostContainer

JBoss Server Group

|  | Parent
--- | --- | ---
|  | domain : CI<jbossdm.Domain >
|  | Domain to which the server group belongs.

|  | Public Properties
--- | --- | ---
|  | tags : SET_OF_STRING
|  | If set, only deployables with the same tag will be automatically mapped to this container.

#### jbossdm.StandaloneServer

Type Hierarchy | jbossdm.CliBasedContainer >> udm.BaseContainer >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, jbossdm.CliManagedContainer, jbossdm.ApplicationContainer, jbossdm.ResourceContainer, udm.ConfigurationItem, udm.Container, jbossdm.CliManagingContainer, overthere.HostContainer

JBoss Standalone Server

|  | Parent
--- | --- | ---
|  | host : CI<overthere.Host>
|  | Host

|  | Public Properties
--- | --- | ---
|  | cliScriptPrefix : STRING = jboss-cli
|  | JBoss CLI script prefix. Depending on the host, either an '.sh' or '.bat' will be appended to get the cli script name.
|  | home : STRING
|  | JBoss home directory
|  | port : INTEGER = 9999
|  | TCP port which is used to login to JBoss Native Administration, default is 9999
|  | adminHostAddress : STRING = localhost
|  | Host which is used to login to JBoss Native Administration, default is localhost
|  | commandExecutionMode : ENUM [CLI_COMMANDS, CLI_FILE] = CLI_COMMANDS
|  | Command execution mode when daemon is disabled. Commands can be executed directly against remote jboss CLI process using --commands option (CLI_COMMANDS) or they can be uploaded to a temporary file and executed using --file option (CLI_FILE). By default it is set to CLI_COMMANDS, but if you have special characters like '{}[]=@()' set it to the CLI_FILE value
|  | enableDaemon : BOOLEAN = true
|  | Connection to CLI is setup using a daemon. Set it to false if connection to the host does not support streaming.
|  | password : STRING
|  | Password which is used to login to JBoss Native Administration.
|  | tags : SET_OF_STRING
|  | If set, only deployables with the same tag will be automatically mapped to this container.
|  | username : STRING
|  | Username which is used to login to JBoss Native Administration.

|  | Hidden Properties
--- | --- | ---
|  | libraries : LIST_OF_STRING = [jboss/dm/library/runtime.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script

#### jbossdm.Topic

Type Hierarchy | jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

A JBoss topic

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | jndiName : STRING
|  | (Comma separated list) The jndi names the topic will be bound to.
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/jms/create-topic.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/jms/destroy-topic.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/jms/inspect-topic.py
|  | Classpath to the script used to inspect the generic container.
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | libraries : LIST_OF_STRING
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.TopicSpec

Type Hierarchy | jee.TopicSpec >> jee.JndiResourceSpec >> jee.ResourceSpec >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.ConfigurationItem

A Topic

|  | Public Properties
--- | --- | ---
|  | jndiName : STRING
|  | (Comma separated list) The jndi names the topic will be bound to. (string)
|  | tags : SET_OF_STRING
|  | If set, this deployable will only be mapped automatically to containers with the same tag.

#### jbossdm.War

Type Hierarchy | jee.War >> udm.BaseDeployableArchiveArtifact >> udm.BaseDeployableFileArtifact >> udm.BaseDeployableArtifact >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.SourceArtifact, udm.ArchiveArtifact, udm.Artifact, udm.DeployableArtifact, udm.ConfigurationItem, udm.FileArtifact

A JEE WAR archive

|  | Public Properties
--- | --- | ---
|  | checksum : STRING
|  | The checksum used to detect differences on the artifact. If not provided, it will be calculated by XL Deploy.
|  | contextRoot : STRING
|  | Context root for the web application (string)
|  | excludeFileNamesRegex : STRING
|  | Regular expression that matches file names that must be excluded from scanning
|  | placeholders : SET_OF_STRING
|  | Placeholders detected in this artifact
|  | scanPlaceholders : BOOLEAN = false
|  | Whether to scan this artifact for placeholders when it is imported
|  | tags : SET_OF_STRING
|  | If set, this deployable will only be mapped automatically to containers with the same tag.

|  | Hidden Properties
--- | --- | ---
|  | textFileNamesRegex : STRING = .+\.(cfg | conf | config | ini | properties | props | txt | asp | aspx | htm | html | jsf | jsp | xht | xhtml | sql | xml | xsd | xsl | xslt)
|  | Regular expression that matches file names of text files
|  | delimiters : STRING = {{ }}
|  | The delimiters used indicate placeholders, defaults to '{{ }}'. This is a 5 character string with a space in the middle, the first two are the leading delimiter, the last two are the closing delimiter
|  | fileEncodings : MAP_STRING_STRING = {.+\.properties=ISO-8859-1}
|  | A map that maps regular expressions matching the full path of file(s) in the artifact to character set encodings

#### jbossdm.WarModule

Type Hierarchy | jbossdm.CliManagedDeployedArtifact >> jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Artifact, udm.Deployed, udm.ConfigurationItem, udm.DerivedArtifact

War with values configured for a deployment

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | contextRoot : STRING
|  | Context root for the web application
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | placeholders : MAP_STRING_STRING
|  | A Map containing all the placeholders mapped to their values. Special values are <ignore> or <empty>

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 70
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/application/install-war.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 30
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/application/uninstall-war.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/application/inspect-war.py
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING = [jboss/dm/application/application-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 70
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.XaDataSource

Type Hierarchy | jbossdm.JeeXaDataSource >> jbossdm.BaseDataSource >> jbossdm.CliManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Deployed, udm.ConfigurationItem

XA DataSource. This deployed is used when a jbossdm.XaDataSourceSpec is specified in a package.

|  | Parent
--- | --- | ---
|  | container : CI<udm.Container>
|  | The container on which this deployed runs.

|  | Public Properties
--- | --- | ---
|  | driverName : STRING
|  | Defines the JDBC driver the datasource should use. It is a symbolic name matching the the name of installed driver. In case the driver is deployed as jar, the name is the name of deployment unit.
|  | jndiName : STRING
|  | Specifies the JNDI name for the datasource
|  | xaProperties : MAP_STRING_STRING
|  | Properties to assign to the XADataSource implementation class. At least one XA property is required (i.e. url)
|  | backgroundValidation : BOOLEAN = false
|  | An element to specify that connections should be validated on a background thread versus being validated prior to use. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | checkValidSql : STRING
|  | Specify an SQL statement to check validity of a pool connection. This may be called when managed connection is obtained from the pool
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | exceptionSorter : STRING
|  | An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an isExceptionFatal(SQLException) method to validate if an exception should broadcast an error
|  | interleave : BOOLEAN = false
|  | An element to enable interleaving for XA connections
|  | maxPoolSize : INTEGER
|  | The max-pool-size element specifies the maximum number of connections for a pool. No more connections will be created in each sub-pool
|  | minPoolSize : INTEGER
|  | The min-pool-size element specifies the minimum number of connections for a pool
|  | newConnectionSql : STRING
|  | Specifies an SQL statement to execute whenever a connection is added to the connection pool
|  | padXid : BOOLEAN = false
|  | Should the Xid be padded
|  | password : STRING
|  | Specifies the password used when creating a new connection
|  | prefillEnabled : BOOLEAN = false
|  | Should the pool be prefilled. Changing this value can be done only on disabled datasource, requires a server restart otherwise.
|  | sameRmOverride : BOOLEAN = false
|  | The is-same-rm-override element allows one to unconditionally set whether the javax.transaction.xa.XAResource.isSameRM(XAResource) returns true or false
|  | securityDomain : STRING
|  | Specifies the security domain which defines the javax.security.auth.Subject that are used to distinguish connections in the pool
|  | sharePreparedStatements : BOOLEAN
|  | Whether to share prepared statements, i.e. whether asking for same statement twice without closing uses the same underlying prepared statement
|  | staleConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an isStaleConnection(SQLException) method which if it returns true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException
|  | statementCacheSize : INTEGER = -1
|  | The number of prepared statements per connection in an LRU cache
|  | strictMinimum : BOOLEAN = false
|  | Specifies if the min-pool-size should be considered strictly
|  | transactionIsolation : STRING
|  | Set the java.sql.Connection transaction isolation level. Valid values are: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE and TRANSACTION_NONE
|  | username : STRING
|  | Specify the user name used when creating a new connection
|  | validConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an isValidConnection(Connection) method to validate a connection. If an exception is returned that means the connection is invalid. This overrides the check-valid-connection-sql element
|  | validateOnMatch : BOOLEAN = false
|  | The validate-on-match element specifies if connection validation should be done when a connection factory attempts to match a managed connection. This is typically exclusive to the use of background validation
|  | validationMillis : INTEGER = -1
|  | The background-validation-millis element specifies the amount of time, in milliseconds, that background validation will run. Changing this value can be done only on disabled datasource, requires a server restart otherwise
|  | wrapXa : BOOLEAN = false
|  | Should the XAResource instances be wrapped in a org.jboss.tm.XAResourceWrapper instance

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 60
|  | The order of the step in the step list for the create operation.
|  | createScript : STRING = jboss/dm/ds/create-xa-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the create operation.
|  | createVerb : STRING = Create
|  | Create Verb
|  | destroyOrder : INTEGER = 40
|  | The order of the step in the step list for the destroy operation.
|  | destroyScript : STRING = jboss/dm/ds/destroy-xa-datasource.py
|  | Classpath to the script that is uploaded and executed on the generic container for the destroy operation.
|  | destroyVerb : STRING = Destroy
|  | Destroy Verb
|  | inspectScript : STRING = jboss/dm/ds/inspect-xa-datasource.py
|  | Classpath to the script used to inspect the generic container.
|  | libraries : LIST_OF_STRING = [jboss/dm/ds/datasource-lib.py]
|  | List of python library scripts that should be automatically loaded when using a JBoss CLI script.
|  | modifyOrder : INTEGER = 60
|  | The order of the step in the step list for the modify operation.
|  | modifyVerb : STRING = Modify
|  | Modify Verb
|  | noopOrder : INTEGER = 50
|  | The order of the step in the step list for the noop operation.
|  | noopVerb : STRING = Modify
|  | Noop Verb
|  | modifyScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the modify operation.
|  | noopScript : STRING
|  | Classpath to the script that is uploaded and executed on the generic container for the noop operation.

#### jbossdm.XaDataSourceSpec

Type Hierarchy | jee.DataSourceSpec >> jee.JndiResourceSpec >> jee.ResourceSpec >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.ConfigurationItem

XA DataSource. This deployed is used when a jbossdm.XaDataSourceSpec is specified in a package. (deployable)

|  | Public Properties
--- | --- | ---
|  | backgroundValidation : STRING
|  | An element to specify that connections should be validated on a background thread versus being validated prior to use. Changing this value can be done only on disabled datasource, requires a server restart otherwise. (boolean) default(false)
|  | checkValidSql : STRING
|  | Specify an SQL statement to check validity of a pool connection. This may be called when managed connection is obtained from the pool (string)
|  | driverName : STRING
|  | Defines the JDBC driver the datasource should use. It is a symbolic name matching the the name of installed driver. In case the driver is deployed as jar, the name is the name of deployment unit. (string)
|  | exceptionSorter : STRING
|  | An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an isExceptionFatal(SQLException) method to validate if an exception should broadcast an error (string)
|  | interleave : STRING
|  | An element to enable interleaving for XA connections (boolean) default(false)
|  | jndiName : STRING
|  | Specifies the JNDI name for the datasource (string)
|  | maxPoolSize : STRING
|  | The max-pool-size element specifies the maximum number of connections for a pool. No more connections will be created in each sub-pool (integer)
|  | minPoolSize : STRING
|  | The min-pool-size element specifies the minimum number of connections for a pool (integer)
|  | newConnectionSql : STRING
|  | Specifies an SQL statement to execute whenever a connection is added to the connection pool (string)
|  | padXid : STRING
|  | Should the Xid be padded (boolean) default(false)
|  | password : STRING
|  | Specifies the password used when creating a new connection (string)
|  | prefillEnabled : STRING
|  | Should the pool be prefilled. Changing this value can be done only on disabled datasource, requires a server restart otherwise. (boolean) default(false)
|  | sameRmOverride : STRING
|  | The is-same-rm-override element allows one to unconditionally set whether the javax.transaction.xa.XAResource.isSameRM(XAResource) returns true or false (boolean) default(false)
|  | securityDomain : STRING
|  | Specifies the security domain which defines the javax.security.auth.Subject that are used to distinguish connections in the pool (string)
|  | sharePreparedStatements : STRING
|  | Whether to share prepared statements, i.e. whether asking for same statement twice without closing uses the same underlying prepared statement (boolean)
|  | staleConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an isStaleConnection(SQLException) method which if it returns true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException (string)
|  | statementCacheSize : STRING
|  | The number of prepared statements per connection in an LRU cache (integer) default(-1)
|  | strictMinimum : STRING
|  | Specifies if the min-pool-size should be considered strictly (boolean) default(false)
|  | tags : SET_OF_STRING
|  | If set, this deployable will only be mapped automatically to containers with the same tag.
|  | transactionIsolation : STRING
|  | Set the java.sql.Connection transaction isolation level. Valid values are: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE and TRANSACTION_NONE (string)
|  | username : STRING
|  | Specify the user name used when creating a new connection (string)
|  | validConnectionChecker : STRING
|  | An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an isValidConnection(Connection) method to validate a connection. If an exception is returned that means the connection is invalid. This overrides the check-valid-connection-sql element (string)
|  | validateOnMatch : STRING
|  | The validate-on-match element specifies if connection validation should be done when a connection factory attempts to match a managed connection. This is typically exclusive to the use of background validation (boolean) default(false)
|  | validationMillis : STRING
|  | The background-validation-millis element specifies the amount of time, in milliseconds, that background validation will run. Changing this value can be done only on disabled datasource, requires a server restart otherwise (integer) default(-1)
|  | wrapXa : STRING
|  | Should the XAResource instances be wrapped in a org.jboss.tm.XAResourceWrapper instance (boolean) default(false)
|  | xaProperties : MAP_STRING_STRING
|  | Properties to assign to the XADataSource implementation class. At least one XA property is required (i.e. url) (map_string_string)

## Step Reference

### jboss-cli

#### Description

The `jboss-cli` step executes a Python script that controls the JBoss/WildFly server `jboss-cli` command-line interface utility. The script executes on top of a thin Python wrapper library that provides convenient functions for executing `jboss-cli` commands, logging, and so on.

#### Examples

This is an example of a `jboss-cli` step that will deploy an application:

    <jboss-cli>
        <order>60</order>
        <description expression="true">"Deploying application '%s'" % deployed.name</description>
        <script>jboss/dm/application/install-ear.py</script>
        <python-context>
            <container expression="true">deployed.container</container>
        </python-context>
        <additional-libraries>
            <value>jboss/dm/application/application-lib.py</value>
        </additional-libraries>
    </jboss-cli>

Note: The `jboss/dm/application/install-ear.py` and `jboss/dm/application/application-lib.py` scripts are provided with the `jbossdm-plugin`.

To create the same step with a script rule:

    context.addStep(steps.jboss_cli(
        order = 60,
        description = "Deploying application '%s'" % deployed.name,
        script = "jboss/dm/application/install-ear.py",
        python_context = { "container": deployed.container },
        additional_libraries = ["jboss/dm/application/application-lib.py"],
    upload_artifacts_in_python_context = True
    ))

The following `xl-rules.xml` file disables the existing Java-based rule and triggers the new rule:

    <rules xmlns="http://www.xebialabs.com/xl-deploy/xl-rules">

        <disable-rule name="jbossdm.EarModule.executeCreate_CREATE" />

        <rule name="jbossdm.EarModule.CREATE" scope="deployed">
            <conditions>
                <type>jbossdm.EarModule</type>
                <operation>CREATE</operation>
            </conditions>
            <steps>
                <jboss-cli>
                    <order>60</order>
                    <script>jboss/dm/application/install-ear.py</script>
                    <python-context>
                        <container expression="true">deployed.container</container>
                    </python-context>
                    <additional-libraries>
                        <value>jboss/dm/application/application-lib.py</value>
                    </additional-libraries>
                </jboss-cli>
            </steps>
        </rule>
    </rules>

#### Handling artifacts

Without the `jboss-cli` step, scripts must use the `uploadFile` function to upload a file to the target container. With the `jboss-cli` step, all variables of type `udm.Artifact` are uploaded to the target container host. The `file` property is updated with a reference to a remote `OverthereFile`. This allows you to access staged or automatically uploaded artifacts bound to the `jboss-cli` Python context.

For example, the `deployed` is automatically bound to the Python context. The parameter `uploadArtifactsInPythonContext` is enabled by default, so the deployed artifact will be uploaded to the target container and `deployed.file` will be updated with a reference to the remote `OverthereFile`. If staging was enabled, `deployed.file` contains a reference to the staged `OverthereFile`.

Thus, `deployed.file.path` will return the path on the target container and not on the filesystem where the XL Deploy server runs.

To manually control the upload, set `uploadArtifactsInPythonContext` to `false` and use `uploadFile` function.

Instead of:

    uploadedEar = uploadFile(deployed.file, appName)
    errMsg = executeCmd("deploy %s %s" % (uploadedEar.path, targetServerGroups()))

You can use use:

    errMsg = executeCmd("deploy %s %s" % (deployed.file.path, targetServerGroups()))

This behaviour is enabled by default and can be disabled via the `uploadArtifactsInPythonContext` parameter.

#### Available functions

Some of the functions from the wrapper layer are described below. For a full listing of available functions, see the `jboss/dm/library/runtime.py` file.

##### executeCmd

Executes the `jboss-cli` command on the target domain.

Parameters:

- cmd - command to execute
- exitOnFailure - should the function exit in case of failure (defaults to True)

##### logOutput

Logs the info message to the step output.

Parameters:

- msg - message to log

##### logError

Logs the error message to the step output.

Parameters:

- msg - message to log

##### uploadFile

Uploads the file to the remote working directory and returns `OverthereFile`.

Parameters:

- file - file to upload
- targetName - target file name in a remote working directory

#### Calculated step parameters

##### Container

The `container` parameter of a step is calculated as follows:

- If the scope is `deployed`:
  - `deployed.container` is of type jbossdm.CliManagedContainer and the `container` is set to `deployed.container`.
- In other cases, `container` cannot be automatically calculated and must be specified manually.

#### Step Parameters

Note: For information about how values are calcuated, please refer to Calculated step parameters in the Rules Manual.