Commit Graph

363 Commits

Author SHA1 Message Date
Feng Xiao
1bce70dddb Fix compatiblity issues.
Currently some public API methods are defined in GenreatedMessage.java
and they have a generric return type:
  class GeneratedMessage {
    class Builder<BuilderType extends Builder<BuilderType>> {
      public BuilderType setField(...);
      public BuilderType setExtension(...);
    }
  }
With these definitions, the compiled byte code of a callsite will have
a direct reference to GeneratedMessage. For example:
  fooBuilder.setField(...);
becomes:
  ##: invokevirtual // Method Builder.setField:(...)LGeneratedMessage.Builder
  ##: checkcast     // class Builder

This will prevent us from updating generated classes to subclass a
different versioned GeneratedMessageV3 class in the future (we can't do
it in a binary compatible way).

This change addresses the problem by overriding these methods directly
in the generated class:
  class Foo {
    class Builder extends GeneratedMessage.Builder<Builder> {
      public Builder setField(...) {
        return super.setField(...);
      }
    }
  }
After this, fooBuilder.setField(...) will be compiled to:
  ##: invokevirtual // Method Builder.setField:(...)LFoo.Builder

The callsites will no longer reference GeneratedMessage directly and we
can change Foo to subclass GeneratedMessageV3 without breaking binary
compatiblity.

The downside of this change is:
  1. It increases generated code size (though it saves some instructions
     on the callsites).
  2. We can never stop generating these overrides because doing that
     will break binary compatibility.

Change-Id: I879afbbc1325a66324a51565e017143489b06e97
2016-07-14 15:33:45 -07:00
Feng Xiao
4e0d05138a Merge pull request #1781 from xfxyjwf/update_version
Update version number to 3.0.0-beta-4
2016-07-14 12:59:14 -07:00
Feng Xiao
047a3b4852 Exclude Java lite module from parent pom.xml 2016-07-13 18:09:10 -07:00
Feng Xiao
932f94e16e Update version number to 3.0.0-beta-4 2016-07-13 16:08:47 -07:00
Feng Xiao
9086d96439 Integrate from internal code base. 2016-07-13 13:48:40 -07:00
Otto Kekäläinen
3808d091f8 Fix spelling in strings and comments 2016-07-03 15:26:04 +03:00
chezRong
454dbf16fc added minified JSON formatting functionality with test 2016-07-01 10:08:16 +01:00
Adam Cozzette
d64a2d9941 Integrated internal changes from Google
This includes all internal changes from around May 20 to now.
2016-06-29 15:38:03 -07:00
Feng Xiao
a31d14b7d0 Describe platform requirements for the compatibility tests. 2016-05-20 15:15:15 -07:00
Feng Xiao
4f630a6857 Add compatiblity tests against v2.5.0 2016-05-17 15:13:59 -07:00
Jisi Liu
c8be6ee00c Merge pull request #1542 from google/beta-3
Merge Beta 3 release branch into master
2016-05-16 13:46:16 -07:00
Feng Xiao
09732c96ac Add compatibility notice for Java. 2016-05-11 16:22:30 -07:00
Jisi Liu
5dea2017db Update version numbers for other languages 2016-05-10 15:43:39 -07:00
Jisi Liu
dbed8a0154 Update version numbers for beta3 2016-05-10 14:49:42 -07:00
Jisi Liu
ce6bec74fd Remove accidentally restored deleted files. 2016-05-06 15:57:06 -07:00
Jisi Liu
12fdeb9b41 Merge branch 'master' of github.com:google/protobuf 2016-04-28 14:43:08 -07:00
Jisi Liu
cf14183bcd Down integrate from Google internal. 2016-04-28 14:34:59 -07:00
Jakub Kukul
db93833bc6 Added serialVersionUID to ExtendableMessage. 2016-04-22 16:04:27 +02:00
Jisi Liu
0de06f54bc Merge branch 'master' of github.com:google/protobuf 2016-03-30 11:43:44 -07:00
Jisi Liu
3b3c8abb96 Integrate google internal changes. 2016-03-30 11:39:59 -07:00
Pradeep Gollakota
4d98369f6d Allow custom URLs for Any in JsonFormat
- Using custom URL for types in Any will no longer throw an
InvalidProtocolBufferException in JsonFormat
- Fixes #1128
2016-03-18 23:06:14 -07:00
Dongjoon Hyun
7a9040fe7f Remove redundant the in comments. 2016-02-03 15:27:27 -08:00
Jisi Liu
defa25b38b Restore the license for Internal.java 2016-01-29 14:04:15 -08:00
Jisi Liu
1b8bab3a78 Uncomment the test, which was commented out during integration 2016-01-29 14:01:01 -08:00
Jisi Liu
5221dcbe47 Integrate from google internal.
Java files are moved to un-do the hack in the prevous commit, which
moved the java files to the original position for integration.
2016-01-29 13:51:05 -08:00
Jisi Liu
cb3f428810 Undo the Java module change for integration.
Moving the files to their original location, so that opensource changes
can be picked during the internal merge. Those files will be moved into
the correct location after merging with internal code.

Note: do NOT merge this into master without the other internal
down-integration commit.
2016-01-28 13:59:14 -08:00
Joshua Humphries
248557e73a move test file (was in wrong place after rebasing on java module refactor) 2016-01-15 21:51:20 -05:00
Joshua Humphries
f3c75580e4 throw IOException instead of InvalidProtocolBufferException when appropriate 2016-01-15 21:51:19 -05:00
nmittler
49efe9d7db Restructuring protobuf to multiple modules
protobuf/java will become a parent pom that will contain two modules:

core - contains all of the code for the protobuf-java artifact
util - contains all of the code for the protobuf-java-util artifact

Also cleaned up various Maven warnings.
2016-01-13 08:15:15 -08:00
Feng Xiao
7d075a44c1 Update version number and fix javadoc errors. 2016-01-06 15:47:41 -08:00
Feng Xiao
af81dcfc2c Fix Java travis tests. 2015-12-21 03:25:59 -08:00
Feng Xiao
a0cecfd31a Make conformance tests build for C++ and Java.
Change-Id: Ibb3fe6f919cc7ca0df91da5e1697ba33d259e433
2015-12-16 13:38:10 -08:00
Feng Xiao
13e1279d86 Remove internal options from proto files.
Change-Id: I3daf32cb93dfe0fca38f8b48615ccfc307f748e9
2015-12-14 15:54:26 -08:00
Feng Xiao
e841bac4fc Down-integrate from internal code base. 2015-12-11 17:10:28 -08:00
Dave Hughes
62c4efa1d6 Fix typo in LazyField javadoc
"equals".equals("euqals") == false
2015-11-24 22:39:23 -08:00
Joshua Humphries
37b262bfb4 include plugin.proto and generated code in protobuf-java 2015-11-05 15:56:23 -05:00
Jisi Liu
479a90b4dd Revert unwanted changes. 2015-10-06 13:54:35 -07:00
Jisi Liu
46e8ff63cb Down-integrate from google internal. 2015-10-05 11:59:43 -07:00
Feng Xiao
245224902a Fix javadoc errors. 2015-08-27 14:02:25 -07:00
Feng Xiao
ffe9215140 Update version number.
Protoc, C++ runtime and Java runtime are updated to v3.0.0-beta-1, other
languages are updated to v3.0.0-alpha-4.
2015-08-26 15:11:43 -07:00
Feng Xiao
f4ef8fe3b8 Delete incorrectly placed test file. 2015-08-25 14:49:09 -07:00
Feng Xiao
fbb3ef28c9 Merge Java util package to github. 2015-08-25 14:32:09 -07:00
Feng Xiao
839b180dba Cherry-pick Java utf8 change. 2015-08-24 11:25:15 -07:00
Feng Xiao
b17ec3ca11 Down-integrate from internal code base. 2015-08-23 17:50:38 -07:00
Feng Xiao
eee38b0c01 Down-integrate from google3. 2015-08-22 18:25:48 -07:00
Jisi Liu
b0f661181d Down-integrate from internal branch.
Change-Id: Ieb7a2c2fbf35bc2a8fa65b915a5ecb68c83863e4
2015-08-21 11:18:45 -07:00
Bo Yang
252daef02b Add distributionManagement explicitly to prevent maven from using
default configuration. In default configuration, maven needs webdav for
deployment, which cannot be found in central repository.
2015-05-29 16:32:04 -07:00
Bo Yang
e107e2d68e Update version number to 3.0.0-alpha-4 2015-05-29 11:00:57 -07:00
teboring
9839c0c2c9 Update version number to 3.0.0-alpha-3 2015-05-23 09:20:23 -07:00
Paul Yang
d94e65afda Merge pull request #413 from TeBoring/master
down-integrate internal changes
2015-05-21 20:11:26 -07:00
Bo Yang
5db217305f down-integrate internal changes 2015-05-21 19:32:02 -07:00
Feng Xiao
1aacb4fbbf Include well-known types in Java runtime.
Change-Id: I816fe2fac7fccbcd96dd8510c7c9b5e7996aeadc
2015-05-21 17:28:05 -07:00
Tamir Duberstein
654bd3171f Clean up imports 2015-04-02 15:13:15 -07:00
Tamir Duberstein
badef1fc19 Move UTF_8 to Internal 2015-04-02 15:06:32 -07:00
Tamir Duberstein
2820e86aab Skip 3-byte test in CI 2015-04-02 15:06:02 -07:00
Tamir Duberstein
210de285d7 DRY: Use Charset statics to eliminate exceptions 2015-04-02 15:06:00 -07:00
Viktor Szathmáry
e84893f676 perf: String#getBytes(Charset) vs getBytes(String) 2015-04-02 14:48:43 -07:00
Tamir Duberstein
7139d1eff7 Whitespace 2015-04-02 14:48:43 -07:00
jesse
cd04e9b702 rename python README, and fix markdown in java and python respectively 2015-03-16 15:15:59 -07:00
Jesse Frankley
bf05592652 Rename README.txt to README.md 2015-03-16 14:41:57 -07:00
Jisi Liu
ed3c8a11f9 Merge pull request #225 from google/post-alpha2-integrate
Post alpha2 integrate from google internal for C++ and Java
2015-03-03 17:51:05 -08:00
Jisi Liu
c6170a96e3 Merge "Add a release profile for Java mvn project, which includes source file, javadoc packaging and signing." 2015-03-04 01:49:21 +01:00
Jisi Liu
b386c73c43 Add a release profile for Java mvn project, which includes source file,
javadoc packaging and signing.

Change-Id: I70632f01274b70e6f48dae5f4be15f123eb19a46
2015-03-03 16:27:10 -08:00
Jisi Liu
40f2df3c16 Bump the version number to 3.0.0-alpha-3-pre
Change-Id: I33479e529b060e4fed532a827a386d3baecc835e
2015-03-02 19:31:31 -08:00
Jisi Liu
885b612f74 Down integrate from Google internal branch for C++ and Java.
- Maps for C++ lite
- C++ Arena optimizations.
- Java Lite runtime code size optimization.

Change-Id: I7537a4357c1cb385d23f9e8aa7ffdfeefe079f13
2015-02-28 17:06:49 -08:00
Jisi Liu
0e5fc48e58 Merge pull request #216 from cnauroth/Parser-JavaDoc
Correct JavaDoc return value documentation for Parser#parseDelimitedFrom...
2015-02-26 10:03:55 -08:00
Jisi Liu
e70329c6c0 Propogate onChange() event when getFooBuilder() is on an oneof message
field.

Change-Id: Idb5b53da5accd24038a895aba49b684eeee95814
2015-02-23 17:24:36 -08:00
Jisi Liu
20042b72da Fix Java maps reflection to call onChange to populate changes to parent
builders.

Change-Id: Ibf6ae3c0fe6bc31f74b8018c81a5af461b1c24ea
2015-02-23 16:25:52 -08:00
cnauroth
85081986ba Correct JavaDoc return value documentation for Parser#parseDelimitedFrom. 2015-02-23 10:00:03 -08:00
Jisi Liu
7d8564f220 Update version number to 3.0.0-alpha-2
Change-Id: Icecb25db34ae5e6d5142a2d75ca7216ba018abb2
2015-02-21 13:55:43 -08:00
Feng Xiao
cb0ba5f04c Update version number to v3.0.0-pre 2014-12-10 21:05:46 -08:00
Feng Xiao
9104da3261 Down-integrate from internal code base. 2014-12-09 11:57:52 -08:00
Feng Xiao
6a949cda37 Remove usage of features not supported in Java 1.6. 2014-12-03 18:23:49 -08:00
Feng Xiao
81a630c66e Update version number to v3.0.0-alpha-1 2014-12-03 11:52:21 -08:00
Feng Xiao
77931993f4 Explicitly list all Java lite runtime tests (and exclude those depending
TestUtil which transitively depend on the full runtime).
2014-12-02 18:00:26 -08:00
Feng Xiao
7f2a9fb1af Merge pull request #102 from fizbin/bytestring_serializable
Make ByteStrings serializable with java serialization.
2014-11-27 18:49:11 -08:00
Daniel Martin
a32a1a761b Add tests for other ByteString subclasses 2014-11-27 07:11:03 -05:00
Feng Xiao
90f2f50233 Make Java TextFormat.printToUnicodeString() escape newlines.
Fix issue #77
2014-11-25 17:09:07 -08:00
Feng Xiao
418ece3bd1 Fix javadoc warnings. 2014-11-25 16:15:02 -08:00
Daniel Martin
5ff8dc8e00 Make ByteStrings serializable with java serialization. 2014-11-25 13:00:03 -05:00
Feng Xiao
99aa0f9e8f Down-integrate from internal code base. 2014-11-20 16:18:53 -08:00
Feng Xiao
f157a5651c Down-integrate from internal code base (C++ maps support). 2014-11-14 11:50:31 -08:00
Feng Xiao
643d09ac7d Merge branch 'typofixes-vlajos-20141108' of https://github.com/vlajos/protobuf into typo
Conflicts:
	src/google/protobuf/compiler/java/java_file.cc
