New Maven Support in SOA 12c

SOA 12c (version 12.1.3) has shipped now and there has been a lot of tweeting and blogging about it already, from lots of different folks, which is great!

In this post, I wanted to talk a bit about the new Maven support in SOA (and BPM) 12c.  First, let’s start with a quick overview of what is included, then we will walk through some examples (over a number of posts).

Summary of Maven features in SOA/BPM and OSB 12c:

  • Maven plugins for SOA/BPM and for OSB (ADF plugin continues to be available).
  • Maven archetypes for SOA Application, SOA Project, OSB ‘Application’, OSB Project, and OSB System Project.
  • Maven POMs for Oracle-supplied JARs that are needed for compilation, packaging, testing and deploying SOA/BPM (sar, mar, zip) and OSB (sbar) archives.
  • Documentation in the Fusion Middleware documentation library.
  • SOA Maven plugin allows you to compile (really validate, run scac), package (into a sar), deploy to a SOA Server, undeploy, and run SCA Test suites on the server.  It supports all kinds of SCA components – BPEL, BPMN, Human Task, Rules, Adapters, Mediators, etc.  And when you generate an ADF user interface project for a human task, a Maven POM is added to build that too.
  • OSB Maven plugin allows you to package (into a sbar) and deploy (publish) to an OSB Server.
  • Parent POMs provided for customisation purposes.
  • Maven POM editors in JDeveloper.
  • Ability to run Maven goals in JDeveloper or on the command line (or plug into Hudson, etc.)

Like all of our Maven support in Fusion Middleware, the first thing you need to do is go install Maven (or use the one we ship in oracle_common/modules/org.apache.maven_3.0.5), install the Sync Plugin, and run it (see this post for details).

When you run the Sync plugin’s push goal, you want to point it to your SOA (or BPM) Quickstart install directory.  I installed my BPM Quickstart in c:\bpm1213.  So I would do the following:

set PATH=c:\bpm1213\oracle_common\modules\org.apache.maven_3.0.5\bin:%PATH%
cd c:\bpm1213\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\12.1.3
mvn install:install-file -Dfile=oracle-maven-sync-12.1.3.jar -DpomFile=oracle-maven-sync-12.1.3.pom
mvn -DoracleHome=c:\bpm1213

After this, my Maven repository is now populated with everything I need to use Maven with SOA/BPM and OSB, and also ADF, WLS and Coherence.

In the next post, let’s talk about creating new applications/projects with the Maven archetypes.

Posted in Uncategorized | Tagged , , , , , , , | Leave a comment

Fusion Middleware 12.1.3 released

Fusion Middleware 12.1.3 is now available for download from OTN.  This release includes WebLogic Server, Coherence, ADF, SOA, OSB and BPM.

Here is the documentation site.

The download page for SOA/BPM is here.




Posted in Uncategorized | Tagged , , , , , , , , | Leave a comment

BPM Workspace for iOS on iTunes

The BPM Workspace App for iOS is now available on iTunes.  There is going to be an official announcement soon.



Posted in Uncategorized | Tagged , , | Leave a comment

BPM update adds Case Management Web Interface and REST APIs

Oracle has just released BPM Bundle Patch 3 which adds the out of the box web interface for Advanced Case Management and REST APIs for working with BPM.

The patch is available from Oracle Support, it is patch number 18072286.

The Case Management interface looks a bit like this:


And here is an example of using the REST API.  You can call the REST URL (GET) http://yourserver:port/bpm/services/rest/application.wadl to get details of the available services:


Here is a list of the REST methods provided:

  resources base=""
    resource path="processes"
      method id="getProcesses" name="GET"
    resource path="identities"
      method id="getIdentities" name="GET"
    resource path="user/{userid}"
      method id="getUser" name="GET"
    resource path="group/{groupid}"
      method id="getGroup" name="GET"
    resource path="role/{roleid}"
      method id="getRole" name="GET"
    resource path="runtime"
      method id="getRuntime" name="GET"
    resource path="tasks"
      method id="getTasks" name="GET"
    resource path="{id}/attachments"
      method id="getTaskAttachments" name="GET"
      method id="addTaskAttachments" name="POST"
    resource path="{id}/todoTasks"
      method id="getToDoTask" name="GET"
    resource path="views/{viewname}"
      method id="getViewBasedTasks" name="GET"
    resource path="actions"
      method id="performBulkActions" name="POST"
    resource path="{id}/info_request"
      method id="infoRequest" name="POST"
    resource path="{id}/attachments/{attachmentName}/stream"
      method id="getTaskAttachmentStream" name="GET"
    resource path="{id}/attachments/{attachmentName}"
      method id="deleteTaskAttachment" name="DELETE"
      method id="getTaskAttachment" name="GET"
    resource path="{id}/comments"
      method id="addTaskComment" name="POST"
      method id="getTaskComments" name="GET"
    resource path="{id}/reassign"
      method id="reassignTask" name="POST"
    resource path="{id}"
      method id="performTaskAction" name="POST"
      method id="getTask" name="GET"
    resource path="todoTask"
      method id="createToDoTask" name="POST"
    resource path="reassign"
      method id="reassignTasks" name="POST"
    resource path="{id}/delegate"
      method id="delegateTask" name="POST"
    resource path="delegate"
      method id="delegateTasks" name="POST"
    resource path="{id}/history"
      method id="getTaskHistory" name="GET"
    resource path="{id}/form"
      method id="getTaskForm" name="GET"
    resource path="views"
      method id="getViews" name="GET"

Posted in Uncategorized | Tagged , , , , , | 1 Comment

JDK 8 Now Available on OTN

Originally posted on Coherence Down Under:

Happy (belated) new year to all. Been a crazy start to the year so its been a challenge to get a detailed post going. I am working on one as we speak so watch this space.

Some exiting news overnight, JDK8 was released. See to download Java 8 and NetBeans 8.0.


View original

Posted in Uncategorized | Leave a comment

Want a free trip to JavaOne?

Oracle Academy is pleased to be supporting the Internet of Things (IoT) Developer Challenge! This is not open to Oracle employees or their immediate families, but other readers may be interested in participating for the chance to win a pass to JavaOne 2014 plus flights and accommodation.  For further details please read the official rules.

Welcome to the Internet of Things (IoT) Developer Challenge!

Show the world what you can do with Java + IoT for a chance to win a trip to JavaOne for you and two team members.

How to Win

1. Create a well-implemented, innovative and useful application using Java Embedded with devices, boards or other IoT technologies.

2. Make a video presenting your project.

3. Fill out the Submission Form with links to your video and code.


Four teams will win a trip to JavaOne. Three members of the winning teams will receive a JavaOne 2014 pass plus flight and hotel (for up to $2,000). Members of two student teams will receive a laptop and a certification voucher.

Key Dates:

Submissions begin March 3rd, 2014
Submission deadline is May 30th, 2014
Winners announced June 30th, 2014
JavaOne 2014 from Sept. 28 to Oct. 2, 2014

How to Get Started? Free Training!

The Oracle Technology Network will provide eight free training sessions in March and April, and they are open to anyone. Registered attendees get a chance to win a Raspberry Pi Starter Bundle. Register now.

· Introduction Webinar, March 17th, 2014

· Gemalto Concept Board Introduction, March 24, 2014

· Using I2C Component with Raspberry Pi, March 31, 2014

Posted in Uncategorized | Leave a comment

Manipulating Human Tasks (for testing)

A few months ago, while working on a BPM migration, I had the need to look at the status of human tasks, and to manipulate them – essentially to just have a single user take random actions on them at some interval, to help drive a set of processes that were being tested.

To do this, I wrote a little utility called httool.  It reuses some of the core domain classes from my custom worklist sample (with minimal changes to make it a remote client instead of a local one).

I have not got around to documenting it yet, but it is pretty simple and fairly self explanatory.  So I thought I would go ahead and share it with folks, in case anyone is interested in playing with it.

You can get the code from my ci-samples repository on

git clone git://

It is in the httool directory.

I do plan to get back to this “one day” and enhance it to be more intelligent – target particular task types, update the payload, follow a set of “rules” about what action to take – so that I can use it for more driving more interesting test scenarios.  If anyone is feeling generous with their time, and interested, please feel free to join the project and hack away to your heart’s content.

Posted in Uncategorized | Tagged , , , | 1 Comment