Add module for JavaLite and fix builds
diff --git a/BUILD b/BUILD
index f1e94a5..45a39b9 100644
--- a/BUILD
+++ b/BUILD
@@ -116,6 +116,7 @@
"src/google/protobuf/implicit_weak_message.cc",
"src/google/protobuf/io/coded_stream.cc",
"src/google/protobuf/io/strtod.cc",
+ "src/google/protobuf/io/io_win32.cc",
"src/google/protobuf/io/zero_copy_stream.cc",
"src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
"src/google/protobuf/message_lite.cc",
@@ -124,7 +125,6 @@
"src/google/protobuf/stubs/bytestream.cc",
"src/google/protobuf/stubs/common.cc",
"src/google/protobuf/stubs/int128.cc",
- "src/google/protobuf/stubs/io_win32.cc",
"src/google/protobuf/stubs/status.cc",
"src/google/protobuf/stubs/statusor.cc",
"src/google/protobuf/stubs/stringpiece.cc",
@@ -514,7 +514,7 @@
cc_test(
name = "win32_test",
- srcs = ["src/google/protobuf/stubs/io_win32_unittest.cc"],
+ srcs = ["src/google/protobuf/io/io_win32_unittest.cc"],
deps = [
":protobuf_lite",
"//external:gtest_main",
@@ -553,6 +553,7 @@
"src/google/protobuf/extension_set_unittest.cc",
"src/google/protobuf/generated_message_reflection_unittest.cc",
"src/google/protobuf/io/coded_stream_unittest.cc",
+ "src/google/protobuf/io/io_win32_unittest.cc",
"src/google/protobuf/io/printer_unittest.cc",
"src/google/protobuf/io/tokenizer_unittest.cc",
"src/google/protobuf/io/zero_copy_stream_unittest.cc",
@@ -572,7 +573,6 @@
"src/google/protobuf/stubs/bytestream_unittest.cc",
"src/google/protobuf/stubs/common_unittest.cc",
"src/google/protobuf/stubs/int128_unittest.cc",
- "src/google/protobuf/stubs/io_win32_unittest.cc",
"src/google/protobuf/stubs/status_test.cc",
"src/google/protobuf/stubs/statusor_test.cc",
"src/google/protobuf/stubs/stringpiece_unittest.cc",
diff --git a/Makefile.am b/Makefile.am
index 9502430..903eca7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -225,17 +225,25 @@
java/core/src/main/java/com/google/protobuf/AbstractMessageLite.java \
java/core/src/main/java/com/google/protobuf/AbstractParser.java \
java/core/src/main/java/com/google/protobuf/AbstractProtobufList.java \
+ java/core/src/main/java/com/google/protobuf/AllocatedBuffer.java \
java/core/src/main/java/com/google/protobuf/Android.java \
+ java/core/src/main/java/com/google/protobuf/ArrayDecoders.java \
+ java/core/src/main/java/com/google/protobuf/BinaryReader.java \
+ java/core/src/main/java/com/google/protobuf/BinaryWriter.java \
java/core/src/main/java/com/google/protobuf/BlockingRpcChannel.java \
java/core/src/main/java/com/google/protobuf/BlockingService.java \
java/core/src/main/java/com/google/protobuf/BooleanArrayList.java \
+ java/core/src/main/java/com/google/protobuf/BufferAllocator.java \
java/core/src/main/java/com/google/protobuf/ByteBufferWriter.java \
java/core/src/main/java/com/google/protobuf/ByteOutput.java \
java/core/src/main/java/com/google/protobuf/ByteString.java \
java/core/src/main/java/com/google/protobuf/CodedInputStream.java \
+ java/core/src/main/java/com/google/protobuf/CodedInputStreamReader.java \
java/core/src/main/java/com/google/protobuf/CodedOutputStream.java \
- java/core/src/main/java/com/google/protobuf/DiscardUnknownFieldsParser.java \
+ java/core/src/main/java/com/google/protobuf/CodedOutputStreamWriter.java \
+ java/core/src/main/java/com/google/protobuf/DescriptorMessageInfoFactory.java \
java/core/src/main/java/com/google/protobuf/Descriptors.java \
+ java/core/src/main/java/com/google/protobuf/DiscardUnknownFieldsParser.java \
java/core/src/main/java/com/google/protobuf/DoubleArrayList.java \
java/core/src/main/java/com/google/protobuf/DynamicMessage.java \
java/core/src/main/java/com/google/protobuf/ExperimentalApi.java \
@@ -244,37 +252,65 @@
java/core/src/main/java/com/google/protobuf/ExtensionRegistry.java \
java/core/src/main/java/com/google/protobuf/ExtensionRegistryFactory.java \
java/core/src/main/java/com/google/protobuf/ExtensionRegistryLite.java \
+ java/core/src/main/java/com/google/protobuf/ExtensionSchema.java \
+ java/core/src/main/java/com/google/protobuf/ExtensionSchemaFull.java \
+ java/core/src/main/java/com/google/protobuf/ExtensionSchemaLite.java \
+ java/core/src/main/java/com/google/protobuf/ExtensionSchemas.java \
+ java/core/src/main/java/com/google/protobuf/FieldInfo.java \
java/core/src/main/java/com/google/protobuf/FieldSet.java \
+ java/core/src/main/java/com/google/protobuf/FieldType.java \
java/core/src/main/java/com/google/protobuf/FloatArrayList.java \
java/core/src/main/java/com/google/protobuf/GeneratedMessage.java \
+ java/core/src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java \
java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java \
java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java \
java/core/src/main/java/com/google/protobuf/IntArrayList.java \
java/core/src/main/java/com/google/protobuf/Internal.java \
java/core/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java \
java/core/src/main/java/com/google/protobuf/IterableByteBufferInputStream.java \
+ java/core/src/main/java/com/google/protobuf/JavaType.java \
java/core/src/main/java/com/google/protobuf/LazyField.java \
java/core/src/main/java/com/google/protobuf/LazyFieldLite.java \
java/core/src/main/java/com/google/protobuf/LazyStringArrayList.java \
java/core/src/main/java/com/google/protobuf/LazyStringList.java \
+ java/core/src/main/java/com/google/protobuf/ListFieldSchema.java \
java/core/src/main/java/com/google/protobuf/LongArrayList.java \
+ java/core/src/main/java/com/google/protobuf/ManifestSchemaFactory.java \
java/core/src/main/java/com/google/protobuf/MapEntry.java \
java/core/src/main/java/com/google/protobuf/MapEntryLite.java \
java/core/src/main/java/com/google/protobuf/MapField.java \
java/core/src/main/java/com/google/protobuf/MapFieldLite.java \
+ java/core/src/main/java/com/google/protobuf/MapFieldSchema.java \
+ java/core/src/main/java/com/google/protobuf/MapFieldSchemaFull.java \
+ java/core/src/main/java/com/google/protobuf/MapFieldSchemaLite.java \
+ java/core/src/main/java/com/google/protobuf/MapFieldSchemas.java \
java/core/src/main/java/com/google/protobuf/Message.java \
+ java/core/src/main/java/com/google/protobuf/MessageInfo.java \
+ java/core/src/main/java/com/google/protobuf/MessageInfoFactory.java \
java/core/src/main/java/com/google/protobuf/MessageLite.java \
java/core/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java \
java/core/src/main/java/com/google/protobuf/MessageLiteToString.java \
java/core/src/main/java/com/google/protobuf/MessageOrBuilder.java \
java/core/src/main/java/com/google/protobuf/MessageReflection.java \
+ java/core/src/main/java/com/google/protobuf/MessageSchema.java \
+ java/core/src/main/java/com/google/protobuf/MessageSetSchema.java \
java/core/src/main/java/com/google/protobuf/MutabilityOracle.java \
+ java/core/src/main/java/com/google/protobuf/NewInstanceSchema.java \
+ java/core/src/main/java/com/google/protobuf/NewInstanceSchemaFull.java \
+ java/core/src/main/java/com/google/protobuf/NewInstanceSchemaLite.java \
+ java/core/src/main/java/com/google/protobuf/NewInstanceSchemas.java \
java/core/src/main/java/com/google/protobuf/NioByteString.java \
+ java/core/src/main/java/com/google/protobuf/OneofInfo.java \
java/core/src/main/java/com/google/protobuf/Parser.java \
java/core/src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java \
+ java/core/src/main/java/com/google/protobuf/ProtoSyntax.java \
+ java/core/src/main/java/com/google/protobuf/Protobuf.java \
java/core/src/main/java/com/google/protobuf/ProtobufArrayList.java \
+ java/core/src/main/java/com/google/protobuf/ProtobufLists.java \
java/core/src/main/java/com/google/protobuf/ProtocolMessageEnum.java \
java/core/src/main/java/com/google/protobuf/ProtocolStringList.java \
+ java/core/src/main/java/com/google/protobuf/RawMessageInfo.java \
+ java/core/src/main/java/com/google/protobuf/Reader.java \
java/core/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java \
java/core/src/main/java/com/google/protobuf/RepeatedFieldBuilderV3.java \
java/core/src/main/java/com/google/protobuf/RopeByteString.java \
@@ -282,30 +318,47 @@
java/core/src/main/java/com/google/protobuf/RpcChannel.java \
java/core/src/main/java/com/google/protobuf/RpcController.java \
java/core/src/main/java/com/google/protobuf/RpcUtil.java \
+ java/core/src/main/java/com/google/protobuf/Schema.java \
+ java/core/src/main/java/com/google/protobuf/SchemaFactory.java \
+ java/core/src/main/java/com/google/protobuf/SchemaUtil.java \
java/core/src/main/java/com/google/protobuf/Service.java \
java/core/src/main/java/com/google/protobuf/ServiceException.java \
java/core/src/main/java/com/google/protobuf/SingleFieldBuilder.java \
java/core/src/main/java/com/google/protobuf/SingleFieldBuilderV3.java \
java/core/src/main/java/com/google/protobuf/SmallSortedMap.java \
+ java/core/src/main/java/com/google/protobuf/StructuralMessageInfo.java \
java/core/src/main/java/com/google/protobuf/TextFormat.java \
java/core/src/main/java/com/google/protobuf/TextFormatEscaper.java \
java/core/src/main/java/com/google/protobuf/TextFormatParseInfoTree.java \
java/core/src/main/java/com/google/protobuf/TextFormatParseLocation.java \
java/core/src/main/java/com/google/protobuf/UninitializedMessageException.java \
+ java/core/src/main/java/com/google/protobuf/UnknownFieldSchema.java \
java/core/src/main/java/com/google/protobuf/UnknownFieldSet.java \
java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java \
+ java/core/src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java \
+ java/core/src/main/java/com/google/protobuf/UnknownFieldSetSchema.java \
java/core/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java \
java/core/src/main/java/com/google/protobuf/UnsafeByteOperations.java \
java/core/src/main/java/com/google/protobuf/UnsafeUtil.java \
java/core/src/main/java/com/google/protobuf/Utf8.java \
java/core/src/main/java/com/google/protobuf/WireFormat.java \
+ java/core/src/main/java/com/google/protobuf/Writer.java \
java/core/src/test/java/com/google/protobuf/AbstractMessageTest.java \
+ java/core/src/test/java/com/google/protobuf/AbstractProto2LiteSchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/AbstractProto2SchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/AbstractProto3LiteSchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/AbstractProto3SchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/AbstractSchemaTest.java \
java/core/src/test/java/com/google/protobuf/AnyTest.java \
+ java/core/src/test/java/com/google/protobuf/ArrayDecodersTest.java \
+ java/core/src/test/java/com/google/protobuf/BinaryProtocolTest.java \
java/core/src/test/java/com/google/protobuf/BooleanArrayListTest.java \
java/core/src/test/java/com/google/protobuf/BoundedByteStringTest.java \
java/core/src/test/java/com/google/protobuf/ByteBufferWriterTest.java \
java/core/src/test/java/com/google/protobuf/ByteStringTest.java \
+ java/core/src/test/java/com/google/protobuf/CachedFieldSizeTest.java \
java/core/src/test/java/com/google/protobuf/CheckUtf8Test.java \
+ java/core/src/test/java/com/google/protobuf/CodedAdapterTest.java \
java/core/src/test/java/com/google/protobuf/CodedInputStreamTest.java \
java/core/src/test/java/com/google/protobuf/CodedOutputStreamTest.java \
java/core/src/test/java/com/google/protobuf/DecodeUtf8Test.java \
@@ -315,6 +368,9 @@
java/core/src/test/java/com/google/protobuf/DoubleArrayListTest.java \
java/core/src/test/java/com/google/protobuf/DynamicMessageTest.java \
java/core/src/test/java/com/google/protobuf/EnumTest.java \
+ java/core/src/test/java/com/google/protobuf/ExperimentalMessageFactory.java \
+ java/core/src/test/java/com/google/protobuf/ExperimentalSerializationUtil.java \
+ java/core/src/test/java/com/google/protobuf/ExperimentalTestDataProvider.java \
java/core/src/test/java/com/google/protobuf/ExtensionRegistryFactoryTest.java \
java/core/src/test/java/com/google/protobuf/FieldPresenceTest.java \
java/core/src/test/java/com/google/protobuf/FloatArrayListTest.java \
@@ -329,17 +385,32 @@
java/core/src/test/java/com/google/protobuf/LazyStringArrayListTest.java \
java/core/src/test/java/com/google/protobuf/LazyStringEndToEndTest.java \
java/core/src/test/java/com/google/protobuf/LiteEqualsAndHashTest.java \
- java/core/src/test/java/com/google/protobuf/LiteTest.java \
java/core/src/test/java/com/google/protobuf/LiteralByteStringTest.java \
java/core/src/test/java/com/google/protobuf/LongArrayListTest.java \
java/core/src/test/java/com/google/protobuf/MapForProto2LiteTest.java \
java/core/src/test/java/com/google/protobuf/MapForProto2Test.java \
+ java/core/src/test/java/com/google/protobuf/MapLiteTest.java \
java/core/src/test/java/com/google/protobuf/MapTest.java \
java/core/src/test/java/com/google/protobuf/MessageTest.java \
java/core/src/test/java/com/google/protobuf/NestedBuildersTest.java \
java/core/src/test/java/com/google/protobuf/NioByteStringTest.java \
+ java/core/src/test/java/com/google/protobuf/PackedFieldTest.java \
java/core/src/test/java/com/google/protobuf/ParseExceptionsTest.java \
+ java/core/src/test/java/com/google/protobuf/ParserLiteTest.java \
java/core/src/test/java/com/google/protobuf/ParserTest.java \
+ java/core/src/test/java/com/google/protobuf/Proto2ExtensionLookupSchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/Proto2LiteSchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/Proto2MessageFactory.java \
+ java/core/src/test/java/com/google/protobuf/Proto2MessageInfoFactory.java \
+ java/core/src/test/java/com/google/protobuf/Proto2MessageLiteFactory.java \
+ java/core/src/test/java/com/google/protobuf/Proto2SchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/Proto2UnknownEnumValueTest.java \
+ java/core/src/test/java/com/google/protobuf/Proto3LiteSchemaTest.java \
+ java/core/src/test/java/com/google/protobuf/Proto3MessageFactory.java \
+ java/core/src/test/java/com/google/protobuf/Proto3MessageInfoFactory.java \
+ java/core/src/test/java/com/google/protobuf/Proto3MessageLiteFactory.java \
+ java/core/src/test/java/com/google/protobuf/Proto3MessageLiteInfoFactory.java \
+ java/core/src/test/java/com/google/protobuf/Proto3SchemaTest.java \
java/core/src/test/java/com/google/protobuf/ProtobufArrayListTest.java \
java/core/src/test/java/com/google/protobuf/RepeatedFieldBuilderV3Test.java \
java/core/src/test/java/com/google/protobuf/RopeByteStringSubstringTest.java \
@@ -349,18 +420,25 @@
java/core/src/test/java/com/google/protobuf/SmallSortedMapTest.java \
java/core/src/test/java/com/google/protobuf/TestBadIdentifiers.java \
java/core/src/test/java/com/google/protobuf/TestBadIdentifiersLite.java \
+ java/core/src/test/java/com/google/protobuf/TestSchemas.java \
+ java/core/src/test/java/com/google/protobuf/TestSchemasLite.java \
java/core/src/test/java/com/google/protobuf/TestUtil.java \
java/core/src/test/java/com/google/protobuf/TestUtilLite.java \
java/core/src/test/java/com/google/protobuf/TextFormatParseInfoTreeTest.java \
java/core/src/test/java/com/google/protobuf/TextFormatParseLocationTest.java \
java/core/src/test/java/com/google/protobuf/TextFormatTest.java \
java/core/src/test/java/com/google/protobuf/UnknownEnumValueTest.java \
- java/core/src/test/java/com/google/protobuf/UnknownFieldSetLiteTest.java \
java/core/src/test/java/com/google/protobuf/UnknownFieldSetTest.java \
java/core/src/test/java/com/google/protobuf/UnmodifiableLazyStringListTest.java \
+ java/core/src/test/java/com/google/protobuf/Utf8Test.java \
+ java/core/src/test/java/com/google/protobuf/Utf8Utils.java \
java/core/src/test/java/com/google/protobuf/WellKnownTypesTest.java \
+ java/core/src/test/java/com/google/protobuf/WireFormatLiteTest.java \
java/core/src/test/java/com/google/protobuf/WireFormatTest.java \
+ java/core/src/test/java/com/google/protobuf/WrappersLiteOfMethodTest.java \
+ java/core/src/test/java/com/google/protobuf/WrappersOfMethodTest.java \
java/core/src/test/proto/com/google/protobuf/any_test.proto \
+ java/core/src/test/proto/com/google/protobuf/cached_field_size_test.proto \
java/core/src/test/proto/com/google/protobuf/deprecated_file.proto \
java/core/src/test/proto/com/google/protobuf/field_presence_test.proto \
java/core/src/test/proto/com/google/protobuf/lazy_fields_lite.proto \
@@ -370,6 +448,7 @@
java/core/src/test/proto/com/google/protobuf/map_initialization_order_test.proto \
java/core/src/test/proto/com/google/protobuf/map_lite_test.proto \
java/core/src/test/proto/com/google/protobuf/map_test.proto \
+ java/core/src/test/proto/com/google/protobuf/message_lite_extension_util_test.proto\
java/core/src/test/proto/com/google/protobuf/multiple_files_test.proto \
java/core/src/test/proto/com/google/protobuf/nested_builders_test.proto \
java/core/src/test/proto/com/google/protobuf/nested_extension.proto \
@@ -379,13 +458,26 @@
java/core/src/test/proto/com/google/protobuf/outer_class_name_test.proto \
java/core/src/test/proto/com/google/protobuf/outer_class_name_test2.proto \
java/core/src/test/proto/com/google/protobuf/outer_class_name_test3.proto \
+ java/core/src/test/proto/com/google/protobuf/packed_field_test.proto \
+ java/core/src/test/proto/com/google/protobuf/proto2_message.proto \
+ java/core/src/test/proto/com/google/protobuf/proto2_message_lite.proto \
java/core/src/test/proto/com/google/protobuf/proto2_unknown_enum_values.proto \
+ java/core/src/test/proto/com/google/protobuf/proto3_message.proto \
+ java/core/src/test/proto/com/google/protobuf/proto3_message_lite.proto \
java/core/src/test/proto/com/google/protobuf/test_bad_identifiers.proto \
java/core/src/test/proto/com/google/protobuf/test_check_utf8.proto \
java/core/src/test/proto/com/google/protobuf/test_check_utf8_size.proto \
java/core/src/test/proto/com/google/protobuf/test_custom_options.proto \
java/core/src/test/proto/com/google/protobuf/test_extra_interfaces.proto \
+ java/core/src/test/proto/com/google/protobuf/wrappers_test.proto \
java/lite.md \
+ java/lite/generate-sources-build.xml \
+ java/lite/generate-test-sources-build.xml \
+ java/lite/lite.awk \
+ java/lite/pom.xml \
+ java/lite/process-lite-sources-build.xml \
+ java/lite/src/test/java/com/google/protobuf/LiteTest.java \
+ java/lite/src/test/java/com/google/protobuf/Proto2MessageLiteInfoFactory.java \
java/pom.xml \
java/util/pom.xml \
java/util/src/main/java/com/google/protobuf/util/Durations.java \
@@ -812,6 +904,7 @@
python/google/protobuf/internal/import_test_package/inner.proto \
python/google/protobuf/internal/import_test_package/outer.proto \
python/google/protobuf/internal/json_format_test.py \
+ python/google/protobuf/internal/keywords_test.py \
python/google/protobuf/internal/message_factory_test.py \
python/google/protobuf/internal/message_listener.py \
python/google/protobuf/internal/message_set_extensions.proto \
@@ -879,7 +972,6 @@
python/google/protobuf/pyext/repeated_scalar_container.h \
python/google/protobuf/pyext/safe_numerics.h \
python/google/protobuf/pyext/scoped_pyobject_ptr.h \
- python/google/protobuf/pyext/thread_unsafe_shared_ptr.h \
python/google/protobuf/reflection.py \
python/google/protobuf/service.py \
python/google/protobuf/service_reflection.py \
diff --git a/conformance/Makefile.am b/conformance/Makefile.am
index 495b462..e47fd10 100644
--- a/conformance/Makefile.am
+++ b/conformance/Makefile.am
@@ -362,7 +362,7 @@
# These depend on library paths being properly set up. The easiest way to
# run them is to just use "tox" from the python dir.
test_python: protoc_middleman conformance-test-runner
- ./conformance-test-runner --enforce_recommended --failure_list failure_list_python.txt ./conformance_python.py
+ ./conformance-test-runner --enforce_recommended --failure_list failure_list_python.txt --text_format_failure_list text_format_failure_list_python.txt ./conformance_python.py
test_python_cpp: protoc_middleman conformance-test-runner
./conformance-test-runner --enforce_recommended --failure_list failure_list_python_cpp.txt ./conformance_python.py
diff --git a/csharp/src/Google.Protobuf.Test/testprotos.pb b/csharp/src/Google.Protobuf.Test/testprotos.pb
index b66c4ee..9c68af0 100644
--- a/csharp/src/Google.Protobuf.Test/testprotos.pb
+++ b/csharp/src/Google.Protobuf.Test/testprotos.pb
Binary files differ
diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
index 2e5809f..9df237c 100644
--- a/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
+++ b/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
@@ -113,11 +113,13 @@
/// 01:30 UTC on January 15, 2017.
///
/// In JavaScript, one can convert a Date object to this format using the
- /// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ /// standard
+ /// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
/// method. In Python, a standard `datetime.datetime` object can be converted
- /// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
- /// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
- /// can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ /// to this format using
+ /// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ /// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ /// the Joda Time's [`ISODateTimeFormat.dateTime()`](
/// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
/// ) to obtain a formatter capable of generating timestamps in this format.
/// </summary>
diff --git a/java/core/generate-test-sources-build.xml b/java/core/generate-test-sources-build.xml
index 6016353..92c0b1c 100644
--- a/java/core/generate-test-sources-build.xml
+++ b/java/core/generate-test-sources-build.xml
@@ -5,43 +5,56 @@
<arg value="--proto_path=${protobuf.source.dir}"/>
<arg value="--proto_path=${test.proto.dir}"/>
<arg value="${protobuf.source.dir}/google/protobuf/unittest.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_proto3.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_custom_options.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_enormous_descriptor.proto"/>
<arg value="${protobuf.source.dir}/google/protobuf/unittest_import.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_import_lite.proto"/>
<arg value="${protobuf.source.dir}/google/protobuf/unittest_import_public.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_import_public_lite.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_lite.proto"/>
<arg value="${protobuf.source.dir}/google/protobuf/unittest_mset.proto"/>
<arg value="${protobuf.source.dir}/google/protobuf/unittest_mset_wire_format.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_optimize_for.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_custom_options.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_lite.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_import_lite.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_import_public_lite.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_lite_imports_nonlite.proto"/>
- <arg value="${protobuf.source.dir}/google/protobuf/unittest_enormous_descriptor.proto"/>
<arg value="${protobuf.source.dir}/google/protobuf/unittest_no_generic_services.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_optimize_for.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_proto3.proto"/>
<arg value="${protobuf.source.dir}/google/protobuf/unittest_well_known_types.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/any_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/cached_field_size_test.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/deprecated_file.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/field_presence_test.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/lazy_fields_lite.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/lite_equals_and_hash.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/map_for_proto2_lite_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/map_for_proto2_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/map_initialization_order_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/map_lite_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/map_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/message_lite_extension_util_test.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/multiple_files_test.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/nested_builders_test.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/nested_extension.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/nested_extension_lite.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/non_nested_extension.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/non_nested_extension_lite.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/outer_class_name_test.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/outer_class_name_test2.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/outer_class_name_test3.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/proto2_unknown_enum_values.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/outer_class_name_test3.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/packed_field_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/proto2_message.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/proto2_message_lite.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/proto2_unknown_enum_values.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/proto3_message.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/proto3_message_lite.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/test_bad_identifiers.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/test_check_utf8.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/test_check_utf8_size.proto"/>
<arg value="${test.proto.dir}/com/google/protobuf/test_custom_options.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/any_test.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/field_presence_test.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/map_for_proto2_lite_test.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/map_for_proto2_test.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/map_lite_test.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/map_test.proto"/>
- <arg value="${test.proto.dir}/com/google/protobuf/map_initialization_order_test.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/wrappers_test.proto"/>
+ </exec>
+ <!-- Also generate some Lite protos needed for ExtensionRegistryFactoryTest -->
+ <exec executable="${protoc}">
+ <arg value="--java_out=lite:${generated.testsources.dir}"/>
+ <arg value="--proto_path=${protobuf.source.dir}"/>
+ <arg value="--proto_path=${test.proto.dir}"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/nested_extension_lite.proto"/>
+ <arg value="${test.proto.dir}/com/google/protobuf/non_nested_extension_lite.proto"/>
</exec>
</project>
diff --git a/java/lite/generate-sources-build.xml b/java/lite/generate-sources-build.xml
new file mode 100644
index 0000000..74d96a2
--- /dev/null
+++ b/java/lite/generate-sources-build.xml
@@ -0,0 +1,19 @@
+<project name="generate-sources">
+ <echo message="Running protoc ..."/>
+ <mkdir dir="${generated.sources.dir}"/>
+ <exec executable="${protoc}">
+ <arg value="--java_out=lite:${generated.sources.dir}"/>
+ <arg value="--proto_path=${protobuf.source.dir}"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/any.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/api.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/duration.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/empty.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/field_mask.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/source_context.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/struct.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/timestamp.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/type.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/wrappers.proto"/>
+ </exec>
+</project>
+
diff --git a/java/lite/generate-test-sources-build.xml b/java/lite/generate-test-sources-build.xml
new file mode 100644
index 0000000..1c1a18c
--- /dev/null
+++ b/java/lite/generate-test-sources-build.xml
@@ -0,0 +1,50 @@
+<project name="generate-test-sources">
+ <mkdir dir="${generated.testsources.dir}"/>
+ <exec executable="${protoc}">
+ <arg value="--java_out=lite:${generated.testsources.dir}"/>
+ <arg value="--proto_path=${protobuf.source.dir}"/>
+ <arg value="--proto_path=${protobuf.basedir}/java/core/${test.proto.dir}"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_import.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_import_lite.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_import_public.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_import_public_lite.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_lite.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_mset.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_mset_wire_format.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_no_generic_services.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_optimize_for.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_proto3.proto"/>
+ <arg value="${protobuf.source.dir}/google/protobuf/unittest_well_known_types.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/any_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/cached_field_size_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/deprecated_file.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/field_presence_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/lazy_fields_lite.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/lite_equals_and_hash.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/map_for_proto2_lite_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/map_for_proto2_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/map_initialization_order_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/map_lite_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/map_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/message_lite_extension_util_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/nested_builders_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/nested_extension.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/nested_extension_lite.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/non_nested_extension.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/non_nested_extension_lite.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/outer_class_name_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/outer_class_name_test2.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/outer_class_name_test3.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/packed_field_test.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/proto2_message.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/proto2_message_lite.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/proto2_unknown_enum_values.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/proto3_message.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/proto3_message_lite.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/test_bad_identifiers.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/test_check_utf8.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/test_check_utf8_size.proto"/>
+ <arg value="${protobuf.basedir}/java/core/${test.proto.dir}/com/google/protobuf/wrappers_test.proto"/>
+ </exec>
+</project>
diff --git a/java/lite/lite.awk b/java/lite/lite.awk
new file mode 100644
index 0000000..b22d965
--- /dev/null
+++ b/java/lite/lite.awk
@@ -0,0 +1,25 @@
+# Remove code enclosed by "BEGIN FULL-RUNTIME" and "END FULL-RUNTIME" to
+# create the lite-only version of a test file.
+
+BEGIN {
+ in_full_runtime = 0;
+}
+
+/BEGIN FULL-RUNTIME/ {
+ in_full_runtime = 1;
+ next;
+}
+
+/END FULL-RUNTIME/ {
+ in_full_runtime = 0;
+ next;
+}
+
+in_full_runtime {
+ # Skip full runtime code path.
+ next;
+}
+
+{
+ print;
+}
diff --git a/java/lite/pom.xml b/java/lite/pom.xml
new file mode 100644
index 0000000..f63e275
--- /dev/null
+++ b/java/lite/pom.xml
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-parent</artifactId>
+ <version>3.7.0</version>
+ </parent>
+
+ <artifactId>protobuf-javalite</artifactId>
+ <packaging>bundle</packaging>
+
+ <name>Protocol Buffers [Lite]</name>
+ <description>
+ Lite version of Protocol Buffers library. This version is optimized for code size, but does
+ not guarantee API/ABI stability.
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <!-- Include core protos in the bundle as resources -->
+ <resources>
+ <resource>
+ <directory>${protobuf.source.dir}</directory>
+ <includes>
+ <include>google/protobuf/any.proto</include>
+ <include>google/protobuf/api.proto</include>
+ <include>google/protobuf/empty.proto</include>
+ <include>google/protobuf/field_mask.proto</include>
+ <include>google/protobuf/source_context.proto</include>
+ <include>google/protobuf/struct.proto</include>
+ <include>google/protobuf/timestamp.proto</include>
+ <include>google/protobuf/type.proto</include>
+ <include>google/protobuf/wrappers.proto</include>
+ </includes>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>${protobuf.source.dir}</directory>
+ <includes>
+ <include>google/protobuf/testdata/golden_message_oneof_implemented</include>
+ <include>google/protobuf/testdata/golden_packed_fields_message</include>
+ </includes>
+ </testResource>
+ </testResources>
+
+ <plugins>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.1.0</version>
+ <executions>
+ <execution>
+ <id>copy-source-files</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${generated.sources.dir}/com/google/protobuf</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/../core/src/main/java/com/google/protobuf</directory>
+ <includes>
+ <include>AbstractMessageLite.java</include>
+ <include>AbstractParser.java</include>
+ <include>AbstractProtobufList.java</include>
+ <include>AllocatedBuffer.java</include>
+ <include>Android.java</include>
+ <include>ArrayDecoders.java</include>
+ <include>BinaryReader.java</include>
+ <include>BinaryWriter.java</include>
+ <include>BooleanArrayList.java</include>
+ <include>BufferAllocator.java</include>
+ <include>ByteBufferWriter.java</include>
+ <include>ByteOutput.java</include>
+ <include>ByteString.java</include>
+ <include>CodedInputStream.java</include>
+ <include>CodedInputStreamReader.java</include>
+ <include>CodedOutputStream.java</include>
+ <include>CodedOutputStreamWriter.java</include>
+ <include>DoubleArrayList.java</include>
+ <include>ExperimentalApi.java</include>
+ <include>ExtensionLite.java</include>
+ <include>ExtensionRegistryFactory.java</include>
+ <include>ExtensionRegistryLite.java</include>
+ <include>ExtensionSchema.java</include>
+ <include>ExtensionSchemaLite.java</include>
+ <include>ExtensionSchemas.java</include>
+ <include>FieldInfo.java</include>
+ <include>FieldSet.java</include>
+ <include>FieldType.java</include>
+ <include>FloatArrayList.java</include>
+ <include>GeneratedExtensionRegistryLoader.java</include>
+ <include>GeneratedMessageInfoFactory.java</include>
+ <include>GeneratedMessageLite.java</include>
+ <include>IntArrayList.java</include>
+ <include>Internal.java</include>
+ <include>InvalidProtocolBufferException.java</include>
+ <include>IterableByteBufferInputStream.java</include>
+ <include>JavaType.java</include>
+ <include>LazyField.java</include>
+ <include>LazyFieldLite.java</include>
+ <include>LazyStringArrayList.java</include>
+ <include>LazyStringList.java</include>
+ <include>ListFieldSchema.java</include>
+ <include>LongArrayList.java</include>
+ <include>ManifestSchemaFactory.java</include>
+ <include>MapEntryLite.java</include>
+ <include>MapFieldLite.java</include>
+ <include>MapFieldSchema.java</include>
+ <include>MapFieldSchemaLite.java</include>
+ <include>MapFieldSchemas.java</include>
+ <include>MessageInfo.java</include>
+ <include>MessageInfoFactory.java</include>
+ <include>MessageLite.java</include>
+ <include>MessageLiteOrBuilder.java</include>
+ <include>MessageLiteToString.java</include>
+ <include>MessageSchema.java</include>
+ <include>MessageSetSchema.java</include>
+ <include>MutabilityOracle.java</include>
+ <include>NewInstanceSchema.java</include>
+ <include>NewInstanceSchemaLite.java</include>
+ <include>NewInstanceSchemas.java</include>
+ <include>NioByteString.java</include>
+ <include>OneofInfo.java</include>
+ <include>Parser.java</include>
+ <include>PrimitiveNonBoxingCollection.java</include>
+ <include>ProtoField.java</include>
+ <include>ProtoMessage.java</include>
+ <include>ProtoOneof.java</include>
+ <include>ProtoOneofCase.java</include>
+ <include>ProtoPresenceBits.java</include>
+ <include>ProtoPresenceCheckedField.java</include>
+ <include>ProtoSyntax.java</include>
+ <include>Protobuf.java</include>
+ <include>ProtobufArrayList.java</include>
+ <include>ProtobufLists.java</include>
+ <include>ProtocolStringList.java</include>
+ <include>RawMessageInfo.java</include>
+ <include>Reader.java</include>
+ <include>RopeByteString.java</include>
+ <include>Schema.java</include>
+ <include>SchemaFactory.java</include>
+ <include>SchemaUtil.java</include>
+ <include>SmallSortedMap.java</include>
+ <include>StructuralMessageInfo.java</include>
+ <include>TextFormatEscaper.java</include>
+ <include>UninitializedMessageException.java</include>
+ <include>UnknownFieldSchema.java</include>
+ <include>UnknownFieldSetLite.java</include>
+ <include>UnknownFieldSetLiteSchema.java</include>
+ <include>UnmodifiableLazyStringList.java</include>
+ <include>UnsafeUtil.java</include>
+ <include>Utf8.java</include>
+ <include>WireFormat.java</include>
+ <include>Writer.java</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-test-source-files</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${generated.testsources.dir}/com/google/protobuf</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/../core/src/test/java/com/google/protobuf</directory>
+ <!-- For sources, we want to be explicit about what we add so we don't accidentally
+ increase the size of the lite runtime library. For tests, we want to be defensive
+ and exclude only the full runtime exclusive tests so we don't accidentally miss
+ any test. -->
+ <excludes>
+ <exclude>AbstractMessageTest.java</exclude>
+ <exclude>AbstractProto2SchemaTest.java</exclude>
+ <exclude>AnyTest.java</exclude>
+ <exclude>CodedInputStreamTest.java</exclude>
+ <exclude>DeprecatedFieldTest.java</exclude>
+ <exclude>DescriptorsTest.java</exclude>
+ <exclude>DiscardUnknownFieldsTest.java</exclude>
+ <exclude>DynamicMessageTest.java</exclude>
+ <exclude>ExtensionRegistryFactoryTest.java</exclude>
+ <exclude>FieldPresenceTest.java</exclude>
+ <exclude>ForceFieldBuildersPreRun.java</exclude>
+ <exclude>GeneratedMessageTest.java</exclude>
+ <exclude>LazyFieldTest.java</exclude>
+ <exclude>LazyStringEndToEndTest.java</exclude>
+ <exclude>MapForProto2Test.java</exclude>
+ <exclude>MapTest.java</exclude>
+ <exclude>MessageTest.java</exclude>
+ <exclude>NestedBuildersTest.java</exclude>
+ <exclude>PackedFieldTest.java</exclude>
+ <exclude>ParserTest.java</exclude>
+ <exclude>ParseExceptionsTest.java</exclude>
+ <exclude>Proto2ExtensionLookupSchemaTest.java</exclude>
+ <exclude>Proto2SchemaTest.java</exclude>
+ <exclude>Proto2UnknownEnumValueTest.java</exclude>
+ <exclude>RepeatedFieldBuilderV3Test.java</exclude>
+ <exclude>ServiceTest.java</exclude>
+ <exclude>SingleFieldBuilderV3Test.java</exclude>
+ <exclude>TestBadIdentifiers.java</exclude>
+ <exclude>TextFormatParseInfoTreeTest.java</exclude>
+ <exclude>TextFormatParseLocationTest.java</exclude>
+ <exclude>TextFormatTest.java</exclude>
+ <exclude>TestUtil.java</exclude>
+ <exclude>UnknownEnumValueTest.java</exclude>
+ <exclude>UnknownFieldSetLiteTest.java</exclude>
+ <exclude>UnknownFieldSetTest.java</exclude>
+ <exclude>WellKnownTypesTest.java</exclude>
+ <exclude>WireFormatTest.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Use Antrun plugin to generate sources with protoc -->
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!-- Generate core protos -->
+ <execution>
+ <id>generate-sources</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <target>
+ <ant antfile="generate-sources-build.xml"/>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <!-- Generate the test protos -->
+ <execution>
+ <id>generate-test-sources</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <target>
+ <ant antfile="generate-test-sources-build.xml"/>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>process-lite-sources</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <target>
+ <ant antfile="process-lite-sources-build.xml"/>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>add-generated-sources</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${generated.sources.dir}</source>
+ </sources>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>add-generated-test-sources</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>add-test-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${generated.testsources.dir}</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- OSGI bundle configuration -->
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-DocURL>https://developers.google.com/protocol-buffers/</Bundle-DocURL>
+ <Bundle-SymbolicName>com.google.protobuf</Bundle-SymbolicName>
+ <Export-Package>com.google.protobuf;version=${project.version}</Export-Package>
+ <Import-Package>sun.misc;resolution:=optional,*</Import-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/java/lite/process-lite-sources-build.xml b/java/lite/process-lite-sources-build.xml
new file mode 100644
index 0000000..d49cf3a
--- /dev/null
+++ b/java/lite/process-lite-sources-build.xml
@@ -0,0 +1,7 @@
+<project name="process-lite-sources">
+ <exec executable="awk" output="${generated.testsources.dir}/com/google/protobuf/TestUtil.java">
+ <arg value="-f" />
+ <arg value="${basedir}/lite.awk" />
+ <arg value="${basedir}/../core/src/test/java/com/google/protobuf/TestUtil.java" />
+ </exec>
+</project>
diff --git a/java/pom.xml b/java/pom.xml
index 07e366f..5291f9c 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -223,6 +223,7 @@
<modules>
<module>bom</module>
+ <module>lite</module>
<module>core</module>
<module>util</module>
</modules>
diff --git a/objectivec/google/protobuf/Timestamp.pbobjc.h b/objectivec/google/protobuf/Timestamp.pbobjc.h
index f6ea25c..591dbe3 100644
--- a/objectivec/google/protobuf/Timestamp.pbobjc.h
+++ b/objectivec/google/protobuf/Timestamp.pbobjc.h
@@ -129,11 +129,13 @@
* 01:30 UTC on January 15, 2017.
*
* In JavaScript, one can convert a Date object to this format using the
- * standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ * standard
+ * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
* method. In Python, a standard `datetime.datetime` object can be converted
- * to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
- * with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
- * can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ * to this format using
+ * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ * the Joda Time's [`ISODateTimeFormat.dateTime()`](
* http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
* ) to obtain a formatter capable of generating timestamps in this format.
**/