This blog will provide an understanding of how Oracle developer Cloud Service can be leveraged to do deployment of SOA composites developed using Jdeveloper on Oracle SOA Cloud Service.
Note: The scope of the blog does not cover how to develop a SOA composite.
Tech Stack Usage and its respective version:
Oracle Developer Cloud Service
Oracle SOA Cloud Service with SOA version 12.1.3
All local installations are done on Microsoft Windows
Setting up the SOA Development environment in brief:
To install using Jdeveloper 12.1.3 with SOA plugin locally on your machine you will have to use
“Oracle SOA Suite 12.1.3 Quick Start Download”. Below is the link that can be used to download the SOA quick start installer version 12.1.3.
This will install Jdeveloper 12.1.3, SOA 12.1.3 plugin and integrated Weblogic server with SOA libraries which will enable you to develop, deploy and test the SOA application locally using the integrated Weblogic server. You can follow the below documentation for the quick start setup.
Note: Having Jdeveloper 12.1.3 and then trying to install SOA plugin from the updates does not work anymore.
Installing Maven locally on your machine:
You will have to download the Binary Zip archive from the Maven website using the URL as given below:
You would have to unzip the maven binary zip download from the above site. When using Windows(as I have used for this blog), ensure that the jdk1.7 or greater and maven(downloaded and unzipped) bin directory file paths are set in the PATH environment variable. Also the JAVA_HOME variable should be set as well. Please use the below link to get more details on maven setup.
Oracle Cloud Service Setup
Developer Cloud Service:
You need to create a project and create an empty repository where the SOA application code needs to be checked in as shown in the screenshot below. Also, please take a note of the maven repository and Git repository URLS on the right hand side on the screen that you would need in the subsequent steps.
SOA Cloud Service
You would also have to create a SOA cluster instance in the SOA cloud service. Post creation of the instance, you will be able to see the instance listed on the page. As, it can be seen in the screen shot below. Make sure that, you take a note of the username and password that you provide for the Weblogic server instance while creating the SOA cluster instance.
Click on the instance name to see the details. Note the public IP address shown for your instance. For the one I am using it is: 22.214.171.124.
Post SOA quick start installation, Jdeveloper 12.1.3 will be installed on your machine. Select the SOA application from the new application template as depicted in the consecutive two screenshots below.
You can use the below given blog link as a reference for using the Git repository on the Developer cloud service that we had setup, to check in your SOA application code in Jdeveloper.
SOA Application Changes for Maven Build:
There are two POM files (considering you are creating one SOA composite for now) in the SOAService application. One is at the Application folder level. And another is at the composite project level. The POM file which is at the application folder level is the parent POM file which lists the composite modules that are part of the application and need to be build. Below is the screen shot that shows the SOA application project structure.
Highlighted entries need to be added to the Application level POM file to ensure that it first access the Oracle Developer Cloud Project maven repository for the build. The URL to this repository can be retrieved from the Developer Cloud service home page.
In the composite project (in the project structure the project name is Service) level POM the sar location needs to be appended with -SNAPSHOT.jar and we need to ensure that the version of the project is
- 1.0-SNAPSHOT. We will also have to add the repository entries as we had done for the previous application level POM.
Syncing the remote Maven repository for the SOA Build:
In the local maven repository which gets created under C://Users/<logged username>/.m2 there would be a settings.xml file where you would have to define the remote cloud repository for syncing. Giving the Developer Cloud service credentials (password can be encrypted) and the remote maven repository URL. Please refer the screenshot below.
Once the maven settings.xml changes are done you would have to run the below maven commands from the command prompt to sync the Developer Cloud service Project maven repository.
Note: Doracle-maven-sync.oracleHome would hold the folder path to the SOA quick start middleware installation. This may change based on your middleware location you would have given while installing.
mvn deploy:deploy-file -DpomFile=<middleware home>/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/oracle-maven-sync-12.1.3.pom -Dfile=<middleware home> /oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/oracle-maven-sync-12.1.3.jar -DrepositoryId=MavenRepositorySOAService -Durl=<Oracle Developer Cloud Service Project Maven Repository>
mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-sync.oracleHome=<middleware home> -Doracle-maven-sync.serverId=<settings.xml repository id> -P <settings.xml repository profile id>
Sample entries for reference:
<middleware home> : D:/Installs/fmw12130/
<settings.xml repository id> : MavenRepositorySOAService
<Oracle Developer Cloud Service Project Maven Repository> : https://developer.em2.oraclecloud.com/profile/developer61728-paas124/s/developer61728-paas124_soaservice_2216/maven/
<settings.xml repository profile id>: ProfileForSOAServiceProject
The repository sync will take some time based on your network speed. In case it times out you can rerun the above push command and it will start from where it had stopped syncing. You can see the entries of it getting created in the project activity feed in Developer Cloud Service project home page.
Finally, below are the build configurations that need to be done for the Maven build to take place:
Both the build and deploy of the composite in developer Cloud Service will be done by the maven build, there is no separate deployment configuration that needs to be done in the Developer Cloud service.
You will have to set three build parameters;
- serverUrl – http://<public ip of the SOA instance>:80
- user – username set for the Weblogic server while creating the SOA instance
- password – password set for the Weblogic server while creating the SOA instance.
- middlewareHome - opt/Oracle/Middleware/SOA
Below are the screenshots showing the build configuration and message output post maven goal execution
Message Output on the console would look like:
I have attached two pom files: application level POM and project level POM from which the above code snippets screenshots were taken.
**The views expressed in this post are my own and do not necessarily reflect the views of Oracle.