On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <ddweeras...@gmail.com>wrote:

> Hi,
>
> I'm interested in implementing a interactive debugging tool for WS-BPEL
> developers on Apache ODE which enables to set breakpoints, and
> watch/inspect
> instance variables as GSOC project.


Sweet! Really good idea :)


>
> These days I'm developing a WS-BPEL status tracking tool which generate an
> SVG flow diagram based on the BPEL code, and view the instance variable
> values and the activity details of the running instances. I used the ODE
> Management API for that. But it seems that ODE doesn't provide any API for
> handling breakoints.
> Please let me know whether there is any API or some tool already developed
> for handling breakpoint functionality in ODE.
> As well I'm clueless of the capacity of this project idea, whether it's
> possible to achieve.
> Or if there is any other interresting ideas for GSOC under Apache ODE
> project please let me know.


It is possible as it's a feature that used to exist back in the days when
ODE was still called PXE and was developed by Intalio only. Debugging had
been developed for Netbeans by a third party.

Since then, even if it's never really been tested, I've been very careful to
not remove this code and keep it up-to-date with the different refactoring
we've done, thinking we'll probably revive this feature sooner or later. So
even if it's probably buggy, most of the code is still present and should be
operational.

So if you check the InstanceManagement interface [1], you'll see
suspend(iid) and resume(iid) methods, which is a start. Those are
implemented by the DebuggerSupport class [2], which is useful to look at but
is mostly internal API (external tooling shouldn't use it directly). Instead
those methods should be used through BpelManagementFacadeImpl that delegates
to DebuggerSupport. You'll find all the usual suspects:
getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For the
moment, even though those methods are on BpelManagementFacadeImpl like all
others of the management API, they're not accessible remotely yet. But that
wouldn't too hard to add.

I think that should be enough information to get you started but don't
hesitate to ask if you have any other additional question or problems.

Cheers,
Matthieu

[1]
http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
[2]
http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java


>
>
> Best regards,
> Denis Weerasiri.
>

Reply via email to