Continuous Integration using Oracle Fusion Middleware 12C: Part 1

Continuous Integration has been a big deal in Java land for many years now. We all want to integrate and test our software as soon as possible and preferably automated. With the new 12C edition, we can now build OSB projects and SOA composites using Maven. That is great because Maven has all sorts of nice features out of the box and available plugins. In this blog post I will attempt to create a continuous integration environment using Subversion for source control, Jenkins and Maven as build tools and Nexus as artifact repository. I will run my 12C environment on an EC2 hosted machine, Subversion hosted at Assembla and I will run Nexus and Jenkins on a locally running Tomcat. So my environment looks this:

CI

First things first. Install your 12C environment on an EC2 instances or you can run it locally. I found a simple instruction here. I used a medium Linux machine which seemed to run quite smooth even though it has only 4Gb of RAM in it.

Next install Maven and a JDK. I am using Maven3.2.1 and JDK1.7.0_51. Next grab a Tomcat install, download Jenkins and Nexus as a .war. I am using Apache-tomcat-7.0.57, Nexus2.9.2 and the latest Jenkins release which is 1.588. I am using Tomcat as it is tested for Nexus. You probably can run it on Weblogic but you will have to work out some class loading issues I guess. On Tomcat it is easy. Just unzip Tomcat, drop the nexus.war and jenkins.war in the webapps directory, add these extra parameters to the cataline.bat for some extra memory tuning:

set CATALINA_OPTS=-Xms256m -Xmx2048m -XX:PermSize=64m -XX:MaxPermSize=512m

and start that baby up. You should now be able to reach http://localhost:8080/jenkins and http://localhost:8080/nexus when the startup is finished. Under Manage Jenkins->Configure System you can setup the JDK and the Maven home.

Jenkins Config

I also install the Green balls plugin as I do not like the blue balls.

Let’s first start to see if we can push a simple java project into Nexus. I am using an old project of mine from a previous blog post….see here. So just add a new Jenkins job based on Maven, configure where your SVN repository is located and set the maven goals you want to execute.

Job Config

When connecting to a remote subversion, you will have to enter the username and password once so Jenkins can store this. Next we have to configure Maven with some Nexus credentials. Open settings.xml and add the following lines to the servers part:

<servers>
		<server>
			<id>releases</id>
			<username>admin</username>
			<password>admin123</password>
		</server>
		<server>
			<id>snapshots</id>
			<username>admin</username>
			<password>admin123</password>
		</server>
	</servers>

Now lets take a look at the pom file of the source code. There we need to add a distribution section. This will now look like this:

<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>
	<groupId>nl.redrock.maven.plugins.misc</groupId>
	<artifactId>ascii-art-plugin</artifactId>
	<packaging>maven-plugin</packaging>
	<version>1.0-SNAPSHOT</version>
	<name>Ascii Art plugin</name>

	<distributionManagement>
		<repository>
			<id>releases</id>
			<url>http://localhost:8080/nexus/content/repositories/releases</url>
		</repository>
		<snapshotRepository>
			<id>snapshots</id>
			<url>http://localhost:8080/nexus/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>

	<dependencies>
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-plugin-api</artifactId>
			<version>3.1.1</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
			<type>jar</type>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

This tells maven where to go to when he has to deploy to a repository. Based on the version ( -SNAPSHOT ) he goes to the releases repository or snapshot repository . He uses the username and password in the config.xml matched by id so make sure these match. Now it is time to see if it works. Lets start the job and see what happens. You can see the console output when you click the progress bar. It should look something like this in the end:

Started by user anonymous
Building in workspace C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace
Cleaning local Directory ascii-art-plugin
Checking out https://subversion.assembla.com/svn/redrock-it/trunk/java/ascii-art-plugin at revision '2014-11-14T09:54:00.450 +0100'
A         pom.xml
A         .settings
A         .settings\org.eclipse.m2e.core.prefs
A         .settings\org.eclipse.jdt.core.prefs
A         .classpath
A         .project
A         src
A         src\test
A         src\test\resources
A         src\test\java
A         src\test\java\nl
A         src\test\java\nl\redrock
A         src\test\java\nl\redrock\maven
A         src\test\java\nl\redrock\maven\plugins
A         src\test\java\nl\redrock\maven\plugins\misc
A         src\test\java\nl\redrock\maven\plugins\misc\AsciiArtMojoTest.java
A         src\main
A         src\main\java
A         src\main\java\nl
A         src\main\java\nl\redrock
A         src\main\java\nl\redrock\maven
A         src\main\java\nl\redrock\maven\plugins
A         src\main\java\nl\redrock\maven\plugins\misc
A         src\main\java\nl\redrock\maven\plugins\misc\AsciiArtMojo.java
 U        .
At revision 14
no change for https://subversion.assembla.com/svn/redrock-it/trunk/java/ascii-art-plugin since the previous build
Parsing POMs
[ascii-art-plugin] $ "C:\Program Files\Java\jdk1.7.0_51/bin/java" -cp "C:\Users\Hugo Hendriks\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-agent-1.5.jar;D:\Development\apache-maven-3.2.1\boot\plexus-classworlds-2.5.1.jar;D:\Development\apache-maven-3.2.1/conf/logging" jenkins.maven3.agent.Maven31Main D:\Development\apache-maven-3.2.1 "D:\Projecten\VGZ\CI installatie software\apache-tomcat-7.0.57\webapps\jenkins\WEB-INF\lib\remoting-2.47.jar" "C:\Users\Hugo Hendriks\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-interceptor-1.5.jar" "C:\Users\Hugo Hendriks\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.5.jar" 51224
<===[JENKINS REMOTING CAPACITY]===>channel started
Executing Maven:  -B -f C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\pom.xml clean deploy
[INFO] Scanning for projects...
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Ascii Art plugin 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ ascii-art-plugin ---
[INFO] 
[INFO] --- maven-plugin-plugin:3.2:descriptor (default-descriptor) @ ascii-art-plugin ---
[WARNING] Using platform encoding (Cp1252 actually) to read mojo metadata, i.e. build is platform dependent!
[INFO] Applying mojo extractor for language: java-annotations
[INFO] Mojo extractor for language: java-annotations found 0 mojo descriptors.
[INFO] Applying mojo extractor for language: java
[INFO] Mojo extractor for language: java found 1 mojo descriptors.
[INFO] Applying mojo extractor for language: bsh
[INFO] Mojo extractor for language: bsh found 0 mojo descriptors.
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ascii-art-plugin ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\src\main\resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ ascii-art-plugin ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ ascii-art-plugin ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ ascii-art-plugin ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\target\test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ ascii-art-plugin ---
[INFO] Surefire report directory: C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running nl.redrock.maven.plugins.misc.AsciiArtMojoTest
Building: 

           $$$$$$$$$                  $$  $$$$$$$$$                      $$                         
           $$$$$$$$$$                 $$  $$$$$$$$$$                     $$                         
           $$    $$$$                 $$  $$    $$$$                     $$                         
           $$      $$   $$$$$    $$$$$$$  $$      $$   $$$$$$    $$$$$$  $$  $$$$                   
           $$    $$$$  $$$$$$$  $$$$$$$$  $$    $$$$  $$$$$$$$  $$$$$$$  $$ $$$$                    
           $$$$$$$$$$  $$$ $$$  $$$$$$$$  $$$$$$$$$$  $$$$$$$$  $$$$$$$  $$$$$$                     
           $$$$$$$$$   $$$$$$$  $$$  $$$  $$$$$$$$$   $$$  $$$  $$$      $$$$$                      
           $$ $$$$$$   $$$$$$$  $$    $$  $$ $$$$$$   $$    $$  $$       $$$$$$                     
           $$   $$$$   $$$      $$$  $$$  $$   $$$$   $$$  $$$  $$$      $$$$$$                     
           $$    $$$$  $$$$$$$  $$$$$$$$  $$    $$$$  $$$$$$$$  $$$$$$$  $$  $$$                    
           $$     $$$$ $$$$$$$  $$$$$$$$  $$     $$$$ $$$$$$$$  $$$$$$$  $$  $$$                    
           $$     $$$$  $$$$$    $$$$$$$  $$     $$$$  $$$$$$    $$$$$   $$   $$$                   
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.121 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[JENKINS] Recording test results
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ ascii-art-plugin ---
[INFO] Building jar: C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\target\ascii-art-plugin-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-plugin-plugin:3.2:addPluginArtifactMetadata (default-addPluginArtifactMetadata) @ ascii-art-plugin ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ascii-art-plugin ---
[INFO] Installing C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\target\ascii-art-plugin-1.0-SNAPSHOT.jar to D:\Development\apache-maven-repo\nl\redrock\maven\plugins\misc\ascii-art-plugin\1.0-SNAPSHOT\ascii-art-plugin-1.0-SNAPSHOT.jar
[INFO] Installing C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\pom.xml to D:\Development\apache-maven-repo\nl\redrock\maven\plugins\misc\ascii-art-plugin\1.0-SNAPSHOT\ascii-art-plugin-1.0-SNAPSHOT.pom
[INFO] 
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ ascii-art-plugin ---
[INFO] Downloading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/maven-metadata.xml
[INFO] Downloaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/maven-metadata.xml (789 B at 2.8 KB/sec)
[INFO] Uploading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/ascii-art-plugin-1.0-20141114.085418-3.jar
[INFO] Uploaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/ascii-art-plugin-1.0-20141114.085418-3.jar (6 KB at 55.3 KB/sec)
[INFO] Uploading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/ascii-art-plugin-1.0-20141114.085418-3.pom
[INFO] Uploaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/ascii-art-plugin-1.0-20141114.085418-3.pom (2 KB at 13.1 KB/sec)
[INFO] Downloading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/maven-metadata.xml
[INFO] Downloaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/maven-metadata.xml (337 B at 2.5 KB/sec)
[INFO] Downloading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/maven-metadata.xml
[INFO] Downloaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/maven-metadata.xml (231 B at 3.5 KB/sec)
[INFO] Uploading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/maven-metadata.xml
[INFO] Uploaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/1.0-SNAPSHOT/maven-metadata.xml (789 B at 6.8 KB/sec)
[INFO] Uploading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/maven-metadata.xml
[INFO] Uploaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/ascii-art-plugin/maven-metadata.xml (337 B at 4.8 KB/sec)
[INFO] Uploading: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/maven-metadata.xml
[INFO] Uploaded: http://localhost:8080/nexus/content/repositories/snapshots/nl/redrock/maven/plugins/misc/maven-metadata.xml (231 B at 2.9 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.013 s
[INFO] Finished at: 2014-11-14T09:54:19+01:00
[INFO] Final Memory: 30M/356M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\pom.xml to nl.redrock.maven.plugins.misc/ascii-art-plugin/1.0-SNAPSHOT/ascii-art-plugin-1.0-SNAPSHOT.pom
[JENKINS] Archiving C:\Users\Hugo Hendriks\.jenkins\jobs\ASCII-Art-plugin\workspace\ascii-art-plugin\target\ascii-art-plugin-1.0-SNAPSHOT.jar to nl.redrock.maven.plugins.misc/ascii-art-plugin/1.0-20141114.085418-3/ascii-art-plugin-1.0-20141114.085418-3.jar
channel stopped
Finished: SUCCESS

