·
Jenkins can be seen as a windows service in
services.msc. It gets automatically started along with machine.
2. Configuration of
MDS
There are two way we can update the MDS.
- Using
FileMetadataStore to update the MDS with location directory structure.
- Using
DBMetadataStore(JIT DB) to update the MDS
Now update the adf-config.xml file
in SVN. Open the bpel project folder.
Copy the mds location=
"D:\.....\trunk\soa\MdsXml\src"
Open adf.xml file and update
as per your local mds location and committed back to SVN.
The below
piece of code will help the project to refer to the local MDS/DB MDS.
<persistence-config>
<metadata-namespaces>
<namespace
metadata-store-usage="mstore-usage_1"
path="/soa/shared"/>
<namespace
metadata-store-usage="mstore-usage_2" path="/apps/xml"/>
</metadata-namespaces>
<metadata-store-usages>
<metadata-store-usage
id="mstore-usage_1">
<metadata-store
class-name="oracle.mds.persistence.stores.file.FileMetadataStore">
<property
value="${oracle.home}/integration"
name="metadata-path"/>
<property value="seed"
name="partition-name"/>
</metadata-store>
</metadata-store-usage>
<metadata-store-usage
id="mstore-usage_2">
<!--CI integration enabled JIT file based MDS -->
<!--metadata-store
class-name="oracle.mds.persistence.stores.file.FileMetadataStore">
<property
value="D:\........\trunk\soa\MdsXml\src"
name="metadata-path"/>
</metadata-store-->
<!--CI integration enabled
JIT DBbased MDS -->
<metadata-store
class-name="oracle.mds.persistence.stores.db.DBMetadataStore">
<property
value="PE1_SOA_MDS" name="jdbc-userid"/>
<property
value="******" name="jdbc-password"/>
<property
value="jdbc:oracle:thin:@host:port/SID"
name="jdbc-url"/>
<property
value="soa-infra" name="partition-name"/>
</metadata-store>
</metadata-store-usage>
</metadata-store-usages>
</persistence-config>
3.
Deployment structure
Create
folder structure
for script deployment as shown in the picture below.
BPEL
| ---Trunk
|----SOA
|--Project1
build.xml //single project build file which point to
generic_build
Pom.xml //project level POM file maven build
Config
generic_build.xml
Adf-config.xml
properties_DEV.properties //DEV Server connectivity
details
wlserver_cfgplan.xml
- Adding Project1/Build.xml
<?xml
version="1.0" encoding="windows-1252" ?>
<project
default="compile" basedir=".">
<!-- Run with ant
-Doracle.home=<Oracle home directory> -->
<!-- ant is found in
/u01/appl/weblogic/soa111160/modules/org.apache.ant_1.7.1/bin/ant -->
<!-- oracle home directory is
/u01/appl/weblogic/soa111160/SOA1 -->
<property
name="compositeName"
value="<projectName>.customer"/>
<import file="config/generic_build.xml"/>
</project>
- Adding
Project1/Config/generic_build.xml
<?xml
version="1.0" encoding="windows-1252" ?>
<project
default="compile" basedir=".">
<property
name="overwrite" value="true"/>
<property
name="revision"
value="1.0.0"/>
<property
name="environment" value="DEV"/>
<!--property
file="${basedir}/config/properties_${environment}.properties"/ -->
<target
name="compile">
<mkdir dir="SCA-INF/classes/META-INF"/>
<copy
todir="SCA-INF/classes/META-INF"
file="config/adf-config.xml" overwrite="true"/>
<ant
antfile="${oracle.home}/bin/ant-sca-package.xml"
inheritall="false">
<property
name="compositeDir" value="${basedir}"/>
<property
name="compositeName" value="${compositeName}"/>
<property name="revision"
value="${revision}"/>
</ant>
</target>
<target
name="release"
depends="compile">
<property
name="sarLocation" value="sca_${compositeName}_rev${revision}.jar"/>
<mkdir
dir="${release.dir}"/>
<copy
todir="${release.dir}" file="deploy/${sarLocation}"/>
</target>
<target
name="deploy-dev">
<property
file="${basedir}/config/properties_${environment}.properties"/>
<property name="overwrite"
value="true"/>
<antcall
target="deploy"/>
</target>
<target
name="deploy-it">
<property
file="${basedir}/config/properties_${environment}.properties"/>
<property
name="overwrite" value="true"/>
<antcall target="deploy"/>
</target>
<target
name="deploy" depends="compile" >
<echo>Deploying Project:
${compositeName}</echo>
<echo>basedir:
${basedir}</echo>
<property
name="sarLocation"
value="sca_${compositeName}_rev${revision}.jar"/>
<ant antfile="${oracle.home}/bin/ant-sca-deploy.xml"
inheritall="false">
<property name="serverURL"
value="${server.url}"/>
<property name="sarLocation"
value="${basedir}/deploy/${sarLocation}"/>
<property name="user" value="${server.user}"/>
<property name="password" value="${server.password}"/>
<!-- property name="configplan"
value="${basedir}/config/${server.configplan}"/-->
<!--This project do not required configplan file -->
<property name="partition" value="${server.partition}"/>
<property name="overwrite" value="${overwrite}"/>
</ant>
</target>
<target
name="package">
<property name="sarLocation"
value="sca_${compositeName}_rev${revision}.jar"/>
<copy
todir="${basedir}/deploy" overwrite="true" >
<fileset dir="${basedir}/config"
includes="wlserver*, build.xml" />
<filterset>
<filter
token="SCAFILE" value="${sarLocation}"/>
</filterset>
</copy>
<zip
destfile="${basedir}/deploy/${compositeName}_rev${revision}.zip">
<fileset dir="${basedir}/deploy"
includes="${sarLocation}, wlserver*, build.xml" />
</zip>
</target>
</project>
- Adding
properties_DEV.properties
#Wed
Aug 07 15:23:03 CET 2015
server.url=http\://172.16.76.216\:10101
server.user=weblogic
server.partition=default
server.password=welcome1
server.configplan=<if
required>
In MAVEN,
each project should have a project.xml in the root folder. It defines the project
object model of each project. The POM is defined in a pom.xml file that contains all the information necessary to build
the project, generate reports and configure plugins.
groupId - the group name under which
this Artifact/project will be grouped
artifactId - the unique name of the artifact that would be generated by
the project.
name - name of the Application
currentVersion - version number of the Application
packaging - Source
package
<?xml
version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>soa.parent</artifactId>
<groupId>com.<projectName>.soa</groupId>
<version>1.0.0</version>
</parent>
<artifactId><projectName>.customer</artifactId>
<version>1.0.1</version>
<packaging>pom</packaging>
<name>Customer SOA
Composite</name>
</project>
·
Deployment:
Navigate
to the below path in command prompt (or go to the below path in file explorer
and shift+right click, click the option open
the command window here ).
<path>\soa
Run the below maven command for build
Syntax:
mvn clean install -Doracle.home=<jdeveloper_installed_path>
Ex: mvn clean install
-Doracle.home="D:\Oracle11.6\Middleware\jdeveloper"
Run the below ant command for deployment
Syntax:ant -Doracle.home=<jdeveloper_installed_path>
<target env>
Ex:ant -Doracle.home="D:\Oracle11.6\Middleware\jdeveloper" deploy-dev
4. Configuration of Jenkins
for Automatic Deployment
Configure the ant,SVN,maven path
like below.
Ant is coming with oracle Jdeveloper installer.
Like, Ant_Home
=D:\Oracle11.6\Middleware\jdeveloper\ant
JAVA_HOME=
D:\Oracle11.6\Middleware\jdk160_24
If you have a Freestyle project with a "Invoke Top
Level Maven Targets" build step, you can add the appropriate JVM switches
for a given build by clicking the Advanced
button on the build step and entering the JVM arguments in the JVM Options
field.
Alternatively, you can affect all free style Maven build
steps by adding a MAVEN_OPTS global environment variable in the Jenkins global
configuration. To do this, click Manage
Jenkins, then Configure System. In the Global
properties section, click the Environment
Variables checkbox, then add a new environment variable called MAVEN_OPTS
with the value set appropriately:
Set MAVEN_OPTS= -Xmx512m
-XX:MaxPermSize=512m
Download
and install apache-maven-3.0.4 version or the latest one and set the Maven home
path to path variable
M2= D:\apache-maven-3.0.4
To
create a new project in Jenkins, click on ‘New Item’ in Dashboard.
Give ‘Item Name’ as
<project>.customer and select Build a free style software project and
click OK.
Add build steps.
Use maven command for compile/build
in jenkins.
Select “Invoke Top Level Maven
Targets” with maven version for build.
M2= clean install
-Doracle.home="D:\Oracle\Middleware11.6\jdeveloper", Save it.
Use ant command for deploy to
server.
ant
-Doracle.home="D:\Oracle11.6\Middleware\jdeveloper" deploy-dev
Here we defined multiple build target.
Save the configuration and build
now.
Then click on console output.
We can see in console page first
Build and then deployed the service to DEV server.
Similarly we can deploy all the BPAL
project.
Reference(s)