Download OSBS11g here (14MB)..IntroductionA few years ago, when Oracle had only the BPEL component, deployment was rather complex. Therefore I create my own build tool, replacing the obant tool and ignoring the existing build.xml files, supplied within your JDeveloper project. Now with Oracle 11g the SCA composite is introduced and we are running on the Oracle Weblogic Server.
It took me some time to upgrade the Oracle SOA Build Server to the 11g version. Many new features have been added:
- Supports Oracle SOA 11g (from 11.1.1.3, aka PS2)
- Deploy/Undeploy SCA composites
- Deploy/Undeploy MDS
- Support of partitions
- Deploy to diferent targets
- Restructured project directory
- Restructured environment properties
- Updated documentation (Use Guide)
OverviewThe default tools of SOA 10g SOA 11g, is only focussing on deployment of a single component (BPEL / ESB / SCA). While in real life, more components are involved with a deployment. You can think on Java application; data-model changes, etc. To overcome this issue, and create a mechanism to deploy multiple type of components, a general "build.xml" that is able to compile and deploy components.
The solution described in the next paragraphs will take this into account.
FunctionalityThe build tool covers the following features and can be easily change and extended to customer requirements:
- Depends on SOA 11g environment, installed soa_domain
- Using full ANT tasks features, Ant 1.7 + Ant-Contrib tasks
- Support of Multiple environments; Dev / Test / Acceptance / Production / ...
- Deploy SCA composites
- Undeploy SCA components
- UnDeploy MDS artifacts
- Deploy MDS artifacts
- Deploy SQL
- Integration with SubServersion; download latests or tags
- Stand-alone tool ; not depending on Oracle installation
- Compile and Deploy Java programs
- Supporting 'MakeAll'
ConfigurationTo use the build tool some configuration must be made. Most of all settings are located in properties files. Configure the build tool configuration file to prepare the deployment for this release. Edit the following file:
$BUILD_TOOL/build.envIn build.env, edit ANT_HOME and ANT_JAVA_EXTENSIONS, change the first part of the path to where the package was copied to ($BUILD_TOOL). Also change LOG_DIR in build.env, log files will go to this directory.
An example of this file is here
...
LOG_DIR=/home/oracle/buildtool/log
FMW_HOME=/app/oracle/products/11g/fmw
SOA_HOME=/app/oracle/products/11g/admin/domains/soa_domain
...
Manual DeploymentDownloadDownload the latest version of your project. Example for SystemTest environment:
obbuild.sh -e test DownloadNote: it will use the file test/replace_.properties to execute the find and replace for the endpoints.
Example for tag 2.0.23 being the current version for acceptance:
obbuild.sh -e acc Download 2.0.22Example for revision 1254 for development:
obbuild.sh Download rev 1254Note: it will use the file test/replace_.properties to execute the find and replace for the endpoints.
The replace.properties file is used for a general replacement of tokens in your projects. The file describes how tokens can be replaced in one or
all BPEL processes, ESB services.
Syntax:
find.seq.name=[all|]
[all|].seq.find.value=
[all|].seq.replace.value=
Example:
Replace in all the files localhost:9700 into 127.0.0.1:8001
find.1.name=all
all.1.find.value=localhost:9700
all.1.replace.value=localhost:8001Example:
Replace in HellWorld bpel process the default domain and the hostname
find.1.name=HelloWorld
HelloWorld.1.find.value=localhost:9700
HelloWorld.1.replace.value=192.168.0.1:8888find.2.name=HelloWorld
HelloWorld.2.find.value=/orabpel/default
HelloWorld.2.replace.value=/orabpel/systest
Deploy generic SCA compositeDeploy each BPEL process separately. Example for Test environment:
For example: Compile and Deploy Helloworld 1.0 to the default domain of node1
obbuild.sh -e test DeploySCA HelloWorldSCA 1.0 default node1 Deploy Java WebServiceDeploy each Java process separately. Example for Test environment:
obbuild.sh -e test DeployJava HelloJavaWorldNote: default-application.xml must be included in source code.Automatic DeploymentTo deploy the whole system at once, use the task 'MakeAll'.
obbuild.sh -e test MakeAllNote: This target is using the 'makeall_test.properties' that describes the correct sequence of all the AIA components (Java, BPEL, and ESB) that will be built and deployed. The next table shows an example of the 'makeall.properties' file.sql.make.10=car
deploy.version.10=1.0
deploy.target.10=dbnode
mds.make.15=common_capesoa
deploy.version.15=1.0
deploy.target.15=node1
sca.make.100=HelloWorldSCArefxx
deploy.version.100=1.1
deploy.target.100=node1
sca.make.200=HelloWorldSCArefxx
deploy.version.200=2.1
deploy.target.200=node2
sca.make.300=HelloWorldSCArefxx
sca.make.20=HelloWorldSCArefbb
sca.make.30=HelloWorldSCArefcc
sca.make.40=HelloWorldSCA
A target can be given to deploy to a particular node or database.
targets.properties
target.node1=node1.vijfhuizen.local:8010
target.node1.username=weblogic
target.node1.password=welcome1
target.node2=node2.vijfhuizen.local:8020
target.node2.username=weblogic
target.node2.password=welcome1
target.admin=t3://192.168.2.10:7001
target.admin.username=weblogic
target.admin.password=welcome1
target.dbnode=jdbc:oracle:thin:@database.vijfhuizen.local:1521:XE
target.dbnode.username=scott
target.dbnode.password=tiger
Command line interface
The command line interface of the obbuild tool is as follows:
./obbuild.sh -?
obbuild.sh [-[hvtV] [-e environment] [-f build-file] [-m makefile] [-r replace-file] [task] [arg1] [arg2] .. [arg6]]
-h Shows this help
-V Show the version of this program
-t Show all the tasks in the build file
-e Select envirnonment property file, default 'dev', reading dev.properties
-f Read a specific build file, default is build.xml in current directory
-m Read a specific makefile
-r Read a specific replacement file, use for promoting BPEL process to other environments.
-v Show verbose output
task The task to be executed, default is main
arg1..6 Optional arguments passed to the build file as properties ANT.ARG1..ANT.ARG6
./obbuild.sh -t
obbuild.sh: Tasks in ./build.xml
CreateDirs - Create directory structure
Download - Download latest source code
[arg=tagged-version | rev number]
main - Default task
Promote - Find/Replace on one or more processes, see replace.properties
CompileJava - Compile Java files
[arg1=name of the application]
CreateWar - Create WAR file from class files
[arg1=name of application]
CreateEar - Create EAR file from WAR file
[arg1=name of application]
DeployJava - Deploy an EAR file to
[arg1=name of the application]
UndeployJava - Undeploy an application from target
[arg1=name of the application]
MakeAll - Create a new set of the application
[arg1=[version] [arg2=partition]
SendMail - Send a mail
[arg1=to arg2=subject arg3=text]
DeployXSD - Deploy the XSD files: creating a ZIP file
[arg1=Name]
CompileSCA - Compile SCA composite
[arg=sca-composite-name]
DeploySCA - Deploy SCA composite
[arg=composite-name] | [arg=version|1.0] [arg=partition] [arg=target]
UndeploySCA - Undeploy SCA composite
[arg=sca-composite-name arg=revision | arg=target]
DeployMDS - Deploy MDS artifact
[arg=oramds-artifact] arg=[target]
UndeployMDS - Undeploy MDS artifact
[arg=oramds-artifact] arg=[target]
DeploySQL - Deploy SQL
[arg=sql directory] | [arg=db-target]
DeployScript - Deploy Script
[arg=ant|wlst] | [arg=script-name] [arg=target]
There is no support from Oracle or myself and I expect that you have the proper Oracle licences to use the Oracle software.