# OSB Plugin Manual

## Preface

This document describes the functionality provided by the Oracle Service Bus (OSB) plugin.

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

## Overview

The OSB plugin is a XL Deploy plugin that adds capability for importing and deleting OSB projects.

## Features

- OSB Configuration (import and delete)
- OSB Customization files (during import) with placeholders replacement

## Requirements

- XL Deploy requirements

  - XL Deploy: version 4.5.0+
  - WLS versions: from ALSB 3.0 to OSB 11gR5
  - Other XL Deploy Plugins: WebLogic plugin version 4.0.0+

- Infrastructural requirements

  - WebLogic Domain user credentials
  - User credentials for accessing the Host managing the WebLogic Administration Server.
  - User credentials for accessing target Hosts of managed Servers (for NoStage mode)

## Usage in Deployment Packages

The plugin works with the standard deployment package of 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 an OSB specific deployment package. It contains declarations for an osb.Configuration that contains two projects: project1 and project2

    <?xml version="1.0" encoding="UTF-8"?>
    <udm.DeploymentPackage version="2.0" application="SampleApplication">
        <deployables>
            <osb.Configuration name="osbConfiguration" file="osbConfiguration/osbConfiguration.jar">
                <projectNames>
                    <value>project2</value>
                    <value>project1</value>
                </projectNames>
            </osb.Configuration>
        </deployables>
    </udm.DeploymentPackage>

osb.Configuration is a folder that contains one jar file containing the projects and one or more customization files in xml.

## Using the deployables and deployeds

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

### Deployable vs. Container table

Deployable | Container | Generated deployed
--- | --- | ---
osb.Configuration | osb.Domain wls.Server | osb.DeployedConfiguration

The following table describes the effect a deployed has on it's container

### Deployed Actions Table

Deployed | Actions performed for operations
--- | ---
| Create | Destroy | Modify
osb.Configuration | Import the projects in the OSB Domain | Delete the projects from the OSB Domain | Delete the projects from the OSB Domain Import the projects in the OSB Domain

## Release Notes - OSB Plugin

### Version 4.5.0

#### Bug

- [DEPL-6379] - Updated wslt.sh and wslt.cmd to mimic logic in wls Domain#getScriptCommandLine.

### Version 4.0.0

#### Changes

Updated to use newer versions of dependencies.

#### Bug

- [DEPL-5141] - osb plugin does not apply customization files to updated resources

#### Improvement

- [DEPL-5309] - Update OSB plugin documentation with manifest.xml example

#### Version 3.9.3

#### Changes

- This version is compatible with Deployit Weblogic Plugin 3.9.2

### Version 3.9.2

#### Improvements

- [DEPLOYITPB-4827] - Added com.bea.common.configfwk_1.7.0.0.jar to configfwkLibs property to support OSB 11.1.1.7.0

### Version 3.9.1

#### Bug fixes

- [DEPLOYITPB-4650] OSB customization files should be applied on updates
- Fixed osbHome property not showing in discovery options.

### Version 3.9.0

#### Bug fixes

- [DEPLOYITPB-4239] - Make osbHome a java property that is required for inspection

### Version 3.8.0

#### Improvements

- [DEPLOYITPB-3552] - Support OSB 11.1.1.6

#### Bug fixes

- [DEPLOYITPB-3533] - Delete step problem

### Version 3.7.0

#### Improvements

- Updated to use plugin-api-3.7.0 and wls-plugin-3.7.0

### Version 3.7.0-beta-1

#### Bug fixes

- [DEPLOYITPB-1669] - Port the OSB plugin to the new plugin API

## CI Reference

### Configuration Item Overview

#### Deployables

#### Deployeds

#### Containers

#### Other Configuration Items

### Configuration Item Details

#### osb.Configuration

Type Hierarchy | generic.Folder >> udm.BaseDeployableFolderArtifact >> udm.BaseDeployableArtifact >> udm.BaseDeployable >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, udm.Deployable, udm.SourceArtifact, udm.Artifact, udm.DeployableArtifact, udm.ConfigurationItem, udm.FolderArtifact

OSB project configuration

|  | Public Properties
--- | --- | ---
|  | projectNames : SET_OF_STRING
|  | List of projects
|  | 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 = true
|  | 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

#### osb.DeployedConfiguration

Type Hierarchy | osb.ExtensibleDeployedArtifact >> wls.ExtensibleDeployedArtifact >> python.PythonManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Artifact, udm.Deployed, udm.ConfigurationItem, udm.DerivedArtifact

Deployed OSB Configuration

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

|  | Public Properties
--- | --- | ---
|  | deploymentOrder : INTEGER = 100
|  | By default, new applications and modules are configured with a Deployment Order value of 100
|  | projectNames : SET_OF_STRING
|  | List of projects
|  | redeploymentStrategy : ENUM [CLASSIC, STOP_START, SIDE_BY_SIDE] = CLASSIC
|  | Indicates what redeployment strategy to use for upgrading the application
|  | retireTimeout : INTEGER = -1
|  | Timeout interval (in secs) before the previous application version is undeployed for side by side redeployment strategy
|  | automaticVersioning : BOOLEAN = true
|  | If set, the 'versionIdentifier' property is managed by the plugin. Any value explicitly set for 'versionIdentifier' is ignored
|  | block : BOOLEAN = true
|  | boolean value specifying whether the deployment should block user interaction until the command complete
|  | deployable : CI<udm.Deployable>
|  | The deployable that this deployed is derived from.
|  | passphrase : STRING =
|  | PassPhrase OSB JarFile
|  | placeholders : MAP_STRING_STRING
|  | A Map containing all the placeholders mapped to their values. Special values are <ignore> or <empty>
|  | stageMode : ENUM [Stage, NoStage] = Stage
|  | Indicates whether the artifact will be deployed as staged or nostage mode
|  | stagingDirectory : STRING
|  | Absolute directory path where the artifact will be uploaded and used by the servers for nostage deployment mode
|  | versionIdentifier : STRING
|  | Version Identifier
|  | versioned : BOOLEAN
|  | Indicates wither this artifact is to be deployed as a versioned application

|  | Hidden Properties
--- | --- | ---
|  | configurationExtension : STRING = jar
|  | Configuration Extension
|  | createOrder : INTEGER = 60
|  | Create Order
|  | createScript : STRING = osb/configuration/import.py
|  | Python script invoked to import this OSB configuration
|  | createVerb : STRING = Import
|  | Create Verb
|  | customizationFileExtension : STRING = xml
|  | Customization File Extension
|  | destroyOrder : INTEGER = 40
|  | Destroy Order
|  | destroyScript : STRING = osb/configuration/delete.py
|  | Python script invoked to delete this OSB configuration
|  | destroyVerb : STRING = Delete
|  | Destroy Verb
|  | discoverOrder : INTEGER = 50
|  | The order in which a discover step will be executed.
|  | isRunningRetryWaitInterval : INTEGER = 500
|  | Time in milliseconds to wait before next retry to check if the deployment is still running
|  | modifyOrder : INTEGER = 60
|  | Modify Order
|  | modifyScript : STRING = osb/configuration/import.py
|  | Python script invoked to modify this OSB configuration
|  | modifyVerb : STRING = Upgrade
|  | Modify Verb
|  | standardPropertiesNotToExpose : STRING = id, name, type, deployable, properties, container, createScript, createVerb, createOrder, modifyScript, modifyVerb, modifyOrder, destroyScript, destroyVerb, destroyOrder, startScript, startVerb, startOrder, stopScript, stopVerb, stopOrder, deploymentStrategy, placeholders, file, redeploymentStrategy, securityPermissions, inheritPermissions, exposeDeployedApplication, stopRetiredApplicationOrder, undeployRetiredApplicationOrder, isRunningRetryWaitInterval, wlstPath, libraryScripts, discoverOrder, deploymentOrder, isStartOrStopOperationRequired, automaticVersioning
|  | Standard Properties Not To Expose
|  | startOrder : INTEGER = 90
|  | Start Order
|  | startScript : STRING = wls/application/start-application.py
|  | Python script invoked to start this Java EE artifact
|  | startVerb : STRING = Start
|  | Start Verb
|  | stopOrder : INTEGER = 10
|  | Stop Order
|  | stopRetiredApplicationOrder : INTEGER = 95
|  | Stop Retired Application Order
|  | stopScript : STRING = wls/application/stop-application.py
|  | Python script invoked to stop this Java EE artifact
|  | stopVerb : STRING = Stop
|  | Stop Verb
|  | undeployRetiredApplicationOrder : INTEGER = 98
|  | Undeploy Retired Application Order
|  | wlstPath : STRING = AppDeployments
|  | Wlst Path
|  | exposeDeployedApplication : BOOLEAN = false
|  | flag to indicate whether the deployed application CI is to be injected to the python script execution context.
|  | isStartOrStopOperationRequired : BOOLEAN = true
|  | Is Start Or Stop Operation Required
|  | libraryScripts : LIST_OF_STRING
|  | List of scripts to appended to the the deployeds runtime script

