Skip to content

Commit bf50aad

Browse files
committed
v1.4.6: features and fixes for Java 8.
1 parent 02ec191 commit bf50aad

File tree

93 files changed

+4391
-4253
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+4391
-4253
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@ for a higher control compared to the EasyML Facade.
6060

6161
### Release Notes
6262

63+
!Release 1.4.6
64+
- remove deprecated v1.3.4 object-o and array-o strategies.
65+
- replaced MarshalContext aliasFor methods with aliasOrNameFor methods.
66+
- bugfix: EnumStrategy marshalling fix.
67+
- feature: added TeeSet and ConcurrentHashMap support.
68+
- feature: added EnumSet and EnumMap support.
69+
- feature: added serialization serialPersistentFields support.
70+
71+
6372
!Release 1.4.5
6473
- performance: improved n.s.e.EasyML.deserialize() speed by reusing the
6574
XmlPullParser when available.

easyml/README

Lines changed: 259 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,260 @@
1-
Project also available on SourceForge.net:
1+
EasyML
2+
- offers basic DTD-type support and full Java support
3+
(see EasyML and EasyML.Profile configuration).
4+
- Dependencies:
5+
"kxml2-min-2.3.0.jar" - compile+runtime
6+
(http://sourceforge.net/projects/kxml/files/kxml2/2.3.0/kxml2-min-2.3.0.jar/download)
7+
8+
9+
!Release 1.4.6
10+
- remove deprecated v1.3.4 object-o and array-o strategies.
11+
- replaced MarshalContext aliasFor methods with aliasOrNameFor methods.
12+
- bugfix: EnumStrategy marshalling fix.
13+
- feature: added TeeSet and ConcurrentHashMap support.
14+
- feature: added EnumSet and EnumMap support.
15+
- feature: added serialization serialPersistentFields support.
16+
17+
18+
!Release 1.4.5
19+
- performance: improved n.s.e.EasyML.deserialize() speed by reusing the
20+
XmlPullParser when available.
21+
- refactor: minor code improvements.
22+
23+
24+
!Release 1.4.4
25+
- refactor: made n.s.e.m.CompositeStrategy.unmarshalInit return type more
26+
loose to better support readResolve in n.s.e.m.j.i.ExternalizableStrategy.
27+
- refactor: n.s.e.XMLReader and n.s.e.XMLWriter use HashMap instead of
28+
ConcurrentHashMap if not in shared mode (i.e. if in standalone mode).
29+
30+
31+
!Release 1.4.3
32+
- feature: new n.s.e.m.j.i.ExternalizableStrategy offers support for the
33+
Java Externalizable protocol.
34+
- feature: new n.s.e.XMLReader.hasMore method.
35+
- feature: new n.s.e.m.j.u.BitSetStrategy available and included into the
36+
EasyML.Profile.Generic for more portable XML.
37+
- performance: n.s.e.m.j.i.SerializableStrategy prevent auto-boxing in
38+
object input and output streams.
39+
40+
41+
!Release 1.4.2
42+
- bugfix: n.s.e.m.j.i.SerializableStrategy GetFieldImpl readFields fix.
43+
44+
45+
!Release 1.4.1
46+
- bugfix: XMLWriter text driver empty line when pretty printing.
47+
48+
49+
!Release 1.4.0
50+
- NON-BACKWARD COMPATIBLE refactor: EasyML now immutable(removed setters).
51+
- feature: EasyMLBuilder for easyml customization.
52+
53+
54+
!Release 1.3.11
55+
- bugfix: n.s.e.m.j.i.SerializableStrategy GetFieldImpl readFields fix.
56+
- bugfix: XMLWriter text driver startElement impl improvement.
57+
58+
59+
!Release 1.3.10
60+
- bugfix: XMLWriter text driver empty line when pretty printing.
61+
- javadoc: improvements.
62+
63+
64+
!Release 1.3.9
65+
- feature: EasyML, XMLReader, XMLWriter custom XML root tag setting.
66+
- refactor: source level 1.7 warnings fixed.
67+
68+
69+
!Release 1.3.8
70+
- performance: EasyML cache reflected class constructors.
71+
- feature: EasyML, XMLReader, XMLWriter clearCache() methods.
72+
73+
74+
!Release 1.3.7
75+
- performance: EasyML and XMLReader cache reflected classes and fields.
76+
This is done via n.s.e.m.UnmarshalContext's classFor() and fieldFor().
77+
Distinct EasyML instances have separate caches.
78+
XMLReaders share caches only when isSharedConfiguration().
79+
- feature: added EasyML.Style.FAST.
80+
- bugfix: ClassStrategy did not take into account aliasing settings.
81+
- bugfix: remove duplicate encoded.clear() from XMLWriter.reset().
82+
83+
84+
!Release 1.3.6
85+
- feature: added n.s.e.EasyML.releaseCurrentReader()
86+
and n.s.e.EasyML.releaseCurrentWriter() methods.
87+
- performance: removed the redundant easyml version attribute.
88+
89+
90+
!Release 1.3.5
91+
- performance: reduced the impact of class aliasing and field aliasing
92+
features, even when NOT used, on serialize() and deserialize() times.
93+
- performance: n.s.e.u.ReflectionUtil unsafe instantiation method now
94+
ensures a single runtime-dependent instantiator instance.
95+
- refactor: n.s.e.m.MarshalContext and n.s.e.m.UnmarshalContext getter
96+
for simpleDateFormat changed to formatDate() and parseDate() for
97+
security reasons.
98+
- refactor: n.s.e.m.CompositeWriter.endAttributes() was removed since
99+
it was deprecated since version 1.2.2.
100+
- refactor: renamed "object-o", "array-o" to "objectx", "arrayx"
101+
- bugfix: object field values could get inverted at read if ALL of the
102+
following conditions hold:
103+
1. skipDefaults is enabled.
104+
2. instance has same name fields on different inheritance levels.
105+
3. instance defines default values on each level.
106+
4. subfield has default value, while superfield as non-default value.
107+
5. superfield is the 1st XML field of it's declaring class.
108+
6. instance is not serializable.
109+
- BACKWARD COMPATIBLE: version 1.3.5 is configured to be compatible with
110+
XML outputted by versions 1.3.5 down to 1.2.1 and will produce only
111+
1.3.5 formatted XML.
112+
113+
114+
!Release 1.3.4
115+
- performance: n.s.e.XMLWriterTextDriver improvements allow EasyML to
116+
perform up to 20% faster. The performance improvement is more
117+
pronounced when pretty printing is enabled.
118+
119+
120+
!Release 1.3.3
121+
- doc: better javadoc for n.s.e.EasyML, n.s.e.XMLReader, n.s.e.XMLWriter.
122+
- bugfix: include position descriptor in each InvalidFormatException case.
123+
- bugfix: n.s.e.XMLReaderTextDriver.consumeFully() fix.
124+
125+
126+
!Release 1.3.2
127+
- performance: n.s.e.EasyML serialize() and deserialize() methods use
128+
ThreadLocal internally for XMLWriter and XMLReader instance reuse,
129+
in order to improve performance, while remaining thread-safe.
130+
131+
132+
!Release 1.3.1
133+
- feature: added n.s.e.EasyML newReader() and newWriter methods in order
134+
to expose more API features at facade level.
135+
- bugfix: prevent shared-config readers and writers from allowing config
136+
modifications.
137+
138+
139+
!Release 1.3.0
140+
- NON-BACKWARD COMPATIBLE refactor:
141+
merged n.s.e.ExtendedEasyML into n.s.e.EasyML.
142+
- feature: n.s.e.EasyML facade is now thread-safe while the thread-unsafe
143+
n.s.e.XMLReader and n.s.e.XMLWriter offer prototyping for faster per-
144+
thread copy instance creation.
145+
- feature: marshal- and unmarshal contexts are dateformat-aware.
146+
- revert: better XMLWriter and XMLReader close method impls because of
147+
multithread features.
148+
- bugfix: setCustomArrayTag validation fixed.
149+
Note: except for the last mentioned bugfix, all other changes were made
150+
to offer an easier and faster API for multithreaded environments.
151+
152+
153+
!Release 1.2.6
154+
- feature: fail first security policy enforcement for n.s.e.XMLReader
155+
readObject and readArray.
156+
- bugfix: security policy now validates params at add and addHierarchy.
157+
- bugfix: consume remaining XML on security policy exception, to allow
158+
subsequent reads, if possible.
159+
- bugfix: better XMLWriter and XMLReader close method impls.
160+
161+
162+
!Release 1.2.5
163+
- feature: n.s.e.EasyML and n.s.e.XMLReader: new securityPolicy settings
164+
used to configure, if needed, black- or whitelists for objects found at
165+
deserialization time.
166+
167+
168+
!Release 1.2.4
169+
- NON-BACKWARD COMPATIBLE refactor: n.s.e.m.CompositeStrategy: removed the
170+
"defTarget" parameter as it was only used when skipDefaults was true
171+
and it was buggy in some cases such as a bean setting a property in a
172+
default sub-bean (composition, not inheritance) within it's default
173+
constructor.
174+
175+
176+
!Release 1.2.3
177+
- feature: EasyML: added unregisterSimple() and unregisterComposite().
178+
179+
180+
!Release 1.2.2
181+
- refactor: CompositeWriter.endAttributes() now deprecated for simpler
182+
n.s.e.m.CompositeStrategy.marshal() implementation code. Use
183+
endElement() for endAttributes(true) and simply remove the
184+
endAttributes(false) invocations.
185+
- refactor: standard unmarshalling implementations now wrap exceptions
186+
into InvalidFormatException.
187+
188+
189+
!Release 1.2.1
190+
- feature: XMLWriter and XMLReader: DTD and NON-DTD primitives are now
191+
configured to not create confusion between the default configuration
192+
and the primitives API.
193+
- feature: XMLWriter, XMLReader, and n.s.e.m.j.l.ArrayStrategy: array
194+
processing is now done with less reflection and no auto-boxing.
195+
- refactor: util package is now simpler and public.
196+
- bugfix: XMLWriter.flush() now sets underlying driver into initial state
197+
in case of further calls to write().
198+
- bugfix: XMLReader now rechecks for easyml start tag after the easyml
199+
end tag event.
200+
201+
202+
!Release 1.2.0
203+
- refactor: merged the two jars into a single jar, for simplicity, since
204+
the resulting easyml-1.2.0.jar is only ~370kB in size. Java plackage
205+
and class names remain the same.
206+
- feature: XMLWriter and XMLReader: added API for the Java primitive types
207+
to avoid autoboxing and casting.
208+
- feature: n.s.e.m.j.l.ArrayStrategy: uses the new primitives API for
209+
arrays of primitives (faster by ~7% for large primitive arrays, for
210+
example: the internal representation of GSCollections).
211+
212+
213+
!Release 1.1.1
214+
- feature: XMLWriter.write(obj): write merges start-end tags if no value,
215+
just like n.s.e.m.j.l.ObjectStrategy does.
216+
- bugfix: XMLWriterTextDriver: fixed incorrect indentation of endTags.
217+
Regression since previous version (1.1.0).
218+
- bugfix: XMLReaderDOMDriver: fixed DOM impl of CompositeAttributeReader:
219+
should return null instead of "" for absent attributes.
220+
Note: indentation bug and start-end-merge enhancement relate to pretty
221+
printing and do not affect parsing.
222+
223+
224+
!Release 1.1.0
225+
- feature: EasyML now provides API for working with XML already in W3C DOM
226+
documents form.
227+
- bugfix: XMLReader validation of simple and composite strategy names
228+
fixed at put().
229+
- Javadoc: improved overall javadoc in package net.sourceforge.easyml.
230+
231+
232+
!Release 1.0.4
233+
- feature: EasyML.deserialize can read multiple objects from same stream
234+
if deserialize is called with the same input argument.
235+
- feature: defined EasyML.setCustomStringTag and EasyML.setCustomArrayTag
236+
for customizing outputed XML, for example: "array" containing "string"
237+
can be customized to "names" containing "name".
238+
- bugfix: n.s.e.m.j.a.ColorStrategy: prevent Color static block from
239+
executing awt code on some JVMs.
240+
241+
242+
!Release 1.0.3
243+
- feature: added strategies for Stack and TreeMap as part of
244+
n.s.e.ExtendedEasyML.Profile.GENERIC.
245+
- refactor: n.s.e.StrategyRegistry now an innerclass of n.s.e.XMLWriter.
246+
- refactor: n.s.e.ExtendedEasyML.Profile: LANGUAGE_SPECIFIC renamed to
247+
SPECIFIC.
248+
- refactor: n.s.e.ExtendedEasyML.Profile: refactored internal
249+
representation.
250+
- refactor: n.s.e.m.j.u.CollectionStrategy now sets ATTRIBUTE_SIZE so that
251+
subclasses don't have to.
252+
253+
254+
!Release 1.0.2
255+
- feature: added java.util.Collections.singletonXXX() strategies to
256+
simplify the EasyML format for these types.
257+
- bugfix: n.s.e.m.j.i.SerializableStrategy: fixed Java IO Serialization
258+
PutFields/GetFields EasyML impl such that it is not mandatory to
259+
define both methods when custom serialization of a class is used.
2260

3-
http://sourceforge.net/projects/easyml-lib/

0 commit comments

Comments
 (0)