This is the main page of the wiki for the WS-BPEL Composition Repository maintained by the UCASE Software Engineering research group at the University of Cádiz.

Download instructions

If the Subversion binaries are in your PATH environment variable, check out a working copy of our SVN repository with:

svn co

Windows users may want to use TortoiseSVN instead.

Available compositions

Not all process definitions are "pure" WS-BPEL 2.0: some contain vendor-specific extensions. Additionally, depending on the source, the applicable license may vary.

  • LoanApproval: standard loan approval example.
  • LoanApprovalExtended: a considerably extended version of the Loan Approval composition developed from scratch. The composition takes into account much more information, such as pending debts, job history, existing properties, Social Security information and so on.
  • MetaSearch: meta-search engine which interleaves the results of two regular search engines.
  • SquaresSum: a simple composition which computes the value of sum (i=1 to n) for a certain value of n.
  • SquaresSum_1: This composition calculates the squares between 0 and "n" of a given number and the total sum of that squares.
  • SquaresSum_2: This composition calculates the squares sum and also calculates the variance of the elements.
  • SquaresSum_3: This composition calculates the squares sum, the variance of the elements and whether the given number is prime.
  • TravelReservationService: travel reservation service which connects to the airline, vehicle and hotel reservation web services.
  • TacService: invert the order of the lines in a file.
  • TradeIncome: tradeIncome models the behavior of managing a supermarket.

Work in progress

We are currently working to publish more compositions, such as:

Continuous integration


We have set up a list of requirements that every composition in the repository should meet.

Automated evaluation

We have a Jenkins job that automates most of these checks and provides regular reports.

Manual evaluation

Nevertheless, you may check that a specific composition X meets these requirements by running ./run-tests X from the main directory of your working copy.

The generated results.xml file follows the same format as JUnitReport, and can be read using Eclipse or many other common IDEs. The first line usually indicates the number of tests run, the hostname of the machine used to run it, the number of test failures and test errors and the total time required, measured in seconds.

<testsuite tests="14" name="es.uca.webservices.bpel.repo.Lint" hostname="pepino" failures="0" time="40.896" errors="0">

For instance, the above line says that we ran 14 tests in 40.896 seconds on "pepino" and found no failures or errors.

After the first line, we will see several <testcase> elements. This is an example of a successful test case for the TacService composition, taking 0.581 seconds:

  name="EntryHasWikiPage" time="0.581" classname="es.uca.webservices.bpel.repo.TacServiceTest">

This is a failed test case, which indicates that the TacService folder should not have any files related to IDEs or build tools whenever possible:

  name="NoProjectFiles" time="47.891" classname="es.uca.webservices.bpel.repo.TacServiceTest">
    message="Should not have any IDE- or build tool-related project files, but it did. Please remove any of these files: 

- .classpath
- .project
- .settings
- build.xml
- nb-build.xml
- nbbuild
- nbdist
- nbproject" type="es.uca.webservices.bpel.repo.LintFailure">

Useful introductory materials on WS-BPEL

We recommend the following materials to learn about BPEL and all its underlying technologies: