History log of /external/protobuf/java/pom.xml
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
11f883e185a2ea6fd6d0b19520e9f0f004e90e5c 15-Jul-2014 Max Cai <maxtroy@google.com> Fix access around unknownFieldData.

Instead of publishing its class I chose to encapsulate the troublesome
references in equals()/hashCode() in the generated code into superclass
methods in ExtendableMessageNano.

Changed a couple of java packages in the test suite to catch this issue
easier in the future.

Change-Id: I43f88411f63bb6f3ffc8d63361f2f77bebf6220a
/external/protobuf/java/pom.xml
cf1b416ae1327a26dd53a691fc1b3e30eec8e6a6 17-Jun-2014 Juan Silveira <jjso@google.com> Keep pointers to extension values.

The current implementation of getExtension deserialises the field from bytes
and returns a new object every time. This means that changes to those objects
are reflected when the messages is serialised unless setExtension is called. It
also means that every call to getExtension and setExtension is expensive.

This change introduces a FieldData class that contains everything that's known
about the field at the time. This can be all the tag/byte[] pairs associated
with a given field or an Extension and a value object. This is so that two
messages with a repeated extension can be compared even if the extension
has been deserialised in one of them but not the other.

This change also adds FieldArray class based on SparseArray from the Android
compatibility library. This is used in ExtendableMessageNano to make lookup
of FieldDatas by their field number faster.

Implications:
* calling getExtension multiple times deserialises the field only once and
returns the same object.
* calling setExtension doesn't cause the object to be serialised immediately,
that only happens when the container message is serialised.
* getExtension is no longer a read-only thread-safe operation. README.txt has
been updated to relfect that.
* comparison using equals and hashCode continues to work.

Bug: 10863158

Change-Id: I81c7cb0c73cc0611a1f7c1eabf5eed259738e8bc
/external/protobuf/java/pom.xml
afc1553a9eb56eff742828c9c819eafa363cdcc9 17-Feb-2014 Max Cai <maxtroy@google.com> Merge "Extension overhaul."
d888895a3b5cf764856d3a94ed526bf9994c1800 15-Jan-2014 Max Cai <maxtroy@google.com> Add validation when parsing enum fields.

Invalid values from the wire are silently ignored.
Unlike full/lite, the invalid values are not stored into the
unknown fields, because there's no way to get them out from
Nano's unknown fields without a matching Extension.

Edited README and slightly moved it towards a standalone
section for Nano, independent of the Micro section.

Change-Id: I2c1eb07f4d6d8f3aea242b8ddd95b9c966f3f177
/external/protobuf/java/pom.xml
4109e91ce6035f84fa32b2e949501befbfb90159 14-Jan-2014 Max Cai <maxtroy@google.com> Allow whitespace in nano codegen options.

So we don't need to keep all option in a single line in the .mk files.

Change-Id: I786b879b334cac4cd13b32fabcb76efe53b4ac80
/external/protobuf/java/pom.xml
382ddccb550e1c822ef26a0e65988998f7446624 20-Nov-2013 Max Cai <maxtroy@google.com> Extension overhaul.

- Get rid of TypeLiteral<T>. It was introduced to read the component
type of a List<T> at runtime. But we use arrays everywhere else,
and we can always read the component type of an array type at
runtime.
- Properly read/write "minor" types (e.g. sint32, sfixed32). The old
implementation could only read/write data as the "typical" types
(one per Java type), e.g. java.lang.Integer -> int32, java.lang.Long
-> int64. So if e.g. an extension specifies sfixed32 as the type, it
would be read/written in the totally incompatible int32 format.
- Properly serialize repeated packed fields. The old implementation
doesn't do packed serialization. As an added bonus, and to be more
aligned with the rest of protobuf nano / main, repeated packable
extensions can deserialize both packed and non-packed data.
- Split Extension class into a hierarchy so under typical usage a
large chunk of code dealing with primitive type extensions can be
removed by ProGuard.

Bug: https://code.google.com/p/android/issues/detail?id=62586
Change-Id: I0d692f35cc2a8ad3a5a1cb3ce001282b2356b041
/external/protobuf/java/pom.xml
fea3fd5cb6ff88b51da60b1f33004944d93a9fce 13-Nov-2013 Max Cai <maxtroy@google.com> Align with main: two ways of parsing repeated packable fields.

It is a requirement for parsing code to handle packed and unpacked
forms on the wire for repeated packable fields. This change aligns
the javanano's behavior with the java's.

Bonus: optimize array length calculation when parsing repeated
fixed-size-element-type fields.

Bonus 2: lose "xMemoizedSerializedSize" for repeated enum fields,
and make the serialized size calculation match that for repeated
int32 fields.