2014-11-11 11:01:32 -08:00
Feng Xiao
6ef984af4b Down-integrate from internal code base. 2014-11-10 17:34:54 -08:00
Veres Lajos
c76807211a typo fixes - https://github.com/vlajos/misspell_fixer 2014-11-08 22:59:34 +00:00
Feng Xiao
df5481c6b3 Update version number to 2.6.2-pre. 2014-10-21 16:47:33 -07:00
Feng Xiao
bba83652e1 Update version number to 2.6.1. 2014-10-20 17:06:06 -07:00
Feng Xiao
d9d1da95c6 Update version number to 2.6.1rc1 2014-10-08 18:44:37 -07:00
Feng Xiao
56aa52d986 Merge pull request #38 from xfxyjwf/fix17
Fix a bug that causes DynamicMessage.setField() to not work for repeated enum fields.
2014-10-03 11:24:42 -07:00
Feng Xiao
725326f1ee Update verification methods' names. 2014-10-02 17:46:39 -07:00
Feng Xiao
f5691a617e Fix descriptor validation logic for packed enum fields. 2014-10-01 18:26:48 -07:00
Feng Xiao
345d49a51e Fix a bug that causes DynamicMessage.setField() to not work for repeated
enum fields.
2014-10-01 17:31:28 -07:00
Feng Xiao
e428862450 Replace links to code.google.com/protobuf with developers.google.com/protocol-buffers 2014-10-01 16:26:23 -07:00
Jisi Liu
ec0c9e4a03 Bump version for maven-bundle-plugin 2014-09-04 10:38:40 -07:00
jieluo@google.com
1eba9d9c74 merge tags/2.6.0 into trunk 2014-08-25 20:17:53 +00:00
jieluo@google.com
db9f7dd1ac 1, Remove unkown field support in jave TextFormat
2, Verifies the EnumValueDscriptor for DynamicMessage.Builder#setField
2014-07-25 23:07:02 +00:00
jieluo@google.com
76b8a769ab add LazyFieldLite.java 2014-07-19 00:43:46 +00:00
jieluo@google.com
01283faa47 add printUnicode methods in TextFormat 2014-07-18 17:44:42 +00:00
jieluo@google.com
4de8f55113 down integrate to svn 2014-07-18 00:47:59 +00:00
xiaofeng@google.com
c9f69500b7 Update OSGi meta data. 2013-03-08 00:37:10 +00:00
xiaofeng@google.com
2c9392f8dd Update version number in trunk 2013-02-28 06:12:28 +00:00
liujisi@google.com
ef9acc464d Update version to 2.5.0-pre 2012-11-30 22:38:00 +00:00
xiaofeng@google.com
d2d50f9a73 Fix Java compile issues under JDK 1.5 2012-11-30 16:26:07 +00:00
xiaofeng@google.com
a058718f7a Fix issue 298: add OSGi configuration to pom.xml - patch from Thomas Kock 2012-10-25 06:21:08 +00:00
xiaofeng@google.com
b55a20fa2c Down-integrate from internal branch 2012-09-22 02:40:50 +00:00
liujisi@google.com
3239fec94c Close resources properly for java tests and examples. 2011-06-07 03:51:33 +00:00
liujisi@google.com
02d7015ba8 Allow String to be used as message names. 2011-05-04 06:15:22 +00:00
liujisi@google.com
5c24564811 Update mainline version to 2.4.2-pre. 2011-05-03 07:06:03 +00:00
liujisi@google.com
3dc4a7be33 Fix incomplete comments. 2011-04-28 09:42:23 +00:00
liujisi@google.com
5a5e67a25d Make protobuf java JDK 1.5 compatible. 2011-04-28 09:37:40 +00:00
liujisi@google.com
9cf65b7dd2 Use fully qualified java.lang.Object in protoc java code. 2011-04-08 03:40:29 +00:00
jasonh@google.com
eab9b5d47f Fix issue 256: compute the correct size for negative enum values, which need to be sign extended. 2011-02-18 04:35:54 +00:00
liujisi@google.com
01cba4b16e Update mainline version to 2.4.1-pre. 2011-02-02 16:45:06 +00:00
liujisi@google.com
bdfc1eab53 Add missing files into pom.xml for protobuf-lite. 2011-01-27 14:19:21 +00:00
liujisi@google.com
5c20ca1fcc Escape C++ Trigraphs. 2010-12-21 05:33:13 +00:00
liujisi@google.com
6f2c3b8734 Boost version number to 2.4.0-pre, add more test cases for text_format.py about unicode field. 2010-12-09 08:59:21 +00:00
liujisi@google.com
5d8d2b0542 Fix issues: 200 202 211 215 237 246. 2010-12-06 06:20:14 +00:00
liujisi@google.com
2726e7a6eb Fix issues: 166 167 172 175 181 188 192 194 195. 2010-12-03 09:12:33 +00:00
liujisi@google.com
33165fe0d5 Submit recent changes from internal branch. See CHANGES.txt for more details. 2010-11-02 13:14:58 +00:00
kenton@google.com
a4a9ef8c8b Roll back revision 313. A similar but far more exensive change was made in our internal branch, which will be integrated soon. 2010-09-17 23:20:04 +00:00
kenton@google.com
daee05168e Optimize Java string serialization. Patch from Evan Jones. 2010-02-01 17:41:59 +00:00
kenton@google.com
ab6950d75d More Java warning tweaks from Evan Jones. 2010-01-28 01:09:11 +00:00
kenton@google.com
28c2ec0dbd Fix some Java warnings. Patch from Evan Jones. 2010-01-21 22:10:55 +00:00
kenton@google.com
ea75323710 Update version number in trunk to 2.3.1. 2010-01-09 01:02:25 +00:00
kenton@google.com
7b7a80eae4 Tweak doc comments. 2010-01-08 03:56:03 +00:00
kenton@google.com
535301894e Address comments from various code reviews. 2010-01-07 02:08:03 +00:00
kenton@google.com
35d2f017a7 In Java's TextFormat, correcty concatenate adjacent string literals, as C++ does. Also fix a bug in handling of single-quoted strings. 2009-12-23 01:23:06 +00:00
kenton@google.com
6e8b9e4a4a Make extension identifiers final. This improves security when untrusted code is present in the same class loader. In order to get around initialization ordering issues, I simply made the constructor for extension identifiers take no arguments and deferred initialization to an internalInit() method, which generated code will always call during init. 2009-12-22 23:51:20 +00:00
kenton@google.com
25cf9e3153 getExtension() on an empty repeated field should return an empty list, not a singular default value. 2009-12-22 19:54:06 +00:00
kenton@google.com
28e46df3e9 Clarify that pushLimit() does not limit the number of bytes CodedInputStream will read from the underlying InputStream. 2009-12-22 19:35:07 +00:00
kenton@google.com
afd32abb75 Set version to 2.3.0-pre. 2009-12-18 02:51:26 +00:00
kenton@google.com
fccb146e3f Massive roll-up of changes. See CHANGES.txt. 2009-12-18 02:11:36 +00:00
jasonh+personal@google.com
9951233e9a Fix Issue 136: the memoized serialized size for packed fields may not
be properly set. writeTo() may be invoked without a call to
getSerializedSize(), so the generated serialization methods would
write a length of 0 for non-empty packed fields. Just call
getSerializedSize() at the beginning of writeTo(): although this
means that we may compute the byte size needlessly when there
are no packed fields, in practice, getSerializedSize() will
already have been called - all of the writeTo() wrappers in
AbstractMessageLite invoke it.

