[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#546768: ITP: libjboss-marshalling-java -- alternative serialization API

Package: wnpp
Severity: wishlist
Owner: Torsten Werner <twerner@debian.org>

* Package name    : libjboss-marshalling-java
  Version         : 1.1.3.GA
  Upstream Author : JBoss Community
* URL             : http://jboss.org/jbossmarshalling/
* License         : LGPL
  Programming Lang: Java
  Description     : alternative serialization API

JBoss Marshalling is an alternative serialization API that fixes many of
the problems found in the JDK serialization API while remaining fully
compatible with java.io.Serializable and its relatives, and adds several
new tunable parameters and additional features, all of which are
pluggable via factory configuration (externalizers, class/instance
lookup tables, class resolution, and object replacement, to name a few).

This framework was inspired by the need for certain features unavailable
with the standard Object*Stream classes:

    * Pluggable class resolvers, making it easy to customize classloader
      policy, by implementing a small interface (rather than having to
      subclass the Object*Stream classes)
    * Pluggable object replacement (also without subclassing)
    * Pluggable predefined class tables, which can dramatically decrease
      stream size and serialization time for stream types which
      frequently use a common set of classes
    * Pluggable predefined instance tables, which make it easy to handle
      remote references
    * Pluggable externalizers which may be used to serialize classes
      which are not Serializable, or for which an alternate strategy is
    * Customizable stream headers
    * Each marshaller instance is highly configurable and tunable to
      maximize performance based on expected usage patterns
      A generalized API which can support many different protocol
      implementations, including protocols which do not necessarily
      provide all the above features
    * Inexpensive instance creation, beneficial to applications where
      many short-lived streams are used
    * Support for separate class and instance caches, if the protocol
      permits; useful for sending multiple messages or requests with a
      single stream, with separate object graphs but retaining the class

Reply to: