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. >