protostuff-1.0.8-SNAPSHOT + Issue 140: Multiple runtime schema contexts (IdStrategy groups) + new protostuff-runtime-view module - select fields to include on ser/deser, without re-creating the expensive runtime fields. + Issue 139: Add functionality to load protobuf schema from Reader + Issue 138: CodedIpnut.skipRawBytes() incorrectly updates totalBytesRetired when going outside of its buffer. - thanks to Max Lanin + Issue 135: PluginProtoCompiler throws IllegalStateException when one of the rules (message_block, enum_block) is missing + Issue 133: When the varint of large strings (2kb or more) are serialized, unnecessary bytes are written A 2kb string previously needed 3 bytes for its varint. Now anything under 16kb will only need 2 bytes. This is a bug that was overlooked but doesn't have major side effects because of the way varint encoding works. + Issue 131: option can't be used as a field name in maven-plugin + Issue 129: Default value of optional bool properties is ignored. + Issue 128: Maven-Plugin fails for multi-module projects + added enums_by_name compiler option for java_v2protoc_schema (thanks to vitalyper) + Issue 124: proto-parser throws NPE when an annotation on a field contains a reference + update jackson-core-asl to 1.9.10 + update woodstox-core-asl to 4.1.3 protostuff-1.0.7 2012-05-14 + bugfix: an abstract class mapped to a single impl was not honored (bug introduced on 1.0.6) protostuff-1.0.6 2012-05-14 + allow @Tag annotations to override the field name - E.g @Tag(value=1, alias="foo") - useful for non-binary formats like json/xml/yaml + added Delegate, which handles ser/deser for: - singletons - pojos with no fields - pojos that should not be merged - could be used to encode a type to a byte array and write it (for example packing an int[] to a byte[]) + added @Morph field annotation, which overrides: -Dprotostuff.runtime.morph_non_final_pojos -Dprotostuff.runtime.morph_collection_interfaces (new) -Dprotostuff.runtime.morph_map_interfaces (new) + Issue 115: protostuff has problem to serialize java.lang.Throwable Object + Issue 120: Add serialization support for empty/singleton/synchronized/unmodifiable/checked collection/set/sortedset/list/map/sortedmap + Issue 118: Doc improvement for the compiler help message + Issue 104: 2 new compilers: proto_extender, java_bean_model (by Ivan Prisyazhniy and Igor Scherbak) + Issue 114: Allow collection/map registration on DefaultIdStrategy + Issue 111: NumericIdStrategy fails to use the enum ids when the field is an enum array + Issue 110: protostuff has problem serilize java.lang.Class Object + Issue 108: Ignore null values in json parser * removes recursion and uses a loop instead protostuff-1.0.5 2012-03-31 + Issue 107: Fields that are interfaces are not being serialized correctly if assigned an enum/boxed primitive type at runtime To optimize polymorphic ser/deser, use abstract classes or atleast declare the base abstract class. + add support for annotations on protostuff-runtime to have explicit control of field numbers (patch by Brice Jaglin). Annotate all non-transient/non-static fields with @Tag(x) or none at all (all or nothing). + Issue 77: RuntimeSchema.getSchema on Android and Server (the solution is to use @Tag annotations) + Issue 86: Is RuntimeSchema.createFrom safe (the solution is to use @Tag annotations) + Issue 106: Use Double.doubleToRawLongBits (was Double.doubleToLongBits) on serialization (protostuff-core) * Not applicable to protostuff-me since the method Double.doubleToRawLongBits does not exist on j2me api + new protostuff-runtime-registry module (compact ids for your polymorphic pojos) + Issue 105: ObjectSchema needs to check clazz.getSuperclass().isEnum() to detect complex enums + Issue 88: Add support for transparent handling of non-standard collections + Issue 96: user definable mapping: FQNC's --> integer, for serialized stream size-reduction (thanks to Leo Romanoff) + Issue 103: Deserialize failed when reading objects from ObjectInput/DataInput + Issue 101: Improve ByteString.equals + allow message/enum references on options and annotations (proto-parser). + add "cache_protos" config (cache/re-use protos being imported/loaded by multiple modules) + Issue 94: IllegalArgumentException thrown when instantiating a non-public class + Issue 93: Add runtime option to always use the constructor from sun reflection factory + Issue 92: [protostuff-me] Preverification fails (patch by thierry.monney) + Issue 91: Generated J2ME code not is not compatible protostuff-1.0.4 2011-10-24 + Issue 90: byte arrays on protostuff-runtime were not treated as scalar fields Best to update to this version for performance reasons. If you have existing data that came from a pojo with byte[] fields, it will not be compatible on deser. You can safely update the data by deserializing with the old protostuff from a different classloader and writing it back again using the new protostuff on another classloader. protostuff-1.0.3 2011-10-22 + Issue 89: graph serialization bug on IdentityHashMap and EnumMap + Issue 87: EnumSet and EnumMap without generics are not handled + Issue 85: graph serialization bug (protostuff-runtime) on collections/map without generics and dynamic objects protostuff-1.0.2 2011-09-12 + add protostuff-uberjar (osgi stuff from Thomas Kock) + Issue 83: Kvp input does not properly handle empty strings and misreported size + Issue 82: Serializing repeated fields on protostuff-runtime needs a null-check to only serialize non-nulls. + Issue 81: Xml input does not check required fields when the nested message is not empty. + Issue 80: Yaml does not handle polymorphic/cyclic serialization + Issue 79: Provide support for options in messages and enums + Issue 78: Field option missing on message fields (thanks to robert.herschke.de) + Issue 76: The protostuff compiler does not detect duplicate service/message/enum + update jackson to 1.7.9 protostuff-1.0.1 2011-07-13 + new protostuff-me module (for j2me by Michael Donohue) + new protostuff-runtime-md module (for modern mobile devices like android and kindle) api+core works fine but this is for those who prefer runtime schemas. + Issue 73: Remove unused enum default value from java_bean generated code + Issue 70: Use FQCN everywhere in classes generated by java_v2protoc_schema + Issue 69: Maven plugin to attach generated source directory to the project compile source roots + Issue 68: RuntimeSchema AccessControlException on amazon kindle + Issue 67: RuntimeSchema.getSchema on Android (thanks to matyas.bene) + Issue 66: static keyword missing on classes generated by java_v2protoc_schema + Issue 64: Merge method for json protobuf classes + Issue 62: IOUtil.mergeDelimitedFrom() reports truncated message on stream EOF reached + Issue 58: Compilation issues when the projects are loaded. + tiny optimizations for protostuff-graph + allow protostuff-runtime to use simple reflections or sun.misc.Unsafe(now the default scheme). + improve streaming support for large strings + update jackson-core-asl to 1.7.7 + fixed protostuff-parser bug on handling int/double annotation attributes. protostuff-1.0.0 2011-02-15 + Issue 57: Add proto_path as a system property read by protostuff-compiler to load imported protos + add smile format + update jackson to 1.7.3 + Issue 56: Signed int64 is not correctly serialized (zigzag encoding missing) + Issue 51: Compiler option to use primitive numbers if the field is optional + Issue 49: protostuff-maven-plugin:Incorrect relative path for from super pom + Issue 54: StackOverflow using RuntimeSchema.getSchema() + Issue 53: UUIDs cannot be used with RuntimeSchemas + Issue 55: Optimize protostuff-runtime serialization of arrays by writing the length first (order dependent) + Issue 31: ProtoStuffRuntime cannot handle different subclasses + Issue 29: Empty list turns into null after serialization/deserialization + Issue 46: RuntimeSchema.getSchema() throws NPE on fields with type Object + Issue 48: Polymorphic serialization support for json and xml + Issue 52: Allow skipping constructor on immutable objects (fields marked final) + LinkedBuffer re-use for JsonIOUtil read/write operations on streams. + Issue 50: Xml deser does not handle empty messages well + minor xml optimizations + Issue 45: Double-checked locking concern + Issue 47: IllegalAccessException in when accessing a private Date field with RuntimeSchema + add protostuff-collectionschema (jdk standard collections support - map,list,set,queue,deque,etc) + Issue 43: Inheritance support for non-abstract base types protostuff-1.0.0.M7 2011-01-20 + add ser/deser support for object graphs (cyclic references/dependencies) + Issue 42: Support for Self Referential Classes + Issue 41: Support for polymorphic ser/deser for protostuff-runtime + Issue 40: ArrayIndexOutOfBoundsException when using streaming mulitple large delimited utf8 strings that exceeds the buffer size. + update jackson to 1.7.1 + api for re-using the LinkedBuffer as a read-only buffer + add protostuff-kvp module + Issue 39: The field options (other than default) are ignored by the parser + add support for annotations on proto files (extra metadata for better code generation) + Issue 38: Parser: cannot import more than one .proto file from the same package (patch by avaskys) + add support for java.util.Date in protostuff-runtime protostuff-1.0.0.M6 2010-10-28 + Backward-forward compatibility support for runtime schemas via append-only fields in the pojo. To add new fields, append the field in the declaration. To remove existing fields, annotate with @Deprecated. + Issue 37: The proto parser doesn't parse extensions without ranges + Issue 36: Incorrect deserialization when ProtobufIOUtil merges from InputStream + Issue 35: Native methods for repeated fields (patch by nordlig.ulv) + Issue 34: Allow schema generated from protostuff-runtime to write enums by their name protostuff-1.0.0.M5 2010-10-12 + add IO pipes w/c can transfer/transcode streams efficiently. + full streaming capability on protostuff format. + update jackson-core-asl to 1.6.1 + add JsonXOutput for efficient writing of numeric keys and pre-encoded utf8 strings. + add base64 encoding/decoding support in protostuff-api + Issue 33: GWT json compiler produces unnecessary line wrap + IOUtil is no longer publicly accessible. (use ProtobufIOUtil or ProtostuffIOUtil) protostuff-1.0.0.M4 2010-09-14 + Issue 28: Class member with signature of interface causes NullPointerException + Issue 27: ArrayIndexOutOfBoundsException in StringSerializer.writeUTF8 (patch by Tim Underwood) + Add support for BigInteger and BigDecimal in protostuff-runtime + Issue 26: Bug in the reflection compiler with nested protobuf types (patch by Joseph Gentle) + Issue 25: Allow generating code for message extensions (patch by Philippe Laflamme) + Issue 5: Ignore "target" working directories in Subversion protostuff-1.0.0.M3 2010-07-10 + faster utf8 string serialization + write operations on IOUtil now require a buffer as an extra arg. This allows the developer to determine the appropriate buffer size needed for a particular message (to avoid buffer allocation overhead). The LinkedBuffer can be re-used by calling LinkedBuffer.clear() ... w/c is applicable to application/thread-local/network buffers. + added protostuf-yaml for yaml serialization (zero-copy capable). + Issue 24: JsonInput not able to skip repeated scalar fields that are unknown + support serializing Map fields via the MapSchema. + make Schema.typeClass() return the super type. + Issue 23: Validation missing (for required fields) when nested messages are "group_encoded" protostuff-1.0.0.M2 2010-06-22 + more IO optimizations + Issue 22: Enable parsing of service/rpc in proto for code generation + Issue 21: Support java-style compilation mode where imported messages do not need to be referenced by full name + Issue 20: Compiler throws NPE if no package defined in proto file + added protostuff-api (protostuff-core, protostuff-json and protostuff-xml will only contain their respective IO impl). + added a runtime option for nested messages to be "group-encoded" for more efficient serialization. (especially for rpc). + added an abstract helper class CustomSchema to easily customize how messages can be read/written and for adding filters/hooks as well. + added messageName() and messageFullName() methods to the schema to support full xml serialization of existing C++ protoc messages. This also enables aliasing of the message names (especially for xml) by overriding the messageName() method. + added protostuff-xml for fast xml ser/deser via stax api. protostuff-1.0.0.M1 2010-05-20 + completed Issue 18: Generated GWT Protobuffers - base class, name + fixed Issue 17: trying to compile google/protobuf/descriptor.proto from protobuf-2.3.0 + fixed Issue 15: JsonIOUtil.writeListTo fails when inner messages contain repeated fields + completed Issue 14: Allow packages to be overriden via compile time options + completed Issue 13: Allow unknown scalar fields to be ignored when parsing json-encoded messages + completed Issue 12: Add support for protobuf enums on GWT overlays hosted mode + completed Issue 11: Add serialization method (stringify) for GWT overlay types + fixed Issue 3: JSON parser converts null values to the string "null" + fixed Issue 10: JsonOutput bug when writing a message that contains an inner message with repeated fields + completed Issue 8: Use the default values of the optional fields of gwt-overlays + completed Issue 9: If enum's default value is not specified, it should be the first value listed in the enum's type definition + completed Issue 7: Add optional clear methods on code compiled to gwt_overlay + fixed Issue 4: .proto files that use "import" create non-compilable Java files + completed Issue 6: Support the header: syntax = "proto2"; (patch by J.D. Zamfirescu) + fixed Issue 2: Wrong enum type in generated code of GWT overlays + fixed benchmark deser bug on protostuff-json (duplicate parser created) protostuff-1.0.0.M0 2009-10-24 + code generator for json, numeric_json, gwt_json, gwt_numeric_json + maven archetypes for quick start and rapid development + benchmark module to relatively compare with protobuf