-
Notifications
You must be signed in to change notification settings - Fork 34
/
changelog.txt
105 lines (90 loc) · 6.68 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
3.0.1 (24-dec-2024)
- added `MSB0_DIRECT` bit order mode, MSB0 without data revers [#46](https://github.com/raydac/java-binary-block-parser/issues/46)
- added `JBBPBitInputStream#isDetectedPartlyReadBitField` to check that only part of bit field read during last operation
- added flag into constructors for JBBPBitInputStream to force return -1 instead of partly accumulated bits data if end of field
3.0.0 (16-nov-2024)
- Minimum JDK Version: Updated to 11.0.
- Minimum Supported Android: Updated to 12 (API 32).
- API Changes: Modifications made to the CompiledBlockVisitor API.
- New Feature: Added `JBBPUtils#findMaxStaticArraySize` for calculating the largest static array size defined in a JBBP script.
- Internal API: Certain internal APIs have been opened.
- Codebase Improvements: General refactoring performed.
2.1.0 (05-nov-2024)
- minor changes in API for JBBPVarFieldProcessor and JBBPCustomFieldTypeProcessor
- provided way to control size of arrays read as stream rest [#44](https://github.com/raydac/java-binary-block-parser/issues/44)
- provided way to control size of arrays which size calculated through expressions [#45](https://github.com/raydac/java-binary-block-parser/issues/45)
- improved tests
2.0.6 (01-jul-2023)
- [#42](https://github.com/raydac/java-binary-block-parser/issues/42) unexpected exception during JBBPDslBuilder.AnnotatedClass method call
- improved tests
2.0.5 (17-jun-2023)
- [#41](https://github.com/raydac/java-binary-block-parser/issues/41) fix for Gradle plug-in
- improved tests
2.0.4 (01-aug-2022)
- added unsigned 32 bit integer type __uint__ [#37](https://github.com/raydac/java-binary-block-parser/issues/37)
- provided way to filter fields for mapping operations and write object operations [#36](https://github.com/raydac/java-binary-block-parser/issues/36)
2.0.3 (03-jan-2021)
- added service methods `JBBPUtils.traceData` to print dump of an input stream into a PrintStream
- improved `JBBPTokenizerException` to show marked error position [#30](https://github.com/raydac/java-binary-block-parser/issues/30)
2.0.2 (22-aug-2020)
- added `JBBPOut#Bin` variant to override `@Bin` annotation fields in written objects.
- [#28](https://github.com/raydac/java-binary-block-parser/issues/28) added `JBBPOut#BinForceByteOrder` to override byte order defined in `@Bin` annotations of written object.
2.0.1
- [#26](https://github.com/raydac/java-binary-block-parser/issues/26) fixed bug in array write with MSB0
2.0.0
- __removed DslBinCustom annotation, use @Bin annotation instead__
- __renamed attributes of @Bin annotation to their correct form__
- __reworked object mapping system, removed hacks to instantiate classes, now only mapping to objects allowed, support of private fields mapping is removed__
- __minimal JDK version now 1.8+__
- __minimal Android API now 3.0+__
- added support of getters and setters into mapping
- added `Object newInstance(Class)` method support of mapped classes to generate local class member instances
- added generating of `makeFIELD()` method for structure types in Java class converter
- refactoring
1.4.1
- fixed incompatibility in tokenizer regex syntax for Android SDK [#23](https://github.com/raydac/java-binary-block-parser/issues/23)
- added DslBinCustom annotation to provide way to mark custom type fields for JBBPDslBuilder
- fixed NPE in JBBPDslBuilder for not-provided outBitNumber attribute in annotated field marked as type BIT or BIT_ARRAY [#20](https://github.com/raydac/java-binary-block-parser/issues/20)
- naming of fields has been made more tolerant, now it is allowed to have field names with names similar to data types
- improved check of field names in JBBPDslBuilder [#21](https://github.com/raydac/java-binary-block-parser/issues/21)
1.4.0
- added type `val` which allows to create virtual field with calculated value, can play role of variable in scripts
- `val` and `var` have been added into reserved words and can't be used as field names
- added field `outByteOrder` attribute to `Bin` annotation, it affects logic of `JBBPOut#Bin` for output of annotated objects which fields should be saved with different byte order
- removed deprecated method `JBBPFinderException#getNameOrPath`
- added [auxiliary class to build JBBP script](https://github.com/raydac/java-binary-block-parser/blob/master/jbbp/src/main/java/com/igormaznitsa/jbbp/utils/JBBPDslBuilder.java)
- added flag `JBBPParser#FLAG_NEGATIVE_EXPRESSION_RESULT_AS_ZERO` to recognize negative expression result as zero
- improved Java 6 class source generator to process FLAG_SKIP_REMAINING_FIELDS_IF_EOF for structure fields
- added stable automatic module name `igormaznitsa.jbbp` into manifest file
- added support of float, double and string java types, as `floatj`,`doublej` and `stringj`
1.3.0
- fixed NPE when referencing a JBBPCustomFieldTypeProcessor parsed field
- added Maven plugin to generate sources from JBBP scripts
- added Gradle plugin to generate sources from JBBP scripts
- added extra byte array reading writing methods with byte order support into JBBPBitInputStream and JBBPBitOutputStream
- added converter of compiled parser data into Java class sources (1.6+)
- added method to read unsigned short values as char [] into JBBPBitInputStream
- Class version target has been changed to Java 1.6
- fixed compatibility of tests with Java 1.6
- Minor refactoring
1.2.0
- Refactoring
- Improved tree of JBBP exceptions
- Fixed NPE in JBBPTextWriter for String field mapped to byte array
- Added support of custom field types through JBBPCustomFieldTypeProcessor
- Added JBBPCustomFieldTypeProcessorAggregator, auxiliary class to join several JBBPCustomFieldTypeProcessors
- Fixed JBBPTextWriter, added support of logging for JBBPAbstractField objects
- Added support of payload objects in JBBPAbstractField
- Improved inside script compiler and interpreter to support future extensions.
- Fixed expression evaluator to support single char field names in expressions.
- Added support of expressions in extra field numeric data part (example bit:(field*2))
1.1.0
- Added support to write mapped classes into JBBPOut
- Added JBBPTextWriter to log binary data as text with commentaries,tabs and separators
- Fixed read byte counter, now it counts only fully processed bytes, if only several bits have been read from byte then the byte will not be counted until whole read
- Fixed static fields including in mapping processes if class has marked by default Bin annotation
- Added flag JBBPParser#FLAG_SKIP_REMAINING_FIELDS_IF_EOF to ignore remaining fields during parsing if EOF without exception
- Added flag JBBPMapper#FLAG_IGNORE_MISSING_VALUES to ignore mapping for values which are not found in parsed source
- Added new auxiliary methods in JBBPUtils
1.0
- The Initial version