Tested: new unittest case in WireFormatTest.java now passes
2009-12-01 18:05:21 +00:00
kenton@google.com
6493368285 CodedInputStream.getTotalBytesRead(); patch from Michael Kucharski. 2009-11-12 18:13:33 +00:00
kenton@google.com
f85d70f9e4 Optimize Java serialization of small messages to streams. Patch from Evan Jones. 2009-11-02 18:50:19 +00:00
kenton@google.com
8169c7fcde Set version number to 2.2.1 in trunk. 2009-08-13 22:41:37 +00:00
kenton@google.com
fdd9d3c8b5 Remove more of the stuff that was supposed to be removed in r190. 2009-08-08 03:39:26 +00:00
kenton@google.com
323e6321c6 doc comment tweaks 2009-08-08 03:23:04 +00:00
kenton@google.com
7ddfb4c3c7 Remove semi-broken Java thread-local builder freelist 'optimization'. Maybe bring back later in optional form. 2009-08-07 21:19:29 +00:00
kenton@google.com
68996fc874 Gigantic descriptors shouldn't overflow the Java string literal size limit. 2009-08-07 21:02:02 +00:00
kenton@google.com
445f1023e1 Update version number to 2.2.0-pre. 2009-08-06 23:01:43 +00:00
kenton@google.com
6c9f0020e2 OCD 2009-08-05 19:55:17 +00:00
gk5885
5ea590d5ba add lite profile docs in the README 2009-08-04 23:43:27 +00:00
gk5885
5bf536169e Ensure that only the lite tests are run, even if all tests have been compiled 2009-08-04 23:24:51 +00:00
gk5885
a4022f8931 This fixes some issues with the lite profile for the java build in which the lite jar contained the full binary. 2009-08-04 22:40:19 +00:00
gk5885
ac4764e355 Update the pom to support the 'lite' profile. 2009-08-04 19:11:39 +00:00
temporal
43af40dcca Remove @Override annotations that cause compiler errors on Java 1.5. 2009-08-01 07:37:11 +00:00
kenton@google.com
80b1d62bfc Submit recent changes from internal branch, including "lite mode" for
C++ and Java.  See CHANGES.txt for more details.
2009-07-29 01:13:20 +00:00
kenton@google.com
d2fd0638c3 Down-integrate some code from an internal branch. (More to come.) 2009-07-24 01:00:35 +00:00
kenton@google.com
1fb3d394e5 Update version number in trunk. 2009-05-13 23:20:03 +00:00
kenton@google.com
d37d46dfbc Integrate recent changes from Google-internal code tree. See CHANGES.txt
for details.
2009-04-25 02:53:47 +00:00
kenton@google.com
cfa2d8aa87 Generate field number constants. Patch from Michael Poole. 2009-04-18 00:02:12 +00:00
kenton@google.com
1556623fad Submit files missing from previous submit. 2009-02-10 17:47:02 +00:00
kenton@google.com
2d6daa72ab Push out changes from internal codebase.
All Languages
* Repeated fields of primitive types (types other that string, group, and
  nested messages) may now use the option [packed = true] to get a more
  efficient encoding.  In the new encoding, the entire list is written
  as a single byte blob using the "length-delimited" wire type.  Within
  this blob, the individual values are encoded the same way they would
  be normally except without a tag before each value (thus, they are
  tightly "packed").

