Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Swordfish Documentation: Apache ODE integration

Deploying ODE and BPEL samples in Swordfish

By default you have ode samples in the form of a JBI component package zip file. You must have the OSGI bundle to deploy it to Swordfish .

To deploy ODE and BPEL samples:

  • Change the extension from zip to jar
  • Change the component archive:
    • open archive for editing (or unpack it somewhere) and go to METAINF folder, you should see jbi.xml file here.
    • Add MANIFEST.MF file in this folder with the following content:
Manifest-Version: 1.0
Bundle-SymbolicName: !!!!YOUR BUNDLE NAME!!!!!
Bundle-Version: 0.0.0
DynamicImport-Package: javax.*,org.xml.*,org.w3c.*


  • repack archive and you are ready to install bundle
  • run swordfish and install bundle manually with osgi> install file:///c:/you-bundle-location
  • start bundle with command osgi> start BUNDLE_ID (you can check bundle ID with osgi> ss command)
  • alternatively you can add bundle statement to \org.eclipse.swordfish.bundles\config.ini file to automatic install and start on Swordfish startup.

IMPORTANT: Add 2 empty lines at the end of MANIFEST.MF file

Proposal for the JAX_WS-BPEL integration sample

The sample will cover both scenarios:

  • calling a BPEL process from JAX-WS (BPEL as service provider)
  • calling a JAX-WS service from BPEL (BPEL as service consumer)

The sample realizes the same flight reservation functionality as our standard JAX-WS sample, but uses a reservation storage, which instead implemented as internal hash table is implemented as a separate JAX-WS web service.

We realize the createReservation function as BPEL process calling a JAX-WS implemented reservationStorage.

So the java createReservation implemetation will call an ODE web service implementing this function. BPEL would construct a reservation from the input data and then call a reservationStorage.put web service function.

This way we cover both scenarios in one example, but will provide separate test cases for both scenarios (using a mock BPEL service and calling BPEL directly).

JAX_WS-BPEL demo implementation proposal

JAX-WS-BPEL-integration-sample.png

Participants:

  • simple java based web service client
  • SWORDFISH instance with demo BPEL process deployed
  • second SWORDFISH instance with JAX-WS services deployed (using separate SWORDFISH instance need for clear demonstation that we really invoke JAX-WS services from BPEL process)

The scenario is:

  1. Simple Client execute createReservation request to SWORDFISH 1, BPEL process start executing.
  2. After prepare needed info createReservation BPEL process invoke reservationStorage.put() deployed on SWORDFISH 2 and returns success confirmation and reservation ID to simple client.
  3. for additional check Simple Client invoke reservationStorage.find() service directly on SWORDFISH 2.


Installing BPEL Editor in Ganymede


return to Swordfish Documentation Home
go to Swordfish Wiki Home

Back to the top