1
<?xml version="1.0" encoding="UTF-8"?>
3
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
5
Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
8
The contents of this file are subject to the terms of either the GNU
9
General Public License Version 2 only ("GPL") or the Common
10
Development and Distribution License("CDDL") (collectively, the
11
"License"). You may not use this file except in compliance with the
12
License. You can obtain a copy of the License at
13
http://www.netbeans.org/cddl-gplv2.html
14
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
15
specific language governing permissions and limitations under the
16
License. When distributing the software, include this License Header
17
Notice in each file and include the License file at
18
nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
19
particular file as subject to the "Classpath" exception as provided
20
by Sun in the GPL Version 2 section of the License file that
21
accompanied this code. If applicable, add the following below the
22
License Header, with the fields enclosed by brackets [] replaced by
23
your own identifying information:
24
"Portions Copyrighted [year] [name of copyright owner]"
28
The Original Software is NetBeans. The Initial Developer of the Original
29
Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
30
Microsystems, Inc. All Rights Reserved.
32
If you wish your version of this file to be governed by only the CDDL
33
or only the GPL Version 2, indicate your decision by adding
34
"[Contributor] elects to include this software in this distribution
35
under the [CDDL or GPL Version 2] license." If you do not indicate a
36
single choice of license, a recipient has the option to distribute
37
your version of this file under either the CDDL, the GPL Version 2 or
38
to extend the choice of license to its licensees as provided above.
39
However, if you add GPL Version 2 code and therefore, elected the GPL
40
Version 2 license, then the option applies only if the new code is
41
made subject to such option by the copyright holder.
44
<?xml-stylesheet href="../../nbbuild/javadoctools/apichanges.xsl" type="text/xsl"?>
45
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">
47
<!-- INFO FOR PEOPLE ADDING CHANGES:
48
[most of contents snipped - see openide's apichanges for how-to instructions]
50
<api name="compiler"/>
51
<summary>Some brief description here, can use <b>XHTML</b></summary>
52
<version major="1" minor="99"/>
53
<date day="13" month="6" year="2001"/>
54
<author login="jrhacker"/>
55
<compatibility addition="yes"/>
57
The main description of the change here.
58
Again can use full <b>XHTML</b> as needed.
60
<class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
61
<issue number="14309"/>
67
<!-- First, a list of API names you may use: -->
69
<apidef name="JPDADebuggerAPI">Debugger JPDA API</apidef>
72
<!-- ACTUAL CHANGES BEGIN HERE: -->
76
<api name="JPDADebuggerAPI"/>
77
<summary>JPDADebugger.getException() method added.</summary>
78
<date day="20" month="4" year="2004"/>
79
<author login="jjancura"/>
80
<compatibility addition="yes"/>
82
JPDADebugger.getException() method added to. This is support for notifications about
83
problems during start of debugger.
87
<api name="JPDADebuggerAPI"/>
88
<summary>Support for synchronouous start of JPDADebugger added.</summary>
89
<date day="3" month="5" year="2004"/>
90
<author login="jjancura"/>
91
<compatibility modification="yes"/>
94
Methods starting debugger has been modified to support synchronous start of debugging.
99
<api name="JPDADebuggerAPI"/>
100
<summary>Breakpoint Listener added.</summary>
101
<date day="4" month="5" year="2004"/>
102
<author login="jjancura"/>
103
<compatibility addition="yes"/>
106
JPDABreakpointEvent and JPDABreakpointListener classes added.
107
JPDABreakpoint.addJPDABreakpointListener (...) and JPDABreakpoint.removeJPDABreakpointListener (...)
113
<api name="JPDADebuggerAPI"/>
114
<summary>Support methods for various new features added.</summary>
115
<date day="9" month="5" year="2004"/>
116
<author login="jjancura"/>
117
<compatibility addition="yes"/>
120
Support for Fix Action improved. Support for Pop Frame action added. Support for static and
121
inherited fields added. New methods:
124
<li>CallStackFrame.isObsolete ()</li>
125
<li>CallStackFrame.popFrame ()</li>
126
<li>JPDADebugger.canFixClasses ()</li>
127
<li>JPDADebugger.fixClasses(java.util.Map)</li>
128
<li>ObjectVariable.getAllStaticFields(int,int)</li>
129
<li>ObjectVariable.getInheritedFields(int,int)</li>
134
<api name="JPDADebuggerAPI"/>
135
<summary>Definition of various breakpoints has been generalized.</summary>
136
<date day="10" month="5" year="2004"/>
137
<author login="jjancura"/>
138
<compatibility modification="yes" source="incompatible" binary="incompatible"/>
141
We have changed ClassLoadUnloadBreakpoint to support class exclusion filters, and
142
more than one class filter. The same change was done for MethodBreakpoints too.
147
<api name="JPDADebuggerAPI"/>
148
<summary>JPDABreakpointEvent improvements.</summary>
149
<date day="11" month="5" year="2004"/>
150
<author login="jjancura"/>
151
<compatibility modification="yes" source="incompatible" binary="incompatible"/>
154
We have added several new properties to JPDABreakpointEvent:
157
<li>ReferenceType</li>
165
<api name="JPDADebuggerAPI"/>
166
<summary>Improvements of SmartStepping implementation.</summary>
167
<date day="16" month="5" year="2004"/>
168
<author login="jjancura"/>
169
<compatibility addition="yes"/>
172
We have added several new methods to fix issues in smart stepping implementation:
175
<li>PropertyChangeListener added to SmartSteppingFilter.</li>
176
<li>JPDADebugger.getSmartSteppingFilter ()</li>
177
<li>SmartSteppingFilter.getExclusionPatterns ()</li>
178
<li>PropertyChangeListener added to EngineContextProvider.</li>
179
<li>EngineContextProvider.getOriginalSourceRoots()</li>
180
<li>EngineContextProvider.getSourceRoots()</li>
181
<li>EngineContextProvider.setSourceRoots()</li>
186
<api name="JPDADebuggerAPI"/>
187
<summary>JPDADebugger.SESSION_ID.</summary>
188
<date day="17" month="5" year="2004"/>
189
<author login="jjancura"/>
190
<compatibility addition="yes"/>
193
JPDADebugger.SESSION_ID constant has been added.
198
<api name="JPDADebuggerAPI"/>
199
<summary>Firing of exceptions during watches evaluation fixed.</summary>
200
<date day="25" month="5" year="2004"/>
201
<author login="jjancura"/>
202
<compatibility modification="yes" source="incompatible" binary="incompatible"/>
205
InvalidExpressionException is fired from folowing methods now:
208
<li>JPDAWatch.getToStringValue()</li>
209
<li>ObjectVariable.getToStringValue()</li>
210
<li>ObjectVariable.invokeMethod()</li>
215
<api name="JPDADebuggerAPI"/>
216
<summary>InvalidExpressionException can encapsulate other exceptions.</summary>
217
<date day="1" month="6" year="2004"/>
218
<author login="jjancura"/>
219
<compatibility addition="yes"/>
222
Mew constructor added (InvalidExpressionException(java.lang.Throwable)),
223
and InvalidExpressionException.getTargetException() method added to support firing of
227
<li>JPDAWatch.getToStringValue()</li>
228
<li>ObjectVariable.getToStringValue()</li>
229
<li>ObjectVariable.invokeMethod()</li>
234
<api name="JPDADebuggerAPI"/>
235
<summary>ContextProvider.getFieldLineNumber() method added.</summary>
236
<date day="1" month="6" year="2004"/>
237
<author login="jjancura"/>
238
<compatibility addition="yes"/>
241
ContextProvider.getFieldLineNumber() method added.
246
<api name="JPDADebuggerAPI"/>
247
<summary>Two methods added to ContextProvider.</summary>
248
<date day="8" month="6" year="2004"/>
249
<author login="jjancura"/>
250
<compatibility addition="yes"/>
253
ContextProvider.getImports () method added to support better evaluation of expressions.
254
ContextProvider.getLineNumber (annotaion) method added to fix stepping through modified files.
259
<api name="JPDADebuggerAPI"/>
260
<summary>ContextProvider and EngineContextProvider has been changed from interfaces to abstract classes.</summary>
261
<date day="8" month="6" year="2004"/>
262
<author login="jjancura"/>
263
<compatibility modification="yes" source="incompatible" binary="incompatible"/>
266
ContextProvider and EngineContextProvider has been changed from interfaces to abstract classes.
267
This was done to support future changes in these classes.
272
<api name="JPDADebuggerAPI"/>
273
<summary>"String EditorContext.getClassName (url, lineNumber)" method has been added.</summary>
274
<date day="8" month="10" year="2004"/>
275
<author login="jjancura"/>
276
<compatibility addition="yes" source="incompatible" binary="incompatible"/>
279
This method is needed to correctly implement line breakpoint in secondary classes.
284
<api name="JPDADebuggerAPI"/>
285
<summary>"EditorContext.updateTimeStamp(timeStamp,url)" method has been added.</summary>
286
<date day="13" month="10" year="2004"/>
287
<author login="jjancura"/>
288
<compatibility addition="yes" source="incompatible" binary="incompatible"/>
291
This method is needed to correctly implement fix & continue action.
296
<api name="JPDADebuggerAPI"/>
297
<summary>"global" parameter added to "SourcePathProvider.getURL (String relativePath, boolean global)" method.</summary>
298
<date day="18" month="10" year="2004"/>
299
<author login="jjancura"/>
300
<compatibility addition="yes" source="incompatible" binary="incompatible"/>
303
This parameter has been added to distinguish between finding sources for smart
304
stepping feature, and for all other features like douuble click on stack trace..
309
<api name="JPDADebuggerAPI"/>
310
<summary>LineBreakpoint supplied with the information about the source path where it is set.</summary>
311
<version major="1" minor="3"/>
312
<date day="15" month="2" year="2005"/>
313
<author login="lkotouc"/>
314
<compatibility addition="yes" source="compatible" binary="compatible"/>
317
A line breakpoint does not contain the information
318
about the source path where it is set. There is no
319
way how to differ between breakpoints in the case
321
- several JSPs have the same name AND
322
- these JSPs are statically included into one JSP page.
325
<class package="org.netbeans.api.debugger.jpda" name="LineBreakpoint"/>
328
<api name="JPDADebuggerAPI"/>
329
<summary>JPDAStep class added (also new method createJPDAStep added to JPDADebugger)</summary>
330
<version major="1" minor="5"/>
331
<date day="29" month="6" year="2005"/>
332
<author login="rondruska"/>
333
<compatibility addition="yes" source="incompatible" binary="compatible"/>
336
JPDAStep allows to create a step request to JDI with
337
no UI interference. It was designed for new RunIntoMethod
338
action. New method JPDADebugger.createJPDAStep creates
339
a new instance of JPDAStep.
344
<api name="JPDADebuggerAPI"/>
345
<summary>JPDA API interfaces that correspond to JDI API declared as not to implement.</summary>
346
<version major="2" minor="0"/>
347
<date day="12" month="8" year="2005"/>
348
<author login="mentlicher"/>
349
<compatibility addition="no" source="incompatible" binary="incompatible"/>
352
JPDA API represents JDI functionality.
353
Since JDI interfaces evolve from one version to another, it's
354
necessary to declare that interfaces in
355
org.netbeans.api.debugger.jpda package should not be implemented,
356
since new methods can be added to these interfaces at any time
357
to keep up with the JDI functionality.
360
Also JPDABreakpointEvent and JPDABreakpointListener are moved to
361
newly created org.netbeans.api.debugger.jpda.event package.
366
<api name="JPDADebuggerAPI"/>
367
<summary>Added interrupt method to JPDAThread class</summary>
368
<version major="2" minor="1"/>
369
<date day="18" month="8" year="2005"/>
370
<author login="mentlicher"/>
371
<compatibility addition="yes" source="compatible" binary="compatible"/>
374
A possibility to interrupt a debuggee thread is added.
377
<class package="org.netbeans.api.debugger.jpda" name="JPDAThread" />
378
<issue number="59072"/>
381
<api name="JPDADebuggerAPI"/>
382
<summary>Added canBeModified() method to JPDADebugger class</summary>
383
<version major="2" minor="3"/>
384
<date day="3" month="11" year="2005"/>
385
<author login="mentlicher"/>
386
<compatibility addition="yes" source="compatible" binary="compatible"/>
389
A possibility to detect whether the debuggee is read-only is added.
390
This check works fine on JDK 1.5 and higher, on JDK 1.4 it returns
391
<code>true</code> by default.
394
<class package="org.netbeans.api.debugger.jpda" name="JPDADebugger" />
395
<issue number="67046"/>
398
<api name="JPDADebuggerAPI"/>
399
<summary>Added getSourceRoot() method to SourcePathProvider class</summary>
400
<version major="2" minor="6"/>
401
<date day="3" month="5" year="2006"/>
402
<author login="mentlicher"/>
403
<compatibility addition="yes" source="compatible" binary="compatible"/>
406
Retrieves a source root for a given URL. This is necessary to
407
match breakpoint locations with the sources selected fopr debugging.
408
It returns <code>null</code> by default.
411
<class package="org.netbeans.spi.debugger.jpda" name="SourcePathProvider" />
412
<issue number="52180"/>
415
<api name="JPDADebuggerAPI"/>
416
<summary>Added JPDAClassType, ClassVariable and ReturnVariable classes</summary>
417
<version major="2" minor="7"/>
418
<date day="12" month="7" year="2006"/>
419
<author login="mentlicher"/>
420
<compatibility addition="yes" source="compatible" binary="compatible"/>
423
In order to be able to provide static context information
424
and return value of methods, three new classes were added.
427
<class package="org.netbeans.api.debugger.jpda" name="JPDAClassType" />
428
<class package="org.netbeans.api.debugger.jpda" name="ClassVariable" />
429
<class package="org.netbeans.api.debugger.jpda" name="ReturnVariable" />
430
<issue number="80090"/>
433
<api name="JPDADebuggerAPI"/>
434
<summary>Added setPreferedClassName and getPreferredClassName methods to LineBreakpoint</summary>
435
<version major="2" minor="8"/>
436
<date day="30" month="8" year="2006"/>
437
<author login="mentlicher"/>
438
<compatibility addition="yes" source="compatible" binary="compatible"/>
441
In order to be able to provide the class name for which the
442
breakpoint should be submitted. This is necessary for JSP.
445
<class package="org.netbeans.api.debugger.jpda" name="LineBreakpoint" />
446
<issue number="83188"/>
449
<api name="JPDADebuggerAPI"/>
450
<summary>Support for stepping over operations.</summary>
451
<version major="2" minor="9"/>
452
<date day="1" month="2" year="2007"/>
453
<author login="mentlicher"/>
454
<compatibility addition="yes" source="compatible" binary="compatible"/>
457
In order to be able to provide stepping over operations,
458
we need a representation of an operation and some way how to
459
retrieve the operation(s) from a Thread and a CallStackFrame.
463
<code>JPDAStep.STEP_OPERATION</code>,
464
<code>EditorContext.CURRENT_LAST_OPERATION_ANNOTATION_TYPE</code>,
465
<code>EditorContext.CURRENT_EXPRESSION_SECONDARY_LINE_ANNOTATION_TYPE</code>,
466
<code>EditorContext.CURRENT_EXPRESSION_CURRENT_LINE_ANNOTATION_TYPE</code>
470
<code>CallStackFrame.getCurrentOperation()</code>,
471
<code>JPDAThread.getCurrentOperation()</code>,
472
<code>JPDAThread.getLastOperations()</code>,
473
<code>EditorContext.createMethodOperation()</code>,
474
<code>EditorContext.addNextOperationTo()</code>,
475
<code>EditorContext.createPosition()</code>,
476
<code>EditorContext.getOperations()</code>
480
<code>EditorContext.BytecodeProvider</code>,
481
<code>EditorContext.Operation</code>,
482
<code>EditorContext.Position</code>
485
<class package="org.netbeans.api.debugger.jpda" name="JPDAStep" />
486
<class package="org.netbeans.api.debugger.jpda" name="CallStackFrame" />
487
<class package="org.netbeans.api.debugger.jpda" name="JPDAThread" />
488
<class package="org.netbeans.spi.debugger.jpda" name="EditorContext" />
489
<issue number="93842"/>
492
<api name="JPDADebuggerAPI"/>
493
<summary>API for retrieval of method arguments.</summary>
494
<version major="2" minor="10"/>
495
<date day="28" month="3" year="2007"/>
496
<author login="mentlicher"/>
497
<compatibility addition="yes" source="compatible" binary="compatible"/>
500
An access to method arguments in source code is necessary
501
for cases where we do not have full debug information.
505
<code>EditorContext.getArguments()</code>
509
<code>EditorContext.MethodArgument</code>
512
<class package="org.netbeans.spi.debugger.jpda" name="EditorContext" />
513
<issue number="99257"/>
516
<api name="JPDADebuggerAPI"/>
517
<summary>Support for heap walking.</summary>
518
<version major="2" minor="11"/>
519
<date day="5" month="4" year="2007"/>
520
<author login="mentlicher"/>
521
<compatibility addition="yes" source="compatible" binary="compatible"/>
524
In order to be able to provide heap walking functionality,
525
we need methods for retrieval of class instances and
530
<code>Field.getDeclaringClass()</code>,
531
<code>JPDAClassType.getClassLoader()</code>,
532
<code>JPDAClassType.getSuperClass()</code>,
533
<code>JPDAClassType.getInstanceCount()</code>,
534
<code>JPDAClassType.getInstances()</code>,
535
<code>JPDADebugger.canGetInstanceInfo()</code>,
536
<code>JPDADebugger.getAllClasses()</code>,
537
<code>JPDADebugger.getClassesByName()</code>,
538
<code>JPDADebugger.getInstanceCounts()</code>,
539
<code>ObjectVariable.getReferringObjects()</code>,
540
<code>ObjectVariable.getClassType()</code>,
541
<code>ObjectVariable.getUniqueID()</code>.
545
<code>VariableType</code>,
546
<code>JPDAArrayType</code>.
549
<class package="org.netbeans.api.debugger.jpda" name="JPDADebugger" />
550
<class package="org.netbeans.api.debugger.jpda" name="JPDAClassType" />
551
<class package="org.netbeans.api.debugger.jpda" name="ObjectVariable" />
552
<class package="org.netbeans.api.debugger.jpda" name="VariableType" />
553
<class package="org.netbeans.api.debugger.jpda" name="JPDAArrayType" />
554
<issue number="100047"/>
557
<api name="JPDADebuggerAPI"/>
558
<summary>API for identification of method declarations in source code.</summary>
559
<version major="2" minor="12"/>
560
<date day="21" month="5" year="2007"/>
561
<author login="mentlicher"/>
562
<compatibility addition="yes" source="compatible" binary="compatible"/>
564
<p>In order to implement annotation of method breakpoints in Editor, we need to be
565
able to locate individual methods in Editor, based on their names and signature. Also we need
566
annotation types for fields and methods.
570
<code>EditorContext.getMethodLineNumber()</code>,
571
<code>EditorContext.getCurrentMethodDeclaration()</code>,
575
<code>EditorContext.FIELD_BREAKPOINT_ANNOTATION_TYPE</code>,
576
<code>EditorContext.DISABLED_FIELD_BREAKPOINT_ANNOTATION_TYPE</code>,
577
<code>EditorContext.METHOD_BREAKPOINT_ANNOTATION_TYPE</code>
578
<code>EditorContext.DISABLED_METHOD_BREAKPOINT_ANNOTATION_TYPE</code>
581
<class package="org.netbeans.spi.debugger.jpda" name="EditorContext" />
582
<issue number="103934"/>
585
<api name="JPDADebuggerAPI"/>
586
<summary>Enhance JPDA breakpoints.</summary>
587
<version major="2" minor="13"/>
588
<date day="21" month="5" year="2007"/>
589
<author login="mentlicher"/>
590
<compatibility addition="yes" source="compatible" binary="compatible"/>
593
To catch-up with JDI capabilities and be able to implement new enhancements,
594
we need to add support for new breakpoint properties into the debugger JPDA API.<br/>
595
These are mainly class and thread filters and hit counts.
599
<code>ExceptionBreakpoint.getClassFilters()</code>,
600
<code>ExceptionBreakpoint.setClassFilters()</code>,
601
<code>ExceptionBreakpoint.getClassExclusionFilters()</code>,
602
<code>ExceptionBreakpoint.setClassExclusionFilters()</code>,
603
<code>FieldBreakpoint.getInstanceFilters()</code>,
604
<code>FieldBreakpoint.setInstanceFilters()</code>,
605
<code>FieldBreakpoint.getThreadFilters()</code>,
606
<code>FieldBreakpoint.setThreadFilters()</code>,
607
<code>JPDABreakpoint.getHitCountFilter()</code>,
608
<code>JPDABreakpoint.getHitCountFilteringStyle()</code>,
609
<code>JPDABreakpoint.setHitCountFilter()</code>,
610
<code>LineBreakpoint.getInstanceFilters()</code>,
611
<code>LineBreakpoint.setInstanceFilters()</code>,
612
<code>LineBreakpoint.getThreadFilters()</code>,
613
<code>LineBreakpoint.setThreadFilters()</code>,
614
<code>MethodBreakpoint.getMethodSignature()</code>,
615
<code>MethodBreakpoint.setMethodSignature()</code>,
616
<code>MethodBreakpoint.getInstanceFilters()</code>,
617
<code>MethodBreakpoint.setInstanceFilters()</code>,
618
<code>MethodBreakpoint.getThreadFilters()</code>,
619
<code>MethodBreakpoint.setThreadFilters()</code>.
623
<code>ExceptionBreakpoint.PROP_CLASS_FILTERS</code>,
624
<code>ExceptionBreakpoint.PROP_CLASS_EXCLUSION_FILTERS</code>,
625
<code>FieldBreakpoint.PROP_INSTANCE_FILTERS</code>,
626
<code>FieldBreakpoint.PROP_THREAD_FILTERS</code>,
627
<code>JPDABreakpoint.PROP_HIT_COUNT_FILTER</code>,
628
<code>JPDABreakpoint.HIT_COUNT_FILTERING_STYLE</code>,
629
<code>LineBreakpoint.PROP_INSTANCE_FILTERS</code>,
630
<code>LineBreakpoint.PROP_THREAD_FILTERS</code>,
631
<code>MethodBreakpoint.PROP_METHOD_SIGNATURE</code>,
632
<code>MethodBreakpoint.PROP_INSTANCE_FILTERS</code>,
633
<code>MethodBreakpoint.PROP_THREAD_FILTERS</code>.
636
<class package="org.netbeans.api.debugger.jpda" name="ExceptionBreakpoint" />
637
<class package="org.netbeans.api.debugger.jpda" name="FieldBreakpoint" />
638
<class package="org.netbeans.api.debugger.jpda" name="JPDABreakpoint" />
639
<class package="org.netbeans.api.debugger.jpda" name="LineBreakpoint" />
640
<class package="org.netbeans.api.debugger.jpda" name="MethodBreakpoint" />
641
<issue number="103936"/>
647
<!-- Now the surrounding HTML text and document structure: -->
654
==============> DO NOT EDIT ME! <======================
656
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
658
SEE xml/api/doc/changes/apichanges.xml
662
<title>Debugger JPDA API changes by date</title>
663
<link rel="stylesheet" href="prose.css" type="text/css"/>
667
<p class="overviewlink"><a href="overview-summary.html">Overview</a></p>
669
<h1>Introduction</h1>
671
<p>This document lists changes made to the Debugger JPDA APIs. Please ask on the
672
<code>nbdev@netbeans.org</code>
673
mailing list if you have any questions about the details of a
674
change, or are wondering how to convert existing code to be compatible.
677
<hr/><standard-changelists module-code-name="org.netbeans.api.debugger.jpda/1"/>