C++
* UnknownFieldSet now supports STL-like iteration.
* Message interface has method ParseFromBoundedZeroCopyStream() which parses
  a limited number of bytes from an input stream rather than parsing until
  EOF.

Java
* Fixed bug where Message.mergeFrom(Message) failed to merge extensions.
* Message interface has new method toBuilder() which is equivalent to
  newBuilderForType().mergeFrom(this).
* All enums now implement the ProtocolMessageEnum interface.
* Setting a field to null now throws NullPointerException.
* Fixed tendency for TextFormat's parsing to overflow the stack when
  parsing large string values.  The underlying problem is with Java's
  regex implementation (which unfortunately uses recursive backtracking
  rather than building an NFA).  Worked around by making use of possesive
  quantifiers.

Python
* Updated RPC interfaces to allow for blocking operation.  A client may
  now pass None for a callback when making an RPC, in which case the
  call will block until the response is received, and the response
  object will be returned directly to the caller.  This interface change
  cannot be used in practice until RPC implementations are updated to
  implement it.
2009-01-22 01:27:00 +00:00
kenton@google.com
d41578239c Update trunk version to 2.0.4-SNAPSHOT. 2008-12-05 22:04:06 +00:00
kenton@google.com
26bd9eee6e Integrate changes from internal code.
protoc
* Enum values may now have custom options, using syntax similar to field
  options.