As you can see, it does a checkout, builds and runs the tests. When this was successful it deploys it artifact to nexus. Lets check Nexus to see if this was really so.

Nexus Artifact

As you can see, the snapshots are there.

The next step is to do the same for a ServiceBus and a SOASuite composite. For building both projects using Maven we will need certain libraries. As Oracle doesn’t have a central maven repository where maven could just pickup the libraries, we have to sync these from a 12C installation.

First we will install the Oracle Maven Synchronization Plug-In in the local repository. Both files are located in the [ORACLE_HOME]/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3 directory. You can do this by running:

mvn install:install-file -DpomFile=oracle-maven-sync.12.1.3.pom -Dfile=oracle-maven-sync.12.1.3.jar

Once you have installed this successfully you can run the push goal, to push all the needed libraries to your local repository.

mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=[ORACLE_HOME] 

Now you local maven repository is filled with the necessary libraries to build your projects but we also want these in Nexus. So we do mvn deploy and another push to get all the artifact into Nexus.

mvn deploy:deploy-file -DpomFile=oracle-maven-sync-12.1.3.pom -Dfile=oracle-maven-sync-12.1.3.jar -Durl=http://localhost:8080/nexus/content/repositories/thirdparty -DrepositoryId=local-nexus
mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=[ORACLE_HOME] -DserverId=local-nexus

You will need to add some extra info to your maven settings.xml. You will have to add the following settings:

<servers>
        <server>
		<id>local-nexus</id>
		<username>admin</username>
		<password>admin123</password>
	</server>
</servers>

<profiles>
	<profile>
		<id>nexus</id>
		<repositories>
			<repository>
				<id>local-nexus</id>
				<url>http://localhost:8080/nexus/content/repositories/thirdparty</url>
				<layout>default</layout>
			</repository>
		</repositories>
	</profile>
</profiles>

<activeProfiles>
	<activeProfile>nexus</activeProfile>
</activeProfiles>

Be prepared though…this might take a while before it has uploaded all the artifacts.

Now that we have added all the artifact successfully to the nexus repository, we can see if we can build a 12C SB project using maven. I already had a 12C project in my SVN repository so I just need to add a maven based job to Jenkins with the following goals: clean package -DoracleHome=[ORACLE_HOME]. The weird thing here is that I still have to add the oracleHome parameter. First I thought it was just for the deploy maybe but it was even needed for the compile. I would have thought that by uploading all the artifacts it wouldn’t have needed any extra software but now it seems you still have to install a 12C instance somewhere for the build machine.

Now lets see if it will build.

Building in workspace C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace
Cleaning local Directory GeoService
Checking out https://subversion.assembla.com/svn/redrock-it/trunk/ofm/GeoService at revision '2014-11-21T18:27:07.382 +0100'

A         wsdl
A         wsdl\GeoService.xsd
A         wsdl\GeoService.wsdl
A         Resources
A         Resources\GoogleGeocodeRestReference.wadl
A         Resources\GoogleGeocodeRestReference.wsdl
A         pom.xml
A         thirdparty
A         thirdparty\GoogleGeocode.xsd
A         thirdparty\GoogleGeocode.wadl

A         business
A         business\GoogleGeocodeRestReference.bix
A         proxy
A         proxy\GeocodeSoapService.proxy
A         servicebus.sboverview
A         GeoService.jpr
A         GeoServicePipeline.pipeline
At revision 19
no change for https://subversion.assembla.com/svn/redrock-it/trunk/ofm/GeoService since the previous build
Parsing POMs
Modules changed, recalculating dependency graph
[GeoService] $ "C:\Program Files\Java\jdk1.7.0_51/bin/java" -cp "C:\Users\Hugo Hendriks\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-agent-1.5.jar;D:\Development\apache-maven-3.2.1\boot\plexus-classworlds-2.5.1.jar;D:\Development\apache-maven-3.2.1/conf/logging" jenkins.maven3.agent.Maven31Main D:\Development\apache-maven-3.2.1 "D:\Projecten\VGZ\CI installatie software\apache-tomcat-7.0.57\webapps\jenkins\WEB-INF\lib\remoting-2.47.jar" "C:\Users\Hugo Hendriks\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-interceptor-1.5.jar" "C:\Users\Hugo Hendriks\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.5.jar" 56894
<===[JENKINS REMOTING CAPACITY]===>channel started

Executing Maven:  -B -f C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace\GeoService\pom.xml clean package -DoracleHome=C:\Oracle\Middleware\Oracle_Home -X

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T18:37:52+01:00)
Maven home: D:\Development\apache-maven-3.2.1
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_51\jre
Default locale: en_GB, platform encoding: Cp1252
OS name: "windows 8", version: "6.2", arch: "amd64", family: "windows"
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from D:\Development\apache-maven-3.2.1\conf\settings.xml
[DEBUG] Reading user settings from C:\Users\Hugo Hendriks\.m2\settings.xml
[INFO] Scanning for projects...

