blob: 85115d05684a26c617bc4bb41b92861b8d8b3542 [file] [log] [blame]
<html>
<!--
NO NO NO NO NO!
==============> DO NOT EDIT ME! <======================
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
SEE xml/api/doc/changes/apichanges.xml
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Debugger Core API changes by date</title>
<link rel="stylesheet" href="prose.css" type="text/css">
</head>
<body>
<p class="overviewlink">
<a href="overview-summary.html" shape="rect">Overview</a>
</p>
<h1>Introduction</h1>
<p>This document lists changes made to the Debugger Core APIs. Please ask on the
<code>nbdev@netbeans.org</code>
mailing list if you have any questions about the details of a
change, or are wondering how to convert existing code to be compatible.
</p>
<hr>
<h1>
<a name="list-all-apis">Index of APIs</a>
</h1>
<ul>
<li>
<a href="#DebuggerCoreAPI">Debugger Core API</a>
</li>
</ul>
<h1>
<a name="incompat-by-date">Incompatible changes by date</a>
</h1>
<p>Fuller descriptions of all changes can be found below (follow links).</p>
<p>Not all deprecations are listed here, assuming that the deprecated
APIs continue to essentially work. For a full deprecation list, please
consult the
<a href="deprecated-list.html">Javadoc</a>.</p>
<ul>
<li>(Mar 1 '08) <a href="#generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</li>
<li>(May 9 '04) <a href="#ToggleBreakpointAction-etc.">Support for ToggleBreakpointAction added, and some bugfix of Debugger Actions support API.</a>
</li>
<li>(May 3 '04) <a href="#DebuggerEngine-synch-start">Support for synchronouous start of DebuggerEngines added.</a>
</li>
<li>(Apr 29 '04) <a href="#debugger-dual-actions">Support for "dual" actions added.</a>
</li>
</ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(Apr 18 '16) <a href="#Watch_Pin">API for pinned Watches</a>
</li>
<li>(Apr 30 '15) <a href="#BreakpointsDeactivation">A mechanism for activation/deactivation of engine-related breakpoints.</a>
</li>
<li>(Sep 8 '14) <a href="#SessionBridge">A session bridge introduced to handle mixed languages debugging.</a>
</li>
<li>(Mar 27 '12) <a href="#Watch_disableable">API for changing enabled state of a Watch</a>
</li>
<li>(Dec 19 '11) <a href="#DependentBreakpoints">Added a possibility to enable/disable other breakpoints when one is hit.</a>
</li>
<li>(Nov 12 '10) <a href="#EvaluateAction">Evaluate action is made generic, based on action providers.</a>
</li>
<li>(Sep 10 '10) <a href="#DebuggerServiceRegistrations">Allow multiple debugger service registrations and position order</a>
</li>
<li>(Feb 28 '10) <a href="#BreakpointsGrouping">Breakpoints group properties.</a>
</li>
<li>(Feb 23 '10) <a href="#AddWatchActionProvider">It's possible to override New Watch action with a session-specific provider.</a>
</li>
<li>(Feb 11 '10) <a href="#LazyActionRegistration">A declarative mechanism to delay creation of action provider instance until a file with specific MIME type becomes active.</a>
</li>
<li>(Dec 15 '09) <a href="#WatchesReordering">Support for changing the order of watches.</a>
</li>
<li>(Feb 28 '09) <a href="#PropertiesInitializer">Support for providing initial values of properties.</a>
</li>
<li>(Feb 28 '09) <a href="#PropertiesListener">Support for listening to changes of property values.</a>
</li>
<li>(Feb 2 '09) <a href="#PathLookup">Lookup improvements and service annotation registration.</a>
</li>
<li>(Mar 1 '08) <a href="#generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</li>
<li>(May 21 '07) <a href="#Breakpoint.hitCounts">Add filter for hit counts to breakpoints.</a>
</li>
<li>(Feb 21 '07) <a href="#Breakpoint.validity">Support for breakpoint validity.</a>
</li>
<li>(Feb 1 '07) <a href="#ActionsManager.ACTION_STEP_OPERATION">Support for stepping over operations.</a>
</li>
<li>(Aug 24 '05) <a href="#ActionsManager-ActionsProvider.postAction">Debugger actions can be posted asynchronously.</a>
</li>
<li>(Nov 23 '04) <a href="#ActionsProviderSupport.isEnabled-nonfinal">final modifier removed from ActionsProviderSupport.isEnabled.</a>
</li>
<li>(May 13 '04) <a href="#Breakpoint.group.name">Support for Breakpoints Group added.</a>
</li>
<li>(May 9 '04) <a href="#ToggleBreakpointAction-etc.">Support for ToggleBreakpointAction added, and some bugfix of Debugger Actions support API.</a>
</li>
<li>(May 3 '04) <a href="#DebuggerEngine-synch-start">Support for synchronouous start of DebuggerEngines added.</a>
</li>
<li>(Apr 29 '04) <a href="#debugger-dual-actions">Support for "dual" actions added.</a>
</li>
</ul>
<h1>
<a name="all-by-version">Changes by version</a>
</h1>
<p>
These API specification versions may be used to indicate that a module
requires a certain API feature in order to function. For example, if you
see here a feature you need which is labelled <samp>1.20</samp>, your
manifest should contain in its main attributes the line:
</p>
<pre>OpenIDE-Module-Module-Dependencies: org.netbeans.api.debugger/1 &gt; 1.20</pre>
<ul>
<li>
(1.54) <a href="#Watch_Pin">API for pinned Watches</a>
</li>
<li>
(1.51) <a href="#BreakpointsDeactivation">A mechanism for activation/deactivation of engine-related breakpoints.</a>
</li>
<li>
(1.48) <a href="#SessionBridge">A session bridge introduced to handle mixed languages debugging.</a>
</li>
<li>
(1.36) <a href="#Watch_disableable">API for changing enabled state of a Watch</a>
</li>
<li>
(1.35) <a href="#DependentBreakpoints">Added a possibility to enable/disable other breakpoints when one is hit.</a>
</li>
<li>
(1.29) <a href="#EvaluateAction">Evaluate action is made generic, based on action providers.</a>
</li>
<li>
(1.28) <a href="#DebuggerServiceRegistrations">Allow multiple debugger service registrations and position order</a>
</li>
<li>
(1.25) <a href="#BreakpointsGrouping">Breakpoints group properties.</a>
</li>
<li>
(1.24) <a href="#AddWatchActionProvider">It's possible to override New Watch action with a session-specific provider.</a>
</li>
<li>
(1.23) <a href="#LazyActionRegistration">A declarative mechanism to delay creation of action provider instance until a file with specific MIME type becomes active.</a>
</li>
<li>
(1.22) <a href="#WatchesReordering">Support for changing the order of watches.</a>
</li>
<li>
(1.17) <a href="#PropertiesInitializer">Support for providing initial values of properties.</a>
</li>
<li>
(1.17) <a href="#PropertiesListener">Support for listening to changes of property values.</a>
</li>
<li>
(1.16) <a href="#PathLookup">Lookup improvements and service annotation registration.</a>
</li>
<li>
(1.13) <a href="#generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</li>
<li>
(1.11) <a href="#Breakpoint.hitCounts">Add filter for hit counts to breakpoints.</a>
</li>
<li>
(1.10) <a href="#Breakpoint.validity">Support for breakpoint validity.</a>
</li>
<li>
(1.9) <a href="#ActionsManager.ACTION_STEP_OPERATION">Support for stepping over operations.</a>
</li>
<li>
(1.5) <a href="#ActionsManager-ActionsProvider.postAction">Debugger actions can be posted asynchronously.</a>
</li>
<li>
(1.3) <a href="#ActionsProviderSupport.isEnabled-nonfinal">final modifier removed from ActionsProviderSupport.isEnabled.</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<h2>
<a name="org.netbeans.api.debugger.ActionsManager"><code><span style="color:gray">org.netbeans.api.debugger.</span>ActionsManager</code></a>
</h2><ul><li>(Nov 12 '10) <a href="#EvaluateAction">Evaluate action is made generic, based on action providers.</a>
</li>
<li>(Feb 23 '10) <a href="#AddWatchActionProvider">It's possible to override New Watch action with a session-specific provider.</a>
</li></ul><h2>
<a name="org.netbeans.spi.debugger.ActionsProvider"><code><span style="color:gray">org.netbeans.spi.debugger.</span>ActionsProvider</code></a>
</h2><ul><li>(Sep 10 '10) <a href="#DebuggerServiceRegistrations">Allow multiple debugger service registrations and position order</a>
</li>
<li>(Feb 11 '10) <a href="#LazyActionRegistration">A declarative mechanism to delay creation of action provider instance until a file with specific MIME type becomes active.</a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.ActiveBreakpoints"><code><span style="color:gray">org.netbeans.api.debugger.</span>ActiveBreakpoints</code></a>
</h2><ul><li>(Apr 30 '15) <a href="#BreakpointsDeactivation">A mechanism for activation/deactivation of engine-related breakpoints.</a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.Breakpoint"><code><span style="color:gray">org.netbeans.api.debugger.</span>Breakpoint</code></a>
</h2><ul><li>(Dec 19 '11) <a href="#DependentBreakpoints">Added a possibility to enable/disable other breakpoints when one is hit.</a>
</li>
<li>(Feb 28 '10) <a href="#BreakpointsGrouping">Breakpoints group properties.</a>
</li></ul><h2>
<a name="org.netbeans.spi.debugger.BreakpointsActivationProvider"><code><span style="color:gray">org.netbeans.spi.debugger.</span>BreakpointsActivationProvider</code></a>
</h2><ul><li>(Apr 30 '15) <a href="#BreakpointsDeactivation">A mechanism for activation/deactivation of engine-related breakpoints.</a>
</li></ul><h2>
<a name="org.netbeans.spi.debugger.ContextAwareService"><code><span style="color:gray">org.netbeans.spi.debugger.</span>ContextAwareService</code></a>
</h2><ul><li>(Feb 2 '09) <a href="#PathLookup">Lookup improvements and service annotation registration.</a>
</li></ul><h2>
<a name="org.netbeans.spi.debugger.ContextAwareSupport"><code><span style="color:gray">org.netbeans.spi.debugger.</span>ContextAwareSupport</code></a>
</h2><ul><li>(Feb 2 '09) <a href="#PathLookup">Lookup improvements and service annotation registration.</a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.DebuggerEngine"><code><span style="color:gray">org.netbeans.api.debugger.</span>DebuggerEngine</code></a>
</h2><ul><li>(Mar 1 '08) <a href="#generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.DebuggerInfo"><code><span style="color:gray">org.netbeans.api.debugger.</span>DebuggerInfo</code></a>
</h2><ul><li>(Mar 1 '08) <a href="#generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.DebuggerManager"><code><span style="color:gray">org.netbeans.api.debugger.</span>DebuggerManager</code></a>
</h2><ul><li>(Apr 18 '16) <a href="#Watch_Pin">API for pinned Watches</a>
</li>
<li>(Dec 15 '09) <a href="#WatchesReordering">Support for changing the order of watches.</a>
</li>
<li>(Mar 1 '08) <a href="#generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</li></ul><h2>
<a name="org.netbeans.spi.debugger.DebuggerServiceRegistration"><code><span style="color:gray">org.netbeans.spi.debugger.</span>DebuggerServiceRegistration</code></a>
</h2><ul><li>(Sep 10 '10) <a href="#DebuggerServiceRegistrations">Allow multiple debugger service registrations and position order</a>
</li>
<li>(Feb 2 '09) <a href="#PathLookup">Lookup improvements and service annotation registration.</a>
</li></ul><h2>
<a name="org.netbeans.spi.debugger.DebuggerServiceRegistrations"><code><span style="color:gray">org.netbeans.spi.debugger.</span>DebuggerServiceRegistrations</code></a>
</h2><ul><li>(Sep 10 '10) <a href="#DebuggerServiceRegistrations">Allow multiple debugger service registrations and position order</a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.Properties"><code><span style="color:gray">org.netbeans.api.debugger.</span>Properties</code></a>
</h2><ul><li>(Feb 28 '09) <a href="#PropertiesInitializer">Support for providing initial values of properties.</a>
</li>
<li>(Feb 28 '09) <a href="#PropertiesListener">Support for listening to changes of property values.</a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.Session"><code><span style="color:gray">org.netbeans.api.debugger.</span>Session</code></a>
</h2><ul><li>(Mar 1 '08) <a href="#generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.SessionBridge"><code><span style="color:gray">org.netbeans.api.debugger.</span>SessionBridge</code></a>
</h2><ul><li>(Sep 8 '14) <a href="#SessionBridge">A session bridge introduced to handle mixed languages debugging.</a>
</li></ul><h2>
<a name="org.netbeans.api.debugger.Watch"><code><span style="color:gray">org.netbeans.api.debugger.</span>Watch</code></a>
</h2><ul><li>(Apr 18 '16) <a href="#Watch_Pin">API for pinned Watches</a>
</li>
<li>(Mar 27 '12) <a href="#Watch_disableable">API for changing enabled state of a Watch</a>
</li></ul><hr>
<h1>
<a name="details-by-api">Details of all changes by API and date</a>
</h1>
<hr style="width:50%">
<h2>
<a name="DebuggerCoreAPI">Debugger Core API</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Watch_Pin">API for pinned Watches</a>
</h3>
<em>Apr 18 '16; API spec. version: 1.54; affected top-level classes: <a href="./org/netbeans/api/debugger/DebuggerManager.html"><code>DebuggerManager</code></a> <a href="./org/netbeans/api/debugger/Watch.html"><code>Watch</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=258651">
#258651</a></em>
<br>
A <code>Watch.Pin</code> base interface introduced as a basis
for specific platform-dependent and location-dependent implementations.
<code>DebuggerManager.createPinnedwatch()</code> introduced.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="BreakpointsDeactivation">A mechanism for activation/deactivation of engine-related breakpoints.</a>
</h3>
<em>Apr 30 '15; API spec. version: 1.51; affected top-level classes: <a href="./org/netbeans/api/debugger/ActiveBreakpoints.html"><code>ActiveBreakpoints</code></a> <a href="./org/netbeans/spi/debugger/BreakpointsActivationProvider.html"><code>BreakpointsActivationProvider</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=242800">
#242800</a></em>
<br>
API class <code>ActiveBreakpoints</code> and SPI interface
<code>BreakpointsActivationProvider</code> introduced. These classes
handle an activation/deactivation of engine-related breakpoints,
which is independent on their enabled/disabled state.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="SessionBridge">A session bridge introduced to handle mixed languages debugging.</a>
</h3>
<em>Sep 8 '14; API spec. version: 1.48; affected top-level classes: <a href="./org/netbeans/api/debugger/SessionBridge.html"><code>SessionBridge</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=246819">
#246819</a></em>
<br>
<code>SessionBridge</code> class introduced. This class allows to
suggest that some debug action can be handled by a different debugging
session. The handlers can be registered via implementations of
<code>SessionChanger</code> interface.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="Watch_disableable">API for changing enabled state of a Watch</a>
</h3>
<em>Mar 27 '12; API spec. version: 1.36; affected top-level classes: <a href="./org/netbeans/api/debugger/Watch.html"><code>Watch</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=209783">
#209783</a></em>
<br>
Two method are added to Watch class: <code>isEnabled()</code> and <code>setEnabled(boolean)</code>.
When the enabled state changes, <code>PROP_ENABLED</code> event is fired.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="DependentBreakpoints">Added a possibility to enable/disable other breakpoints when one is hit.</a>
</h3>
<em>Dec 19 '11; API spec. version: 1.35; affected top-level classes: <a href="./org/netbeans/api/debugger/Breakpoint.html"><code>Breakpoint</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=197707">
#197707</a></em>
<br>
Four methods are added to the Breakpoint class, that allow to
get or set a set of breakpoints, that are enabled or disabled when
the breakpoint is hit. One test method is provided, which determines
if the dependent breakpoints are supported by the implementation.
<p>
Added methods:<br>
<code>Breakpoint.canHaveDependentBreakpoints()</code>,
<code>Breakpoint.getBreakpointsToEnable()</code>,
<code>Breakpoint.setBreakpointsToEnable()</code>,
<code>Breakpoint.getBreakpointsToDisable()</code>,
<code>Breakpoint.setBreakpointsToDisable()</code>.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="EvaluateAction">Evaluate action is made generic, based on action providers.</a>
</h3>
<em>Nov 12 '10; API spec. version: 1.29; affected top-level classes: <a href="./org/netbeans/api/debugger/ActionsManager.html"><code>ActionsManager</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=191394">
#191394</a></em>
<br>
<p>
Evaluate action is moved from JPDA Debugger into Debugger Core UI module.
ActionsManager.ACTION_EVALUATE constant was added for use by debugger-specific
provider (ActionsProvider) of Evaluate action.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DebuggerServiceRegistrations">Allow multiple debugger service registrations and position order</a>
</h3>
<em>Sep 10 '10; API spec. version: 1.28; affected top-level classes: <a href="./org/netbeans/spi/debugger/DebuggerServiceRegistration.html"><code>DebuggerServiceRegistration</code></a> <a href="./org/netbeans/spi/debugger/DebuggerServiceRegistrations.html"><code>DebuggerServiceRegistrations</code></a> <a href="./org/netbeans/spi/debugger/ActionsProvider.html"><code>ActionsProvider</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=190080">
#190080</a></em>
<br>
<p>
Allow to specify the order of the debugger service registry.
For the need of being able to define multiple different
registrations for a single instance, @DebuggerServiceRegistrations
and ActionsProvider.Registrations annotations are introduced.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="BreakpointsGrouping">Breakpoints group properties.</a>
</h3>
<em>Feb 28 '10; API spec. version: 1.25; affected top-level classes: <a href="./org/netbeans/api/debugger/Breakpoint.html"><code>Breakpoint</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=179759">
#179759</a></em>
<br>
<p>
Add Breakpoint.getGroupProperties() method, that returns an implementation
of GroupProperties class with the relevant grouping information
used by BreakpointsWindow to create hierarchy of breakpoint groups
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="AddWatchActionProvider">It's possible to override New Watch action with a session-specific provider.</a>
</h3>
<em>Feb 23 '10; API spec. version: 1.24; affected top-level classes: <a href="./org/netbeans/api/debugger/ActionsManager.html"><code>ActionsManager</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=180558">
#180558</a></em>
<br>
<p>
ActionsManager.ACTION_NEW_WATCH constant was added for use by session-specific
provider of New Watch action. That action invokes an implementation
of ActionsProvider that is registered for the active debugger session
and contains ActionsManager.ACTION_NEW_WATCH action.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="LazyActionRegistration">A declarative mechanism to delay creation of action provider instance until a file with specific MIME type becomes active.</a>
</h3>
<em>Feb 11 '10; API spec. version: 1.23; affected top-level classes: <a href="./org/netbeans/spi/debugger/ActionsProvider.html"><code>ActionsProvider</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=177561">
#177561</a></em>
<br>
<p>
ActionsProvider.Registration annotation is enhanced with two additional
methods actions() and activateForMIMETypes(). Until a file with the
listed MIME type is selected in the IDE, the appropriate actions provider
is left disabled for the given list of actions, without instantiating the
implementation class.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="WatchesReordering">Support for changing the order of watches.</a>
</h3>
<em>Dec 15 '09; API spec. version: 1.22; affected top-level classes: <a href="./org/netbeans/api/debugger/DebuggerManager.html"><code>DebuggerManager</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=178301">
#178301</a></em>
<br>
<p>
createWatch(int index, String expr) and reorderWatches(int[] permutation)
methods added to DebuggerManager class.<br>
These methods are going to be called from WatchesTreeModel when
watches are reordered.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="PropertiesInitializer">Support for providing initial values of properties.</a>
</h3>
<em>Feb 28 '09; API spec. version: 1.17; affected top-level classes: <a href="./org/netbeans/api/debugger/Properties.html"><code>Properties</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=158775">
#158775</a></em>
<br>
<p>
Properties.Initializer interface introduced to provide initial
values of properties. This is necessary when properties are
accessed from more places and it's not practical to copy default
values to every such location.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="PropertiesListener">Support for listening to changes of property values.</a>
</h3>
<em>Feb 28 '09; API spec. version: 1.17; affected top-level classes: <a href="./org/netbeans/api/debugger/Properties.html"><code>Properties</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=158907">
#158907</a></em>
<br>
<p>
addPropertyChangeListener() and removePropertyChangeListener()
methods added to Properties class.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="PathLookup">Lookup improvements and service annotation registration.</a>
</h3>
<em>Feb 2 '09; API spec. version: 1.16; affected top-level classes: <a href="./org/netbeans/spi/debugger/DebuggerServiceRegistration.html"><code>DebuggerServiceRegistration</code></a> <a href="./org/netbeans/spi/debugger/ContextAwareService.html"><code>ContextAwareService</code></a> <a href="./org/netbeans/spi/debugger/ContextAwareSupport.html"><code>ContextAwareSupport</code></a>; made by: mentlicher; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=153093">
#153093</a> <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=156687">
#156687</a></em>
<br>
<p>
In order to be able to register debugger services on System FileSystem,
which brings more flexibility and better performance (see also
<a href="http://www.netbeans.org/issues/show_bug.cgi?id=153093#desc7" shape="rect"></a>),
we add non-recursive content of <code>org.openide.util.Lookups.forPath()</code>
into debugger lookup.
Since debugger needs retrieve context-aware services from the lookup,
<code>ContextAwareService</code> interface is introduced.
</p>
<p>
Annotations are added for easy registration on module layers.
<code>DebuggerServiceRegistration</code> to register implementations
of interfaces, <code>*Provider.Registration</code> to register
implementations of appropriate providers.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="generification">Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></a>
</h3>
<em>Mar 1 '08; API spec. version: 1.13; affected top-level classes: <a href="./org/netbeans/api/debugger/DebuggerEngine.html"><code>DebuggerEngine</code></a> <a href="./org/netbeans/api/debugger/DebuggerInfo.html"><code>DebuggerInfo</code></a> <a href="./org/netbeans/api/debugger/DebuggerManager.html"><code>DebuggerManager</code></a> <a href="./org/netbeans/api/debugger/Session.html"><code>Session</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=128229">
#128229</a></em>
<br>
<p>
<code>ContextProvider</code> is now properly generified, and implemented also by:
</p>
<ul>
<li>
<code>DebuggerEngine</code>
</li>
<li>
<code>DebuggerInfo</code>
</li>
<li>
<code>DebuggerManager</code>
</li>
<li>
<code>Session</code>
</li>
</ul>
<p>
The new method <code>DebuggerManager.join</code> can be used to merge lookup lists easily.
</p>
<br>
<strong>Compatibility: </strong>
<p>
As with any generification, it is possible for old code to no longer compile. E.g.
</p>
<pre xml:space="preserve">List&lt;X&gt; = lookup.lookup(folder, X.class);</pre>
<p>
must be changed to:
</p>
<pre xml:space="preserve">List&lt;? extends X&gt; = lookup.lookup(folder, X.class);</pre>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Breakpoint.hitCounts">Add filter for hit counts to breakpoints.</a>
</h3>
<em>May 21 '07; API spec. version: 1.11; made by: mentlicher</em>
<br>
<p>
To be able to set breakpoint for number of iterations, we need to add a filter for hit counts into Breakpoint API.
</p>
<p>
Added methods:<br>
<code>Breakpoint.getHitCountFilter()</code>,
<code>Breakpoint.getHitCountFilteringStyle()</code>,
<code>Breakpoint.setHitCountFilter()</code>.
</p>
<p>
Added fields:<br>
<code>Breakpoint.PROP_HIT_COUNT_FILTER</code>,
<code>Breakpoint.HIT_COUNT_FILTERING_STYLE</code>.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Breakpoint.validity">Support for breakpoint validity.</a>
</h3>
<em>Feb 21 '07; API spec. version: 1.10; made by: mentlicher</em>
<br>
<p>
Added fields:
<code>Breakpoint.PROP_VALIDITY</code> -
This constant is used in property change events as a notification about change in validity.<br>
<code>Breakpoint.VALIDITY</code> - enumeration of constants for breakpoint validity.
</p>
<p>
Added methods:
<code>Breakpoint.getValidity()</code>,
<code>Breakpoint.getValidityMessage()</code>,
<code>Breakpoint.setValidity()</code> - validity management.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ActionsManager.ACTION_STEP_OPERATION">Support for stepping over operations.</a>
</h3>
<em>Feb 1 '07; API spec. version: 1.9; made by: mentlicher</em>
<br>
<p>
Added fields:
<code>ActionsManager.ACTION_STEP_OPERATION</code>,
This constant is used in action performer which implements an operation step.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ActionsManager-ActionsProvider.postAction">Debugger actions can be posted asynchronously.</a>
</h3>
<em>Aug 24 '05; API spec. version: 1.5; made by: mentlicher</em>
<br>
<p>
Added methods:
<code>ActionsManager.postAction(Object)</code>,
<code>ActionsProvider.postAction(Object, Runnable)</code>,
These can be used to call and implement asynchronous actions.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ActionsProviderSupport.isEnabled-nonfinal">final modifier removed from ActionsProviderSupport.isEnabled.</a>
</h3>
<em>Nov 23 '04; API spec. version: 1.3; made by: jjancura</em>
<br>
<p>
Having final modifier for this method can be too obstructive in some cases. I had a problem writing tests.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Breakpoint.group.name">Support for Breakpoints Group added.</a>
</h3>
<em>May 13 '04; made by: jjancura</em>
<br>
<p>
Breakpoint.getGroupName (), Breakpoint.setGroupName () methods were added.
Breakpoint.PROP_GROUP_NAME has been added.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ToggleBreakpointAction-etc.">Support for ToggleBreakpointAction added, and some bugfix of Debugger Actions support API.</a>
</h3>
<em>May 9 '04; made by: jjancura</em>
<br>
<p>
<code>ActionsManager.doAction (...)</code>,
<code>ActionsProvider.doAction (...)</code> and
<code>ActionsManagerListener.actionPefrormed (...)</code> methods
will not return boolean any longer. This parameter was unusefull and it was not posible to
implement it in some meaningful way.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DebuggerEngine-synch-start">Support for synchronouous start of DebuggerEngines added.</a>
</h3>
<em>May 3 '04; made by: jjancura</em>
<br>
<p>
<code>void DebuggerManager.startDebugging (DebuggerInfo)</code> has been changed to <code>DebuggerEngine[]
DebuggerManager.startDebugging (DebuggerInfo)</code>. So it returns array of all DebuggerEngines
created for given DebuggerInfo.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="debugger-dual-actions">Support for "dual" actions added.</a>
</h3>
<em>Apr 29 '04; made by: jjancura</em>
<br>
According to Debugger UI Specification there are some actions that have two different
meanings. for example Step Into action. When some Java Debugger session is running it steps
into the current method. But if there is no session running it should start a new session
for Main Project and stop in its main method. Thats why we have to update support for debugger
actions. Changes made:
<ul>
<li>
Support methods for managing and sharing actions has been moved from DebuggerEngine
to new class ActionsManager.
</li>
<li>
Debugger Action Constants has been move from DebuggerEngine to ActionsManager.
</li>
<li>
New common ancestor of DebuggerManager, Session and Debugger Engine has been
introduced - LookupProvider. From now you can register the same action in differen
context levels.
</li>
<li>
DebuggerManager.getActionsManager () method has been added. You can register
ActionProviders for default root context (managed by DebuggerManager). These actions
can be in enabled state even if there is no current DebuggerEngine!
</li>
<li>
DebuggerEngine parameter of method ActionsProvider.doAction (...) has been removed.
</li>
</ul>
<hr>
<p><span class="footnote">Built on September 14 2018.&nbsp;&nbsp;|&nbsp;&nbsp; Copyright &#169; 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p>
</body>
</html>