blob: bf36cba096602bb42ca28a0c7d8cc36904bae819 [file] [log] [blame] [view]
Danny van Bruggen5201adc2017-05-14 14:00:56 +02001Version 3.2.4
2------------------
3New style changelog, no more issue numbers, but a link:
4[issues resolved](https://github.com/javaparser/javaparser/milestone/44?closed=1)
5and any notable changes:
6* the new method `Node.removeForced()` by removing it, or removing the first parent that is optional.
7This is different from `Node.remove()`, `remove()` only tries to remove the node from the parent and fails if it can't.
8* `FieldAccessExpr.scope` is now a required property.
9You might find some `get()`s in your code that are no longer necessary.
10* `ReferenceType` no longer has a type parameter, so every `ReferenceType<?>` can be replaced by `ReferenceType` now.
11
Danny van Bruggen9c513212017-04-30 22:15:44 +020012Version 3.2.3
13------------------
14* 907 906 905 903 911 910 909 908 smaller improvements and fixes
15
Danny van Bruggendc8077a2017-04-23 12:04:03 +020016Version 3.2.2
17------------------
18Beta: `TreeStructureVisitor`.
19
20* 770 902 904 901 smaller improvements and fixes
21
Danny van Bruggen28cf0be2017-04-16 15:05:10 +020022Version 3.2.1
23------------------
24Beta: `TreeStructureVisitor`.
25
26* Maven dependencies were updated to their latest versions
27* 890 the concept of "method signature" now exists in JavaParser
28* 896 891 889 887 882 789 smaller improvements and fixes
29
Danny van Bruggen7a3b9602017-04-02 21:39:40 +020030Version 3.2.0
31------------------
32The lexical preservation code is stable!
33
34Beta: `TreeStructureVisitor`.
35
36* 885 884 879 878 smaller improvements and fixes
37
Danny van Bruggencadeeb52017-03-26 20:40:56 +020038Version 3.1.4
39------------------
40This is the first version to parse Java 9.
41
42Beta: `TreeStructureVisitor`, and `LexicalPreservingPrinter`.
43
44* 872 873 874 787 Remaining Java 9 work.
45
Danny van Bruggen64dd2802017-03-19 13:52:35 +010046Version 3.1.3
47------------------
48Beta: `TreeStructureVisitor`, and `LexicalPreservingPrinter`.
49
50A start has been made on source level support. The default level is Java 8.
51It can be set to Java 9 like this for a parser *instance*:
52```java
53private final JavaParser parser = new JavaParser(new ParserConfiguration().setValidator(new Java9Validator()));
54```
55and like this for the static parse methods:
56```java
57JavaParser.getStaticConfiguration().setValidator(new Java9Validator());
58```
59
60* 862 552 "_" is an illegal identifier on source level 9.
61* 869 867 109 855 857 smaller improvements and fixes
62
Danny van Bruggen79776b72017-03-11 15:07:40 +010063Version 3.1.2
64------------------
65Beta: `TreeStructureVisitor`, `ConcreteSyntaxModel`, and `LexicalPreservingPrinter`.
66
67* 594 849 831 a validation framework was introduced to inform about problems in the AST without needing to change the grammar,
68and without requiring parsing code.
69It is open for extension by users.
70* 852 853 826 832 846 839 smaller improvements and fixes
71
Danny van Bruggenf50a5512017-03-04 18:14:46 +010072Version 3.1.1
73------------------
74Beta: `TreeStructureVisitor`, `ConcreteSyntaxModel`, and `LexicalPreservingPrinter`.
75
76* 654 124 lexical preservation (printing source code with the same formatting it had when parsing) has been added.
77 Thank you @ftomassetti for a lot of work!
78* 554 800 first (big) step towards Java 9 support: JavaParser can read project Jigsaw module definitions.
79* 795 786 751 extend the TreeVisitor with more traversal options. Thanks @ryan-beckett!
80* 791 `GenericListVisitorAdapter` has been added which collects its results in a list. Thanks @Gottox!
81* 815 798 797 813 clean up Problem text
82* 819 818 817 816 441 809 808 807 fix various absurd annotation related issues.
83* 777 805 802 796 790 792 793 781 784 785 783 782 779 357 799 763 smaller improvements and fixes
84
Danny van Bruggen076d3ee2017-02-19 22:56:24 +010085Version 3.1.0
86------------------
Danny van Bruggenf50a5512017-03-04 18:14:46 +010087Beta: `TreeStructureVisitor` and `ConcreteSyntaxModel`.
Danny van Bruggen076d3ee2017-02-19 22:56:24 +010088
89* 705 755 Add the concrete syntax model, which will give you information about the exact syntax a certain nodes matches.
90
91* 777 smaller improvements and fixes
92
Danny van Bruggenadae33f2017-02-14 19:59:50 +010093Version 3.1.0-beta.2
94------------------
95This version is a beta because `TreeStructureVisitor` is not in its definite state yet.
96
97* 762 761 772 merge `javaparser-metamodel` and `javaparser-generator-utils` into `javaparser-core`.
98* 766 the `ModifierVisitor` is now created by a code generator. Its behaviour has been made logical, and may give different results than before.
99* 755 `ConstructorDeclaration` and `MethodDeclaration` now share a parent: `CallableDeclaration`
100* 687 759 773 769 768 767 765 759 smaller improvements and fixes
101
Danny van Bruggen23d54772017-02-05 16:21:16 +0100102Version 3.1.0-beta.1
Danny van Bruggen70f343e2017-01-28 14:07:25 +0100103------------------
Danny van Bruggen23d54772017-02-05 16:21:16 +0100104This version is a beta because there are a lot of new features that may still change.
105
106This version needs a minor version increase because of a backwards compatability issue:
107* 719 `getJavadoc`, `getJavadocComment` and `getComment` could return null. Our promise was to return `Optional`, so that is what they do now.
Danny van Bruggen70f343e2017-01-28 14:07:25 +0100108
109New:
Danny van Bruggene6079d82017-02-05 16:50:01 +0100110* 658 718 736 737 we have created a metamodel.
Danny van Bruggen23d54772017-02-05 16:21:16 +0100111It gives information about the structure of the various AST nodes, as if you are introspecting them.
112You can find it in `javaparser-metamodel`, the main class is `JavaParserMetaModel`
Danny van Bruggene6079d82017-02-05 16:50:01 +0100113* 353 365 visitors are no longer hand made, they are now generated from the metamodel. This should make them 100% reliable.
Danny van Bruggen23d54772017-02-05 16:21:16 +0100114Affected visitors are: `GenericVisitorAdapter`, `EqualsVisitor`, `VoidVisitorAdapter`, `VoidVisitor`, `GenericVisitor`, `HashCodeVisitor`, `CloneVisitor`.
115
116If you want to generate your own visitors, you can use the `VisitorGenerator` class from `javaparser-core-generators`
117
118If you want to reuse the code generation utilities, look at module `javaparser-generator-utils` - there is a very useful `SourceRoot` class in there that takes away a lot of file management troubles.
Danny van Bruggene6079d82017-02-05 16:50:01 +0100119* 538 735 `TreeStructureVisitor` has been added, which should be considered beta.
120* 220 733 717 749 745 750 743 748 666 732 746 734 733 smaller improvements and fixes
Danny van Bruggen70f343e2017-01-28 14:07:25 +0100121
Danny van Bruggenc5f6e9b2017-01-15 20:58:52 +0100122Version 3.0.1
123------------------
124* 699 433 325 Javadoc can now be parsed
125* 703 696 added NodeWithOptionalScope
126* 702 FieldAccessExpr now implements NodeWithSimpleName, *which means that "field" has been renamed to "name"*
127* 707 706 improve range of array types and levels
128* 709 smaller improvements and fixes
129
Danny van Bruggen1804ea22017-01-07 23:06:22 +0100130Version 3.0.0
131------------------
132* 695 697 689 680 693 691 682 690 677 679 688 684 683 smaller improvements and fixes
133
Danny van Bruggene11ed222016-12-24 22:25:49 +0100134Version 3.0.0-RC.4
135------------------
136* 668 669 TypeDeclarationStmt became LocalClassDeclarationStmt
137* 347 665 every node now has some documentation
138* 660 670 673 four types of import declaration have been merged back into the old ImportDeclaration
139* 659 The pretty printer can now take customized visitors
140* 650 671 672 674 524 smaller improvements and fixes
141
Danny van Bruggenfc9c4a92016-12-18 23:13:10 +0100142Version 3.0.0-RC.3
143------------------
144* 639 622 632 657 656 652 653 647 648 645 194 643 630 624 628 627 626 625 623 cleanups, small fixes, and general housekeeping
145
Danny van Bruggendd5d4d02016-12-09 16:40:59 +0100146Version 3.0.0-RC.2
147------------------
148* 593 EmptyImportDeclaration and NonEmptyImportDeclaration have been removed
149* 612 VariableDeclaratorId has been removed. It has been substituted by "SimpleName name"
150* 614 617 the list of tokens has been linearized and simplified
151* 615 support for arrays has once more been changed. See [the issue](https://github.com/javaparser/javaparser/issues/592)
152* 580 453 380 618 580 611 610 424 608 smaller improvements and fixes
153
Danny van Bruggen61aaeaf2016-12-01 18:37:11 +0100154Version 3.0.0-RC.1
155------------------
156* 499 601 renames many fields to be more consistent
157* 596 605 602 604 smaller improvements and fixes
158
Danny van Bruggen47379542016-11-27 16:54:33 +0100159Version 3.0.0-alpha.11
160------------------
161* 547 595 Node.range is now using Optional instead of Range.UNKNOWN
Danny van Bruggen6738e1c2016-11-28 19:46:45 +0100162* 584 588 548 585 bug fixes and improvements
Danny van Bruggen47379542016-11-27 16:54:33 +0100163
matozoidf52d1ad2016-11-20 16:36:22 +0100164Version 3.0.0-alpha.10
165------------------
166* 578 579 577 575 290 570 568 567 562 564 551 bug fixes and improvements
167
Danny van Bruggen02b3c5e2016-11-10 10:33:44 +0100168Version 3.0.0-alpha.9
169------------------
170* 403 358 549 Make all names nodes: either SimpleName or Name. This makes every name in the AST visitable. NameExpr is now a wrapper to use SimpleName in an expression.
matozoidd2c9f432016-11-13 17:29:38 +0100171* 516 536 use Optional<> for return values.
matozoid789ddfe2016-11-13 17:33:43 +0100172* 556 557 558 550 small improvements and fixes.
173* 560 559 make nodes observable.
Danny van Bruggen02b3c5e2016-11-10 10:33:44 +0100174
matozoidaa79a622016-11-06 14:13:37 +0100175Version 3.0.0-alpha.8
176------------------
177* 344 529 turn DumpVisitor into an official PrettyPrinter
178* 532 508 427 530 531 513 528 cleanups
179
matozoidde10e892016-10-26 19:48:54 +0200180Version 3.0.0-alpha.7
181------------------
matozoid57a10942016-10-30 21:14:28 +0100182* 515 roll back attempt at using Optional
183* 522 504 make NodeList not a Node (restores parent/children behaviour to before alpha.4)
184* 527 526 rename getChildrenNodes to getChildNodes
185* 525 495 520 bug fix
matozoidde10e892016-10-26 19:48:54 +0200186
187Version 3.0.0-alpha.6
188------------------
189* 503 modified ImportDeclaration hierarchy to have getters for static and "asterisk" again
190* 506 bug fix
191
matozoid9ac80482016-10-16 22:08:51 +0200192Version 3.0.0-alpha.5
193------------------
194* 451 null is no longer allowed in the AST. [See last post in issue](https://github.com/javaparser/javaparser/issues/451)
195* 501 421 420 316 use a special type of list for nodes: NodeList. [See last post in issue](https://github.com/javaparser/javaparser/issues/421)
196
matozoid93c5ac12016-10-09 22:03:29 +0200197Version 3.0.0-alpha.4
198------------------
199* 463 471 nodes can now be removed easily
200* 491 import handling changed. Instead of "ImportDeclaration", we now have the four types of import as described in the JLS. [See issue](https://github.com/javaparser/javaparser/pull/491)
201* 452 355 474 494 various improvements
202* 493 492 485 Simplify the JavaParser interface
203
matozoid6ea2c522016-09-30 18:55:44 +0200204Version 3.0.0-alpha.3
205------------------
matozoid93c5ac12016-10-09 22:03:29 +0200206* 112 237 466 465 461 460 458 457 fundamentally changes how we deal with arrays. [It is explained in the last post here](https://github.com/javaparser/javaparser/issues/237)
matozoid6ea2c522016-09-30 18:55:44 +0200207* 472 456 makes the "data" field on every node more structured.
208* 477 468 refactor TypeArguments. You will find that TypeArguments is no longer a type, it is just a list in some nodes.
209* 482 adds the "nodeTypes" packages to the osgi export.
210* 479 476 makes all setters on nodes return this so they become chainable.
211* 473 437 clean up CloneVisitor.
matozoid53d288a2016-07-18 13:32:44 +0200212
matozoid6ea2c522016-09-30 18:55:44 +0200213Version 3.0.0-alpha.2
214------------------
215* 157 a new parser frontend, check https://github.com/javaparser/javaparser/pull/447 for explanations
216* 435 more builder methods like 400 and 405
217* 111 440 443 444 445 446 bugs & cleanups
matozoid53d288a2016-07-18 13:32:44 +0200218
matozoid6ea2c522016-09-30 18:55:44 +0200219Version 3.0.0-alpha.1
220------------------
221* 400 405 introduce many "builder" style methods for constructing code. Thanks DeepSnowNeeL!
222* 409 remove ASTHelper (methods are now on specific Node subclasses)
223* 414 JavaParser can now be instantiated and reused. InstanceJavaParser removed
224* 418 417 411 408 bugs
225* 367 420 407 402 various cleanups
226
227Version 2.5.1
matozoid53d288a2016-07-18 13:32:44 +0200228-------------
matozoid6ea2c522016-09-30 18:55:44 +0200229* 394 OSGi manifest added
230* 391 fix ModifierVisitor NullPointerException bug
231* 385 a few new parse methods
232* 386 fix dumping an empty import (a single ; after the package declaration)
matozoid53d288a2016-07-18 13:32:44 +0200233
234Version 2.5.0
235-------------
236API breaking changes:
237
238* 191: moved TreeVisitor to visitor package
239* 368, 162, 303, 302, 360: use correct type in some places.
240* 371: code is now compiled with Java 8
241* 342, 331: ModifierVisitorAdapter detects and removes broken nodes
242* 328, 270: upgrade JavaCC (use TokenMgrException now)
243Other changes:
244
245* 297: enable access to tokens.
246* 341, 361: node positions are now OO
247* 211, 373: escaping of \n \r for string literals
248* 336, 276, 141: JavaDoc support now works
249* 337, 281: reorganize the stream reading code
250* 343, 309, 332, 57: take advantage of common interfaces
251* 329, 326, 327: deal with platform issues
252* 163, 236, 252, 296, 269, 339, 321, 322, 252, 253, 293, 295: various fixes
253* 310, 311, 313, 301, 294: some code clean-ups
Danny van Bruggen5f5c6cc2016-07-20 13:40:30 +0200254
matozoid6ea2c522016-09-30 18:55:44 +0200255Version 2.4.0
Danny van Bruggen5f5c6cc2016-07-20 13:40:30 +0200256-------------
matozoid6ea2c522016-09-30 18:55:44 +0200257* several fixes in DumpVisitor for bugs due to lazy initialization
258* make TypeDeclaration implements DocumentableNode directly
259* TypedNode interface introduced
260* introduce MultiBoundType
261* refactored IntersectionType and UnionType
262* refactored CatchClause
263* parsing annotations in throws declarations
264* parse orphan semicolons in import statements
265* added PackageDeclaration.getPackageName
266* solved issue with newlines in string literals
267* fixed handling of UnknownType in EqualsVisitor
268* improvements to CommentsParser
269* removing old grammar
matozoid13818472016-08-23 22:03:06 +0200270
matozoid6ea2c522016-09-30 18:55:44 +0200271Version 2.3.0
272-------------
273* ClassOrInterfaceType implements NamedNode
274* DumpVisitor can now be extended
275* Improved documentation
276* AST: lists are now lazy initialized
matozoid8669cf42016-09-30 18:39:12 +0200277
Danny van Bruggen27b32072017-02-19 23:27:37 +0100278Version 2.1.0
matozoideae61572016-09-30 18:57:34 +0200279-------------
280* Features
281 * [#75 performance improvement for `PositionUtils.sortByBeginPosition`](https://github.com/javaparser/javaparser/issues/75)
282 * [#64 In getDeclarationAsString parameter names should be optional](https://github.com/javaparser/javaparser/issues/64)
283* Bugfixes
284 * [#79 Fix NPE in `ConstructorDeclaration.getDeclarationAsString`](https://github.com/javaparser/javaparser/pull/79)
285 * [#86 Add missing functions to ModifierVisitorAdapter](https://github.com/javaparser/javaparser/pull/86)
286 * [#82 set LambdaExpr as parent of its child nodes](https://github.com/javaparser/javaparser/issues/82)
287 * [#87 implement `setJavadoc` and `getJavadoc` at various classes](https://github.com/javaparser/javaparser/issues/87)
288 * [#96 Fixed encoding issue in `Javaparser.parse`](https://github.com/javaparser/javaparser/pull/96)
289 * [#85 Casting a lambda expression causes a parsing failure](https://github.com/javaparser/javaparser/issues/85)
290 * [#88 `MethodReferenceExpr` and `TypeExpr` don't set themselves as parents](https://github.com/javaparser/javaparser/issues/88)
291* Internal
292 * [#89 CommentsParser.State contains unused fields](https://github.com/javaparser/javaparser/issues/89)
293 * Switched from drone.io to [Travis](https://travis-ci.org/javaparser/javaparser)
294 * [#105 Enforce compiling the library for a certain Java version](https://github.com/javaparser/javaparser/pull/105)
295
296[Code changes](https://github.com/javaparser/javaparser/compare/javaparser-parent-2.0.0...master)
297
298Version 2.0.0
299-------------
300* support Java 8
Danny van Bruggen27b32072017-02-19 23:27:37 +0100301
302Version 1.0.8 (2010-01-17)
303-------------
304* Fixed issues:
305 * Issue 17: A refactor suggestion for AnnotationExpr and its subclasses
306 * Issue 21: Java 5 JavaParser compiled JARs
307 * Issue 22: Please use java.lang.reflect.Modifier constants in japa.parser.ast.body.ModifierSet
308 * Issue 27: Implement the "equal" method
309 * Issue 30: equals and hashCode methods
310
311Version 1.0.7 (2009-04-12)
312-------------
313* Issue 19 fixed:
314* Tests changed to run with junit 4
315
316Version 1.0.6 (2009-01-11)
317-------------
318* Issue 11 fixed: changed method get/setPakage to get/setPackage in the class CompilationUnit
319* Created new visitor adapter to help AST modification: ModifierVisitorAdapter
320* Changed visitor adapters to abstract
321
322Version 1.0.5 (2008-10-26)
323-------------
324* Created simplified constructors in the nodes of the AST (without positional arguments)
325* Created ASTHelper class with some helpful methods (more methods are still needed)
326
327Version 1.0.4 (2008-10-07)
328-------------
329* Moved to javacc 4.1.
330* The java_1_5.jj can be build alone without compilation errors
331
332Version 1.0.3 (2008-09-06)
333-------------
334* Removed SuperMemberAccessExpr class, it was no longer used
335* Removed the methods get/setTypeArgs() from ArrayCreationExpr, this node shouldn't have these methods.
336* Fixed the bug with start/end position of the nodes IntegerLiteralMinValueExpr and LongLiteralMinValueExpr
337* The methods get/setAnnotations() from all BodyDeclaration subclasses were pushed down to BodyDeclaration class
338
339Version 1.0.2 (2008-07-20)
340-------------
341* Issue fixed: Issue 1: Add support for editing AST nodes or create new ones
342
343Version 1.0.1 (2008-07-01)
344-------------
345* Issue fixed: Issue 5: end line and end column equal to begin line and begin column
346
347Version 1.0.0 (2008-06-25)
348-------------
349* Changed version numbering, starting version 1.0.0
350* Javadoc done for packages:
351 * japa.parser
352 * japa.parser.ast
353* Corrected bug when parsing in multithread:
354 * JavaParser.setCacheParser(false) must be called before to use the parser concurrent
355
3562008-06-19
357-------------
358* No code changes, added binary distribution to download page
359
3602008-06-11
361-------------
362* Bug corrected: NPE in VoidVisitorAdapter
363 * http://code.google.com/p/javaparser/issues/detail?id=2
364
3652008-06-09
366-------------
367* Added Adapters for de visitors
368
3692008-05-28
370-------------
371* This project now is published at Google Code:
372 * http://code.google.com/p/javaparser/
373
3742008-05-25
375-------------
376* Added support for comments and javadoc to the tree.
377 * Javadocs are stored directly to members (BodyDeclaration and all deriveds (classes, methods, fields, etc.)), accessible by the method getJavadoc().
378 * All comments are stored in the CompilationUnit, accessible by the method getComments().
379
3802008-04-01
381-------------
382* Changed all nodes public attributes to be private and created getters to access them
383* Changed the methods of the Node getLine e getColumn to getBeginLine and getBeginColumn
384* Added the methods getEndLine and getEndColumn to the Node class (works only in the BlockNode)
385
3862007-12-22
387-------------
388* Corrected ConditionalExpression bug
389
3902007-10-21
391-------------
392* Added LGPL License
393
3942007-10-21
395-------------
396* Bugs corrected:
397 * Created PackageDeclaration member of CompilationUnit to add suport for annotations in the package declaration
398 * Parameterized anonymous constructor invocation
399 * Explicit constructor invotation Type Arguments
400 * ctrl+z ("\u001A") ar end of compilation unit
401
4022007-10-09
403-------------
404* EnumConstantDeclaration annotation support corrected
405* Parssing Java Unicode escape characters suport added
406
4072007-10-03
408-------------
409* Bug corrected: "MotifComboPopup.this.super()" statement was generating parser error
410
4112007-10-01
412-------------
413* Bug corrected: Casting signed primitive values
414```
415 double d = (double) -1;
416 ^
417```
4182007-08-06
419-------------
420* Bug with the single line comments in the final of the unit corrected
421
4222007-07-31
423-------------
424* Fixed the bug with the following expression: `Class c = (int.class);`
425
4262007-06-26
427-------------
428* Bug fixes from Leon Poyyayil work
429 * suport for hex floating point
430 * unicode digits in indentifier
431 * MemberValueArrayInitializer
432
4332007-03-09
434-------------
435* Long and Integer literal MIN_VALUE bug
436
4372007-02-24
438-------------
439* '\0' bug fixed
440
4412007-02-01
442-------------
443* Many bug fixes
444* Added line/column to nodes