[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building GeoService 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ GeoService ---
[DEBUG] Skipping non-existing directory C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace\GeoService\.data\maven
[DEBUG] Skipping non-existing directory C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace\GeoService\.data\maven\classes
[DEBUG] Skipping non-existing directory C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace\GeoService\.data\maven\test-classes
[DEBUG] Skipping non-existing directory C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace\GeoService\.data\maven\site
[INFO] 
[INFO] --- oracle-servicebus-plugin:12.1.3-0-0:package (default-package) @ GeoService ---

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.820 s
[INFO] Finished at: 2014-11-21T18:27:25+01:00
[INFO] Final Memory: 19M/223M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace\GeoService\pom.xml to nl.redrock.ofm/GeoService/1.0-SNAPSHOT/GeoService-1.0-SNAPSHOT.pom
[JENKINS] Archiving C:\Users\Hugo Hendriks\.jenkins\jobs\GeoService\workspace\GeoService\.data\maven\sbconfig.sbar to nl.redrock.ofm/GeoService/1.0-SNAPSHOT/GeoService-1.0-SNAPSHOT.sbar
channel stopped
Finished: SUCCESS

and success!

So basically what we have done here is setup a CI environment and successfully build a ServiceBus project from Subversion using Maven.

In the next part I will create a pipeline which you can use to build, test, deploy and archive an 12C artifact.

11 Replies to “Continuous Integration using Oracle Fusion Middleware 12C: Part 1”

  1. Pingback: The Oracle Maven repository available now! |

  2. Pingback: CI using Oracle Fusion Middleware 12C: Part 2. Building a SB and SOA project using maven and the MDS -

  3. Pingback: Oracle Fusion Middleware 12C: Deploy the MDS using Maven

  4. Pingback: OFM 12C: Running WLST scripts using the weblogic-maven-plugin in your build pipeline

  5. Hello,
    I have been reading and following your post, I have to do the same for an adf application, so far I managed to run the the oracle sync plugging in my maven local repo, also I am able to run it in my remote maven nexus repository, the problem is that the oracle plugging is trying to download several dependencies that are snapshots and as you know in nexus you can either have a release repository or a snapshot repository and because of that I am getting the following error.

    [ERROR] POM File: C:installationsidesjdeveloper12.2.1.1.0jdeveloperpluginsmavencomoraclejdevtyrus-client-1.3-SNAPSHOT12.2.1tyrus-client-1.3-SNAPSHOT-12.2.1.pom Real File: C:installationsidesjdeveloper12.2.1.1.0jdeveloperjdevextensionsoracle.jdeveloper.webservice.websocketwebsocket-ri-archive-1.3-SNAPSHOTlibtyrus-client-1.3-SNAPSHOT.jar”. Repository copy will not be performed for this artifact: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy metadata: Could not transfer metadata com.oracle.jdev:tyrus-client-1.3-SNAPSHOT/maven-metadata.xml from/to oracle-local-releases (http://devdbs06.ds.local:8081/content/repositories/oracle-local-releases): Failed to transfer file: http://devdbs06.ds.local:8081/content/repositories/oracle-local-releases/com/oracle/jdev/tyrus-client-1.3-SNAPSHOT/maven-metadata.xml. Return code is: 400, ReasonPhrase: Bad Request.

    Do you know a way to do push this snapshots in the snapshot repository automatically so the releases and the snapshots will not collide ??

  6. Hi Jose,

    I heard other people also had issues with this for SOA. If it only a few dependencies you can manually download them and manually upload them into Nexus which should solve your problem but you can’t really browse the repository, so you can’t see if it is in there. I tried to find your jar no success there. The only post I could find was https://blogs.oracle.com/blueberry/entry/using_the_oracle_public_maven but your probably also found that one.

  7. Pingback: CI using Oracle Fusion Middleware 12C: Part 2. Building a SB and SOA project using maven and the MDS - REDROCK

  8. Pingback: The Oracle Maven repository available now!

  9. Pingback: OFM 12C: Running WLST scripts in your build pipeline using the weblogic-maven-plugin

  10. Pingback: continuous-integration-using-oracle-fusion-middleware-12c

  11. Pingback: Running WLST scripts in your build pipeline using the weblogic-maven-plugin

Leave a Reply

Your email address will not be published. Required fields are marked *

*