blob: 5dc80e9fcf455a1270446f6ca0c123d054d6f950 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<?xml-stylesheet href="../../nbbuild/javadoctools/apichanges.xsl" type="text/xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">
<!-- INFO FOR PEOPLE ADDING CHANGES:
[most of contents snipped - see openide's apichanges for how-to instructions]
<change>
<api name="compiler"/>
<summary>Some brief description here, can use <b>XHTML</b></summary>
<version major="1" minor="99"/>
<date day="13" month="6" year="2001"/>
<author login="jrhacker"/>
<compatibility addition="yes"/>
<description>
The main description of the change here.
Again can use full <b>XHTML</b> as needed.
</description>
<class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
<issue number="14309"/>
</change>
-->
<apichanges>
<!-- First, a list of API names you may use: -->
<apidefs>
<apidef name="DebuggerCoreAPI">Debugger Core API</apidef>
</apidefs>
<!-- ACTUAL CHANGES BEGIN HERE: -->
<changes>
<change id="Watch_Pin">
<api name="DebuggerCoreAPI"/>
<summary>API for pinned Watches</summary>
<version major="1" minor="54"/>
<date day="18" month="4" year="2016"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes" deletion="no"/>
<description>
A <code>Watch.Pin</code> base interface introduced as a basis
for specific platform-dependent and location-dependent implementations.
<code>DebuggerManager.createPinnedwatch()</code> introduced.
</description>
<class package="org.netbeans.api.debugger" name="DebuggerManager"/>
<class package="org.netbeans.api.debugger" name="Watch"/>
<issue number="258651"/>
</change>
<change id="Watch_disableable">
<api name="DebuggerCoreAPI"/>
<summary>API for changing enabled state of a Watch</summary>
<version major="1" minor="36"/>
<date day="27" month="3" year="2012"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes" deletion="no"/>
<description>
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.
</description>
<class package="org.netbeans.api.debugger" name="Watch"/>
<issue number="209783"/>
</change>
<change id="generification">
<api name="DebuggerCoreAPI"/>
<summary>Use of some generic types in API; <code>ContextProvider</code> implemented more broadly; <code>DebuggerManager.join</code></summary>
<version major="1" minor="13"/>
<date day="1" month="3" year="2008"/>
<author login="jglick"/>
<compatibility binary="compatible" source="incompatible" modification="yes" semantic="compatible">
<p>
As with any generification, it is possible for old code to no longer compile. E.g.
</p>
<pre>List&lt;X&gt; = lookup.lookup(folder, X.class);</pre>
<p>
must be changed to:
</p>
<pre>List&lt;? extends X&gt; = lookup.lookup(folder, X.class);</pre>
</compatibility>
<description>
<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>
</description>
<class package="org.netbeans.api.debugger" name="DebuggerEngine"/>
<class package="org.netbeans.api.debugger" name="DebuggerInfo"/>
<class package="org.netbeans.api.debugger" name="DebuggerManager"/>
<class package="org.netbeans.api.debugger" name="Session"/>
<issue number="128229"/>
</change>
<change id="debugger-dual-actions">
<api name="DebuggerCoreAPI"/>
<summary>Support for "dual" actions added.</summary>
<date day="29" month="4" year="2004"/>
<author login="jjancura"/>
<compatibility binary="incompatible" source="incompatible" addition="yes" deletion="yes" modification="yes"/>
<description>
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>
</description>
</change>
<change id="DebuggerEngine-synch-start">
<api name="DebuggerCoreAPI"/>
<summary>Support for synchronouous start of DebuggerEngines added.</summary>
<date day="3" month="5" year="2004"/>
<author login="jjancura"/>
<compatibility binary="incompatible" source="compatible" modification="yes"/>
<description>
<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>
</description>
</change>
<change id="ToggleBreakpointAction-etc.">
<api name="DebuggerCoreAPI"/>
<summary>Support for ToggleBreakpointAction added, and some bugfix of Debugger Actions support API.</summary>
<date day="9" month="5" year="2004"/>
<author login="jjancura"/>
<compatibility binary="incompatible" source="incompatible" modification="yes"/>
<description>
<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>
</description>
</change>
<change id="Breakpoint.group.name">
<api name="DebuggerCoreAPI"/>
<summary>Support for Breakpoints Group added.</summary>
<date day="13" month="5" year="2004"/>
<author login="jjancura"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<p>
Breakpoint.getGroupName (), Breakpoint.setGroupName () methods were added.
Breakpoint.PROP_GROUP_NAME has been added.
</p>
</description>
</change>
<change id="ActionsProviderSupport.isEnabled-nonfinal">
<api name="DebuggerCoreAPI"/>
<summary>final modifier removed from ActionsProviderSupport.isEnabled.</summary>
<version major="1" minor="3"/>
<date day="23" month="11" year="2004"/>
<author login="jjancura"/>
<compatibility binary="compatible" source="compatible" modification="yes"/>
<description>
<p>
Having final modifier for this method can be too obstructive in some cases. I had a problem writing tests.
</p>
</description>
</change>
<change id="ActionsManager-ActionsProvider.postAction">
<api name="DebuggerCoreAPI"/>
<summary>Debugger actions can be posted asynchronously.</summary>
<version major="1" minor="5"/>
<date day="24" month="8" year="2005"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
</change>
<change id="ActionsManager.ACTION_STEP_OPERATION">
<api name="DebuggerCoreAPI"/>
<summary>Support for stepping over operations.</summary>
<version major="1" minor="9"/>
<date day="1" month="2" year="2007"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<p>
Added fields:
<code>ActionsManager.ACTION_STEP_OPERATION</code>,
This constant is used in action performer which implements an operation step.
</p>
</description>
</change>
<change id="Breakpoint.validity">
<api name="DebuggerCoreAPI"/>
<summary>Support for breakpoint validity.</summary>
<version major="1" minor="10"/>
<date day="21" month="2" year="2007"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
</change>
<change id="Breakpoint.hitCounts">
<api name="DebuggerCoreAPI"/>
<summary>Add filter for hit counts to breakpoints.</summary>
<version major="1" minor="11"/>
<date day="21" month="5" year="2007"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
</change>
<change id="PathLookup">
<api name="DebuggerCoreAPI"/>
<summary>Lookup improvements and service annotation registration.</summary>
<version major="1" minor="16"/>
<date day="2" month="2" year="2009"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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"/>),
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>
</description>
<class package="org.netbeans.spi.debugger" name="DebuggerServiceRegistration" />
<class package="org.netbeans.spi.debugger" name="ContextAwareService" />
<class package="org.netbeans.spi.debugger" name="ContextAwareSupport" />
<issue number="153093"/>
<issue number="156687"/>
</change>
<change id="PropertiesInitializer">
<api name="DebuggerCoreAPI"/>
<summary>Support for providing initial values of properties.</summary>
<version major="1" minor="17"/>
<date day="28" month="2" year="2009"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.debugger" name="Properties" />
<issue number="158775"/>
</change>
<change id="PropertiesListener">
<api name="DebuggerCoreAPI"/>
<summary>Support for listening to changes of property values.</summary>
<version major="1" minor="17"/>
<date day="28" month="2" year="2009"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<p>
addPropertyChangeListener() and removePropertyChangeListener()
methods added to Properties class.
</p>
</description>
<class package="org.netbeans.api.debugger" name="Properties" />
<issue number="158907"/>
</change>
<change id="WatchesReordering">
<api name="DebuggerCoreAPI"/>
<summary>Support for changing the order of watches.</summary>
<version major="1" minor="22"/>
<date day="15" month="12" year="2009"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.debugger" name="DebuggerManager" />
<issue number="178301"/>
</change>
<change id="LazyActionRegistration">
<api name="DebuggerCoreAPI"/>
<summary>A declarative mechanism to delay creation of action provider instance until a file with specific MIME type becomes active.</summary>
<version major="1" minor="23"/>
<date day="11" month="2" year="2010"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.debugger" name="ActionsProvider" />
<issue number="177561"/>
</change>
<change id="AddWatchActionProvider">
<api name="DebuggerCoreAPI"/>
<summary>It's possible to override New Watch action with a session-specific provider.</summary>
<version major="1" minor="24"/>
<date day="23" month="2" year="2010"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.debugger" name="ActionsManager" />
<issue number="180558"/>
</change>
<change id="BreakpointsGrouping">
<api name="DebuggerCoreAPI"/>
<summary>Breakpoints group properties.</summary>
<version major="1" minor="25"/>
<date day="28" month="2" year="2010"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.debugger" name="Breakpoint" />
<issue number="179759"/>
</change>
<change id="DebuggerServiceRegistrations">
<api name="DebuggerCoreAPI"/>
<summary>Allow multiple debugger service registrations and position order</summary>
<version major="1" minor="28"/>
<date day="10" month="9" year="2010"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.debugger" name="DebuggerServiceRegistration" />
<class package="org.netbeans.spi.debugger" name="DebuggerServiceRegistrations" />
<class package="org.netbeans.spi.debugger" name="ActionsProvider" />
<issue number="190080"/>
</change>
<change id="EvaluateAction">
<api name="DebuggerCoreAPI"/>
<summary>Evaluate action is made generic, based on action providers.</summary>
<version major="1" minor="29"/>
<date day="12" month="11" year="2010"/>
<author login="mentlicher"/>
<compatibility binary="compatible" source="compatible" addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.debugger" name="ActionsManager" />
<issue number="191394"/>
</change>
<change id="DependentBreakpoints">
<api name="DebuggerCoreAPI"/>
<summary>Added a possibility to enable/disable other breakpoints when one is hit.</summary>
<version major="1" minor="35"/>
<date day="19" month="12" year="2011"/>
<author login="mentlicher"/>
<compatibility addition="yes" source="compatible" binary="compatible"/>
<description>
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>
</description>
<class package="org.netbeans.api.debugger" name="Breakpoint" />
<issue number="197707"/>
</change>
<change id="SessionBridge">
<api name="DebuggerCoreAPI"/>
<summary>A session bridge introduced to handle mixed languages debugging.</summary>
<version major="1" minor="48"/>
<date day="8" month="9" year="2014"/>
<author login="mentlicher"/>
<compatibility addition="yes" source="compatible" binary="compatible"/>
<description>
<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.
</description>
<class package="org.netbeans.api.debugger" name="SessionBridge" />
<issue number="246819"/>
</change>
<change id="BreakpointsDeactivation">
<api name="DebuggerCoreAPI"/>
<summary>A mechanism for activation/deactivation of engine-related breakpoints.</summary>
<version major="1" minor="51"/>
<date day="30" month="4" year="2015"/>
<author login="mentlicher"/>
<compatibility addition="yes" source="compatible" binary="compatible"/>
<description>
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.
</description>
<class package="org.netbeans.api.debugger" name="ActiveBreakpoints" />
<class package="org.netbeans.spi.debugger" name="BreakpointsActivationProvider" />
<issue number="242800"/>
</change>
</changes>
<!-- Now the surrounding HTML text and document structure: -->
<htmlcontents>
<!--
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>
<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">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/><standard-changelists module-code-name="org.netbeans.api.debugger/1"/>
<hr/><p>@FOOTER@</p>
</body>
</htmlcontents>
</apichanges>