fast-serialization

FST: fast java serialization drop in-replacement

APACHE-2.0 License

Stars
1.6K
fast-serialization - bugfix #32

Published by RuedigerMoeller about 10 years ago

  • fixed regression (#34) and added testcase contributed by rdicroce (thanks)
fast-serialization - reintroduce SerializationListener

Published by RuedigerMoeller about 10 years ago

see issue #31.

  • merged pull request from gsmet
  • also added to 1.x branch with 1.61 (should be visible on maven.org soon)
fast-serialization - minor bugfixes

Published by RuedigerMoeller about 10 years ago

  • contains improvements + fixes of gsmet
fast-serialization - bugfix (JDK compatibility)

Published by RuedigerMoeller about 10 years ago

by introducing support for versioning, some corner cases regarding asymmetric readObject/writeObject implementation in JDK did not work anymore. (see issue 22). Fixed.

fast-serialization - Serious bug in core byte[] write method

Published by RuedigerMoeller about 10 years ago

2.x only. introduced by refactoring/introduction of codecs

  • added Test case
  • fixed

Thanks to a701440 for spotting and analyzing this bug :-)

fast-serialization - fixes

Published by RuedigerMoeller about 10 years ago

  • added + tested feature for special mode allowing to serialize Non-Serializable classes. (See FSTConfiguration::setForceSerializable()).
  • fixed 2 broken KSon/JSon TestCases
fast-serialization - bugfix

Published by RuedigerMoeller about 10 years ago

  • Fix for Issue 23
  • Untested changes for enhancement 22
fast-serialization - minor update

Published by RuedigerMoeller about 10 years ago

  • some changes for kontraktor 2.0 remote actors
  • added ObjectSocket/ObjectServer util. See tests for an example and some hints
  • minor fixes for kson
  • full classloader support via subclassing codec (see fstconfiguration:streamCoderFactory)
fast-serialization - 2.00 final

Published by RuedigerMoeller about 10 years ago

Serialization:

  • Versioning support (can add fields to classes and still be able to read old streams). See @Version annotation.
  • Some Issue fixes+enhancements
  • Kson provides a convenient mapping of Text => Object structures, useful for configuration files and setup of test data. The text representation aims for absolute minimalism of special chars, quoting and type information.
    See https://github.com/RuedigerMoeller/fast-serialization/tree/master/src/test/kson for an example
  • Offheap Map.
  • persistent memory mapped file-backed Map
  • MinBin structured cross platform capable binary format for full object graph serialization

Warning: package name has changed

fast-serialization - 2.0 beta 1

Published by RuedigerMoeller about 10 years ago

Serialization:

  • Versioning support (can add fields to classes and still be able to read old streams). See @Version annotation.
  • Some Issue fixes + reconcilation from production branch

Misc:

  • Kson provides a convenient mapping of Text => Object structures, useful for configuration files and setup of test data. The text representation aims for absolute minimalism of special chars, quoting and type information.
    See https://github.com/RuedigerMoeller/fast-serialization/tree/master/src/test/kson for an example
  • offheap hashmaps [beta].
  • persistent Memory mapped file-based OffHeap HashMaps [alpha]
fast-serialization - 2.0 beta

Published by RuedigerMoeller over 10 years ago

  • removed unused features + classes
  • changed package name :-)
  • reads input in chunks instead of fully (caused many problems with 1.x)

beta + undocumented:

  • added codec layer to prepare for optional non-binary serialization
  • new MinBin codec includes schema into the stream (~binary JSON). Allows to extract data of a serialized stream without having access to original classes (archiving/cross language).
  • experimental JavaScript deserialization based on MinBin, code generator for JS pseudo classes
fast-serialization - git issue 13

Published by RuedigerMoeller over 10 years ago

bugfix

fast-serialization - bugfix jdk-compatibility

Published by RuedigerMoeller over 10 years ago

fixes for following weird combinations

  • writeMethod, but no readMethod defined
  • readMethod, but no writeMethod defined
  • use defaultWriteObject, read with readFields()
  • use defaultWriteObject, read with readObject()
  • use writeObject, read with defaultReadObject()

[there could be even more combinations, but I did not find sample classes in JDK, I'll fix as they come]

Testclasses:

  • BigDecimal (uses putField, writes old fields from jdk 1.02 ?)
  • javax.security.auth.Subject (synchronizedSets)
  • HtmlEditorKit (all kind of weird stuff)
  • HtmlDocument (moar weird stuff)
  • Inet6Address

don't hesitate to report compatibility issues (aka works with jdk object stream but not with fst).

fast-serialization - JDK Compatibility fix

Published by RuedigerMoeller over 10 years ago

Note: Introduced some new issues. Use 1.55 instead
JDK-compatibility

fst internally has two modes:

  • optimized mode for classes without any specials such as readObject/writeObject/...
  • if fst detects JDK-serialization specials it falls back to a (slower) compatible mode. But even then there have been optimizations to speed up compatibility mode. However Issue 12 showed fst would have to literally read source code of some classes to make correct decisions. Therefore I was forced to deoptimize compatibility mode. Fortunately this will not affect overall performance, as common classes do not run in compatibility mode as custom serializers have been included for popular classes (e.g. collections, Date, BigDecimal) to speed them up. Additionally most of the JDK classes implement straight serializable without any writeObject/readObject/readRessolve stuff, so can be serialized in optimized mode.

added

public Object asObject( byte b[] )
public byte[] asByteArray( Serializable object )

to FSTConfiguration

fast-serialization - v1.55 JDK 1.6 compatible build

Published by RuedigerMoeller over 10 years ago

Warning: fst serialization will work, struct emulation not.

fast-serialization - bugfix + classloader support

Published by RuedigerMoeller over 10 years ago

  • adds setClassloader to FSTConfiguration. Using custom classloading currently requires a dedicated FSTConfiguration per classloader. In version 2.x it will be possible to temporary add custom classloading to fstobjectinputstream as creating a FSTConfigruation is a very expensive operation
  • fatal flaw in FSTObjectInput.resetForReUse (introduced during refactoring) fixed.
fast-serialization - 1.54 fix for git issue 2

Published by RuedigerMoeller over 10 years ago

  • when registering a serializer for a non serializable class an exception was thrown "not serializable". This was a side effect of moving the serializable check from stream to static metainfo init in 1.50
fast-serialization - bugfix release (java.lang.Float failure)

Published by RuedigerMoeller over 10 years ago

  • rarely used java.lang.Float was not correctly read due to a typo.
  • added all "Big" Numbers to testcase
fast-serialization - FST 1.52 bugfix release

Published by RuedigerMoeller over 10 years ago

  • transient fields where not initialized upon deser (e.g. transient x = -1;)
fast-serialization - FST Serialization 1.51

Published by RuedigerMoeller over 10 years ago

  • struct build woes: javassist bugged with last build (seems it requires 1.7 class format). structs work with this build
  • no changes for serialization