* Fixed bug where .proto files which use custom options but don't actually
  define them (i.e. they import another .proto file defining the options)
  had to explicitly import descriptor.proto.
* Adjacent string literals in .proto files will now be concatenated, like in
  C.

C++
* Generated message classes now have a Swap() method which efficiently swaps
  the contents of two objects.
* All message classes now have a SpaceUsed() method which returns an estimate
  of the number of bytes of allocated memory currently owned by the object.
  This is particularly useful when you are reusing a single message object
  to improve performance but want to make sure it doesn't bloat up too large.
* New method Message::SerializeAsString() returns a string containing the
  serialized data.  May be more convenient than calling
  SerializeToString(string*).
* In debug mode, log error messages when string-type fields are found to
  contain bytes that are not valid UTF-8.
* Fixed bug where a message with multiple extension ranges couldn't parse
  extensions.
* Fixed bug where MergeFrom(const Message&) didn't do anything if invoked on
  a message that contained no fields (but possibly contained extensions).
* Fixed ShortDebugString() to not be O(n^2).  Durr.
* Fixed crash in TextFormat parsing if the first token in the input caused a
  tokenization error.

Java
* New overload of mergeFrom() which parses a slice of a byte array instead
  of the whole thing.
* New method ByteString.asReadOnlyByteBuffer() does what it sounds like.
* Improved performance of isInitialized() when optimizing for code size.

Python
* Corrected ListFields() signature in Message base class to match what
  subclasses actually implement.
* Some minor refactoring.
2008-11-21 00:06:27 +00:00
kenton@google.com
7b29a2695c Update version number to 2.0.3-SNAPSHOT. 2008-10-16 22:56:18 +00:00
kenton@google.com
24bf56fb3a Integrate changes from internal Google-internal branch.
General
  * License changed from Apache 2.0 to New BSD.
  * It is now possible to define custom "options", which are basically
    annotations which may be placed on definitions in a .proto file.
    For example, you might define a field option called "foo" like so:
      import "google/protobuf/descriptor.proto"
      extend google.protobuf.FieldOptions {
        optional string foo = 12345;
      }
    Then you annotate a field using the "foo" option:
      message MyMessage {
        optional int32 some_field = 1 [(foo) = "bar"]
      }
    The value of this option is then visible via the message's
    Descriptor:
      const FieldDescriptor* field =
        MyMessage::descriptor()->FindFieldByName("some_field");
      assert(field->options().GetExtension(foo) == "bar");
    This feature has been implemented and tested in C++ and Java.
    Other languages may or may not need to do extra work to support
    custom options, depending on how they construct descriptors.

  C++
  * Fixed some GCC warnings that only occur when using -pedantic.
  * Improved static initialization code, making ordering more
    predictable among other things.
  * TextFormat will no longer accept messages which contain multiple
    instances of a singular field.  Previously, the latter instance
    would overwrite the former.
  * Now works on systems that don't have hash_map.

  Python
  * Strings now use the "unicode" type rather than the "str" type.
    String fields may still be assigned ASCII "str" values; they will
    automatically be converted.
  * Adding a property to an object representing a repeated field now
    raises an exception.  For example:
      # No longer works (and never should have).
      message.some_repeated_field.foo = 1
2008-09-24 20:31:01 +00:00
kenton@google.com
4410396f11 Work around absence of hash_map.
Also, update version numbers to 2.0.2-SNAPSHOT.
2008-09-19 16:53:32 +00:00
temporal
742e40975a 2.0.1 release. 2008-08-27 19:25:48 +00:00
temporal
f206351d14 Sync code with Google-internal branch. Changes:
Protoc (parser)
- Improved error message when an enum value's name conflicts with another
  symbol defined in the enum type's scope, e.g. if two enum types declared
  in the same scope have values with the same name.  This is disallowed for
  compatibility with C++, but this wasn't clear from the error.
C++
- Restored the set_foo(const char*) accessor for "bytes" type because some
  code inside Google depends on it.  However, set_foo(const char*, int) is
  still there (and actually is changed to take const void*).
- Fixed TokenizerTest when compiling with -DNDEBUG on Linux.
- Other irrelevant tweaks.
Java
- Fixed UnknownFieldSet's parsing of varints larger than 32 bits.
- Fixed TextFormat's parsing of "inf" and "nan".
- Fixed TextFormat's parsing of comments.
Python
- Fixed text_format_test on Windows where floating-point exponents sometimes
  contain extra zeros.
2008-07-23 01:19:07 +00:00
temporal
cc930432c2 misc. stuff:
- Improved readmes.
- Fixed incorrect definition of kint32min.
- Fixed absolute output paths on Windows.
- Added info to Java POM that will be required when we upload the
  package to a Maven repo.
2008-07-21 20:28:30 +00:00
temporal
40ee551715 Initial checkin. 2008-07-10 02:12:20 +00:00