Defines the "session" classes which control the debuggee. Sessions are connected to a debuggee via a JvmConnection and control the state of the debuggee. Listeners of the session are notified of when the state in the debuggee changes.

The SessionManager implementations are accessed via the SessionProvider static class. To provide custom implementations of SessionManager, you must install your implementation as a "service". See the NetBeans OpenAPIs documentation under "Services & Lookup" to learn how this is done.

Similarly, instances of SessionFactory are acquired via the SessionProvider static class. To provide custom implementations of SessionFactory, you must install your implementation as a "service".

Implementations of Session must cause instances of DebuggingContext and BreakpointManager to be created, prior to the session being connected to a debuggee. Ideally, this would be done in the init() method. See the BasicSession implementation for an example.