#### osb.Domain

Type Hierarchy | wls.Domain >> udm.BaseContainer >> udm.BaseConfigurationItem
Interfaces | udm.Taggable, python.PythonManagingContainer, wls.WlsContainer, python.PythonManagedContainer, udm.ConfigurationItem, udm.Container, overthere.HostContainer

OSB domain on the WebLogic server

|  | Children
--- | --- | ---
|  | clusters : SET_OF_CI<wls.Cluster>
|  | WebLogic clusters belonging to domain
|  | servers : SET_OF_CI<wls.Server>
|  | WebLogic servers belonging to domain

|  | Public Properties
--- | --- | ---
|  | adminServerName : STRING = AdminServer
|  | The name of the admin server
|  | host : CI<overthere.Host>
|  | The host that runs the admin server
|  | osbHome : STRING
|  | OSB Home directory
|  | password : STRING
|  | Password which is used to login to the WebLogic Domain.
|  | port : INTEGER = 7001
|  | Port to be used by the AdminServer for this domain
|  | protocol : ENUM [t3, t3s] = t3
|  | Protocol to be used by the AdminServer for this domain
|  | startMode : ENUM [NodeManager, Script, WindowsService] = NodeManager
|  | Tells how a managed server is start and stop, default is NodeManager, others are Script or Windows Service
|  | username : STRING
|  | Username which is used to login to the WebLogic Domain.
|  | version : ENUM [WEBLOGIC_9, WEBLOGIC_10, WEBLOGIC_11, WEBLOGIC_12] = WEBLOGIC_10
|  | Version of Oracle WebLogic Server
|  | wlHome : STRING
|  | The location of the WebLogic Server installation
|  | domainHome : STRING
|  | The location of the WebLogic domain. Defaults to /../user_projects/domains/ (Unix) or \..\user_projects\domains\ (Windows)
|  | hostname : STRING
|  | Host to connect to for WLST
|  | tags : SET_OF_STRING
|  | If set, only deployables with the same tag will be automatically mapped to this container.
|  | wlstPath : STRING
|  | Location of the wlst binary. Defaults to /common/bin/wlst.sh (Unix) or \common\bin\wlst.cmd (Windows)

|  | Hidden Properties
--- | --- | ---
|  | configfwkLibs : LIST_OF_STRING = [../modules/com.bea.common.configfwk_1.1.0.0.jar, ../modules/com.bea.common.configfwk_1.2.0.0.jar, ../modules/com.bea.common.configfwk_1.2.1.0.jar, ../modules/com.bea.common.configfwk_1.3.0.0.jar, ../modules/com.bea.common.configfwk_1.4.0.0.jar, modules/com.bea.common.configfwk_1.5.0.0.jar, modules/com.bea.common.configfwk_1.6.0.0.jar, modules/com.bea.common.configfwk_1.7.0.0.jar]
|  | All possible locations of the configfwk library relative to the OSB Home
|  | deployedsToDiscover : SET_OF_STRING = [wls.FilePersistentStore]
|  | Deployeds To Discover
|  | destroyJmsModuleOrder : INTEGER = 100
|  | Order used to trigger the clean of the JMS Modules of the domain
|  | pythonRuntimePath : STRING = osb/runtime
|  | Python Runtime Path
|  | sbKernelLibs : LIST_OF_STRING = [sb-kernel-api.jar, sb-kernel-impl.jar, sb-kernel-wls.jar]
|  | All possibly needed service bus kernel libraries relative to the OSB home
|  | startOrder : INTEGER = 80
|  | Start Order
|  | stopOrder : INTEGER = 20
|  | Stop Order
|  | wlstTemplatePath : STRING = osb
|  | Path containing the wlst templates: wlst.sh.ftl (Unix) and wlst.cmd.ftl (Windows)
|  | customWlstTemplatePath : STRING
|  | Path containing the custom wlst templates: wlst.sh.ftl (Unix) and wlst.cmd.ftl (Windows)
|  | runWithDaemon : BOOLEAN = true
|  | Set to true to execute commands with the Python daemon

#### osb.ExtensibleDeployedArtifact

Virtual Type
Type Hierarchy | wls.ExtensibleDeployedArtifact >> python.PythonManagedDeployed >> udm.BaseDeployed >> udm.BaseConfigurationItem
Interfaces | udm.EmbeddedDeployedContainer, udm.Artifact, udm.Deployed, udm.ConfigurationItem, udm.DerivedArtifact

Description unavailable

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

|  | Public Properties
--- | --- | ---
|  | deploymentOrder : INTEGER = 100
|  | By default, new applications and modules are configured with a Deployment Order value of 100
|  | redeploymentStrategy : ENUM [CLASSIC, STOP_START, SIDE_BY_SIDE] = CLASSIC
|  | Indicates what redeployment strategy to use for upgrading the application
|  | automaticVersioning : BOOLEAN = true
|  | If set, the 'versionIdentifier' property is managed by the plugin. Any value explicitly set for 'versionIdentifier' is ignored
|  | block : BOOLEAN = true
|  | boolean value specifying whether the deployment should block user interaction until the command complete
|  | 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>
|  | retireTimeout : INTEGER = -1
|  | Timeout interval (in secs) before the previous application version is undeployed for side by side redeployment strategy
|  | stageMode : ENUM [Stage, NoStage] = Stage
|  | Indicates whether the artifact will be deployed as staged or nostage mode
|  | stagingDirectory : STRING
|  | Absolute directory path where the artifact will be uploaded and used by the servers for nostage deployment mode
|  | versionIdentifier : STRING
|  | Version Identifier
|  | versioned : BOOLEAN
|  | Indicates wither this artifact is to be deployed as a versioned application

|  | Hidden Properties
--- | --- | ---
|  | createOrder : INTEGER = 70
|  | Create Order
|  | createScript : STRING = wls/application/deploy-application.py
|  | Python script invoked to deploy this Java EE artifact
|  | createVerb : STRING = Deploy
|  | Create Verb
|  | destroyOrder : INTEGER = 30
|  | Destroy Order
|  | destroyScript : STRING = wls/application/undeploy-application.py
|  | Python script invoked to undeploy this Java EE artifact
|  | destroyVerb : STRING = Undeploy
|  | Destroy Verb
|  | discoverOrder : INTEGER = 50
|  | The order in which a discover step will be executed.
|  | isRunningRetryWaitInterval : INTEGER = 500
|  | Time in milliseconds to wait before next retry to check if the deployment is still running
|  | modifyOrder : INTEGER = 60
|  | Modify Order
|  | modifyVerb : STRING = Upgrade
|  | Modify Verb
|  | standardPropertiesNotToExpose : STRING = id, name, type, deployable, properties, container, createScript, createVerb, createOrder, modifyScript, modifyVerb, modifyOrder, destroyScript, destroyVerb, destroyOrder, startScript, startVerb, startOrder, stopScript, stopVerb, stopOrder, deploymentStrategy, placeholders, file, redeploymentStrategy, securityPermissions, inheritPermissions, exposeDeployedApplication, stopRetiredApplicationOrder, undeployRetiredApplicationOrder, isRunningRetryWaitInterval, wlstPath, libraryScripts, discoverOrder, deploymentOrder, isStartOrStopOperationRequired, automaticVersioning
|  | Standard Properties Not To Expose
|  | startOrder : INTEGER = 90
|  | Start Order
|  | startScript : STRING = wls/application/start-application.py
|  | Python script invoked to start this Java EE artifact
|  | startVerb : STRING = Start
|  | Start Verb
|  | stopOrder : INTEGER = 10
|  | Stop Order
|  | stopRetiredApplicationOrder : INTEGER = 95
|  | Stop Retired Application Order
|  | stopScript : STRING = wls/application/stop-application.py
|  | Python script invoked to stop this Java EE artifact
|  | stopVerb : STRING = Stop
|  | Stop Verb
|  | undeployRetiredApplicationOrder : INTEGER = 98
|  | Undeploy Retired Application Order
|  | wlstPath : STRING = AppDeployments
|  | Wlst Path
|  | exposeDeployedApplication : BOOLEAN = false
|  | flag to indicate whether the deployed application CI is to be injected to the python script execution context.
|  | isStartOrStopOperationRequired : BOOLEAN = true
|  | Is Start Or Stop Operation Required
|  | libraryScripts : LIST_OF_STRING
|  | List of scripts to appended to the the deployeds runtime script
|  | modifyScript : STRING
|  | Python script invoked to upgrade this Java EE artifact