Change-Id: I8a06103d9290234adb46b0971b5ed155544fe86a
/external/protobuf/java/pom.xml
ccc48faf20dbf3b3cddcffe78d198876d543529b 16-Oct-2013 Brian Duff <bduff@google.com> Implement hashCode() and equals() behind a generator option.

The option is only called 'generate_equals' because:
- equals() is the main thing; hashCode() is there only to
complement equals();
- it's shorter;
- toString() should not be included in this option because
it's more for debugging and it's more likely to stop
ProGuard from working well.

Also shortened the "has bit" expression; was
((bitField & mask) == mask), now ((bitField & mask) != 0).
Both the Java code and the bytecode are slightly shorter.

Change-Id: Ic309a08a60883bf454eb6612679aa99611620e76
/external/protobuf/java/pom.xml
334a7d1117a576bc6010c14677fb6444639c1dda 15-Oct-2013 Max Cai <maxtroy@google.com> Fix repeated field merging semantics.

The public doc states that repeated fields are simply concatenated
and doesn't impose a different semantics for packed fields. This
CL fixes this for packed fields and adds tests covering all cases.

Also fixed a bit of missed null-repeated-field treatments.

Change-Id: Ie35277bb1a9f0b8171dc9d07b6adf9b9d3308de2
/external/protobuf/java/pom.xml
0b8579237336f221711a0aac42400eb31a58fed3 01-Oct-2013 Brian Duff <bduff@google.com> Add reftypes field generator option.

This option generates fields as reference types, and serializes
based on nullness.

Change-Id: Ic32e0eebff59d14016cc9a19e15a9bb08ae0bba5
Signed-off-by: Brian Duff <bduff@google.com>
/external/protobuf/java/pom.xml
26266cd4660ffe1f3d6015b715713ee654c5b936 24-Sep-2013 Max Cai <maxtroy@google.com> Implement enum_style=java option.

This javanano_out command line option creates a container interface
at the normal place where the enum constants would reside, per enum
definition. The java_multiple_files flag would now affect the file-
scope enums with the shells. If the flag is true then file-scope
container interfaces are created in their own files.

Change-Id: Id52258fcff8d3dee9db8f3d8022147a811bf3565
/external/protobuf/java/pom.xml
e74fe623e115237968a3de1143d7cdb4df710858 20-Sep-2013 Max Cai <maxtroy@google.com> Accessor style for optional fields.

This CL implements the 'optional_field_style=accessors' option.
All optional fields will now be 1 Java field and 1 bit in a shared
bitfield behind get/set/has/clear accessor methods. The setter
performs null check for reference types (Strings and byte[]s).

Also decentralized the clear code generation.

Change-Id: I60ac78329e352e76c2f8139fba1f292383080ad3
/external/protobuf/java/pom.xml
624c448fbef20a1a2fad2289f622b468c25763d1 29-Jul-2013 Max Cai <maxtroy@google.com> Fix outer classname for javamicro/javanano.

- File class name is defined as the java_outer_classname option value
or the file name ToCamelCase; never the single message's ClassName.
- File-scope enums are translated to constants in the file class,
regardless of java_multiple_files.
- If java_multiple_files=true, and file's class name equals a message's
class name, no error. This is done by detecting that the outer class
is not needed and skipping the outer class codegen and clash checks.
Note: there is a disparity between java[lite] and the previous
java{micr|nan}o: when generating code for a single-message proto, the
outer class is omitted by java{micr|nan}o if the file does not have
java_outer_classname. This change makes java{micr|nan}o align with
java[lite] codegen and create the outer class, but will print some
info to warn of potential change of code.
- Also fixed the "is_own_file" detection and made all parseX() methods
static. Previously, all messages in a java_multiple_files=true file
are (incorrectly) considered to be in their own files, including
nested messages, causing them to become inner classes (instance-
bound) and forcing the parseX() methods to lose the static modifier.
- This change supersedes c/60164 and c/60086, which causes javanano to
put enum values into enum shell classes if java_multiple_files=true.
We now always use the parent class to host the enum values. A future
change will add a command line option to provide more flexibility.
- Elaborated in java/README.txt.

Change-Id: I684932f90e0a028ef37c662b221def5ffa202439
/external/protobuf/java/pom.xml
35d9fd84ff1d9ecdb91156b757cc9fdcc3f25249 01-Apr-2013 Ulas Kirazci <ulas@google.com> Add an option to inspect "has" state upon parse.

If has is set, also always serialize.

Change-Id: I2c8450f7ab9e837d722123dd1042991c0258ede3
/external/protobuf/java/pom.xml
8170787391efcb6cc6a8babc1cce35d5b1aff420 24-Jul-2013 Max Cai <maxtroy@google.com> Per-file java_multiple_files flag.

