aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJisi Liu <jisi.liu@gmail.com>2016-09-23 11:14:37 -0700
committerJisi Liu <jisi.liu@gmail.com>2016-09-23 11:14:37 -0700
commit34996c31b7842d4b32f51b3d112d43de84c5fa02 (patch)
tree46729d7d229097af84f22323e2326ca002925d95
parent923314cc8847cfb1fed9c711ec3b211446dbfd4e (diff)
parent8c88762e3ef78b81435ecfba973c2e9d3b74f13b (diff)
downloadprotobuf-34996c31b7842d4b32f51b3d112d43de84c5fa02.tar.gz
protobuf-34996c31b7842d4b32f51b3d112d43de84c5fa02.tar.bz2
protobuf-34996c31b7842d4b32f51b3d112d43de84c5fa02.zip
Merge branch '3.1.x' of github.com:google/protobuf into 3.1.x
-rw-r--r--Protobuf.podspec2
-rw-r--r--configure.ac2
-rw-r--r--csharp/Google.Protobuf.Tools.nuspec2
-rw-r--r--csharp/src/Google.Protobuf/Reflection/Descriptor.cs149
-rw-r--r--csharp/src/Google.Protobuf/project.json2
-rw-r--r--java/core/pom.xml2
-rw-r--r--java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java351
-rw-r--r--java/lite/pom.xml2
-rw-r--r--java/pom.xml2
-rw-r--r--java/util/pom.xml2
-rw-r--r--javanano/pom.xml2
-rw-r--r--js/package.json2
-rw-r--r--php/ext/google/protobuf/package.xml11
-rw-r--r--php/src/Google/Protobuf/Internal/Message.php45
-rw-r--r--php/tests/test_util.php4
-rw-r--r--protoc-artifacts/pom.xml2
-rwxr-xr-xpython/google/protobuf/__init__.py2
-rw-r--r--ruby/Gemfile.lock2
-rw-r--r--ruby/google-protobuf.gemspec2
-rw-r--r--src/Makefile.am4
-rw-r--r--src/google/protobuf/descriptor.pb.cc267
-rw-r--r--src/google/protobuf/descriptor.pb.h94
-rw-r--r--src/google/protobuf/descriptor.proto6
23 files changed, 371 insertions, 588 deletions
diff --git a/Protobuf.podspec b/Protobuf.podspec
index 2aebdda4..217f6d20 100644
--- a/Protobuf.podspec
+++ b/Protobuf.podspec
@@ -5,7 +5,7 @@
# dependent projects use the :git notation to refer to the library.
Pod::Spec.new do |s|
s.name = 'Protobuf'
- s.version = '3.1.0-alpha-1'
+ s.version = '3.1.0'
s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.'
s.homepage = 'https://github.com/google/protobuf'
s.license = 'New BSD'
diff --git a/configure.ac b/configure.ac
index c21990b5..a454bbe0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@ AC_PREREQ(2.59)
# In the SVN trunk, the version should always be the next anticipated release
# version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed
# the size of one file name in the dist tarfile over the 99-char limit.)
-AC_INIT([Protocol Buffers],[3.1.0-alpha-1],[protobuf@googlegroups.com],[protobuf])
+AC_INIT([Protocol Buffers],[3.1.0],[protobuf@googlegroups.com],[protobuf])
AM_MAINTAINER_MODE([enable])
diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec
index 79f32bab..d079c683 100644
--- a/csharp/Google.Protobuf.Tools.nuspec
+++ b/csharp/Google.Protobuf.Tools.nuspec
@@ -5,7 +5,7 @@
<title>Google Protocol Buffers tools</title>
<summary>Tools for Protocol Buffers - Google's data interchange format.</summary>
<description>See project site for more info.</description>
- <version>3.1.0-alpha1</version>
+ <version>3.1.0</version>
<authors>Google Inc.</authors>
<owners>protobuf-packages</owners>
<licenseUrl>https://github.com/google/protobuf/blob/master/LICENSE</licenseUrl>
diff --git a/csharp/src/Google.Protobuf/Reflection/Descriptor.cs b/csharp/src/Google.Protobuf/Reflection/Descriptor.cs
index 1bb2b48e..19155469 100644
--- a/csharp/src/Google.Protobuf/Reflection/Descriptor.cs
+++ b/csharp/src/Google.Protobuf/Reflection/Descriptor.cs
@@ -80,65 +80,66 @@ namespace Google.Protobuf.Reflection {
"ASgJEhMKC291dHB1dF90eXBlGAMgASgJEi8KB29wdGlvbnMYBCABKAsyHi5n",
"b29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxIfChBjbGllbnRfc3RyZWFt",
"aW5nGAUgASgIOgVmYWxzZRIfChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVm",
- "YWxzZSLZBAoLRmlsZU9wdGlvbnMSFAoMamF2YV9wYWNrYWdlGAEgASgJEhwK",
+ "YWxzZSKEBQoLRmlsZU9wdGlvbnMSFAoMamF2YV9wYWNrYWdlGAEgASgJEhwK",
"FGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJEiIKE2phdmFfbXVsdGlwbGVf",
- "ZmlsZXMYCiABKAg6BWZhbHNlEiUKFmphdmFfc3RyaW5nX2NoZWNrX3V0ZjgY",
- "GyABKAg6BWZhbHNlEkYKDG9wdGltaXplX2ZvchgJIAEoDjIpLmdvb2dsZS5w",
- "cm90b2J1Zi5GaWxlT3B0aW9ucy5PcHRpbWl6ZU1vZGU6BVNQRUVEEhIKCmdv",
- "X3BhY2thZ2UYCyABKAkSIgoTY2NfZ2VuZXJpY19zZXJ2aWNlcxgQIAEoCDoF",
- "ZmFsc2USJAoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZRIi",
- "ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZRIZCgpkZXByZWNh",
- "dGVkGBcgASgIOgVmYWxzZRIfChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgVm",
- "YWxzZRIZChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCRIYChBjc2hhcnBfbmFt",
- "ZXNwYWNlGCUgASgJEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIk",
- "Lmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIjoKDE9wdGlt",
- "aXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVO",
- "VElNRRADKgkI6AcQgICAgAJKBAgmECci7AEKDk1lc3NhZ2VPcHRpb25zEiYK",
- "F21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZRIuCh9ub19z",
- "dGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZRIZCgpk",
- "ZXByZWNhdGVkGAMgASgIOgVmYWxzZRIRCgltYXBfZW50cnkYByABKAgSQwoU",
- "dW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVm",
- "LlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCSKeAwoMRmll",
- "bGRPcHRpb25zEjoKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZp",
- "ZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HEg4KBnBhY2tlZBgCIAEoCBI/CgZq",
- "c3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpT",
- "VHlwZToJSlNfTk9STUFMEhMKBGxhenkYBSABKAg6BWZhbHNlEhkKCmRlcHJl",
- "Y2F0ZWQYAyABKAg6BWZhbHNlEhMKBHdlYWsYCiABKAg6BWZhbHNlEkMKFHVu",
+ "ZmlsZXMYCiABKAg6BWZhbHNlEikKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2Fu",
+ "ZF9oYXNoGBQgASgIQgIYARIlChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsg",
+ "ASgIOgVmYWxzZRJGCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJv",
+ "dG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRBISCgpnb19w",
+ "YWNrYWdlGAsgASgJEiIKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZh",
+ "bHNlEiQKFWphdmFfZ2VuZXJpY19zZXJ2aWNlcxgRIAEoCDoFZmFsc2USIgoT",
+ "cHlfZ2VuZXJpY19zZXJ2aWNlcxgSIAEoCDoFZmFsc2USGQoKZGVwcmVjYXRl",
+ "ZBgXIAEoCDoFZmFsc2USHwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFs",
+ "c2USGQoRb2JqY19jbGFzc19wcmVmaXgYJCABKAkSGAoQY3NoYXJwX25hbWVz",
+ "cGFjZRglIAEoCRJDChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5n",
+ "b29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6",
+ "ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJ",
+ "TUUQAyoJCOgHEICAgIACSgQIJhAnIuwBCg5NZXNzYWdlT3B0aW9ucxImChdt",
+ "ZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2USLgofbm9fc3Rh",
+ "bmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2USGQoKZGVw",
+ "cmVjYXRlZBgDIAEoCDoFZmFsc2USEQoJbWFwX2VudHJ5GAcgASgIEkMKFHVu",
"aW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5V",
- "bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENP",
- "UkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFM",
- "EAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoE",
- "CAQQBSJeCgxPbmVvZk9wdGlvbnMSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y",
- "5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24q",
- "CQjoBxCAgICAAiKNAQoLRW51bU9wdGlvbnMSEwoLYWxsb3dfYWxpYXMYAiAB",
- "KAgSGQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRl",
- "ZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0",
- "ZWRPcHRpb24qCQjoBxCAgICAAiJ9ChBFbnVtVmFsdWVPcHRpb25zEhkKCmRl",
- "cHJlY2F0ZWQYASABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9u",
- "GOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9u",
- "KgkI6AcQgICAgAIiewoOU2VydmljZU9wdGlvbnMSGQoKZGVwcmVjYXRlZBgh",
- "IAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQu",
- "Z29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICA",
- "AiJ6Cg1NZXRob2RPcHRpb25zEhkKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNl",
- "EkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90",
- "b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIingIKE1VuaW50",
- "ZXJwcmV0ZWRPcHRpb24SOwoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1",
- "Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0EhgKEGlkZW50aWZpZXJf",
- "dmFsdWUYAyABKAkSGgoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEEhoKEm5l",
- "Z2F0aXZlX2ludF92YWx1ZRgFIAEoAxIUCgxkb3VibGVfdmFsdWUYBiABKAES",
- "FAoMc3RyaW5nX3ZhbHVlGAcgASgMEhcKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEo",
- "CRozCghOYW1lUGFydBIRCgluYW1lX3BhcnQYASACKAkSFAoMaXNfZXh0ZW5z",
- "aW9uGAIgAigIItUBCg5Tb3VyY2VDb2RlSW5mbxI6Cghsb2NhdGlvbhgBIAMo",
- "CzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvbhqG",
- "AQoITG9jYXRpb24SEAoEcGF0aBgBIAMoBUICEAESEAoEc3BhbhgCIAMoBUIC",
- "EAESGAoQbGVhZGluZ19jb21tZW50cxgDIAEoCRIZChF0cmFpbGluZ19jb21t",
- "ZW50cxgEIAEoCRIhChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJ",
- "IqcBChFHZW5lcmF0ZWRDb2RlSW5mbxJBCgphbm5vdGF0aW9uGAEgAygLMi0u",
- "Z29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24a",
- "TwoKQW5ub3RhdGlvbhIQCgRwYXRoGAEgAygFQgIQARITCgtzb3VyY2VfZmls",
- "ZRgCIAEoCRINCgViZWdpbhgDIAEoBRILCgNlbmQYBCABKAVCWAoTY29tLmdv",
- "b2dsZS5wcm90b2J1ZkIQRGVzY3JpcHRvclByb3Rvc0gBWgpkZXNjcmlwdG9y",
- "ogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb24="));
+ "bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgIEAkingMKDEZpZWxk",
+ "T3B0aW9ucxI6CgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVs",
+ "ZE9wdGlvbnMuQ1R5cGU6BlNUUklORxIOCgZwYWNrZWQYAiABKAgSPwoGanN0",
+ "eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5",
+ "cGU6CUpTX05PUk1BTBITCgRsYXp5GAUgASgIOgVmYWxzZRIZCgpkZXByZWNh",
+ "dGVkGAMgASgIOgVmYWxzZRITCgR3ZWFrGAogASgIOgVmYWxzZRJDChR1bmlu",
+ "dGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5p",
+ "bnRlcnByZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JE",
+ "EAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAA",
+ "Eg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACKgkI6AcQgICAgAJKBAgE",
+ "EAUiXgoMT25lb2ZPcHRpb25zEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcH",
+ "IAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI",
+ "6AcQgICAgAIijQEKC0VudW1PcHRpb25zEhMKC2FsbG93X2FsaWFzGAIgASgI",
+ "EhkKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRf",
+ "b3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVk",
+ "T3B0aW9uKgkI6AcQgICAgAIifQoQRW51bVZhbHVlT3B0aW9ucxIZCgpkZXBy",
+ "ZWNhdGVkGAEgASgIOgVmYWxzZRJDChR1bmludGVycHJldGVkX29wdGlvbhjn",
+ "ByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbioJ",
+ "COgHEICAgIACInsKDlNlcnZpY2VPcHRpb25zEhkKCmRlcHJlY2F0ZWQYISAB",
+ "KAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdv",
+ "b2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi",
+ "egoNTWV0aG9kT3B0aW9ucxIZCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZRJD",
+ "ChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9i",
+ "dWYuVW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIp4CChNVbmludGVy",
+ "cHJldGVkT3B0aW9uEjsKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYu",
+ "VW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydBIYChBpZGVudGlmaWVyX3Zh",
+ "bHVlGAMgASgJEhoKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBBIaChJuZWdh",
+ "dGl2ZV9pbnRfdmFsdWUYBSABKAMSFAoMZG91YmxlX3ZhbHVlGAYgASgBEhQK",
+ "DHN0cmluZ192YWx1ZRgHIAEoDBIXCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAka",
+ "MwoITmFtZVBhcnQSEQoJbmFtZV9wYXJ0GAEgAigJEhQKDGlzX2V4dGVuc2lv",
+ "bhgCIAIoCCLVAQoOU291cmNlQ29kZUluZm8SOgoIbG9jYXRpb24YASADKAsy",
+ "KC5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm8uTG9jYXRpb24ahgEK",
+ "CExvY2F0aW9uEhAKBHBhdGgYASADKAVCAhABEhAKBHNwYW4YAiADKAVCAhAB",
+ "EhgKEGxlYWRpbmdfY29tbWVudHMYAyABKAkSGQoRdHJhaWxpbmdfY29tbWVu",
+ "dHMYBCABKAkSIQoZbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cxgGIAMoCSKn",
+ "AQoRR2VuZXJhdGVkQ29kZUluZm8SQQoKYW5ub3RhdGlvbhgBIAMoCzItLmdv",
+ "b2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uGk8K",
+ "CkFubm90YXRpb24SEAoEcGF0aBgBIAMoBUICEAESEwoLc291cmNlX2ZpbGUY",
+ "AiABKAkSDQoFYmVnaW4YAyABKAUSCwoDZW5kGAQgASgFQlgKE2NvbS5nb29n",
+ "bGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVoKZGVzY3JpcHRvcqIC",
+ "A0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9u"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
@@ -152,7 +153,7 @@ namespace Google.Protobuf.Reflection {
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueDescriptorProto), global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser, new[]{ "Name", "Number", "Options" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceDescriptorProto), global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser, new[]{ "Name", "Method", "Options" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodDescriptorProto), global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser, new[]{ "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming" }, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileOptions), global::Google.Protobuf.Reflection.FileOptions.Parser, new[]{ "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) }, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileOptions), global::Google.Protobuf.Reflection.FileOptions.Parser, new[]{ "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) }, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MessageOptions), global::Google.Protobuf.Reflection.MessageOptions.Parser, new[]{ "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldOptions), global::Google.Protobuf.Reflection.FieldOptions.Parser, new[]{ "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.CType), typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) }, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofOptions), global::Google.Protobuf.Reflection.OneofOptions.Parser, new[]{ "UninterpretedOption" }, null, null, null),
@@ -2787,6 +2788,7 @@ namespace Google.Protobuf.Reflection {
javaPackage_ = other.javaPackage_;
javaOuterClassname_ = other.javaOuterClassname_;
javaMultipleFiles_ = other.javaMultipleFiles_;
+ javaGenerateEqualsAndHash_ = other.javaGenerateEqualsAndHash_;
javaStringCheckUtf8_ = other.javaStringCheckUtf8_;
optimizeFor_ = other.optimizeFor_;
goPackage_ = other.goPackage_;
@@ -2859,6 +2861,21 @@ namespace Google.Protobuf.Reflection {
}
}
+ /// <summary>Field number for the "java_generate_equals_and_hash" field.</summary>
+ public const int JavaGenerateEqualsAndHashFieldNumber = 20;
+ private bool javaGenerateEqualsAndHash_;
+ /// <summary>
+ /// This option does nothing.
+ /// </summary>
+ [global::System.ObsoleteAttribute]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool JavaGenerateEqualsAndHash {
+ get { return javaGenerateEqualsAndHash_; }
+ set {
+ javaGenerateEqualsAndHash_ = value;
+ }
+ }
+
/// <summary>Field number for the "java_string_check_utf8" field.</summary>
public const int JavaStringCheckUtf8FieldNumber = 27;
private bool javaStringCheckUtf8_;
@@ -3042,6 +3059,7 @@ namespace Google.Protobuf.Reflection {
if (JavaPackage != other.JavaPackage) return false;
if (JavaOuterClassname != other.JavaOuterClassname) return false;
if (JavaMultipleFiles != other.JavaMultipleFiles) return false;
+ if (JavaGenerateEqualsAndHash != other.JavaGenerateEqualsAndHash) return false;
if (JavaStringCheckUtf8 != other.JavaStringCheckUtf8) return false;
if (OptimizeFor != other.OptimizeFor) return false;
if (GoPackage != other.GoPackage) return false;
@@ -3062,6 +3080,7 @@ namespace Google.Protobuf.Reflection {
if (JavaPackage.Length != 0) hash ^= JavaPackage.GetHashCode();
if (JavaOuterClassname.Length != 0) hash ^= JavaOuterClassname.GetHashCode();
if (JavaMultipleFiles != false) hash ^= JavaMultipleFiles.GetHashCode();
+ if (JavaGenerateEqualsAndHash != false) hash ^= JavaGenerateEqualsAndHash.GetHashCode();
if (JavaStringCheckUtf8 != false) hash ^= JavaStringCheckUtf8.GetHashCode();
if (OptimizeFor != 0) hash ^= OptimizeFor.GetHashCode();
if (GoPackage.Length != 0) hash ^= GoPackage.GetHashCode();
@@ -3115,6 +3134,10 @@ namespace Google.Protobuf.Reflection {
output.WriteRawTag(144, 1);
output.WriteBool(PyGenericServices);
}
+ if (JavaGenerateEqualsAndHash != false) {
+ output.WriteRawTag(160, 1);
+ output.WriteBool(JavaGenerateEqualsAndHash);
+ }
if (Deprecated != false) {
output.WriteRawTag(184, 1);
output.WriteBool(Deprecated);
@@ -3150,6 +3173,9 @@ namespace Google.Protobuf.Reflection {
if (JavaMultipleFiles != false) {
size += 1 + 1;
}
+ if (JavaGenerateEqualsAndHash != false) {
+ size += 2 + 1;
+ }
if (JavaStringCheckUtf8 != false) {
size += 2 + 1;
}
@@ -3198,6 +3224,9 @@ namespace Google.Protobuf.Reflection {
if (other.JavaMultipleFiles != false) {
JavaMultipleFiles = other.JavaMultipleFiles;
}
+ if (other.JavaGenerateEqualsAndHash != false) {
+ JavaGenerateEqualsAndHash = other.JavaGenerateEqualsAndHash;
+ }
if (other.JavaStringCheckUtf8 != false) {
JavaStringCheckUtf8 = other.JavaStringCheckUtf8;
}
@@ -3271,6 +3300,10 @@ namespace Google.Protobuf.Reflection {
PyGenericServices = input.ReadBool();
break;
}
+ case 160: {
+ JavaGenerateEqualsAndHash = input.ReadBool();
+ break;
+ }
case 184: {
Deprecated = input.ReadBool();
break;
diff --git a/csharp/src/Google.Protobuf/project.json b/csharp/src/Google.Protobuf/project.json
index dd958c98..12e86248 100644
--- a/csharp/src/Google.Protobuf/project.json
+++ b/csharp/src/Google.Protobuf/project.json
@@ -1,5 +1,5 @@
{
- "version": "3.1.0-alpha-1",
+ "version": "3.1.0",
"title": "Google Protocol Buffers",
"description": "See project site for more info.",
"authors": [ "Google Inc." ],
diff --git a/java/core/pom.xml b/java/core/pom.xml
index 790f0af3..8a83eb4e 100644
--- a/java/core/pom.xml
+++ b/java/core/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
- <version>3.1.0-alpha-1</version>
+ <version>3.1.0</version>
</parent>
<artifactId>protobuf-java</artifactId>
diff --git a/java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java b/java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java
index 5c0b9967..4cbbd296 100644
--- a/java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java
+++ b/java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java
@@ -36,6 +36,7 @@ import com.google.protobuf.Descriptors.EnumValueDescriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
import com.google.protobuf.Descriptors.FileDescriptor;
import com.google.protobuf.Descriptors.OneofDescriptor;
+import com.google.protobuf.GeneratedMessage.GeneratedExtension;
import java.io.IOException;
import java.io.InputStream;
@@ -1609,356 +1610,6 @@ public abstract class GeneratedMessageV3 extends AbstractMessage
FieldDescriptor getDescriptor();
}
- /** For use by generated code only. */
- public static <ContainingType extends Message, Type>
- GeneratedExtension<ContainingType, Type>
- newMessageScopedGeneratedExtension(final Message scope,
- final int descriptorIndex,
- final Class singularType,
- final Message defaultInstance) {
- // For extensions scoped within a Message, we use the Message to resolve
- // the outer class's descriptor, from which the extension descriptor is
- // obtained.
- return new GeneratedExtension<ContainingType, Type>(
- new CachedDescriptorRetriever() {
- @Override
- public FieldDescriptor loadDescriptor() {
- return scope.getDescriptorForType().getExtensions().get(descriptorIndex);
- }
- },
- singularType,
- defaultInstance,
- Extension.ExtensionType.IMMUTABLE);
- }
-
- /** For use by generated code only. */
- public static <ContainingType extends Message, Type>
- GeneratedExtension<ContainingType, Type>
- newFileScopedGeneratedExtension(final Class singularType,
- final Message defaultInstance) {
- // For extensions scoped within a file, we rely on the outer class's
- // static initializer to call internalInit() on the extension when the
- // descriptor is available.
- return new GeneratedExtension<ContainingType, Type>(
- null, // ExtensionDescriptorRetriever is initialized in internalInit();
- singularType,
- defaultInstance,
- Extension.ExtensionType.IMMUTABLE);
- }
-
- private abstract static class CachedDescriptorRetriever
- implements ExtensionDescriptorRetriever {
- private volatile FieldDescriptor descriptor;
- protected abstract FieldDescriptor loadDescriptor();
-
- @Override
- public FieldDescriptor getDescriptor() {
- if (descriptor == null) {
- synchronized (this) {
- if (descriptor == null) {
- descriptor = loadDescriptor();
- }
- }
- }
- return descriptor;
- }
- }
-
- /**
- * Used in proto1 generated code only.
- *
- * After enabling bridge, we can define proto2 extensions (the extended type
- * is a proto2 mutable message) in a proto1 .proto file. For these extensions
- * we should generate proto2 GeneratedExtensions.
- */
- public static <ContainingType extends Message, Type>
- GeneratedExtension<ContainingType, Type>
- newMessageScopedGeneratedExtension(
- final Message scope, final String name,
- final Class singularType, final Message defaultInstance) {
- // For extensions scoped within a Message, we use the Message to resolve
- // the outer class's descriptor, from which the extension descriptor is
- // obtained.
- return new GeneratedExtension<ContainingType, Type>(
- new CachedDescriptorRetriever() {
- @Override
- protected FieldDescriptor loadDescriptor() {
- return scope.getDescriptorForType().findFieldByName(name);
- }
- },
- singularType,
- defaultInstance,
- Extension.ExtensionType.MUTABLE);
- }
-
- /**
- * Used in proto1 generated code only.
- *
- * After enabling bridge, we can define proto2 extensions (the extended type
- * is a proto2 mutable message) in a proto1 .proto file. For these extensions
- * we should generate proto2 GeneratedExtensions.
- */
- public static <ContainingType extends Message, Type>
- GeneratedExtension<ContainingType, Type>
- newFileScopedGeneratedExtension(
- final Class singularType, final Message defaultInstance,
- final String descriptorOuterClass, final String extensionName) {
- // For extensions scoped within a file, we load the descriptor outer
- // class and rely on it to get the FileDescriptor which then can be
- // used to obtain the extension's FieldDescriptor.
- return new GeneratedExtension<ContainingType, Type>(
- new CachedDescriptorRetriever() {
- @Override
- protected FieldDescriptor loadDescriptor() {
- try {
- Class clazz = singularType.getClassLoader().loadClass(descriptorOuterClass);
- FileDescriptor file = (FileDescriptor) clazz.getField("descriptor").get(null);
- return file.findExtensionByName(extensionName);
- } catch (Exception e) {
- throw new RuntimeException(
- "Cannot load descriptors: "
- + descriptorOuterClass
- + " is not a valid descriptor class name",
- e);
- }
- }
- },
- singularType,
- defaultInstance,
- Extension.ExtensionType.MUTABLE);
- }
-
- /**
- * Type used to represent generated extensions. The protocol compiler
- * generates a static singleton instance of this class for each extension.
- *
- * <p>For example, imagine you have the {@code .proto} file:
- *
- * <pre>
- * option java_class = "MyProto";
- *
- * message Foo {
- * extensions 1000 to max;
- * }
- *
- * extend Foo {
- * optional int32 bar;
- * }
- * </pre>
- *
- * <p>Then, {@code MyProto.Foo.bar} has type
- * {@code GeneratedExtension<MyProto.Foo, Integer>}.
- *
- * <p>In general, users should ignore the details of this type, and simply use
- * these static singletons as parameters to the extension accessors defined
- * in {@link ExtendableMessage} and {@link ExtendableBuilder}.
- */
- public static class GeneratedExtension<
- ContainingType extends Message, Type> extends
- Extension<ContainingType, Type> {
- // TODO(kenton): Find ways to avoid using Java reflection within this
- // class. Also try to avoid suppressing unchecked warnings.
-
- // We can't always initialize the descriptor of a GeneratedExtension when
- // we first construct it due to initialization order difficulties (namely,
- // the descriptor may not have been constructed yet, since it is often
- // constructed by the initializer of a separate module).
- //
- // In the case of nested extensions, we initialize the
- // ExtensionDescriptorRetriever with an instance that uses the scoping
- // Message's default instance to retrieve the extension's descriptor.
- //
- // In the case of non-nested extensions, we initialize the
- // ExtensionDescriptorRetriever to null and rely on the outer class's static
- // initializer to call internalInit() after the descriptor has been parsed.
- GeneratedExtension(ExtensionDescriptorRetriever descriptorRetriever,
- Class singularType,
- Message messageDefaultInstance,
- ExtensionType extensionType) {
- if (Message.class.isAssignableFrom(singularType) &&
- !singularType.isInstance(messageDefaultInstance)) {
- throw new IllegalArgumentException(
- "Bad messageDefaultInstance for " + singularType.getName());
- }
- this.descriptorRetriever = descriptorRetriever;
- this.singularType = singularType;
- this.messageDefaultInstance = messageDefaultInstance;
-
- if (ProtocolMessageEnum.class.isAssignableFrom(singularType)) {
- this.enumValueOf = getMethodOrDie(singularType, "valueOf",
- EnumValueDescriptor.class);
- this.enumGetValueDescriptor =
- getMethodOrDie(singularType, "getValueDescriptor");
- } else {
- this.enumValueOf = null;
- this.enumGetValueDescriptor = null;
- }
- this.extensionType = extensionType;
- }
-
- /** For use by generated code only. */
- public void internalInit(final FieldDescriptor descriptor) {
- if (descriptorRetriever != null) {
- throw new IllegalStateException("Already initialized.");
- }
- descriptorRetriever =
- new ExtensionDescriptorRetriever() {
- @Override
- public FieldDescriptor getDescriptor() {
- return descriptor;
- }
- };
- }
-
- private ExtensionDescriptorRetriever descriptorRetriever;
- private final Class singularType;
- private final Message messageDefaultInstance;
- private final Method enumValueOf;
- private final Method enumGetValueDescriptor;
- private final ExtensionType extensionType;
-
- @Override
- public FieldDescriptor getDescriptor() {
- if (descriptorRetriever == null) {
- throw new IllegalStateException(
- "getDescriptor() called before internalInit()");
- }
- return descriptorRetriever.getDescriptor();
- }
-
- /**
- * If the extension is an embedded message or group, returns the default
- * instance of the message.
- */
- @Override
- public Message getMessageDefaultInstance() {
- return messageDefaultInstance;
- }
-
- @Override
- protected ExtensionType getExtensionType() {
- return extensionType;
- }
-
- /**
- * Convert from the type used by the reflection accessors to the type used
- * by native accessors. E.g., for enums, the reflection accessors use
- * EnumValueDescriptors but the native accessors use the generated enum
- * type.
- */
- @Override
- @SuppressWarnings("unchecked")
- protected Object fromReflectionType(final Object value) {
- FieldDescriptor descriptor = getDescriptor();
- if (descriptor.isRepeated()) {
- if (descriptor.getJavaType() == FieldDescriptor.JavaType.MESSAGE ||
- descriptor.getJavaType() == FieldDescriptor.JavaType.ENUM) {
- // Must convert the whole list.
- final List result = new ArrayList();
- for (final Object element : (List) value) {
- result.add(singularFromReflectionType(element));
- }
- return result;
- } else {
- return value;
- }
- } else {
- return singularFromReflectionType(value);
- }
- }
-
- /**
- * Like {@link #fromReflectionType(Object)}, but if the type is a repeated
- * type, this converts a single element.
- */
- @Override
- protected Object singularFromReflectionType(final Object value) {
- FieldDescriptor descriptor = getDescriptor();
- switch (descriptor.getJavaType()) {
- case MESSAGE:
- if (singularType.isInstance(value)) {
- return value;
- } else {
- return messageDefaultInstance.newBuilderForType()
- .mergeFrom((Message) value).build();
- }
- case ENUM:
- return invokeOrDie(enumValueOf, null, (EnumValueDescriptor) value);
- default:
- return value;
- }
- }
-
- /**
- * Convert from the type used by the native accessors to the type used
- * by reflection accessors. E.g., for enums, the reflection accessors use
- * EnumValueDescriptors but the native accessors use the generated enum
- * type.
- */
- @Override
- @SuppressWarnings("unchecked")
- protected Object toReflectionType(final Object value) {
- FieldDescriptor descriptor = getDescriptor();
- if (descriptor.isRepeated()) {
- if (descriptor.getJavaType() == FieldDescriptor.JavaType.ENUM) {
- // Must convert the whole list.
- final List result = new ArrayList();
- for (final Object element : (List) value) {
- result.add(singularToReflectionType(element));
- }
- return result;
- } else {
- return value;
- }
- } else {
- return singularToReflectionType(value);
- }
- }
-
- /**
- * Like {@link #toReflectionType(Object)}, but if the type is a repeated
- * type, this converts a single element.
- */
- @Override
- protected Object singularToReflectionType(final Object value) {
- FieldDescriptor descriptor = getDescriptor();
- switch (descriptor.getJavaType()) {
- case ENUM:
- return invokeOrDie(enumGetValueDescriptor, value);
- default:
- return value;
- }
- }
-
- @Override
- public int getNumber() {
- return getDescriptor().getNumber();
- }
-
- @Override
- public WireFormat.FieldType getLiteType() {
- return getDescriptor().getLiteType();
- }
-
- @Override
- public boolean isRepeated() {
- return getDescriptor().isRepeated();
- }
-
- @Override
- @SuppressWarnings("unchecked")
- public Type getDefaultValue() {
- if (isRepeated()) {
- return (Type) Collections.emptyList();
- }
- if (getDescriptor().getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
- return (Type) messageDefaultInstance;
- }
- return (Type) singularFromReflectionType(
- getDescriptor().getDefaultValue());
- }
- }
-
// =================================================================
/** Calls Class.getMethod and throws a RuntimeException if it fails. */
diff --git a/java/lite/pom.xml b/java/lite/pom.xml
index d6490247..9862cd94 100644
--- a/java/lite/pom.xml
+++ b/java/lite/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
- <version>3.1.0-alpha-1</version>
+ <version>3.0.0</version>
</parent>
<artifactId>protobuf-lite</artifactId>
diff --git a/java/pom.xml b/java/pom.xml
index 3fa0a85b..881473f3 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -11,7 +11,7 @@
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
- <version>3.1.0-alpha-1</version>
+ <version>3.1.0</version>
<packaging>pom</packaging>
<name>Protocol Buffers [Parent]</name>
diff --git a/java/util/pom.xml b/java/util/pom.xml
index 56a4e528..6b07bcdf 100644
--- a/java/util/pom.xml
+++ b/java/util/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId>
- <version>3.1.0-alpha-1</version>
+ <version>3.1.0</version>
</parent>
<artifactId>protobuf-java-util</artifactId>
diff --git a/javanano/pom.xml b/javanano/pom.xml
index 291ed27a..6bac76c9 100644
--- a/javanano/pom.xml
+++ b/javanano/pom.xml
@@ -10,7 +10,7 @@
</parent>
<groupId>com.google.protobuf.nano</groupId>
<artifactId>protobuf-javanano</artifactId>
- <version>3.1.0-alpha-1</version>
+ <version>3.1.0</version>
<packaging>bundle</packaging>
<name>Protocol Buffer JavaNano API</name>
<description>
diff --git a/js/package.json b/js/package.json
index cc0db47b..ee4181ff 100644
--- a/js/package.json
+++ b/js/package.json
@@ -1,6 +1,6 @@
{
"name": "google-protobuf",
- "version": "3.1.0-alpha.1",
+ "version": "3.1.0",
"description": "Protocol Buffers for JavaScript",
"main": "google-protobuf.js",
"files": [
diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml
index b4661832..14d46c43 100644
--- a/php/ext/google/protobuf/package.xml
+++ b/php/ext/google/protobuf/package.xml
@@ -10,11 +10,11 @@
<email>protobuf-opensource@google.com</email>
<active>yes</active>
</lead>
- <date>2016-09-02</date>
+ <date>2016-09-23</date>
<time>16:06:07</time>
<version>
<release>3.1.0a1</release>
- <api>3.1.0</api>
+ <api>3.1.0a1</api>
</version>
<stability>
<release>alpha</release>
@@ -57,14 +57,15 @@ First alpha release.
<changelog>
<release>
<version>
- <release>3.1.0</release>
- <api>3.1.0</api>
+ <release>3.1.0a1</release>
+ <api>3.1.0a1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
- <date>2016-09-02</date>
+ <date>2016-09-23</date>
+ <time>16:06:07</time>
<license uri="http://www.opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
First alpha release
diff --git a/php/src/Google/Protobuf/Internal/Message.php b/php/src/Google/Protobuf/Internal/Message.php
index a8de6a11..7bdc6a8c 100644
--- a/php/src/Google/Protobuf/Internal/Message.php
+++ b/php/src/Google/Protobuf/Internal/Message.php
@@ -81,41 +81,44 @@ class Message
switch ($value_field->getType()) {
case GPBType::MESSAGE:
case GPBType::GROUP:
- $this->$setter(
- new MapField(
- $key_field->getType(),
- $value_field->getType(),
- $value_field->getMessageType()->getClass()));
+ $map_field = new MapField(
+ $key_field->getType(),
+ $value_field->getType(),
+ $value_field->getMessageType()->getClass());
+ $this->$setter($map_field);
break;
case GPBType::ENUM:
- $this->$setter(
- new MapField(
- $key_field->getType(),
- $value_field->getType(),
- $value_field->getEnumType()->getClass()));
+ $map_field = new MapField(
+ $key_field->getType(),
+ $value_field->getType(),
+ $value_field->getEnumType()->getClass());
+ $this->$setter($map_field);
break;
default:
- $this->$setter(new MapField($key_field->getType(),
- $value_field->getType()));
+ $map_field = new MapField(
+ $key_field->getType(),
+ $value_field->getType());
+ $this->$setter($map_field);
break;
}
} else if ($field->getLabel() === GPBLabel::REPEATED) {
switch ($field->getType()) {
case GPBType::MESSAGE:
case GPBType::GROUP:
- $this->$setter(
- new RepeatedField(
- $field->getType(),
- $field->getMessageType()->getClass()));
+ $repeated_field = new RepeatedField(
+ $field->getType(),
+ $field->getMessageType()->getClass());
+ $this->$setter($repeated_field);
break;
case GPBType::ENUM:
- $this->$setter(
- new RepeatedField(
- $field->getType(),
- $field->getEnumType()->getClass()));
+ $repeated_field = new RepeatedField(
+ $field->getType(),
+ $field->getEnumType()->getClass());
+ $this->$setter($repeated_field);
break;
default:
- $this->$setter(new RepeatedField($field->getType()));
+ $repeated_field = new RepeatedField($field->getType());
+ $this->$setter($repeated_field);
break;
}
} else if ($field->getOneofIndex() !== -1) {
diff --git a/php/tests/test_util.php b/php/tests/test_util.php
index decd1a78..2f6e4dd8 100644
--- a/php/tests/test_util.php
+++ b/php/tests/test_util.php
@@ -50,6 +50,8 @@ class TestUtil
public static function setTestMessage(TestMessage $m)
{
+ $sub = new TestMessage_Sub();
+
$m->setOptionalInt32(-42);
$m->setOptionalInt64(-43);
$m->setOptionalUint32(42);
@@ -66,7 +68,7 @@ class TestUtil
$m->setOptionalString('a');
$m->setOptionalBytes('b');
$m->setOptionalEnum(TestEnum::ONE);
- $m->setOptionalMessage(new TestMessage_Sub());
+ $m->setOptionalMessage($sub);
$m->getOptionalMessage()->SetA(33);
$m->getRepeatedInt32() []= -42;
diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml
index b8581da1..680154b1 100644
--- a/protoc-artifacts/pom.xml
+++ b/protoc-artifacts/pom.xml
@@ -10,7 +10,7 @@
</parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protoc</artifactId>
- <version>3.1.0-alpha-1</version>
+ <version>3.1.0</version>
<packaging>pom</packaging>
<name>Protobuf Compiler</name>
<description>
diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py
index f52137c4..0e2a89ff 100755
--- a/python/google/protobuf/__init__.py
+++ b/python/google/protobuf/__init__.py
@@ -30,7 +30,7 @@
# Copyright 2007 Google Inc. All Rights Reserved.
-__version__ = '3.1.0a1'
+__version__ = '3.1.0'
if __name__ != '__main__':
try:
diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock
index 7a89c866..46244fdf 100644
--- a/ruby/Gemfile.lock
+++ b/ruby/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- google-protobuf (3.1.0.alpha.1.0)
+ google-protobuf (3.1.0)
GEM
remote: https://rubygems.org/
diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec
index 26d9b20d..c7357f78 100644
--- a/ruby/google-protobuf.gemspec
+++ b/ruby/google-protobuf.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = "google-protobuf"
- s.version = "3.1.0.alpha.1.0"
+ s.version = "3.1.0"
s.licenses = ["BSD"]
s.summary = "Protocol Buffers"
s.description = "Protocol Buffers are Google's data interchange format."
diff --git a/src/Makefile.am b/src/Makefile.am
index a608ec44..faee6d96 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -218,7 +218,7 @@ libprotobuf_lite_la_SOURCES = \
google/protobuf/io/zero_copy_stream_impl_lite.cc
libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
-libprotobuf_la_LDFLAGS = -version-info 10:0:0 -export-dynamic -no-undefined
+libprotobuf_la_LDFLAGS = -version-info 11:0:0 -export-dynamic -no-undefined
libprotobuf_la_SOURCES = \
$(libprotobuf_lite_la_SOURCES) \
google/protobuf/any.pb.cc \
@@ -302,7 +302,7 @@ libprotobuf_la_SOURCES = \
nodist_libprotobuf_la_SOURCES = $(nodist_libprotobuf_lite_la_SOURCES)
libprotoc_la_LIBADD = $(PTHREAD_LIBS) libprotobuf.la
-libprotoc_la_LDFLAGS = -version-info 10:0:0 -export-dynamic -no-undefined
+libprotoc_la_LDFLAGS = -version-info 11:0:0 -export-dynamic -no-undefined
libprotoc_la_SOURCES = \
google/protobuf/compiler/code_generator.cc \
google/protobuf/compiler/command_line_interface.cc \
diff --git a/src/google/protobuf/descriptor.pb.cc b/src/google/protobuf/descriptor.pb.cc
index 3f310801..43556237 100644
--- a/src/google/protobuf/descriptor.pb.cc
+++ b/src/google/protobuf/descriptor.pb.cc
@@ -313,10 +313,11 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
sizeof(MethodDescriptorProto),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, _internal_metadata_));
FileOptions_descriptor_ = file->message_type(9);
- static const int FileOptions_offsets_[14] = {
+ static const int FileOptions_offsets_[15] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_package_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_outer_classname_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_multiple_files_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_generate_equals_and_hash_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_string_check_utf8_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, optimize_for_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, go_package_),
@@ -791,73 +792,74 @@ void protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto_impl() {
"\n\013output_type\030\003 \001(\t\022/\n\007options\030\004 \001(\0132\036.g"
"oogle.protobuf.MethodOptions\022\037\n\020client_s"
"treaming\030\005 \001(\010:\005false\022\037\n\020server_streamin"
- "g\030\006 \001(\010:\005false\"\331\004\n\013FileOptions\022\024\n\014java_p"
+ "g\030\006 \001(\010:\005false\"\204\005\n\013FileOptions\022\024\n\014java_p"
"ackage\030\001 \001(\t\022\034\n\024java_outer_classname\030\010 \001"
- "(\t\022\"\n\023java_multiple_files\030\n \001(\010:\005false\022%"
- "\n\026java_string_check_utf8\030\033 \001(\010:\005false\022F\n"
- "\014optimize_for\030\t \001(\0162).google.protobuf.Fi"
- "leOptions.OptimizeMode:\005SPEED\022\022\n\ngo_pack"
- "age\030\013 \001(\t\022\"\n\023cc_generic_services\030\020 \001(\010:\005"
- "false\022$\n\025java_generic_services\030\021 \001(\010:\005fa"
- "lse\022\"\n\023py_generic_services\030\022 \001(\010:\005false\022"
- "\031\n\ndeprecated\030\027 \001(\010:\005false\022\037\n\020cc_enable_"
- "arenas\030\037 \001(\010:\005false\022\031\n\021objc_class_prefix"
- "\030$ \001(\t\022\030\n\020csharp_namespace\030% \001(\t\022C\n\024unin"
- "terpreted_option\030\347\007 \003(\0132$.google.protobu"
- "f.UninterpretedOption\":\n\014OptimizeMode\022\t\n"
- "\005SPEED\020\001\022\r\n\tCODE_SIZE\020\002\022\020\n\014LITE_RUNTIME\020"
- "\003*\t\010\350\007\020\200\200\200\200\002J\004\010&\020\'\"\354\001\n\016MessageOptions\022&\n"
- "\027message_set_wire_format\030\001 \001(\010:\005false\022.\n"
- "\037no_standard_descriptor_accessor\030\002 \001(\010:\005"
- "false\022\031\n\ndeprecated\030\003 \001(\010:\005false\022\021\n\tmap_"
- "entry\030\007 \001(\010\022C\n\024uninterpreted_option\030\347\007 \003"
- "(\0132$.google.protobuf.UninterpretedOption"
- "*\t\010\350\007\020\200\200\200\200\002J\004\010\010\020\t\"\236\003\n\014FieldOptions\022:\n\005ct"
- "ype\030\001 \001(\0162#.google.protobuf.FieldOptions"
- ".CType:\006STRING\022\016\n\006packed\030\002 \001(\010\022\?\n\006jstype"
- "\030\006 \001(\0162$.google.protobuf.FieldOptions.JS"
- "Type:\tJS_NORMAL\022\023\n\004lazy\030\005 \001(\010:\005false\022\031\n\n"
- "deprecated\030\003 \001(\010:\005false\022\023\n\004weak\030\n \001(\010:\005f"
+ "(\t\022\"\n\023java_multiple_files\030\n \001(\010:\005false\022)"
+ "\n\035java_generate_equals_and_hash\030\024 \001(\010B\002\030"
+ "\001\022%\n\026java_string_check_utf8\030\033 \001(\010:\005false"
+ "\022F\n\014optimize_for\030\t \001(\0162).google.protobuf"
+ ".FileOptions.OptimizeMode:\005SPEED\022\022\n\ngo_p"
+ "ackage\030\013 \001(\t\022\"\n\023cc_generic_services\030\020 \001("
+ "\010:\005false\022$\n\025java_generic_services\030\021 \001(\010:"
+ "\005false\022\"\n\023py_generic_services\030\022 \001(\010:\005fal"
+ "se\022\031\n\ndeprecated\030\027 \001(\010:\005false\022\037\n\020cc_enab"
+ "le_arenas\030\037 \001(\010:\005false\022\031\n\021objc_class_pre"
+ "fix\030$ \001(\t\022\030\n\020csharp_namespace\030% \001(\t\022C\n\024u"
+ "ninterpreted_option\030\347\007 \003(\0132$.google.prot"
+ "obuf.UninterpretedOption\":\n\014OptimizeMode"
+ "\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE\020\002\022\020\n\014LITE_RUNTI"
+ "ME\020\003*\t\010\350\007\020\200\200\200\200\002J\004\010&\020\'\"\354\001\n\016MessageOptions"
+ "\022&\n\027message_set_wire_format\030\001 \001(\010:\005false"
+ "\022.\n\037no_standard_descriptor_accessor\030\002 \001("
+ "\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:\005false\022\021\n\tm"
+ "ap_entry\030\007 \001(\010\022C\n\024uninterpreted_option\030\347"
+ "\007 \003(\0132$.google.protobuf.UninterpretedOpt"
+ "ion*\t\010\350\007\020\200\200\200\200\002J\004\010\010\020\t\"\236\003\n\014FieldOptions\022:\n"
+ "\005ctype\030\001 \001(\0162#.google.protobuf.FieldOpti"
+ "ons.CType:\006STRING\022\016\n\006packed\030\002 \001(\010\022\?\n\006jst"
+ "ype\030\006 \001(\0162$.google.protobuf.FieldOptions"
+ ".JSType:\tJS_NORMAL\022\023\n\004lazy\030\005 \001(\010:\005false\022"
+ "\031\n\ndeprecated\030\003 \001(\010:\005false\022\023\n\004weak\030\n \001(\010"
+ ":\005false\022C\n\024uninterpreted_option\030\347\007 \003(\0132$"
+ ".google.protobuf.UninterpretedOption\"/\n\005"
+ "CType\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001\022\020\n\014STRING_PI"
+ "ECE\020\002\"5\n\006JSType\022\r\n\tJS_NORMAL\020\000\022\r\n\tJS_STR"
+ "ING\020\001\022\r\n\tJS_NUMBER\020\002*\t\010\350\007\020\200\200\200\200\002J\004\010\004\020\005\"^\n"
+ "\014OneofOptions\022C\n\024uninterpreted_option\030\347\007"
+ " \003(\0132$.google.protobuf.UninterpretedOpti"
+ "on*\t\010\350\007\020\200\200\200\200\002\"\215\001\n\013EnumOptions\022\023\n\013allow_a"
+ "lias\030\002 \001(\010\022\031\n\ndeprecated\030\003 \001(\010:\005false\022C\n"
+ "\024uninterpreted_option\030\347\007 \003(\0132$.google.pr"
+ "otobuf.UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"}\n"
+ "\020EnumValueOptions\022\031\n\ndeprecated\030\001 \001(\010:\005f"
"alse\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.go"
- "ogle.protobuf.UninterpretedOption\"/\n\005CTy"
- "pe\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001\022\020\n\014STRING_PIECE"
- "\020\002\"5\n\006JSType\022\r\n\tJS_NORMAL\020\000\022\r\n\tJS_STRING"
- "\020\001\022\r\n\tJS_NUMBER\020\002*\t\010\350\007\020\200\200\200\200\002J\004\010\004\020\005\"^\n\014On"
- "eofOptions\022C\n\024uninterpreted_option\030\347\007 \003("
- "\0132$.google.protobuf.UninterpretedOption*"
- "\t\010\350\007\020\200\200\200\200\002\"\215\001\n\013EnumOptions\022\023\n\013allow_alia"
- "s\030\002 \001(\010\022\031\n\ndeprecated\030\003 \001(\010:\005false\022C\n\024un"
- "interpreted_option\030\347\007 \003(\0132$.google.proto"
- "buf.UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"}\n\020En"
- "umValueOptions\022\031\n\ndeprecated\030\001 \001(\010:\005fals"
- "e\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.googl"
- "e.protobuf.UninterpretedOption*\t\010\350\007\020\200\200\200\200"
- "\002\"{\n\016ServiceOptions\022\031\n\ndeprecated\030! \001(\010:"
- "\005false\022C\n\024uninterpreted_option\030\347\007 \003(\0132$."
- "google.protobuf.UninterpretedOption*\t\010\350\007"
- "\020\200\200\200\200\002\"z\n\rMethodOptions\022\031\n\ndeprecated\030! "
- "\001(\010:\005false\022C\n\024uninterpreted_option\030\347\007 \003("
- "\0132$.google.protobuf.UninterpretedOption*"
- "\t\010\350\007\020\200\200\200\200\002\"\236\002\n\023UninterpretedOption\022;\n\004na"
- "me\030\002 \003(\0132-.google.protobuf.Uninterpreted"
- "Option.NamePart\022\030\n\020identifier_value\030\003 \001("
- "\t\022\032\n\022positive_int_value\030\004 \001(\004\022\032\n\022negativ"
- "e_int_value\030\005 \001(\003\022\024\n\014double_value\030\006 \001(\001\022"
- "\024\n\014string_value\030\007 \001(\014\022\027\n\017aggregate_value"
- "\030\010 \001(\t\0323\n\010NamePart\022\021\n\tname_part\030\001 \002(\t\022\024\n"
- "\014is_extension\030\002 \002(\010\"\325\001\n\016SourceCodeInfo\022:"
- "\n\010location\030\001 \003(\0132(.google.protobuf.Sourc"
- "eCodeInfo.Location\032\206\001\n\010Location\022\020\n\004path\030"
- "\001 \003(\005B\002\020\001\022\020\n\004span\030\002 \003(\005B\002\020\001\022\030\n\020leading_c"
- "omments\030\003 \001(\t\022\031\n\021trailing_comments\030\004 \001(\t"
- "\022!\n\031leading_detached_comments\030\006 \003(\t\"\247\001\n\021"
- "GeneratedCodeInfo\022A\n\nannotation\030\001 \003(\0132-."
- "google.protobuf.GeneratedCodeInfo.Annota"
- "tion\032O\n\nAnnotation\022\020\n\004path\030\001 \003(\005B\002\020\001\022\023\n\013"
- "source_file\030\002 \001(\t\022\r\n\005begin\030\003 \001(\005\022\013\n\003end\030"
- "\004 \001(\005BX\n\023com.google.protobufB\020Descriptor"
- "ProtosH\001Z\ndescriptor\242\002\003GPB\252\002\032Google.Prot"
- "obuf.Reflection", 5255);
+ "ogle.protobuf.UninterpretedOption*\t\010\350\007\020\200"
+ "\200\200\200\002\"{\n\016ServiceOptions\022\031\n\ndeprecated\030! \001"
+ "(\010:\005false\022C\n\024uninterpreted_option\030\347\007 \003(\013"
+ "2$.google.protobuf.UninterpretedOption*\t"
+ "\010\350\007\020\200\200\200\200\002\"z\n\rMethodOptions\022\031\n\ndeprecated"
+ "\030! \001(\010:\005false\022C\n\024uninterpreted_option\030\347\007"
+ " \003(\0132$.google.protobuf.UninterpretedOpti"
+ "on*\t\010\350\007\020\200\200\200\200\002\"\236\002\n\023UninterpretedOption\022;\n"
+ "\004name\030\002 \003(\0132-.google.protobuf.Uninterpre"
+ "tedOption.NamePart\022\030\n\020identifier_value\030\003"
+ " \001(\t\022\032\n\022positive_int_value\030\004 \001(\004\022\032\n\022nega"
+ "tive_int_value\030\005 \001(\003\022\024\n\014double_value\030\006 \001"
+ "(\001\022\024\n\014string_value\030\007 \001(\014\022\027\n\017aggregate_va"
+ "lue\030\010 \001(\t\0323\n\010NamePart\022\021\n\tname_part\030\001 \002(\t"
+ "\022\024\n\014is_extension\030\002 \002(\010\"\325\001\n\016SourceCodeInf"
+ "o\022:\n\010location\030\001 \003(\0132(.google.protobuf.So"
+ "urceCodeInfo.Location\032\206\001\n\010Location\022\020\n\004pa"
+ "th\030\001 \003(\005B\002\020\001\022\020\n\004span\030\002 \003(\005B\002\020\001\022\030\n\020leadin"
+ "g_comments\030\003 \001(\t\022\031\n\021trailing_comments\030\004 "
+ "\001(\t\022!\n\031leading_detached_comments\030\006 \003(\t\"\247"
+ "\001\n\021GeneratedCodeInfo\022A\n\nannotation\030\001 \003(\013"
+ "2-.google.protobuf.GeneratedCodeInfo.Ann"
+ "otation\032O\n\nAnnotation\022\020\n\004path\030\001 \003(\005B\002\020\001\022"
+ "\023\n\013source_file\030\002 \001(\t\022\r\n\005begin\030\003 \001(\005\022\013\n\003e"
+ "nd\030\004 \001(\005BX\n\023com.google.protobufB\020Descrip"
+ "torProtosH\001Z\ndescriptor\242\002\003GPB\252\002\032Google.P"
+ "rotobuf.Reflection", 5298);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"google/protobuf/descriptor.proto", &protobuf_RegisterTypes);
::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto);
@@ -8174,6 +8176,7 @@ const int FileOptions::OptimizeMode_ARRAYSIZE;
const int FileOptions::kJavaPackageFieldNumber;
const int FileOptions::kJavaOuterClassnameFieldNumber;
const int FileOptions::kJavaMultipleFilesFieldNumber;
+const int FileOptions::kJavaGenerateEqualsAndHashFieldNumber;
const int FileOptions::kJavaStringCheckUtf8FieldNumber;
const int FileOptions::kOptimizeForFieldNumber;
const int FileOptions::kGoPackageFieldNumber;
@@ -8275,7 +8278,7 @@ void FileOptions::Clear() {
} while (0)
if (_has_bits_[0 / 32] & 255u) {
- ZR_(java_multiple_files_, java_generic_services_);
+ ZR_(java_multiple_files_, cc_generic_services_);
if (has_java_package()) {
java_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -8287,8 +8290,8 @@ void FileOptions::Clear() {
go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
}
- if (_has_bits_[8 / 32] & 7936u) {
- ZR_(py_generic_services_, cc_enable_arenas_);
+ if (_has_bits_[8 / 32] & 16128u) {
+ ZR_(java_generic_services_, cc_enable_arenas_);
if (has_objc_class_prefix()) {
objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -8443,6 +8446,21 @@ bool FileOptions::MergePartialFromCodedStream(
} else {
goto handle_unusual;
}
+ if (input->ExpectTag(160)) goto parse_java_generate_equals_and_hash;
+ break;
+ }
+
+ // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+ case 20: {
+ if (tag == 160) {
+ parse_java_generate_equals_and_hash:
+ set_has_java_generate_equals_and_hash();
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &java_generate_equals_and_hash_)));
+ } else {
+ goto handle_unusual;
+ }
if (input->ExpectTag(184)) goto parse_deprecated;
break;
}
@@ -8629,6 +8647,11 @@ void FileOptions::SerializeWithCachedSizes(
::google::protobuf::internal::WireFormatLite::WriteBool(18, this->py_generic_services(), output);
}
+ // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+ if (has_java_generate_equals_and_hash()) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(20, this->java_generate_equals_and_hash(), output);
+ }
+
// optional bool deprecated = 23 [default = false];
if (has_deprecated()) {
::google::protobuf::internal::WireFormatLite::WriteBool(23, this->deprecated(), output);
@@ -8744,6 +8767,11 @@ void FileOptions::SerializeWithCachedSizes(
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(18, this->py_generic_services(), target);
}
+ // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+ if (has_java_generate_equals_and_hash()) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(20, this->java_generate_equals_and_hash(), target);
+ }
+
// optional bool deprecated = 23 [default = false];
if (has_deprecated()) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(23, this->deprecated(), target);
@@ -8824,6 +8852,11 @@ size_t FileOptions::ByteSizeLong() const {
total_size += 1 + 1;
}
+ // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+ if (has_java_generate_equals_and_hash()) {
+ total_size += 2 + 1;
+ }
+
// optional bool java_string_check_utf8 = 27 [default = false];
if (has_java_string_check_utf8()) {
total_size += 2 + 1;
@@ -8847,13 +8880,13 @@ size_t FileOptions::ByteSizeLong() const {
total_size += 2 + 1;
}
+ }
+ if (_has_bits_[8 / 32] & 16128u) {
// optional bool java_generic_services = 17 [default = false];
if (has_java_generic_services()) {
total_size += 2 + 1;
}
- }
- if (_has_bits_[8 / 32] & 7936u) {
// optional bool py_generic_services = 18 [default = false];
if (has_py_generic_services()) {
total_size += 2 + 1;
@@ -8948,6 +8981,9 @@ void FileOptions::UnsafeMergeFrom(const FileOptions& from) {
if (from.has_java_multiple_files()) {
set_java_multiple_files(from.java_multiple_files());
}
+ if (from.has_java_generate_equals_and_hash()) {
+ set_java_generate_equals_and_hash(from.java_generate_equals_and_hash());
+ }
if (from.has_java_string_check_utf8()) {
set_java_string_check_utf8(from.java_string_check_utf8());
}
@@ -8961,11 +8997,11 @@ void FileOptions::UnsafeMergeFrom(const FileOptions& from) {
if (from.has_cc_generic_services()) {
set_cc_generic_services(from.cc_generic_services());
}
+ }
+ if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
if (from.has_java_generic_services()) {
set_java_generic_services(from.java_generic_services());
}
- }
- if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
if (from.has_py_generic_services()) {
set_py_generic_services(from.py_generic_services());
}
@@ -9023,6 +9059,7 @@ void FileOptions::InternalSwap(FileOptions* other) {
java_package_.Swap(&other->java_package_);
java_outer_classname_.Swap(&other->java_outer_classname_);
std::swap(java_multiple_files_, other->java_multiple_files_);
+ std::swap(java_generate_equals_and_hash_, other->java_generate_equals_and_hash_);
std::swap(java_string_check_utf8_, other->java_string_check_utf8_);
std::swap(optimize_for_, other->optimize_for_);
go_package_.Swap(&other->go_package_);
@@ -9183,15 +9220,39 @@ void FileOptions::set_java_multiple_files(bool value) {
// @@protoc_insertion_point(field_set:google.protobuf.FileOptions.java_multiple_files)
}
+// optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+bool FileOptions::has_java_generate_equals_and_hash() const {
+ return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void FileOptions::set_has_java_generate_equals_and_hash() {
+ _has_bits_[0] |= 0x00000008u;
+}
+void FileOptions::clear_has_java_generate_equals_and_hash() {
+ _has_bits_[0] &= ~0x00000008u;
+}
+void FileOptions::clear_java_generate_equals_and_hash() {
+ java_generate_equals_and_hash_ = false;
+ clear_has_java_generate_equals_and_hash();
+}
+bool FileOptions::java_generate_equals_and_hash() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FileOptions.java_generate_equals_and_hash)
+ return java_generate_equals_and_hash_;
+}
+void FileOptions::set_java_generate_equals_and_hash(bool value) {
+ set_has_java_generate_equals_and_hash();
+ java_generate_equals_and_hash_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.java_generate_equals_and_hash)
+}
+
// optional bool java_string_check_utf8 = 27 [default = false];
bool FileOptions::has_java_string_check_utf8() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
+ return (_has_bits_[0] & 0x00000010u) != 0;
}
void FileOptions::set_has_java_string_check_utf8() {
- _has_bits_[0] |= 0x00000008u;
+ _has_bits_[0] |= 0x00000010u;
}
void FileOptions::clear_has_java_string_check_utf8() {
- _has_bits_[0] &= ~0x00000008u;
+ _has_bits_[0] &= ~0x00000010u;
}
void FileOptions::clear_java_string_check_utf8() {
java_string_check_utf8_ = false;
@@ -9209,13 +9270,13 @@ void FileOptions::set_java_string_check_utf8(bool value) {
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
bool FileOptions::has_optimize_for() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
+ return (_has_bits_[0] & 0x00000020u) != 0;
}
void FileOptions::set_has_optimize_for() {
- _has_bits_[0] |= 0x00000010u;
+ _has_bits_[0] |= 0x00000020u;
}
void FileOptions::clear_has_optimize_for() {
- _has_bits_[0] &= ~0x00000010u;
+ _has_bits_[0] &= ~0x00000020u;
}
void FileOptions::clear_optimize_for() {
optimize_for_ = 1;
@@ -9234,13 +9295,13 @@ void FileOptions::set_optimize_for(::google::protobuf::FileOptions_OptimizeMode
// optional string go_package = 11;
bool FileOptions::has_go_package() const {
- return (_has_bits_[0] & 0x00000020u) != 0;
+ return (_has_bits_[0] & 0x00000040u) != 0;
}
void FileOptions::set_has_go_package() {
- _has_bits_[0] |= 0x00000020u;
+ _has_bits_[0] |= 0x00000040u;
}
void FileOptions::clear_has_go_package() {
- _has_bits_[0] &= ~0x00000020u;
+ _has_bits_[0] &= ~0x00000040u;
}
void FileOptions::clear_go_package() {
go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -9288,13 +9349,13 @@ void FileOptions::set_allocated_go_package(::std::string* go_package) {
// optional bool cc_generic_services = 16 [default = false];
bool FileOptions::has_cc_generic_services() const {
- return (_has_bits_[0] & 0x00000040u) != 0;
+ return (_has_bits_[0] & 0x00000080u) != 0;
}
void FileOptions::set_has_cc_generic_services() {
- _has_bits_[0] |= 0x00000040u;
+ _has_bits_[0] |= 0x00000080u;
}
void FileOptions::clear_has_cc_generic_services() {
- _has_bits_[0] &= ~0x00000040u;
+ _has_bits_[0] &= ~0x00000080u;
}
void FileOptions::clear_cc_generic_services() {
cc_generic_services_ = false;
@@ -9312,13 +9373,13 @@ void FileOptions::set_cc_generic_services(bool value) {
// optional bool java_generic_services = 17 [default = false];
bool FileOptions::has_java_generic_services() const {
- return (_has_bits_[0] & 0x00000080u) != 0;
+ return (_has_bits_[0] & 0x00000100u) != 0;
}
void FileOptions::set_has_java_generic_services() {
- _has_bits_[0] |= 0x00000080u;
+ _has_bits_[0] |= 0x00000100u;
}
void FileOptions::clear_has_java_generic_services() {
- _has_bits_[0] &= ~0x00000080u;
+ _has_bits_[0] &= ~0x00000100u;
}
void FileOptions::clear_java_generic_services() {
java_generic_services_ = false;
@@ -9336,13 +9397,13 @@ void FileOptions::set_java_generic_services(bool value) {
// optional bool py_generic_services = 18 [default = false];
bool FileOptions::has_py_generic_services() const {
- return (_has_bits_[0] & 0x00000100u) != 0;
+ return (_has_bits_[0] & 0x00000200u) != 0;
}
void FileOptions::set_has_py_generic_services() {
- _has_bits_[0] |= 0x00000100u;
+ _has_bits_[0] |= 0x00000200u;
}
void FileOptions::clear_has_py_generic_services() {
- _has_bits_[0] &= ~0x00000100u;
+ _has_bits_[0] &= ~0x00000200u;
}
void FileOptions::clear_py_generic_services() {
py_generic_services_ = false;
@@ -9360,13 +9421,13 @@ void FileOptions::set_py_generic_services(bool value) {
// optional bool deprecated = 23 [default = false];
bool FileOptions::has_deprecated() const {
- return (_has_bits_[0] & 0x00000200u) != 0;
+ return (_has_bits_[0] & 0x00000400u) != 0;
}
void FileOptions::set_has_deprecated() {
- _has_bits_[0] |= 0x00000200u;
+ _has_bits_[0] |= 0x00000400u;
}
void FileOptions::clear_has_deprecated() {
- _has_bits_[0] &= ~0x00000200u;
+ _has_bits_[0] &= ~0x00000400u;
}
void FileOptions::clear_deprecated() {
deprecated_ = false;
@@ -9384,13 +9445,13 @@ void FileOptions::set_deprecated(bool value) {
// optional bool cc_enable_arenas = 31 [default = false];
bool FileOptions::has_cc_enable_arenas() const {
- return (_has_bits_[0] & 0x00000400u) != 0;
+ return (_has_bits_[0] & 0x00000800u) != 0;
}
void FileOptions::set_has_cc_enable_arenas() {
- _has_bits_[0] |= 0x00000400u;
+ _has_bits_[0] |= 0x00000800u;
}
void FileOptions::clear_has_cc_enable_arenas() {
- _has_bits_[0] &= ~0x00000400u;
+ _has_bits_[0] &= ~0x00000800u;
}
void FileOptions::clear_cc_enable_arenas() {
cc_enable_arenas_ = false;
@@ -9408,13 +9469,13 @@ void FileOptions::set_cc_enable_arenas(bool value) {
// optional string objc_class_prefix = 36;
bool FileOptions::has_objc_class_prefix() const {
- return (_has_bits_[0] & 0x00000800u) != 0;
+ return (_has_bits_[0] & 0x00001000u) != 0;
}
void FileOptions::set_has_objc_class_prefix() {
- _has_bits_[0] |= 0x00000800u;
+ _has_bits_[0] |= 0x00001000u;
}
void FileOptions::clear_has_objc_class_prefix() {
- _has_bits_[0] &= ~0x00000800u;
+ _has_bits_[0] &= ~0x00001000u;
}
void FileOptions::clear_objc_class_prefix() {
objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -9462,13 +9523,13 @@ void FileOptions::set_allocated_objc_class_prefix(::std::string* objc_class_pref
// optional string csharp_namespace = 37;
bool FileOptions::has_csharp_namespace() const {
- return (_has_bits_[0] & 0x00001000u) != 0;
+ return (_has_bits_[0] & 0x00002000u) != 0;
}
void FileOptions::set_has_csharp_namespace() {
- _has_bits_[0] |= 0x00001000u;
+ _has_bits_[0] |= 0x00002000u;
}
void FileOptions::clear_has_csharp_namespace() {
- _has_bits_[0] &= ~0x00001000u;
+ _has_bits_[0] &= ~0x00002000u;
}
void FileOptions::clear_csharp_namespace() {
csharp_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h
index 7546d7bd..75511d5a 100644
--- a/src/google/protobuf/descriptor.pb.h
+++ b/src/google/protobuf/descriptor.pb.h
@@ -2082,6 +2082,13 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p
bool java_multiple_files() const;
void set_java_multiple_files(bool value);
+ // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+ GOOGLE_PROTOBUF_DEPRECATED_ATTR bool has_java_generate_equals_and_hash() const;
+ GOOGLE_PROTOBUF_DEPRECATED_ATTR void clear_java_generate_equals_and_hash();
+ GOOGLE_PROTOBUF_DEPRECATED_ATTR static const int kJavaGenerateEqualsAndHashFieldNumber = 20;
+ GOOGLE_PROTOBUF_DEPRECATED_ATTR bool java_generate_equals_and_hash() const;
+ GOOGLE_PROTOBUF_DEPRECATED_ATTR void set_java_generate_equals_and_hash(bool value);
+
// optional bool java_string_check_utf8 = 27 [default = false];
bool has_java_string_check_utf8() const;
void clear_java_string_check_utf8();
@@ -2188,6 +2195,8 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p
inline void clear_has_java_outer_classname();
inline void set_has_java_multiple_files();
inline void clear_has_java_multiple_files();
+ inline void set_has_java_generate_equals_and_hash();
+ inline void clear_has_java_generate_equals_and_hash();
inline void set_has_java_string_check_utf8();
inline void clear_has_java_string_check_utf8();
inline void set_has_optimize_for();
@@ -2221,6 +2230,7 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p
::google::protobuf::internal::ArenaStringPtr objc_class_prefix_;
::google::protobuf::internal::ArenaStringPtr csharp_namespace_;
bool java_multiple_files_;
+ bool java_generate_equals_and_hash_;
bool java_string_check_utf8_;
bool cc_generic_services_;
bool java_generic_services_;
@@ -6292,15 +6302,39 @@ inline void FileOptions::set_java_multiple_files(bool value) {
// @@protoc_insertion_point(field_set:google.protobuf.FileOptions.java_multiple_files)
}
+// optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+inline bool FileOptions::has_java_generate_equals_and_hash() const {
+ return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void FileOptions::set_has_java_generate_equals_and_hash() {
+ _has_bits_[0] |= 0x00000008u;
+}
+inline void FileOptions::clear_has_java_generate_equals_and_hash() {
+ _has_bits_[0] &= ~0x00000008u;
+}
+inline void FileOptions::clear_java_generate_equals_and_hash() {
+ java_generate_equals_and_hash_ = false;
+ clear_has_java_generate_equals_and_hash();
+}
+inline bool FileOptions::java_generate_equals_and_hash() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FileOptions.java_generate_equals_and_hash)
+ return java_generate_equals_and_hash_;
+}
+inline void FileOptions::set_java_generate_equals_and_hash(bool value) {
+ set_has_java_generate_equals_and_hash();
+ java_generate_equals_and_hash_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.java_generate_equals_and_hash)
+}
+
// optional bool java_string_check_utf8 = 27 [default = false];
inline bool FileOptions::has_java_string_check_utf8() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
+ return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void FileOptions::set_has_java_string_check_utf8() {
- _has_bits_[0] |= 0x00000008u;
+ _has_bits_[0] |= 0x00000010u;
}
inline void FileOptions::clear_has_java_string_check_utf8() {
- _has_bits_[0] &= ~0x00000008u;
+ _has_bits_[0] &= ~0x00000010u;
}
inline void FileOptions::clear_java_string_check_utf8() {
java_string_check_utf8_ = false;
@@ -6318,13 +6352,13 @@ inline void FileOptions::set_java_string_check_utf8(bool value) {
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
inline bool FileOptions::has_optimize_for() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
+ return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void FileOptions::set_has_optimize_for() {
- _has_bits_[0] |= 0x00000010u;
+ _has_bits_[0] |= 0x00000020u;
}
inline void FileOptions::clear_has_optimize_for() {
- _has_bits_[0] &= ~0x00000010u;
+ _has_bits_[0] &= ~0x00000020u;
}
inline void FileOptions::clear_optimize_for() {
optimize_for_ = 1;
@@ -6343,13 +6377,13 @@ inline void FileOptions::set_optimize_for(::google::protobuf::FileOptions_Optimi
// optional string go_package = 11;
inline bool FileOptions::has_go_package() const {
- return (_has_bits_[0] & 0x00000020u) != 0;
+ return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void FileOptions::set_has_go_package() {
- _has_bits_[0] |= 0x00000020u;
+ _has_bits_[0] |= 0x00000040u;
}
inline void FileOptions::clear_has_go_package() {
- _has_bits_[0] &= ~0x00000020u;
+ _has_bits_[0] &= ~0x00000040u;
}
inline void FileOptions::clear_go_package() {
go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -6397,13 +6431,13 @@ inline void FileOptions::set_allocated_go_package(::std::string* go_package) {
// optional bool cc_generic_services = 16 [default = false];
inline bool FileOptions::has_cc_generic_services() const {
- return (_has_bits_[0] & 0x00000040u) != 0;
+ return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void FileOptions::set_has_cc_generic_services() {
- _has_bits_[0] |= 0x00000040u;
+ _has_bits_[0] |= 0x00000080u;
}
inline void FileOptions::clear_has_cc_generic_services() {
- _has_bits_[0] &= ~0x00000040u;
+ _has_bits_[0] &= ~0x00000080u;
}
inline void FileOptions::clear_cc_generic_services() {
cc_generic_services_ = false;
@@ -6421,13 +6455,13 @@ inline void FileOptions::set_cc_generic_services(bool value) {
// optional bool java_generic_services = 17 [default = false];
inline bool FileOptions::has_java_generic_services() const {
- return (_has_bits_[0] & 0x00000080u) != 0;
+ return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void FileOptions::set_has_java_generic_services() {
- _has_bits_[0] |= 0x00000080u;
+ _has_bits_[0] |= 0x00000100u;
}
inline void FileOptions::clear_has_java_generic_services() {
- _has_bits_[0] &= ~0x00000080u;
+ _has_bits_[0] &= ~0x00000100u;
}
inline void FileOptions::clear_java_generic_services() {
java_generic_services_ = false;
@@ -6445,13 +6479,13 @@ inline void FileOptions::set_java_generic_services(bool value) {
// optional bool py_generic_services = 18 [default = false];
inline bool FileOptions::has_py_generic_services() const {
- return (_has_bits_[0] & 0x00000100u) != 0;
+ return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void FileOptions::set_has_py_generic_services() {
- _has_bits_[0] |= 0x00000100u;
+ _has_bits_[0] |= 0x00000200u;
}
inline void FileOptions::clear_has_py_generic_services() {
- _has_bits_[0] &= ~0x00000100u;
+ _has_bits_[0] &= ~0x00000200u;
}
inline void FileOptions::clear_py_generic_services() {
py_generic_services_ = false;
@@ -6469,13 +6503,13 @@ inline void FileOptions::set_py_generic_services(bool value) {
// optional bool deprecated = 23 [default = false];
inline bool FileOptions::has_deprecated() const {
- return (_has_bits_[0] & 0x00000200u) != 0;
+ return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void FileOptions::set_has_deprecated() {
- _has_bits_[0] |= 0x00000200u;
+ _has_bits_[0] |= 0x00000400u;
}
inline void FileOptions::clear_has_deprecated() {
- _has_bits_[0] &= ~0x00000200u;
+ _has_bits_[0] &= ~0x00000400u;
}
inline void FileOptions::clear_deprecated() {
deprecated_ = false;
@@ -6493,13 +6527,13 @@ inline void FileOptions::set_deprecated(bool value) {
// optional bool cc_enable_arenas = 31 [default = false];
inline bool FileOptions::has_cc_enable_arenas() const {
- return (_has_bits_[0] & 0x00000400u) != 0;
+ return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void FileOptions::set_has_cc_enable_arenas() {
- _has_bits_[0] |= 0x00000400u;
+ _has_bits_[0] |= 0x00000800u;
}
inline void FileOptions::clear_has_cc_enable_arenas() {
- _has_bits_[0] &= ~0x00000400u;
+ _has_bits_[0] &= ~0x00000800u;
}
inline void FileOptions::clear_cc_enable_arenas() {
cc_enable_arenas_ = false;
@@ -6517,13 +6551,13 @@ inline void FileOptions::set_cc_enable_arenas(bool value) {
// optional string objc_class_prefix = 36;
inline bool FileOptions::has_objc_class_prefix() const {
- return (_has_bits_[0] & 0x00000800u) != 0;
+ return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void FileOptions::set_has_objc_class_prefix() {
- _has_bits_[0] |= 0x00000800u;
+ _has_bits_[0] |= 0x00001000u;
}
inline void FileOptions::clear_has_objc_class_prefix() {
- _has_bits_[0] &= ~0x00000800u;
+ _has_bits_[0] &= ~0x00001000u;
}
inline void FileOptions::clear_objc_class_prefix() {
objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -6571,13 +6605,13 @@ inline void FileOptions::set_allocated_objc_class_prefix(::std::string* objc_cla
// optional string csharp_namespace = 37;
inline bool FileOptions::has_csharp_namespace() const {
- return (_has_bits_[0] & 0x00001000u) != 0;
+ return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void FileOptions::set_has_csharp_namespace() {
- _has_bits_[0] |= 0x00001000u;
+ _has_bits_[0] |= 0x00002000u;
}
inline void FileOptions::clear_has_csharp_namespace() {
- _has_bits_[0] &= ~0x00001000u;
+ _has_bits_[0] &= ~0x00002000u;
}
inline void FileOptions::clear_csharp_namespace() {
csharp_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
diff --git a/src/google/protobuf/descriptor.proto b/src/google/protobuf/descriptor.proto
index 23a9fe92..558ae23e 100644
--- a/src/google/protobuf/descriptor.proto
+++ b/src/google/protobuf/descriptor.proto
@@ -305,10 +305,8 @@ message FileOptions {
// top-level extensions defined in the file.
optional bool java_multiple_files = 10 [default=false];
- // BEGIN PROTOBUF-OPENSOURCE
- // // This option does nothing.
- // optional bool java_generate_equals_and_hash = 20 [deprecated=true];
- // END PROTOBUF-OPENSOURCE
+ // This option does nothing.
+ optional bool java_generate_equals_and_hash = 20 [deprecated=true];
// If set true, then the Java2 code generator will generate code that
// throws an exception whenever an attempt is made to assign a non-UTF-8