The core package of the BPEL Debugger Plugin SPI (Service Provider Interface). The purpose of this SPI is to incapsulate any particular BPEL Engine specifics in a separate component - BPEL Debugger Plugin, while having BPEL Engine independent the core functionality of the BPEL Debugger. This SPI may be considered as the requirements for the BPEL Engine to meet so that it could be debugged by the NetBeans IDE.
Many patterns in this SPI were inherited from the JDI (Java Debug Interface), so it may be helpfull to take a look at the JDI definition to better understand this SPI.

The root entity of this SPI is the {@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelDebuggerPlugin} interface. It represents the BPEL Debugger Plugin itself, allowing to make new connections to BPEL Engine instances. Plugins are registered in the NetBeans IDE by providing a NetBeans module that have a text file named "org.netbeans.modules.bpel.debugger.spi.plugin.BpelDebuggerPlugin" in the META-INF/debugger folder of the module's *.jar file. The file should contain a fully-qualified class name of the {@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelDebuggerPlugin} interface impelementation.

{@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelEngine} interface represents a target BPEL Engine. It is the origin of all information provided by the BPEL Debugger Plugin SPI (e.g. deployed Process Types, running Process Instances etc). To connect to a target BPEL Engine and obtain a corresponding {@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelEngine} object one needs to obtain a {@link org.netbeans.modules.bpel.debugger.spi.plugin.Connector} object through a call to {@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelDebuggerPlugin#getConnector}, and then invoke {@link org.netbeans.modules.bpel.debugger.spi.plugin.Connector#attach} on it.

For the description of event notification mechanism used in this SPI see {@link org.netbeans.modules.bpel.debugger.spi.plugin.event} and {@link org.netbeans.modules.bpel.debugger.spi.plugin.request} package descriptions.

Most of the methods within this package and subpackages can throw the following unchecked exceptions: {@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelEngineDisconnectedException}, {@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelEngineMismatchException}, {@link org.netbeans.modules.bpel.debugger.spi.plugin.BpelEngineInternalException}.