-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog.txt
905 lines (574 loc) · 43.6 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
2023-12-31 Jörgen Lundgren <[email protected]>
CEL4J:
* CHANGE: Update the copyright notice.
CEL4J Java Source:
* CHANGE: Fix a bug in the Lexical API.
2022-03-23 Jörgen Lundgren <[email protected]>
CEL4J Artifact:
* CHANGE: Update the ScriptEngine implementation. The changes had to be made in order to support Java 11. In Java 9, Field.isAccessible() is deprecated. Calling Field.setAccessible(boolean) resulted in an illegal access in Java 11 (and possibly Java 9). In Java 9, ClassLoader.getSystemClassLoader() does not return a URLClassLoader anymore, which also had to be fixed. This change has only been partially tested in Java 11 at this point.
2022-02-02 Jörgen Lundgren <[email protected]>
CEL4J:
* CHANGE: Update the copyright notice.
2021-09-26 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add support for throws clause to constructors.
* ADD: Add support for more importable types from constructors.
CEL4J Java Model:
* ADD: Add the methods getExceptionTypes(), getImportableTypes(), getOptionalCodeAttribute() and getOptionalExceptionsAttribute() to the Constructor class.
* CHANGE: Optimize the load time for the AnnotationType, ClassType, EnumType and InterfaceType classes.
2021-09-25 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add support for throws clause to methods.
CEL4J Java Model:
* ADD: Add the method getOptionalCodeAttribute() to the Method class.
2021-09-23 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add the method find(MethodInfo) to the ExceptionsAttribute class.
CEL4J Java Model:
* ADD: Add the methods getExceptionTypes() and getOptionalExceptionsAttribute() to the Method class.
* ADD: Add the method getOptionalEnclosingType() to the InnerType class.
2021-09-21 Jörgen Lundgren <[email protected]>
CEL4J Java Model:
* ADD: Add a new Java Model API. It used to be the internal model of the Java Decompiler API. Although it has been refactored quite a bit the last couple of days.
2021-09-20 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* CHANGE: Optimize the load time for the internal model. The Person class that is currently part of the Test API used to take around 7000 milliseconds to decompile. Now it takes around 500 milliseconds.
2021-09-19 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* CHANGE: A lot of minor changes. For example, the internal model is being refactored and will soon be available in its own separate API.
* CHANGE: More imported types can be found from classes and included in the import statements.
* CHANGE: Comments are now above the members of class- and interface types when decompiled.
2021-09-18 Jörgen Lundgren <[email protected]>
CEL4J Java Binary
* ADD: Add the class MethodInfos to the new Java Binary ClassFile Support API.
* ADD: Add the methods getParameterIsFinals() and getParameterNames(ClassFile) to the MethodParametersAttribute class.
2021-09-17 Jörgen Lundgren <[email protected]>
CEL4J Java Binary
* ADD: Add the methods excludePackageName(ClassTypeSignature) and excludePackageName(ClassTypeSignature, String) to the ClassTypeSignature class.
* ADD: Add the methods excludePackageName(ClassTypeSignatureSuffix) and excludePackageName(ClassTypeSignatureSuffix, String) to the ClassTypeSignatureSuffix class.
* ADD: Add the methods excludePackageName(InterfaceBound) and excludePackageName(InterfaceBound, String) to the InterfaceBound class.
* ADD: Add the methods excludePackageName(JavaTypeSignature) and excludePackageName(JavaTypeSignature, String) to the JavaTypeSignature interface.
* ADD: Add the methods excludePackageName(ReferenceTypeSignature) and excludePackageName(ReferenceTypeSignature, String) to the ReferenceTypeSignature interface.
* ADD: Add the methods excludePackageName(Result) and excludePackageName(Result, String) to the Result interface.
* ADD: Add the methods excludePackageName(SimpleClassTypeSignature) and excludePackageName(SimpleClassTypeSignature, String) to the SimpleClassTypeSignature class.
* ADD: Add the methods excludePackageName(SuperClassSignature) and excludePackageName(SuperClassSignature, String) to the SuperClassSignature interface.
* ADD: Add the methods excludePackageName(SuperInterfaceSignature) and excludePackageName(SuperInterfaceSignature, String) to the SuperInterfaceSignature interface.
* ADD: Add the methods excludePackageName(ThrowsSignature) and excludePackageName(ThrowsSignature, String) to the ThrowsSignature class.
* ADD: Add the methods excludePackageName(TypeArgument) and excludePackageName(TypeArgument, String) to the TypeArgument class.
* ADD: Add the methods excludePackageName(TypeArguments) and excludePackageName(TypeArguments, String) to the TypeArguments class.
* ADD: Add the methods excludePackageName(TypeParameter) and excludePackageName(TypeParameter, String) to the TypeParameter class.
* ADD: Add the methods excludePackageName(TypeParameters) and excludePackageName(TypeParameters, String) to the TypeParameters class.
2021-09-16 Jörgen Lundgren <[email protected]>
CEL4J Java Binary
* ADD: Add the methods excludePackageName(ArrayTypeSignature) and excludePackageName(ArrayTypeSignature, String) to the ArrayTypeSignature class.
* ADD: Add the methods excludePackageName(ClassBound) and excludePackageName(ClassBound, String) to the ClassBound class.
* ADD: Add the methods excludePackageName(ClassSignature) and excludePackageName(ClassSignature, String) to the ClassSignature class.
* ADD: Add the methods excludePackageName(FieldSignature) and excludePackageName(FieldSignature, String) to the FieldSignature interface.
* ADD: Add the methods excludePackageName(MethodSignature) and excludePackageName(MethodSignature, String) to the MethodSignature class.
* ADD: Add the methods excludePackageName(Signature) and excludePackageName(Signature, String) to the Signature interface.
* ADD: Add the method isEmpty() to the ClassBound class.
* ADD: Add the methods isBoolean(), isByte(), isChar(), isDouble(), isFloat(), isInt(), isLong() and isShort() to the BaseType enum in the Descriptor API.
* ADD: Add the methods isBoolean(), isByte(), isChar(), isDouble(), isFloat(), isInt(), isLong() and isShort() to the BaseType enum in the Signature API.
* ADD: Add the methods excludePackageName(ArrayType) and excludePackageName(ArrayType, String) to the ArrayType class.
* ADD: Add the methods excludePackageName(ClassName) and excludePackageName(ClassName, String) to the ClassName class.
* ADD: Add the methods excludePackageName(ComponentType) and excludePackageName(ComponentType, String) to the ComponentType interface.
* ADD: Add the methods excludePackageName(FieldDescriptor) and excludePackageName(FieldDescriptor, String) to the FieldDescriptor interface.
* ADD: Add the methods excludePackageName(FieldType) and excludePackageName(FieldType, String) to the FieldType interface.
* ADD: Add the methods excludePackageName(MethodDescriptor) and excludePackageName(MethodDescriptor, String) to the MethodDescriptor class.
* ADD: Add the methods excludePackageName(ObjectType) and excludePackageName(ObjectType, String) to the ObjectType class.
* ADD: Add the methods excludePackageName(ParameterDescriptor) and excludePackageName(ParameterDescriptor, String) to the ParameterDescriptor interface.
* ADD: Add the methods excludePackageName(ReturnDescriptor) and excludePackageName(ReturnDescriptor, String) to the ReturnDescriptor interface.
* ADD: Add the method toClass() to ArrayType, BaseType, ComponentType, FieldDescriptor, ObjectType, ParameterDescriptor, ReturnDescriptor and VoidDescriptor.
2021-09-14 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add sorting to methods. It can be enabled using the method setSortingGroups(boolean) in the DecompilerConfiguration class.
* ADD: Add more separators to separated and sorted methods.
2021-09-13 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Fix a bug in the Reader API. The toString() method was used to find the UTF-8 value from the ConstantUTF8Info class in the past. When the APIs were refactored, it was changed to the getStringValue() method and not updated everywhere.
CEL4J Java Decompiler:
* ADD: Add imported type names from instructions.
* ADD: Add sorting to fields. It can be enabled using the method setSortingGroups(boolean) in the DecompilerConfiguration class.
* ADD: Add more separators to separated and sorted fields.
2021-04-10 Jörgen Lundgren <[email protected]>
CEL4J Java Source:
* ADD: Add an early version of the Java Source Syntactic API.
2020-07-24 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the method createDivJumbotron(String, String, Button[]) to the Bootstrap class.
2020-07-23 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the methods createDivContainer(Element[]) and createDivContainerFluid(Element[]) to the Bootstrap class.
2020-07-22 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the methods createDivCard(Element[]), createDivCardBody(Element[]), createH1CardTitle(String, String), createH2CardTitle(String, String), createH3CardTitle(String, String), createH4CardTitle(String, String), createH5CardTitle(String, String) and createH6CardTitle(String, String) to the Bootstrap class.
2020-07-21 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the methods createH1(String, String), createH2(String, String), createH3(String, String), createH4(String, String), createH5(String, String) and createH6(String, String) to the Bootstrap class.
2020-07-20 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the methods createDivAlertDark(Content, boolean), createDivAlertInfo(Content, boolean), createDivAlertLight(Content, boolean), createDivAlertPrimary(Content, boolean), createDivAlertSecondary(Content, boolean), createDivAlertSuccess(Content, boolean), createDivAlertWarning(Content, boolean) and createImgThumbnail(String, String, String, String) to the Bootstrap class.
* ADD: Add the methods createSpanGitHub(), createSpanGitHub(String), createSpanHome(), createSpanHome(String), createSpanImage(), createSpanImage(String), createSpanInfo(), createSpanInfo(String), createSpanInstagram(), createSpanInstagram(String), createSpanLink(), createSpanLink(String), createSpanList(), createSpanList(String), createSpanNewspaper(), createSpanNewspaper(String), createSpanProjectDiagram(), createSpanProjectDiagram(String), createSpanSignIn(), createSpanSignIn(String), createSpanSignOut(), createSpanSignOut(String), createSpanStarRegular(), createSpanStarRegular(String), createSpanStarSolid(), createSpanStarSolid(String), createSpanUser(), createSpanUser(String), createSpanTrash(), createSpanTrash(String), createSpanWrench() and createSpanWrench(String) to the FontAwesome class.
2020-07-18 Jörgen Lundgren <[email protected]>
CEL4J Rex:
* CHANGE: Update the accept(NodeHierarchicalVisitor) method of the GroupReference class, in order to remove StackOverflowErrors.
2020-07-17 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the Img class.
* ADD: Add the Label class.
* ADD: Add the TD class.
* ADD: Add the TH class.
* ADD: Add the TextArea class.
CEL4J Rex:
* ADD: Add the constant JAVA_IDENTIFIER to the Regex class.
* ADD: Add the constant NAME_JAVA_IDENTIFIER to the SymbolClass class and an implementation of it.
* CHANGE: Change the SymbolClass syntax from %Name to %Name%. This allows for syntax highlighting of a User Defined Language (UDL) in Notepad++.
2020-07-16 Jörgen Lundgren <[email protected]>
CEL4J Rex:
* ADD: Add support for the characters ',' and ';' as delimiters for Concatenations.
* ADD: Add the method newRexExpression() to the Expression class. This method returns an Expression that matches Rex itself.
* ADD: Add the constants NAME_COMMENT, NAME_COMMENT_OR_WHITESPACE, NAME_END_OF_LINE_COMMENT and NAME_TRADITIONAL_COMMENT to the SymbolClass class, as well as the implementations for these names.
* ADD: Add the constants COMMENT, COMMENT_OR_WHITESPACE, END_OF_LINE_COMMENT, TRADITIONAL_COMMENT and WHITESPACE to the Regex class.
* CHANGE: Change the name of the getSource() method in the Matcher class (and all subclasses) to getSourceCode().
* CHANGE: Change the name of the getSource() method in the MatchResult class to getInput().
* CHANGE: Change the name of the getResult() method in the MatchResult class to getMatch().
2020-07-15 Jörgen Lundgren <[email protected]>
CEL4J Rex:
* ADD: Add the Regex class with the constants CHARACTER_LITERAL, REGEX_LITERAL and STRING_LITERAL to match Character, Regex and String literals. Parsing the Regex class is also added.
* ADD: Add the constants NAME_CHARACTER_LITERAL, NAME_REGEX_LITERAL and NAME_STRING_LITERAL to the SymbolClass class, as well as the implementations for these names.
2020-07-14 Jörgen Lundgren <[email protected]>
CEL4J Lexer:
* ADD: Add the method group(int) to the Match class.
CEL4J Rex:
* ADD: Add Javadocs.
* ADD: Add the SymbolClass class with the constants NAME_DIGIT, NAME_JAVA_IDENTIFIER_PART, NAME_JAVA_IDENTIFIER_START, NAME_LETTER, NAME_LETTER_OR_DIGIT, NAME_LOWER_CASE, NAME_UNICODE_IDENTIFIER_PART, NAME_UNICODE_IDENTIFIER_START, NAME_UPPER_CASE and NAME_WHITESPACE that matches different symbol classes. Parsing the SymbolClass class is also added.
* ADD: Add an extends clause for Documentable to the Matcher (previously known as Matchable) interface and add implementations for all classes that implements it.
* ADD: Add a new parser that allows for comments and whitespace.
* CHANGE: Change GroupReferences and GroupReferenceDefinitions from "%Name" and "%Name=('A')" to "<Name>" and "<Name>=('A')", respectively.
* CHANGE: Change the Symbol class from being defined in terms of a char to being defined in terms of a String.
* CHANGE: Change the name of the Matcher class to MatchResult.
* CHANGE: Change the name of the Matchable interface to Matcher.
* CHANGE: Change the name of the method getMatchables() in the Concatenation class to getMatchers().
* CHANGE: Split the GroupReference class into GroupReference and GroupReferenceDefinition.
* CHANGE: Change the signatures of the methods matcher(String) and matcher(String, int, int) in the Matcher (previously known as Matchable) interface, to match(String) and match(String, int), respectively. The change was also done in all classes that implements it.
* CHANGE: Change the matching algorithms for all Matcher (previously known as Matchable) implementations.
* REMOVE: Remove the Builder class from the Alternation class.
* REMOVE: Remove the Builder class from the Concatenation class.
* REMOVE: Remove the Builder class from the Expression class.
* REMOVE: Remove the Builder class from the Group class.
* REMOVE: Remove the MatchInfo enum.
* REMOVE: Remove the methods getMaximumCharacterMatch() and getMinimumCharacterMatch() in the Matcher (previously known as Matchable) interface. They have also been removed from all classes that implements it.
* REMOVE: Remove the old parser.
CEL4J Utilities:
* ADD: Add a new CharPredicate interface.
2020-07-13 Jörgen Lundgren <[email protected]>
CEL4J Rex:
* ADD: Add Javadocs.
2020-07-12 Jörgen Lundgren <[email protected]>
CEL4J Rex:
* ADD: Add Javadocs.
2020-07-11 Jörgen Lundgren <[email protected]>
CEL4J Rex:
* ADD: Add Javadocs.
2020-07-10 Jörgen Lundgren <[email protected]>
CEL4J Rex:
* ADD: Add a new Rex API.
CEL4J Scanner:
* ADD: Add the methods stateSet(int) and stateSet(int, int) to the Scanner class.
* CHANGE: Change the access modifiers of the methods getIndexAtBeginningInclusive(), getIndexAtEndExclusive(), setIndexAtBeginningInclusive(int), setIndexAtBeginningInclusiveAndIndexAtEndExclusive(int, int) and setIndexAtEndExclusive(int) from protected to public in the Scanner class.
2020-07-09 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the methods createSpanFile(), createSpanFile(String), createSpanFolder(), createSpanFolder(String), createSpanFolderOpen() and createSpanFolderOpen(String) to the FontAwesome class.
2020-07-08 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the method addValue(String) to the Attribute class.
* ADD: Add the method createDivAlertDanger(Content, boolean) to the Bootstrap class.
* ADD: Add a generic type T that extends Element to the Content interface and update all classes that use it.
* ADD: Add the method getElements() to the Content interface and add implementations for it in all classes that implements Content.
* ADD: Add the constructors Elements(Display, Content) and Elements(Display, List) to the Elements class.
* ADD: Add the methods createSpanBlog(), createSpanBlog(String), createSpanCog(), createSpanCog(String), createSpanCommentRegular(), createSpanCommentRegular(String), createSpanCommentSolid(), createSpanCommentSolid(String), createSpanEdit(), createSpanEdit(String), createSpanEnvelope() and createSpanEnvelope(String) to the FontAwesome class.
* ADD: Add the methods combine(Span, Span) and combine(Span, Span, boolean) to the Span class.
* CHANGE: Change the generic types of ContentElement from <T extends Content> to <T extends Element, U extends Content<T>> and update all classes that extends it.
2020-07-07 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the Bootstrap class.
* ADD: Add the Button class.
* ADD: Add the FontAwesome class.
* ADD: Add the Footer class.
* ADD: Add the Form class.
* ADD: Add the HTML class.
* ADD: Add the Header class.
* ADD: Add the JQuery class.
* ADD: Add the Link class.
* ADD: Add the Main class.
* ADD: Add the Meta class.
* ADD: Add the Nav class.
* ADD: Add the Popper class.
* ADD: Add the Small class.
* ADD: Add the Title class.
* ADD: Add the constant NONE to the Display enum.
* ADD: Add new constructors to most classes.
* ADD: Add Javadocs.
2020-07-06 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the A class.
* ADD: Add the Body class.
* ADD: Add the Br class.
* ADD: Add the EmptyElement class.
* ADD: Add the H1 class.
* ADD: Add the H2 class.
* ADD: Add the H3 class.
* ADD: Add the H4 class.
* ADD: Add the H5 class.
* ADD: Add the H6 class.
* ADD: Add the HR class.
* ADD: Add the LI class.
* ADD: Add the OL class.
* ADD: Add the Option class.
* ADD: Add the Script class.
* ADD: Add the Select class.
* ADD: Add the UL class.
* ADD: Add a generic type T that extends Content to the ContentElement class and update all classes that use it.
* CHANGE: Update Javadocs.
CEL4J Java Binary:
* CHANGE: Update Javadocs.
* CHANGE: Rename the methods getWide1(int, int, int) and getWide2(int, int, int, int, int) in the Instruction class to getWide(int, int, int) and getWide(int, int, int, int, int), respectively.
2020-07-05 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add the Content interface.
* ADD: Add the ContentElement class.
* ADD: Add the Elements class.
* ADD: Add the P class.
* ADD: Add the Span class.
* ADD: Add the Text class.
CEL4J Utilities:
* ADD: Add a text(String) method to the Document class.
2020-07-04 Jörgen Lundgren <[email protected]>
CEL4J HTML:
* ADD: Add a new HTML Model API.
CEL4J Java Binary:
* ADD: Add an implements clause to Documentable for the classes ClassFile, CPInfo, FieldInfo, MethodInfo and all CPInfo implementations.
CEL4J PHP:
* ADD: Add an implements clause to Documentable for the classes PBlock, PClass, PConst, PConstructor, PDocument, PField, PInterface and PMethod.
CEL4J Utilities:
* ADD: Add the Documentable interface.
2020-07-03 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update Javadocs.
2020-07-02 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Change the signatures of the methods getString() and setString(String) in the class ConstantUTF8Info to getStringValue() and setStringValue(String), respectively.
* CHANGE: Change the signatures of the methods getLong() and setLong(long) in the class ConstantLongInfo to getLongValue() and setLongValue(long), respectively.
* CHANGE: Change the signatures of the methods getInt() and setInt(int) in the class ConstantIntegerInfo to getIntValue() and setIntValue(int), respectively.
* CHANGE: Update Javadocs.
CEL4J Java Decompiler:
* CHANGE: Update the code affected by the change in CEL4J Java Binary.
2020-07-01 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Change the signatures of the methods getFloat() and setFloat(float) in the class ConstantFloatInfo to getFloatValue() and setFloatValue(float), respectively.
* CHANGE: Change the signatures of the methods getDouble() and setDouble(double) in the class ConstantDoubleInfo to getDoubleValue() and setDoubleValue(double), respectively.
* CHANGE: Update Javadocs.
CEL4J Java Decompiler:
* CHANGE: Update the code affected by the change in CEL4J Java Binary.
CEL4J PHP:
* CHANGE: Change the signatures of the methods setEnclosedByClass(boolean) and setEnclosedByInterface(boolean) of the PMethod class to setEnclosedByClass() and setEnclosedByInterface().
* CHANGE: Update Javadocs.
2020-06-30 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add the ModulePackagesAttribute class.
* ADD: Add the NestMembersAttribute class.
* ADD: Add the ModuleMainClassAttribute class.
* ADD: Add the NestHostAttribute class.
* ADD: Add the toByteArray() method to the ClassFile class and the read(byte[]) method to the ClassFileReader class.
* ADD: Add the BootstrapMethod and BootstrapMethodsAttribute classes.
* ADD: Add the AnnotationDefaultAttribute class.
* CHANGE: Update Javadocs.
CEL4J Utilities:
* ADD: Add the method toString(int[], boolean) to the Strings class.
2020-06-28 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add copy constructors to all AttributeInfo implementations.
* CHANGE: Update Javadocs.
CEL4J Lexer:
* ADD: The Token class now allows an Object to be associated with it.
2020-06-27 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add Javadocs.
* CHANGE: Update Javadocs.
2020-06-26 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add Javadocs.
* CHANGE: Update Javadocs.
CEL4J PHP:
* ADD: Add Javadocs.
2020-06-25 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: The simple name of implemented interfaces are used when both configuration parameters DiscardingUnnecessaryPackageNames and ImportingTypes are set to true.
* ADD: The simple name of method parameter arguments are used when both configuration parameters DiscardingUnnecessaryPackageNames and ImportingTypes are set to true.
2020-06-24 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: The "default" modifier has been added to default methods in interfaces.
* ADD: Constant field assignments of type double, float and long are appended with "D", "F" and "L", respectively.
* CHANGE: Methods with the same signature as in their direct or indirect super-classes were given the annotation @Override. This occurred with private and static methods as well, which is wrong. This has been fixed.
2020-06-23 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update Javadocs.
2020-06-22 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update Javadocs.
CEL4J Utilities:
* CHANGE: Update Javadocs.
2020-06-21 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update Javadocs.
2020-06-20 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update Javadocs.
2020-06-19 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update Javadocs.
2020-06-18 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update Javadocs.
2020-06-17 Jörgen Lundgren <[email protected]>
CEL4J Java Source:
* CHANGE: Update the Regex used when parsing traditional comments.
CEL4J Lexer:
* CHANGE: Update the Regex used when parsing end-of-line comments.
2020-06-16 Jörgen Lundgren <[email protected]>
CEL4J Artifact:
* ADD: Add a new extension mechanism. This allows the class of a script to extend any class with a default constructor.
CEL4J Java Binary:
* CHANGE: Update Javadocs.
CEL4J Lexer:
* ADD: Add a new Lexer API.
2020-06-15 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Fix bugs in the AttributeInfoReader implementations for RuntimeInvisibleAnnotationsAttribute, RuntimeInvisibleParameterAnnotationsAttribute, RuntimeVisibleAnnotationsAttribute and RuntimeVisibleParameterAnnotationsAttribute.
* CHANGE: Change the visibility for the constructors of CPInfo implementations.
* CHANGE: Change the visibility for the constructors of AttributeInfo implementations and some of their internal classes to public.
* REMOVE: Remove the newInstance(...) methods from the CPInfo implementations.
* REMOVE: Remove the newInstance(...) methods from the AttributeInfo implementations and some of their internal classes.
* REMOVE: Remove the newInstance(...) methods from the ClassFile, FieldInfo and MethodInfo classes.
CEL4J PHP:
* ADD: Add Javadocs to AbstractPropertyBuilder in the PHP Generator API.
2020-06-14 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add a new method to retrieve an AttributeInfo from the ClassFile class.
* ADD: Add Javadocs to the Java Binary ClassFile Signature API.
2020-06-13 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add Javadocs to the Java Binary ClassFile Descriptor API.
* ADD: Add Javadocs to the Java Binary ClassFile Signature API.
* CHANGE: Move all classes and interfaces that models descriptors from org.macroing.cel4j.java.binary.classfile.string to org.macroing.cel4j.java.binary.classfile.descriptor.
* CHANGE: Move all classes and interfaces that models signatures from org.macroing.cel4j.java.binary.classfile.string to org.macroing.cel4j.java.binary.classfile.signature.
* REMOVE: Remove all classes and interfaces in the package org.macroing.cel4j.java.binary.classfile.string, as well as the package itself.
CEL4J Java Decompiler:
* CHANGE: Update the code that used the Java Binary ClassFile String API. The code now uses the Java Binary ClassFile Descriptor API and the Java Binary ClassFile Signature API.
2020-06-12 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update the API for Descriptors and Signatures to use the new Scanner API instead of its internal one.
* REMOVE: Remove the internal Scanner API used by the Descriptors and Signatures API.
CEL4J Scanner:
* ADD: Add a new method for loading and deleting state at once.
2020-06-11 Jörgen Lundgren <[email protected]>
CEL4J Artifact:
* ADD: Add all files to the new project CEL4J.
CEL4J Scanner:
* ADD: Add a new Scanner API for scanning data in various forms.
2020-06-10 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* CHANGE: Update the Javadocs for package-info.java.
CEL4J Utilities:
* ADD: Add new methods to the class Strings that converts Unicode escape sequences in Strings and char arrays into new Strings.
2020-06-09 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add the classes AttributeInfoReaderException, CPInfoReaderException and ClassFileReaderException to the package org.macroing.cel4j.java.binary.reader.
* CHANGE: Update the Javadocs for package-info.java.
* CHANGE: Update the Javadocs for AttributeInfoReader, CPInfoReader and ClassFileReader.
* CHANGE: Replace the thrown NodeFormatException in the Java Binary Reader API with AttributeInfoReaderException, CPInfoReaderException and ClassFileReaderException.
* CHANGE: Rename the methods readAttributeInfo(DataInput, int, List) and isAttributeInfoReadingSupportedFor(String) in the interface AttributeInfoReader, to read(DataInput, int, List) and isSupported(String), respectively.
* CHANGE: Rename the methods readCPInfo(DataInput, int) and isCPInfoReadingSupportedFor(int) in the interface CPInfoReader, to read(DataInput, int) and isSupported(int), respectively.
* CHANGE: Rename the methods readClassFile(...) in the class ClassFileReader, to read(...).
CEL4J Java Decompiler:
* CHANGE: Update the Javadocs for package-info.java.
* CHANGE: Update all readClassFile(...) method calls on the class ClassFileReader to read(...). It was changed.
CEL4J Java Source:
* CHANGE: Update the Javadocs for package-info.java.
CEL4J JSON:
* ADD: Add an extends clause for Node to the JSONType interface and an implements clause for Node to the Property class.
* ADD: Add implementations for the accept(NodeHierarchicalVisitor) method to the JSONArray, JSONObject and Property classes.
* CHANGE: Update the Javadocs for package-info.java.
CEL4J Node:
* CHANGE: Update the Javadocs for package-info.java.
CEL4J PHP:
* ADD: Add static methods to the PropertyBuilder to create new instances of various PropertyBuilder implementations.
* CHANGE: Move all implementations of PropertyBuilder from the package org.macroing.cel4j.php.generator.propertybuilder to the package org.macroing.cel4j.php.generator and remove their public access modifier.
* CHANGE: Update the Javadocs for package-info.java.
* REMOVE: Remove the package org.macroing.cel4j.php.generator.propertybuilder.
CEL4J Utilities:
* ADD: Add a new generic Pair class that can hold two values, X and Y.
* CHANGE: Update the Javadocs for package-info.java.
2020-06-08 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Two new static methods have been added to the Decompiler interface. These are used to create a new Decompiler instance.
* CHANGE: Update the Javadocs for AbstractDecompiler, Consumers, Decompiler, DecompilerObserver and LocalVariableNameGenerator.
* CHANGE: Move the interface DecompilerConfiguration.LocalVariableNameGenerator to its own compilation unit, LocalVariableNameGenerator.
* CHANGE: The class SimpleDecompiler has been renamed to DecompilerImpl and its public access modifier has been removed.
* CHANGE: All classes and interfaces in the package org.macroing.cel4j.java.decompiler.simple have been moved to the parent package org.macroing.cel4j.java.decompiler.
* REMOVE: The package org.macroing.cel4j.java.decompiler.simple has been removed.
CEL4J PHP:
* ADD: Javadocs has been added to the classes Model and Property, as well as the interface PropertyBuilder.
* CHANGE: The field, method and variable names in almost all classes in the package org.macroing.cel4j.php.model have been simplified. For example the method getPMethods() has been simplified to getMethods(). In some cases they cannot be simplified, such as the parameter argument pInterface. This parameter argument would be simplified to interface, but that is a keyword.
2020-06-07 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add all files to the new project CEL4J.
* CHANGE: Update the copyright notice to org.macroing.cel4j and 2009 - 2020.
* CHANGE: Move all classes and interfaces in package org.macroing.cel4j.java.binary.node to org.macroing.cel4j.node.
* CHANGE: Move all classes and interfaces in package org.macroing.cel4j.java.binary.util to org.macroing.cel4j.util.
* REMOVE: Remove the package org.macroing.cel4j.java.binary.node.
* REMOVE: Remove the package org.macroing.cel4j.java.binary.util.
CEL4J Java Decompiler:
* ADD: Add all files to the new project CEL4J.
* CHANGE: Update the copyright notice to org.macroing.cel4j and 2009 - 2020.
* CHANGE: Move all classes and interfaces in package org.macroing.cel4j.java.decompiler.model to org.macroing.cel4j.java.decompiler.simple.
* REMOVE: Remove the package org.macroing.cel4j.java.decompiler.model.
* REMOVE: Remove the interface Decompilable.
CEL4J Java Source:
* ADD: Add all files to the new project CEL4J.
* CHANGE: Update the copyright notice to org.macroing.cel4j and 2009 - 2020.
* CHANGE: Move all classes and interfaces in package org.macroing.cel4j.java.source.node to org.macroing.cel4j.node.
* CHANGE: Move all classes and interfaces in package org.macroing.cel4j.java.source.util to org.macroing.cel4j.util.
* REMOVE: Remove the package org.macroing.cel4j.java.source.node.
* REMOVE: Remove the package org.macroing.cel4j.java.source.util.
* REMOVE: Remove the package org.macroing.cel4j.java.source.syntactic with all its classes and interfaces. These needs to be rewritten.
CEL4J JSON:
* ADD: Add all files to the new project CEL4J.
* CHANGE: Update the copyright notice to org.macroing.cel4j and 2009 - 2020.
CEL4J Node:
* ADD: Add all files to the new project CEL4J.
* CHANGE: Update the copyright notice to org.macroing.cel4j and 2009 - 2020.
CEL4J PHP:
* ADD: Add all files to the new project CEL4J.
* CHANGE: Update the copyright notice to org.macroing.cel4j and 2009 - 2020.
* CHANGE: Move all classes and interfaces in package org.macroing.cel4j.php.util to org.macroing.cel4j.util.
* REMOVE: Remove the package org.macroing.cel4j.php.util.
CEL4J Utilities:
* ADD: Add all files to the new project CEL4J.
* CHANGE: Update the copyright notice to org.macroing.cel4j and 2009 - 2020.
2020-06-05 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: A lot of new static methods have been added to the CPInfo implementation classes.
* CHANGE: Move all internal classes of AttributeInfo implementations to external classes in the package org.macroing.cel4j.java.binary.classfile.attributeinfo.
* CHANGE: A bug in the Parameter class used by MethodParametersAttribute has been found and fixed.
* REMOVE: The classes ClassFiles and Instructions in the package org.macroing.cel4j.java.binary.support have been removed, along with the package itself.
* REMOVE: The classes XMLReader, XMLReaderException, XMLWriter and XMLWriterException in the package org.macroing.cel4j.java.binary.support.xml have been removed, along with the package itself.
CEL4J Java Decompiler:
* CHANGE: Update most of the models because CEL4J Java Binary was refactored.
* REMOVE: The package org.macroing.cel4j.java.decompiler.test was removed with all classes in it.
* REMOVE: The package org.macroing.cel4j.java.decompiler.util was removed with all classes in it.
2020-06-04 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add a new class, AttributeInfoFilters, with methods for filtering AttributeInfo instances.
* ADD: Add more methods for filtering CPInfo instances to the CPInfoFilters class.
* CHANGE: Move the AbstractClassFileHierarchicalVisitor class from org.macroing.cel4j.java.binary.visitor to org.macroing.cel4j.java.binary.classfile.
* CHANGE: Move the methods in AttributeInfoFilters to specific AttributeInfo implementations.
* CHANGE: Move the methods in CPInfoFilters to specific CPInfo implementations.
* CHANGE: Move the methods in MethodInfoFilters to the MethodInfo class.
* CHANGE: Rename the findX(Node) methods in specific AttributeInfo implementations to find(Node).
* CHANGE: Fix a bug when writing a ClassFile to a file in a directory that does not exist. Now the directories are created.
* REMOVE: Remove the classes AttributeInfoFilters, CPInfoFilters and MethodInfoFilters, as well as their package, org.macroing.cel4j.java.binary.filter.
* REMOVE: Remove the package org.macroing.cel4j.java.binary.visitor.
2020-06-02 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add new methods to the Instruction class. Some of the methods are used for retrieving the index of some instruction types. Other methods are used for retrieving a single operand and the operand count. Previously, it was only possible to retrieve a copy of the operand array, which is not very efficient.
* ADD: Add new methods to the ConstantUTF8Info class. The methods are used for retrieving ConstantUTF8Info instances from AttributeInfo, ConstantStringInfo, FieldInfo and MethodInfo instances.
* ADD: Add new methods to the ClassFile, FieldInfo and MethodInfo classes. The methods are used for retrieving AttributeInfo, CPInfo, FieldInfo and MethodInfo instances in other ways than previously.
* CHANGE: Move methods from the class ClassFiles to other parts of the library, where they are more suited.
CEL4J Java Decompiler:
* CHANGE: Update most of the models because CEL4J Java Binary was refactored.
2020-06-01 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add the methods collectNames() and collectNames(BiFunction) to the TypeParameters class. These methods provide the same functionality as the method getAllNames(TypeParameters) in the ClassFiles class.
* ADD: Add the method toExternalForm(BiFunction) to the TypeParameters class. This method provides the same functionality as the AbstractTypeParametersWriter class.
* ADD: Add TODOs for public API that should be documented with Javadocs but currently are not.
* CHANGE: Move the method indexOf(ClassFile, CPInfo) in the ClassFiles class, to the method indexOf(CPInfo) in the ClassFile class. The method was rewritten, because it had a bug that caused the wrong index to be returned in some cases.
* CHANGE: Move methods from the class ClassFiles to other parts of the library, where they are more suited.
* CHANGE: Remove public visibility for two classes that should not be public. They were made public by accident.
* CHANGE: Reorder methods to be more consistent across the codebase.
* REMOVE: Remove the newly added method getAllNames(TypeParameters) from the class ClassFiles. It used the now removed class AbstractTypeParametersWriter.
* REMOVE: Remove the newly added class AbstractTypeParametersWriter.
CEL4J Java Decompiler:
* CHANGE: Update most of the models because CEL4J Java Binary was refactored.
* CHANGE: Update the code that handles type parameters. Breaking changes were made to CEL4J Java Binary.
2020-05-31 Jörgen Lundgren <[email protected]>
CEL4J Java Binary:
* ADD: Add a class called AbstractTypeParametersWriter that can be used to update the type names in a TypeParameters instance.
* CHANGE: Update the copyright notice to 2009 - 2020.
CEL4J Java Decompiler:
* ADD: Add support for discarding unnecessary or imported package names for type parameters.
* CHANGE: Update the way type parameters are managed.
2020-05-30 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add type parameters to the import statements.
* ADD: Add a configuration parameter for separating groups with comments.
* ADD: Add a configuration parameter for sorting groups. The sorting still needs to be added.
* ADD: Add a configuration parameter for displaying a comment with the configuration parameters used when decompiling.
* ADD: Add a configuration parameter for displaying attribute_info structure information as a comment in decompiled methods.
* ADD: Add Javadocs for the classes JInnerType, JModifier, JPrimitive, JType and JVoid.
* ADD: Add new constants to the JModifier enum.
* ADD: Add the JModifiers JModifier.TRANSIENT and JModifier.VOLATILE to the JField class.
* CHANGE: Update the algorithm used to find out if a method is overridden or not. Previously it did not work for implemented interfaces and their super interfaces.
* CHANGE: Move all String generator methods in the classes of the package org.macroing.cel4j.java.decompiler.model to the class SourceCodeGenerator in the package org.macroing.cel4j.java.decompiler.simple. This simplifies the usage of the DecompilerConfiguration class.
* CHANGE: Update all getModifiers() methods to return a List of JModifier rather than a List of String.
* REMOVE: Remove the StringUtilities class in the package org.macroing.cel4j.java.decompiler.model.
2020-05-29 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add a class called Test that the DecompilerTest class decompiles.
* ADD: Add a new configuration parameter called ImportingTypes to the DecompilerConfiguration class.
* ADD: Add a new enum called JModifier.
* CHANGE: Update the copyright notice to 2016 - 2020.
2020-05-28 Jörgen Lundgren <[email protected]>
CEL4J JSON:
* CHANGE: Update the copyright notice to 2017 - 2020.
* CHANGE: Update the order of certain fields and methods.
CEL4J PHP:
* ADD: Add all files for the library.
2019-02-08 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* CHANGE: Update the copyright notice to 2009 - 2019.
CEL4J JSON:
* CHANGE: Update the copyright notice to 2009 - 2019.
2018-03-23 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* CHANGE: Update the copyright notice to 2009 - 2018.
* REMOVE: Remove the dependency to CIT Java.
CEL4J JSON:
* ADD: Add a JSONUtilities class to format JSONType instances and retrieve JSONType instances given a path.
* CHANGE: Update the JSONLexer class. Possibly because a bug was found.
* CHANGE: Update the copyright notice to 2009 - 2018.
2017-11-08 Jörgen Lundgren <[email protected]>
CEL4J JSON:
* ADD: Add all files for the library.
2017-08-24 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* CHANGE: Fix a few mistakes in the Javadocs.
2017-08-15 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add a new method to the class Consumers.
* CHANGE: Split the configuration parameter DiscardingPublicAndAbstractInterfaceMethodModifiers in the class DecompilerConfiguration into two. These are DiscardingAbstractInterfaceMethodModifier and DiscardingPublicInterfaceMethodModifier. This change also affects the JField and JMethod classes.
2017-02-27 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* CHANGE: Update the copyright notice to 2009 - 2017.
* REMOVE: Remove the dependency to CEL4J Java Source.
2016-10-23 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add support for displaying instruction branch offsets to the method generateCommentWithInstructions(Document) in the class JMethod.
* CHANGE: Replace the method toString(ClassFile, MethodInfo, Instruction) in the class JMethod with the method toString(ClassFile, MethodInfo, Instruction) in the class ClassFiles.
* CHANGE: Change the message provided to the IllegalArgumentException thrown when adding an invalid JClass to a JPackage.
2016-06-17 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add support for more instructions in the method toString(ClassFile, MethodInfo, Instruction) of the class JMethod.
2016-05-17 Jörgen Lundgren <[email protected]>
CEL4J Java Decompiler:
* ADD: Add all files for the library.