Imported source files may have different values for the 'java_multiple_files'
option to the main source file's. Whether the fully qualified Java name of an
entity should include the outer class name depends on the flag value in the
file defining the referenced entity, not the main file. This CL loads the
flag values from the main and all transitively imported files into the params,
and generates the fully qualified Java names accordingly.

If the generator option 'java_multiple_files' is set, its value overrides any
in-file values in all source/imported files. This is because this generator
option is typically used on either none or all source files.

Change-Id: Id6a4a42426d68961dc669487d38f35530deb7d8e
/external/protobuf/java/pom.xml
0e055f079f53b07de3705838a7b4742ce56839f8 19-Jun-2013 Brian Duff <bduff@google.com> Nano support for extensions and unknown fields.

You can use the processor option store_unknown_fields to switch
this support on:

aprotoc --javanano_out=store_unknown_fields=true:/tmp/out

A separate option for extensions isn't required. Support
for unknown fields must be turned on to allow storing and
retrieving extensions, because they are just stored as
unknown fields. If unknown fields are switched on, extension
related code will be generated when a proto message includes
an extension range, or an extension is encountered.

By default, store_unknown_fields is false. No additional
code is generated, and the generator will error out if protos
contain extension ranges or extensions.

Change-Id: I1e034c9e8f3305612953f72438189a7da6ed2167
/external/protobuf/java/pom.xml
0eca14248fc14a12c5c8a6fc253bef6f58cc60c1 05-Jun-2013 Brian Duff <bduff@google.com> Fix javanano compiler generating uncompileable java code. This happened
for enums when java_multiple_files=true.

Change-Id: Ia6fe1a51c6a46eb9a2f29527829794076b165cb7
Signed-off-by: Brian Duff <bduff@google.com>
/external/protobuf/java/pom.xml
64d8d8f89050c5ada85341f967af391f4716a7cb 15-Mar-2013 Ulas Kirazci <ulas@google.com> Nano protobufs.

Like micro protobufs except:

- No setter/getter/hazzer functions.
- Has state is not available. Outputs all fields != their default.
- CodedInputStream can only take byte[] (not InputStream).
- Repeated fields are in arrays, not ArrayList or Vector.
- Unset messages/groups are null, not "defaultInstance()".
- Required fields are always serialized.

To use:

- Link libprotobuf-java-2.3.0-nano runtime.
- Use LOCAL_PROTOC_OPTIMIZE_TYPE := nano

Change-Id: I7429015b3c5f7f38b7be01eb2d4927f7a9999c80
/external/protobuf/java/pom.xml
1b639e09d77de609bed080f5d2ca88d72ba42559 08-Jun-2010 Wink Saville <wink@google.com> Changed speed optimization for strings.

Removed use of StringUtf8Micro and instead use an extra byte array
instance variable directly in the class. This allows the list returned
for repeated strings to be a String instead of a StringUtf8Micro
making the class compatible with existing code.

Removed PerfTimer.java which isn't used.

Change-Id: Ie6acfb40f98f59a48c1a795d86f715078f9611f5
/external/protobuf/java/pom.xml
e2d542951c059563a3b7f74c257dac4f222d9dc5 29-May-2010 Wink Saville <wink@google.com> Add support for Java micro protobuf's to protobuf-2.3.0.

See README.android for additional information.

Change-Id: I6693e405c0d651eacacd3227a876129865dd0d3c
/external/protobuf/java/pom.xml
d0332953cda33fb4f8e24ebff9c49159b69c43d6 29-May-2010 Wink Saville <wink@google.com> Add protobuf 2.3.0 sources

This is the contents of protobuf-2.3.0.tar.bz2 from
http://code.google.com/p/protobuf/downloads/list.

Change-Id: Idfde09ce7ef5ac027b07ee83f2674fbbed5c30b2
/external/protobuf/java/pom.xml
ede38fe9b9f93888e6e41afc7abb09525f44da95 28-May-2010 Wink Saville <wink@google.com> Add support for Java micro protobuf's to protobuf-2.2.0a.

See README.android for additional information.

Change-Id: I9c5ef2eec484cc87e32841f39060f8f27b8e8472
/external/protobuf/java/pom.xml
fbaaef999ba563838ebd00874ed8a1c01fbf286d 28-May-2010 Wink Saville <wink@google.com> Add protobuf 2.2.0a sources

This is the contents of protobuf-2.2.0a.tar.bz2 from
http://code.google.com/p/protobuf/downloads/list and
is the base code for the javamicro code generator.

Change-Id: Ie9a0440a824d615086445b6636944484b3155afa
/external/protobuf/java/pom.xml