@@ -60,6 +60,11 @@ for a higher control compared to the EasyML Facade.
6060
6161### Release Notes
6262
63+ !Release 1.4.7
64+ - last Java 7 compatible release
65+ - bugfix: performance regression in Serialization strategy
66+ - remove AccessibleObject.isAccessible calls
67+
6368!Release 1.4.6
6469- remove deprecated v1.3.4 object-o and array-o strategies.
6570- replaced MarshalContext aliasFor methods with aliasOrNameFor methods.
@@ -122,48 +127,48 @@ object input and output streams.
122127
123128!Release 1.3.7
124129- performance: EasyML and XMLReader cache reflected classes and fields.
125- This is done via n.s.e.m.UnmarshalContext's classFor() and fieldFor().
126- Distinct EasyML instances have separate caches.
127- XMLReaders share caches only when isSharedConfiguration().
130+ This is done via n.s.e.m.UnmarshalContext's classFor() and fieldFor().
131+ Distinct EasyML instances have separate caches.
132+ XMLReaders share caches only when isSharedConfiguration().
128133- feature: added EasyML.Style.FAST.
129134- bugfix: ClassStrategy did not take into account aliasing settings.
130135- bugfix: remove duplicate encoded.clear() from XMLWriter.reset().
131136
132137
133138!Release 1.3.6
134139- feature: added n.s.e.EasyML.releaseCurrentReader()
135- and n.s.e.EasyML.releaseCurrentWriter() methods.
140+ and n.s.e.EasyML.releaseCurrentWriter() methods.
136141- performance: removed the redundant easyml version attribute.
137142
138143
139144!Release 1.3.5
140145- performance: reduced the impact of class aliasing and field aliasing
141- features, even when NOT used, on serialize() and deserialize() times.
146+ features, even when NOT used, on serialize() and deserialize() times.
142147- performance: n.s.e.u.ReflectionUtil unsafe instantiation method now
143- ensures a single runtime-dependent instantiator instance.
148+ ensures a single runtime-dependent instantiator instance.
144149- refactor: n.s.e.m.MarshalContext and n.s.e.m.UnmarshalContext getter
145- for simpleDateFormat changed to formatDate() and parseDate() for
146- security reasons.
150+ for simpleDateFormat changed to formatDate() and parseDate() for
151+ security reasons.
147152- refactor: n.s.e.m.CompositeWriter.endAttributes() was removed since
148- it was deprecated since version 1.2.2.
153+ it was deprecated since version 1.2.2.
149154- refactor: renamed "object-o", "array-o" to "objectx", "arrayx"
150155- bugfix: object field values could get inverted at read if ALL of the
151- following conditions hold:
156+ following conditions hold:
152157 1. skipDefaults is enabled.
153158 2. instance has same name fields on different inheritance levels.
154159 3. instance defines default values on each level.
155160 4. subfield has default value, while superfield as non-default value.
156161 5. superfield is the 1st XML field of it's declaring class.
157162 6. instance is not serializable.
158163- BACKWARD COMPATIBLE: version 1.3.5 is configured to be compatible with
159- XML outputted by versions 1.3.5 down to 1.2.1 and will produce only
160- 1.3.5 formatted XML.
164+ XML outputted by versions 1.3.5 down to 1.2.1 and will produce only
165+ 1.3.5 formatted XML.
161166
162167
163168!Release 1.3.4
164169- performance: n.s.e.XMLWriterTextDriver improvements allow EasyML to
165- perform up to 20% faster. The performance improvement is more
166- pronounced when pretty printing is enabled.
170+ perform up to 20% faster. The performance improvement is more
171+ pronounced when pretty printing is enabled.
167172
168173
169174!Release 1.3.3
@@ -174,136 +179,49 @@ object input and output streams.
174179
175180!Release 1.3.2
176181- performance: n.s.e.EasyML serialize() and deserialize() methods use
177- ThreadLocal internally for XMLWriter and XMLReader instance reuse,
178- in order to improve performance, while remaining thread-safe.
182+ ThreadLocal internally for XMLWriter and XMLReader instance reuse,
183+ in order to improve performance, while remaining thread-safe.
179184
180185
181186!Release 1.3.1
182187- feature: added n.s.e.EasyML newReader() and newWriter methods in order
183- to expose more API features at facade level.
188+ to expose more API features at facade level.
184189- bugfix: prevent shared-config readers and writers from allowing config
185- modifications.
190+ modifications.
186191
187192
188193!Release 1.3.0
189194- NON-BACKWARD COMPATIBLE refactor:
190- merged n.s.e.ExtendedEasyML into n.s.e.EasyML.
195+ merged n.s.e.ExtendedEasyML into n.s.e.EasyML.
191196- feature: n.s.e.EasyML facade is now thread-safe while the thread-unsafe
192- n.s.e.XMLReader and n.s.e.XMLWriter offer prototyping for faster per-
193- thread copy instance creation.
197+ n.s.e.XMLReader and n.s.e.XMLWriter offer prototyping for faster per-
198+ thread copy instance creation.
194199- feature: marshal- and unmarshal contexts are dateformat-aware.
195200- revert: better XMLWriter and XMLReader close method impls because of
196- multithread features.
201+ multithread features.
197202- bugfix: setCustomArrayTag validation fixed.
198- Note: except for the last mentioned bugfix, all other changes were made
199- to offer an easier and faster API for multithreaded environments.
203+ Note: except for the last mentioned bugfix, all other changes were made
204+ to offer an easier and faster API for multithreaded environments.
200205
201206
202207!Release 1.2.6
203208- feature: fail first security policy enforcement for n.s.e.XMLReader
204- readObject and readArray.
209+ readObject and readArray.
205210- bugfix: security policy now validates params at add and addHierarchy.
206211- bugfix: consume remaining XML on security policy exception, to allow
207- subsequent reads, if possible.
212+ subsequent reads, if possible.
208213- bugfix: better XMLWriter and XMLReader close method impls.
209214
210215
211216!Release 1.2.5
212217- feature: n.s.e.EasyML and n.s.e.XMLReader: new securityPolicy settings
213- used to configure, if needed, black- or whitelists for objects found at
214- deserialization time.
218+ used to configure, if needed, black- or whitelists for objects found at
219+ deserialization time.
215220
216221
217222!Release 1.2.4
218223- NON-BACKWARD COMPATIBLE refactor: n.s.e.m.CompositeStrategy: removed the
219- "defTarget" parameter as it was only used when skipDefaults was true
220- and it was buggy in some cases such as a bean setting a property in a
221- default sub-bean (composition, not inheritance) within it's default
222- constructor.
223-
224-
225- !Release 1.2.3
226- - feature: EasyML: added unregisterSimple() and unregisterComposite().
227-
228-
229- !Release 1.2.2
230- - refactor: CompositeWriter.endAttributes() now deprecated for simpler
231- n.s.e.m.CompositeStrategy.marshal() implementation code. Use
232- endElement() for endAttributes(true) and simply remove the
233- endAttributes(false) invocations.
234- - refactor: standard unmarshalling implementations now wrap exceptions
235- into InvalidFormatException.
236-
237-
238- !Release 1.2.1
239- - feature: XMLWriter and XMLReader: DTD and NON-DTD primitives are now
240- configured to not create confusion between the default configuration
241- and the primitives API.
242- - feature: XMLWriter, XMLReader, and n.s.e.m.j.l.ArrayStrategy: array
243- processing is now done with less reflection and no auto-boxing.
244- - refactor: util package is now simpler and public.
245- - bugfix: XMLWriter.flush() now sets underlying driver into initial state
246- in case of further calls to write().
247- - bugfix: XMLReader now rechecks for easyml start tag after the easyml
248- end tag event.
249-
250-
251- !Release 1.2.0
252- - refactor: merged the two jars into a single jar, for simplicity, since
253- the resulting easyml-1.2.0.jar is only ~ 370kB in size. Java plackage
254- and class names remain the same.
255- - feature: XMLWriter and XMLReader: added API for the Java primitive types
256- to avoid autoboxing and casting.
257- - feature: n.s.e.m.j.l.ArrayStrategy: uses the new primitives API for
258- arrays of primitives (faster by ~ 7% for large primitive arrays, for
259- example: the internal representation of GSCollections).
260-
261-
262- !Release 1.1.1
263- - feature: XMLWriter.write(obj): write merges start-end tags if no value,
264- just like n.s.e.m.j.l.ObjectStrategy does.
265- - bugfix: XMLWriterTextDriver: fixed incorrect indentation of endTags.
266- Regression since previous version (1.1.0).
267- - bugfix: XMLReaderDOMDriver: fixed DOM impl of CompositeAttributeReader:
268- should return null instead of "" for absent attributes.
269- Note: indentation bug and start-end-merge enhancement relate to pretty
270- printing and do not affect parsing.
271-
272-
273- !Release 1.1.0
274- - feature: EasyML now provides API for working with XML already in W3C DOM
275- documents form.
276- - bugfix: XMLReader validation of simple and composite strategy names
277- fixed at put().
278- - Javadoc: improved overall javadoc in package net.sourceforge.easyml.
279-
280-
281- !Release 1.0.4
282- - feature: EasyML.deserialize can read multiple objects from same stream
283- if deserialize is called with the same input argument.
284- - feature: defined EasyML.setCustomStringTag and EasyML.setCustomArrayTag
285- for customizing outputed XML, for example: "array" containing "string"
286- can be customized to "names" containing "name".
287- - bugfix: n.s.e.m.j.a.ColorStrategy: prevent Color static block from
288- executing awt code on some JVMs.
289-
290-
291- !Release 1.0.3
292- - feature: added strategies for Stack and TreeMap as part of
293- n.s.e.ExtendedEasyML.Profile.GENERIC.
294- - refactor: n.s.e.StrategyRegistry now an innerclass of n.s.e.XMLWriter.
295- - refactor: n.s.e.ExtendedEasyML.Profile: LANGUAGE_SPECIFIC renamed to
296- SPECIFIC.
297- - refactor: n.s.e.ExtendedEasyML.Profile: refactored internal
298- representation.
299- - refactor: n.s.e.m.j.u.CollectionStrategy now sets ATTRIBUTE_SIZE so that
300- subclasses don't have to.
301-
302-
303- !Release 1.0.2
304- - feature: added java.util.Collections.singletonXXX() strategies to
305- simplify the EasyML format for these types.
306- - bugfix: n.s.e.m.j.i.SerializableStrategy: fixed Java IO Serialization
307- PutFields/GetFields EasyML impl such that it is not mandatory to
308- define both methods when custom serialization of a class is used.
224+ "defTarget" parameter as it was only used when skipDefaults was true
225+ and it was buggy in some cases such as a bean setting a property in a
226+ default sub-bean (composition, not inheritance) within it's default constructor.
309227
0 commit comments