BPELUnit - can we run process instances, deploy processes, wsdls, etc.?

16 views
Skip to first unread message

Nariman Ammar

unread,
Jan 12, 2016, 8:27:46 AM1/12/16
to BPELUnit
Hello,
Is BpelUnit just for testing process structure, statistics, etc. or it also has bpel engine testing capabilities. Which project does that if any?
Thanks

Daniel Lübke

unread,
Jan 12, 2016, 8:48:33 AM1/12/16
to BPELUnit
Hi,

BPELUnit is only for testing. Testing is dynamic, i.e. the process instance is executed on a BPEL engine.
The deployment can be done manually before the test suite is run or by the BPELUnit framework.
If you want the former then use deployer=fix in the test suite, otherwise use deployer=xxx where xxx is a registered deployer. By default BPELUnit ships with an Apache ODE, ActiveBPEL and ActiveVOS deployer. However, it's quite easy to build your own.
The testing logic and some deployers are located in the net.bpelunit.framework project. The ActiveVOS deployer is in a separate .activevos project.

Daniel

Antonio García Domínguez

unread,
Jan 12, 2016, 8:55:36 AM1/12/16
to bpel...@googlegroups.com
Hi Daniel and Nariman,

Could you be a bit more specific on the meaning of "bpel engine testing"? Is it WS-BPEL 2.0 conformance, general stability, interoperability, or some other kind of requirement?

Kind regards,
Antonio

--
Sie erhalten diese Nachricht, weil Sie in Google Groups E-Mails von der Gruppe "BPELUnit" abonniert haben.
Wenn Sie sich von dieser Gruppe abmelden und keine E-Mails mehr von dieser Gruppe erhalten möchten, senden Sie eine E-Mail an bpelunit+u...@googlegroups.com.
Weitere Optionen finden Sie unter https://groups.google.com/d/optout.

Nariman Ammar

unread,
Jan 12, 2016, 9:04:52 AM1/12/16
to BPELUnit
Hello,
I generated x processes/bpels using the bpelunit.model.bpel project. I would like to extend a bpel engine (e.g. activebpel) with some functionality then evaluate the overhead cost. I was thinking that I could use the API provided by bpelunit.framework to evaluate that by deploying the generated processes (using the APIs) then evaluate the performance by running those x processes.
Thank you.

Nariman Ammar

unread,
Jan 12, 2016, 9:06:30 AM1/12/16
to BPELUnit
Thank Daniel,
In which file exactly shall i specify the deployer=fix or deployer=registered deployer.

Daniel Lübke

unread,
Jan 12, 2016, 9:16:00 AM1/12/16
to BPELUnit
Hi,

in the .bpts file. A simple tutorial with the Eclipse IDE can be found here: http://www.se.uni-hannover.de/pages/en:tutorials_bpelunit_hellobpel
Here in the screenshot you see the relevant field: http://www.se.uni-hannover.de/pub/Image/tutorials/BPEL-ODE-HelloBPEL-GeneralInformation.png
If you then look at the BPTS in the XML view (e.g by looking at the 2nd tab in the BPTS editor), you find the values for the deployers.
The deployers are configured differently depending on whether you use the command line version(s) or the Eclipse plug-ins. For the former you need to edit the $BPELUNIT_HOME/conf/extensions.xml file. Eclipse uses the OSGI extension points for this (you can e.g. see the ActiveVOS deployers plugin.xml)

Daniel

Nariman Ammar

unread,
Jan 12, 2016, 10:08:58 AM1/12/16
to BPELUnit
I understand. I kind of wanted to do that through the API as I am extending the engine's functionality. 

Daniel Lübke

unread,
Jan 12, 2016, 10:51:03 AM1/12/16
to BPELUnit
Which API exactly? BPELUnit loads the deployer prior to running the test suite because it uses it to deploy the process prior to starting the first test case. So there is no way of changing the deployer during the test run.

Daniel Lübke

unread,
Jan 13, 2016, 7:16:42 AM1/13/16
to BPELUnit
You can, however, register an HTTP handler in the deployer that will be made available by the BPELUnit framework. The deployer has several callbacks in the test lifecycle, e.g. after the whole test suite and after every test case. These can be used to gather statistics etc. This is also the approach for test coverage.

Daniel

Nariman Ammar

unread,
Jan 23, 2016, 3:36:56 PM1/23/16
to BPELUnit
I would like to run a process that will invoke an operation on another process, which will receive a request and invoke another process, etc., and finally return back to the original process. That would form a composition. Now these processes should be deployed in a bpel engine. See Antonios answer to my other question about running processes.
I am not sure which engines BPEL unit can integrate with. for example, if i am already using WSO2 BPS with some processes deployed. Can I test those by invoking them from a process that i created (programmatically) in bpel unit? 

Nariman Ammar

unread,
Jan 23, 2016, 3:37:51 PM1/23/16
to BPELUnit
Which classes shall i modify in this case? When you say register do you mean it is done through the GUI interface you referred t earlier?
Thanks

Daniel Lübke

unread,
Jan 24, 2016, 11:10:56 AM1/24/16
to BPELUnit
Hi,

in this case you would need to provide an implementation of net.bpelunit.framework.control.deploy.IBPELDeployer.

The interface specified several methods that are called at various steps in the test process:
- deploy: the deployer shall deploy the process
- undeploy: the deployer shall undeploy the process
- cleanUpAfterTestCase: called after every test case

You will need to register your new deployer in BPELUnit. The steps are a bit different depending on whether you use the Eclipse tooling or the other BPELUnit front-ends:
- For Eclipse you need to specify the deployer as a plugin. For example, see the plugin.xml of net.bpelunit.framework.client.eclipse. You must specify the deployer class and a deployer key. Deploy the plugin into an Eclipse with BPELUnit installed and the rest should work.
- For the standalone version, you will need to package all your required classes into a jar and copy it to $BPELUNIT_HOME/lib and edit the extensions.xml in $BPELUNIT_HOME/lib. There you register a new deployer with a new deployer key.

The deployer key is used in the <put type=deployerkey"/> in the bpts file.

Daniel
Reply all
Reply to author
Forward
0 new messages