Browse Source

Prepare nano proto code to be merged into protobuf repository.

Feng Xiao 11 years ago
parent
commit
cd980d1c13
46 changed files with 249 additions and 394 deletions
  1. 39 348
      javanano/README.txt
  2. 164 0
      javanano/pom.xml
  3. 0 0
      javanano/src/main/java/com/google/protobuf/nano/CodedInputByteBufferNano.java
  4. 0 0
      javanano/src/main/java/com/google/protobuf/nano/CodedOutputByteBufferNano.java
  5. 0 0
      javanano/src/main/java/com/google/protobuf/nano/ExtendableMessageNano.java
  6. 0 0
      javanano/src/main/java/com/google/protobuf/nano/Extension.java
  7. 0 0
      javanano/src/main/java/com/google/protobuf/nano/FieldArray.java
  8. 0 0
      javanano/src/main/java/com/google/protobuf/nano/FieldData.java
  9. 0 0
      javanano/src/main/java/com/google/protobuf/nano/InternalNano.java
  10. 0 0
      javanano/src/main/java/com/google/protobuf/nano/InvalidProtocolBufferNanoException.java
  11. 0 0
      javanano/src/main/java/com/google/protobuf/nano/MessageNano.java
  12. 0 0
      javanano/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java
  13. 0 0
      javanano/src/main/java/com/google/protobuf/nano/UnknownFieldData.java
  14. 0 0
      javanano/src/main/java/com/google/protobuf/nano/WireFormatNano.java
  15. 5 4
      javanano/src/test/java/com/google/protobuf/nano/NanoTest.java
  16. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_accessors_nano.proto
  17. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_enum_class_multiple_nano.proto
  18. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_enum_class_nano.proto
  19. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_enum_validity_nano.proto
  20. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto
  21. 1 1
      javanano/src/test/java/com/google/protobuf/nano/unittest_extension_packed_nano.proto
  22. 1 1
      javanano/src/test/java/com/google/protobuf/nano/unittest_extension_repeated_nano.proto
  23. 1 1
      javanano/src/test/java/com/google/protobuf/nano/unittest_extension_singular_nano.proto
  24. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_has_nano.proto
  25. 2 3
      javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto
  26. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_multiple_nameclash_nano.proto
  27. 1 1
      javanano/src/test/java/com/google/protobuf/nano/unittest_multiple_nano.proto
  28. 1 1
      javanano/src/test/java/com/google/protobuf/nano/unittest_nano.proto
  29. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_recursive_nano.proto
  30. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_reference_types_nano.proto
  31. 1 1
      javanano/src/test/java/com/google/protobuf/nano/unittest_repeated_merge_nano.proto
  32. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_repeated_packables_nano.proto
  33. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_simple_nano.proto
  34. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_single_nano.proto
  35. 0 0
      javanano/src/test/java/com/google/protobuf/nano/unittest_stringutf8_nano.proto
  36. 3 3
      src/google/protobuf/compiler/javanano/javanano_enum.h
  37. 3 3
      src/google/protobuf/compiler/javanano/javanano_enum_field.h
  38. 3 3
      src/google/protobuf/compiler/javanano/javanano_extension.h
  39. 3 3
      src/google/protobuf/compiler/javanano/javanano_field.h
  40. 2 2
      src/google/protobuf/compiler/javanano/javanano_file.cc
  41. 5 5
      src/google/protobuf/compiler/javanano/javanano_file.h
  42. 1 1
      src/google/protobuf/compiler/javanano/javanano_generator.cc
  43. 4 4
      src/google/protobuf/compiler/javanano/javanano_generator.h
  44. 3 3
      src/google/protobuf/compiler/javanano/javanano_helpers.h
  45. 3 3
      src/google/protobuf/compiler/javanano/javanano_message.h
  46. 3 3
      src/google/protobuf/compiler/javanano/javanano_message_field.h

+ 39 - 348
java/README.txt → javanano/README.txt

@@ -1,7 +1,7 @@
 Protocol Buffers - Google's data interchange format
 Copyright 2008 Google Inc.
 
-This directory contains the Java Protocol Buffers runtime library.
+This directory contains the Java Protocol Buffers Nano runtime library.
 
 Installation - With Maven
 =========================
@@ -40,28 +40,6 @@ rather build without Maven, see below.
 
    The .jar will be placed in the "target" directory.
 
-Installation - 'Lite' Version - With Maven
-==========================================
-
-Building the 'lite' version of the Java Protocol Buffers library is
-the same as building the full version, except that all commands are
-run using the 'lite' profile.  (see
-http://maven.apache.org/guides/introduction/introduction-to-profiles.html)
-
-E.g. to install the lite version of the jar, you would run:
-
-  $ mvn install -P lite
-
-The resulting artifact has the 'lite' classifier.  To reference it
-for dependency resolution, you would specify it as:
-
-  <dependency>
-    <groupId>com.google.protobuf</groupId>
-    <artifactId>protobuf-java</artifactId>
-    <version>${version}</version>
-    <classifier>lite</classifier>
-  </dependency>
-
 Installation - Without Maven
 ============================
 
@@ -87,325 +65,6 @@ running unit tests.
 
 4) Install the classes wherever you prefer.
 
-Micro version
-============================
-
-The runtime and generated code for MICRO_RUNTIME is smaller
-because it does not include support for the descriptor and
-reflection, and enums are generated as integer constants in
-the parent message or the file's outer class, with no
-protection against invalid values set to enum fields. Also,
-not currently supported are packed repeated elements or
-extensions.
-
-To create a jar file for the runtime and run tests invoke
-"mvn package -P micro" from the <protobuf-root>/java
-directory. The generated jar file is
-<protobuf-root>java/target/protobuf-java-2.2.0-micro.jar.
-
-If you wish to compile the MICRO_RUNTIME your self, place
-the 7 files below, in <root>/com/google/protobuf and
-create a jar file for use with your code and the generated
-code:
-
-ByteStringMicro.java
-CodedInputStreamMicro.java
-CodedOutputStreamMicro.java
-InvalidProtocolBufferException.java
-MessageMicro.java
-WireFormatMicro.java
-
-If you wish to change on the code generator it is located
-in /src/google/protobuf/compiler/javamicro.
-
-To generate code for the MICRO_RUNTIME invoke protoc with
---javamicro_out command line parameter. javamicro_out takes
-a series of optional sub-parameters separated by commas
-and a final parameter, with a colon separator, which defines
-the source directory. Sub-parameters begin with a name
-followed by an equal and if that sub-parameter has multiple
-parameters they are seperated by "|". The command line options
-are:
-
-opt                  -> speed or space
-java_use_vector      -> true or false
-java_package         -> <file-name>|<package-name>
-java_outer_classname -> <file-name>|<package-name>
-java_multiple_files  -> true or false
-
-opt={speed,space} (default: space)
-  This changes the code generation to optimize for speed or
-  space. When opt=speed this changes the code generation
-  for strings so that multiple conversions to Utf8 are
-  eliminated.
-
-java_use_vector={true,false} (default: false)
-  This specifies the collection class for repeated elements.
-  If false, repeated elements use java.util.ArrayList<> and
-  the code must be compiled with Java 1.5 or above. If true,
-  repeated elements use java.util.Vector and the code can
-  be compiled with Java 1.3 or above. The 'source'
-  parameter of 'javac' may be used to control the version
-  of the source: "javac -source 1.3". You can also change
-  the <source> xml element for the maven-compiler-plugin.
-  Below is for 1.5 sources:
-
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration>
-          <source>1.5</source>
-          <target>1.5</target>
-        </configuration>
-      </plugin>
-
-  And below would be for 1.3 sources (note when changing
-  to 1.3 you must also set java_use_vector=true):
-
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration>
-          <source>1.3</source>
-          <target>1.5</target>
-        </configuration>
-      </plugin>
-
-java_package=<file-name>|<package-name> (no default)
-  This allows overriding the 'java_package' option value
-  for the given file from the command line. Use multiple
-  java_package options to override the option for multiple
-  files. The final Java package for each file is the value
-  of this command line option if present, or the value of
-  the same option defined in the file if present, or the
-  proto package if present, or the default Java package.
-
-java_outer_classname=<file-name>|<outer-classname> (no default)
-  This allows overriding the 'java_outer_classname' option
-  for the given file from the command line. Use multiple
-  java_outer_classname options to override the option for
-  multiple files. The final Java outer class name for each
-  file is the value of this command line option if present,
-  or the value of the same option defined in the file if
-  present, or the file name converted to CamelCase. This
-  outer class will nest all classes and integer constants
-  generated from file-scope messages and enums.
-
-java_multiple_files={true,false} (no default)
-  This allows overriding the 'java_multiple_files' option
-  in all source files and their imported files from the
-  command line. The final value of this option for each
-  file is the value defined in this command line option, or
-  the value of the same option defined in the file if
-  present, or false. This specifies whether to generate
-  package-level classes for the file-scope messages in the
-  same Java package as the outer class (instead of nested
-  classes in the outer class). File-scope enum constants
-  are still generated as integer constants in the outer
-  class. This affects the fully qualified references in the
-  Java code. NOTE: because the command line option
-  overrides the value for all files and their imported
-  files, using this option inconsistently may result in
-  incorrect references to the imported messages and enum
-  constants.
-
-
-IMPORTANT: change of javamicro_out behavior:
-
-In previous versions, if the outer class name has not been
-given explicitly, javamicro_out would not infer the outer
-class name from the file name, and would skip the outer
-class generation. This makes the compilation succeed only
-if the source file contains a single message and no enums,
-and the generated class for that message is placed at the
-package level. To re-align with java_out, javamicro_out
-will now always generate the outer class, inferring its
-name from the file name if not given, as a container of the
-message classes and enum constants. To keep any existing
-single-message source file from causing the generation of
-an unwanted outer class, you can set the option
-java_multiple_files to true, either in the file or as a
-command line option.
-
-
-Below are a series of examples for clarification of the
-various parameters and options. Assuming this file:
-
-src/proto/simple-data-protos.proto:
-
-    package testprotobuf;
-
-    message SimpleData {
-      optional fixed64 id = 1;
-      optional string description = 2;
-      optional bool ok = 3 [default = false];
-    };
-
-and the compiled protoc in the current working directory,
-then a simple command line to compile this file would be:
-
-./protoc --javamicro_out=. src/proto/simple-data-protos.proto
-
-This will create testprotobuf/SimpleDataProtos.java, which
-has the following content (extremely simplified):
-
-    package testprotobuf;
-
-    public final class SimpleDataProtos {
-      public static final class SimpleData
-          extends MessageMicro {
-        ...
-      }
-    }
-
-The message SimpleData is compiled into the SimpleData
-class, nested in the file's outer class SimpleDataProtos,
-whose name is implicitly defined by the proto file name
-"simple-data-protos".
-
-The directory, aka Java package, testprotobuf is created
-because on line 1 of simple-data-protos.proto is
-"package testprotobuf;". If you wanted a different
-package name you could use the java_package option in the
-file:
-
-    option java_package = "my_package";
-
-or in command line sub-parameter:
-
-./protoc '--javamicro_out=\
-java_package=src/proto/simple-data-protos.proto|my_package:\
-.' src/proto/simple-data-protos.proto
-
-Here you see the new java_package sub-parameter which
-itself needs two parameters the file name and the
-package name, these are separated by "|". The value set
-in the command line overrides the value set in the file.
-Now you'll find SimpleDataProtos.java in the my_package/
-directory.
-
-If you wanted to also change the optimization for
-speed you'd add opt=speed with the comma seperator
-as follows:
-
-./protoc '--javamicro_out=\
-opt=speed,\
-java_package=src/proto/simple-data-protos.proto|my_package:
-.' src/proto/simple-data-protos.proto
-
-If you also wanted a different outer class name you'd
-do the following:
-
-./protoc '--javamicro_out=\
-opt=speed,\
-java_package=src/proto/simple-data-protos.proto|my_package,\
-java_outer_classname=src/proto/simple-data-protos.proto|OuterName:\
-.' src/proto/simple-data-protos.proto
-
-Now you'll find my_package/OuterName.java and the
-message class SimpleData nested in it.
-
-As mentioned java_package, java_outer_classname and
-java_multiple_files may also be specified in the file.
-In the example below we must define
-java_outer_classname because otherwise the outer class
-and one of the message classes will have the same name,
-which is forbidden to prevent name ambiguity:
-
-src/proto/sample-message.proto:
-
-    package testmicroruntime;
-
-    option java_package = "com.example";
-    option java_outer_classname = "SampleMessageProtos";
-
-    enum MessageType {
-      SAMPLE = 1;
-      EXAMPLE = 2;
-    }
-
-    message SampleMessage {
-      required int32 id = 1;
-      required MessageType type = 2;
-    }
-
-    message SampleMessageContainer {
-      required SampleMessage message = 1;
-    }
-
-This could be compiled using:
-
-./protoc --javamicro_out=. src/proto/sample-message.proto
-
-and the output will be:
-
-com/example/SampleMessageProtos.java:
-
-    package com.example;
-
-    public final class SampleMessageProtos {
-      public static final int SAMPLE = 1;
-      public static final int EXAMPLE = 2;
-      public static final class SampleMessage
-          extends MessageMicro {
-        ...
-      }
-      public static final class SampleMessageContainer
-          extends MessageMicro {
-        ...
-      }
-    }
-
-As you can see the file-scope enum MessageType is
-disassembled into two integer constants in the outer class.
-In javamicro_out, all enums are disassembled and compiled
-into integer constants in the parent scope (the containing
-message's class or the file's (i.e. outer) class).
-
-You may prefer the file-scope messages to be saved in
-separate files. You can do this by setting the option
-java_multiple_files to true, in either the file like this:
-
-    option java_multiple_files = true;
-
-or the command line like this:
-
-./protoc --javamicro_out=\
-java_multiple_files=true:\
-. src/proto/sample-message.proto
-
-The java_multiple_files option causes javamicro to use a
-separate file for each file-scope message, which resides
-directly in the Java package alongside the outer class:
-
-com/example/SampleMessageProtos.java:
-
-    package com.example;
-    public final class SampleMessageProtos {
-      public static final int SAMPLE = 1;
-      public static final int EXAMPLE = 2;
-    }
-
-com/example/SampleMessage.java:
-
-    package com.example;
-    public final class SampleMessage
-        extends MessageMicro {
-      ...
-    }
-
-com/example/SampleMessageContainer.java:
-
-    package com.example;
-    public final class SampleMessageContainer
-        extends MessageMicro {
-      ...
-    }
-
-As you can see, the outer class now contains only the
-integer constants, generated from the file-scope enum
-"MessageType". Please note that message-scope enums are
-still generated as integer constants in the message class.
-
-
 Nano version
 ============================
 
@@ -479,10 +138,43 @@ enum_style             -> c or java
 ignore_services        -> true or false
 parcelable_messages    -> true or false
 
-java_package:
-java_outer_classname:
-java_multiple_files:
-  Same as Micro version.
+java_package=<file-name>|<package-name> (no default)
+  This allows overriding the 'java_package' option value
+  for the given file from the command line. Use multiple
+  java_package options to override the option for multiple
+  files. The final Java package for each file is the value
+  of this command line option if present, or the value of
+  the same option defined in the file if present, or the
+  proto package if present, or the default Java package.
+
+java_outer_classname=<file-name>|<outer-classname> (no default)
+  This allows overriding the 'java_outer_classname' option
+  for the given file from the command line. Use multiple
+  java_outer_classname options to override the option for
+  multiple files. The final Java outer class name for each
+  file is the value of this command line option if present,
+  or the value of the same option defined in the file if
+  present, or the file name converted to CamelCase. This
+  outer class will nest all classes and integer constants
+  generated from file-scope messages and enums.
+
+java_multiple_files={true,false} (no default)
+  This allows overriding the 'java_multiple_files' option
+  in all source files and their imported files from the
+  command line. The final value of this option for each
+  file is the value defined in this command line option, or
+  the value of the same option defined in the file if
+  present, or false. This specifies whether to generate
+  package-level classes for the file-scope messages in the
+  same Java package as the outer class (instead of nested
+  classes in the outer class). File-scope enum constants
+  are still generated as integer constants in the outer
+  class. This affects the fully qualified references in the
+  Java code. NOTE: because the command line option
+  overrides the value for all files and their imported
+  files, using this option inconsistently may result in
+  incorrect references to the imported messages and enum
+  constants.
 
 java_nano_generate_has={true,false} (default: false)
   DEPRECATED. Use optional_field_style=accessors.
@@ -653,11 +345,10 @@ Please run the following steps to test:
 - repo sync -c -j256
 - "make -j12" and check for build errors
 
-
 Usage
 =====
 
 The complete documentation for Protocol Buffers is available via the
 web at:
 
-  http://code.google.com/apis/protocolbuffers/
+  http://code.google.com/apis/protocolbuffers://developers.google.com/protocol-buffers/

+ 164 - 0
javanano/pom.xml

@@ -0,0 +1,164 @@
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>com.google</groupId>
+    <artifactId>google</artifactId>
+    <version>1</version>
+  </parent>
+  <groupId>com.google.protobuf.nano</groupId>
+  <artifactId>protobuf-javanano</artifactId>
+  <version>2.6.2-pre</version>
+  <packaging>bundle</packaging>
+  <name>Protocol Buffer JavaNano API</name>
+  <description>
+    Protocol Buffers are a way of encoding structured data in an efficient yet
+    extensible format.
+  </description>
+  <inceptionYear>2008</inceptionYear>
+  <url>https://developers.google.com/protocol-buffers/</url>
+  <licenses>
+    <license>
+      <name>New BSD license</name>
+      <url>http://www.opensource.org/licenses/bsd-license.php</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <scm>
+    <url>https://github.com/google/protobuf</url>
+    <connection>
+      scm:git:https://github.com/google/protobuf.git
+    </connection>
+  </scm>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.4</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.easymock</groupId>
+      <artifactId>easymock</artifactId>
+      <version>2.2</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.easymock</groupId>
+      <artifactId>easymockclassextension</artifactId>
+      <version>2.2.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <includes>
+            <include>**/*Test.java</include>
+          </includes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>generate-test-sources</id>
+            <phase>generate-test-sources</phase>
+            <configuration>
+              <tasks>
+                <mkdir dir="target/generated-test-sources" />
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=generate_equals=true:target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_simple_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_stringutf8_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_recursive_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_import_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_single_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_multiple_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_multiple_nameclash_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_enum_class_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_repeated_merge_nano.proto" />
+                </exec>
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=store_unknown_fields=true,generate_equals=true:target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_extension_singular_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_extension_repeated_nano.proto" />
+                </exec>
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=store_unknown_fields=true:target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_extension_packed_nano.proto" />
+                </exec>
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=java_nano_generate_has=true,generate_equals=true:target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_has_nano.proto" />
+                </exec>
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=optional_field_style=accessors,generate_equals=true:target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_accessors_nano.proto" />
+                </exec>
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=enum_style=java:target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_enum_class_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_enum_class_multiple_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_repeated_packables_nano.proto" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_enum_validity_nano.proto" />
+                </exec>
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=
+                                  optional_field_style=accessors,
+                                  java_outer_classname=google/protobuf/nano/unittest_enum_validity_nano.proto|EnumValidityAccessors
+                                :target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_enum_validity_nano.proto" />
+                </exec>
+                <exec executable="../src/protoc">
+                  <arg value="--javanano_out=optional_field_style=reftypes,generate_equals=true:target/generated-test-sources" />
+                  <arg value="--proto_path=src/test/java/com" />
+                  <arg value="src/test/java/com/google/protobuf/nano/unittest_reference_types_nano.proto" />
+                </exec>
+              </tasks>
+              <testSourceRoot>target/generated-test-sources</testSourceRoot>
+            </configuration>
+            <goals>
+              <goal>run</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <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=2.6.2-pre</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

+ 0 - 0
java/src/main/java/com/google/protobuf/nano/CodedInputByteBufferNano.java → javanano/src/main/java/com/google/protobuf/nano/CodedInputByteBufferNano.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/CodedOutputByteBufferNano.java → javanano/src/main/java/com/google/protobuf/nano/CodedOutputByteBufferNano.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/ExtendableMessageNano.java → javanano/src/main/java/com/google/protobuf/nano/ExtendableMessageNano.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/Extension.java → javanano/src/main/java/com/google/protobuf/nano/Extension.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/FieldArray.java → javanano/src/main/java/com/google/protobuf/nano/FieldArray.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/FieldData.java → javanano/src/main/java/com/google/protobuf/nano/FieldData.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/InternalNano.java → javanano/src/main/java/com/google/protobuf/nano/InternalNano.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/InvalidProtocolBufferNanoException.java → javanano/src/main/java/com/google/protobuf/nano/InvalidProtocolBufferNanoException.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/MessageNano.java → javanano/src/main/java/com/google/protobuf/nano/MessageNano.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java → javanano/src/main/java/com/google/protobuf/nano/MessageNanoPrinter.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/UnknownFieldData.java → javanano/src/main/java/com/google/protobuf/nano/UnknownFieldData.java


+ 0 - 0
java/src/main/java/com/google/protobuf/nano/WireFormatNano.java → javanano/src/main/java/com/google/protobuf/nano/WireFormatNano.java


+ 5 - 4
java/src/test/java/com/google/protobuf/NanoTest.java → javanano/src/test/java/com/google/protobuf/nano/NanoTest.java

@@ -28,7 +28,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-package com.google.protobuf;
+package com.google.protobuf.nano;
 
 import com.google.protobuf.nano.CodedInputByteBufferNano;
 import com.google.protobuf.nano.EnumClassNanoMultiple;
@@ -3123,11 +3123,12 @@ public class NanoTest extends TestCase {
     message.value = false;
 
     byte[] bytes = MessageNano.toByteArray(message);
-    int extraFieldSize = CodedOutputStream.computeStringSize(1001, "This is an unknown field");
+    int extraFieldSize = CodedOutputByteBufferNano.computeStringSize(
+        1001, "This is an unknown field");
     byte[] newBytes = new byte[bytes.length + extraFieldSize];
     System.arraycopy(bytes, 0, newBytes, 0, bytes.length);
-    CodedOutputStream.newInstance(newBytes, bytes.length, extraFieldSize).writeString(1001,
-        "This is an unknown field");
+    CodedOutputByteBufferNano.newInstance(newBytes, bytes.length, extraFieldSize)
+        .writeString(1001, "This is an unknown field");
 
     // Deserialize with an unknown field.
     AnotherMessage deserialized = AnotherMessage.parseFrom(newBytes);

+ 0 - 0
src/google/protobuf/unittest_accessors_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_accessors_nano.proto


+ 0 - 0
src/google/protobuf/unittest_enum_class_multiple_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_enum_class_multiple_nano.proto


+ 0 - 0
src/google/protobuf/unittest_enum_class_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_enum_class_nano.proto


+ 0 - 0
src/google/protobuf/unittest_enum_validity_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_enum_validity_nano.proto


+ 0 - 0
src/google/protobuf/unittest_extension_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto


+ 1 - 1
src/google/protobuf/unittest_extension_packed_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_extension_packed_nano.proto

@@ -3,7 +3,7 @@ syntax = "proto2";
 option java_multiple_files = true;
 option java_package = "com.google.protobuf.nano";
 
-import "google/protobuf/unittest_extension_nano.proto";
+import "google/protobuf/nano/unittest_extension_nano.proto";
 
 // Must be compiled separately due to extension number reuse.
 // The reuse is deliberate, for testing wire compatibility.

+ 1 - 1
src/google/protobuf/unittest_extension_repeated_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_extension_repeated_nano.proto

@@ -3,7 +3,7 @@ syntax = "proto2";
 option java_multiple_files = true;
 option java_package = "com.google.protobuf.nano";
 
-import "google/protobuf/unittest_extension_nano.proto";
+import "google/protobuf/nano/unittest_extension_nano.proto";
 
 // Must be compiled separately due to extension number reuse.
 // The reuse is deliberate, for testing wire compatibility.

+ 1 - 1
src/google/protobuf/unittest_extension_singular_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_extension_singular_nano.proto

@@ -3,7 +3,7 @@ syntax = "proto2";
 option java_multiple_files = true;
 option java_package = "com.google.protobuf.nano";
 
-import "google/protobuf/unittest_extension_nano.proto";
+import "google/protobuf/nano/unittest_extension_nano.proto";
 
 // Must be compiled separately due to extension number reuse.
 // The reuse is deliberate, for testing wire compatibility.

+ 0 - 0
src/google/protobuf/unittest_has_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_has_nano.proto


+ 2 - 3
src/google/protobuf/unittest_import_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto

@@ -34,9 +34,8 @@
 
 package protobuf_unittest_import;
 
-// java_package and java_outer_classname are specified on the command line.
-//option java_package = "com.google.protobuf.nano.testimport";
-//option java_outer_classname = "UnittestImportNano";
+option java_package = "com.google.protobuf.nano.testimport";
+option java_outer_classname = "UnittestImportNano";
 
 message ImportMessageNano {
   optional int32 d = 1;

+ 0 - 0
src/google/protobuf/unittest_multiple_nameclash_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_multiple_nameclash_nano.proto


+ 1 - 1
src/google/protobuf/unittest_multiple_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_multiple_nano.proto

@@ -32,7 +32,7 @@
 
 package protobuf_unittest_import;
 
-import "google/protobuf/unittest_import_nano.proto";
+import "google/protobuf/nano/unittest_import_nano.proto";
 
 option java_package = "com.google.protobuf.nano";
 option java_multiple_files = true;

+ 1 - 1
src/google/protobuf/unittest_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_nano.proto

@@ -32,7 +32,7 @@
 
 package protobuf_unittest;
 
-import "google/protobuf/unittest_import_nano.proto";
+import "google/protobuf/nano/unittest_import_nano.proto";
 
 option java_package = "com.google.protobuf.nano";
 option java_outer_classname = "NanoOuterClass";

+ 0 - 0
src/google/protobuf/unittest_recursive_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_recursive_nano.proto


+ 0 - 0
src/google/protobuf/unittest_reference_types_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_reference_types_nano.proto


+ 1 - 1
src/google/protobuf/unittest_repeated_merge_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_repeated_merge_nano.proto

@@ -32,7 +32,7 @@
 
 package protobuf_unittest;
 
-import "google/protobuf/unittest_nano.proto";
+import "google/protobuf/nano/unittest_nano.proto";
 
 option java_package = "com.google.protobuf.nano";
 option java_multiple_files = true;

+ 0 - 0
src/google/protobuf/unittest_repeated_packables_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_repeated_packables_nano.proto


+ 0 - 0
src/google/protobuf/unittest_simple_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_simple_nano.proto


+ 0 - 0
src/google/protobuf/unittest_single_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_single_nano.proto


+ 0 - 0
src/google/protobuf/unittest_stringutf8_nano.proto → javanano/src/test/java/com/google/protobuf/nano/unittest_stringutf8_nano.proto


+ 3 - 3
src/google/protobuf/compiler/javanano/javanano_enum.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_ENUM_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_ENUM_H__
 
 #include <string>
 #include <vector>
@@ -84,4 +84,4 @@ class EnumGenerator {
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_ENUM_H__

+ 3 - 3
src/google/protobuf/compiler/javanano/javanano_enum_field.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_ENUM_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_ENUM_FIELD_H__
 
 #include <map>
 #include <string>
@@ -122,4 +122,4 @@ class RepeatedEnumFieldGenerator : public FieldGenerator {
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_ENUM_FIELD_H__

+ 3 - 3
src/google/protobuf/compiler/javanano/javanano_extension.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_EXTENSION_H_
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_EXTENSION_H_
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_EXTENSION_H_
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_EXTENSION_H_
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/compiler/javanano/javanano_params.h>
@@ -71,4 +71,4 @@ class ExtensionGenerator {
 }  // namespace protobuf
 }  // namespace google
 
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_EXTENSION_H_
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_EXTENSION_H_

+ 3 - 3
src/google/protobuf/compiler/javanano/javanano_field.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_FIELD_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_FIELD_H__
 
 #include <string>
 #include <google/protobuf/stubs/common.h>
@@ -116,4 +116,4 @@ class FieldGeneratorMap {
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_FIELD_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_FIELD_H__

+ 2 - 2
src/google/protobuf/compiler/javanano/javanano_file.cc

@@ -215,7 +215,7 @@ template<typename GeneratorClass, typename DescriptorClass>
 static void GenerateSibling(const string& package_dir,
                             const string& java_package,
                             const DescriptorClass* descriptor,
-                            OutputDirectory* output_directory,
+                            GeneratorContext* output_directory,
                             vector<string>* file_list,
                             const Params& params) {
   string filename = package_dir + descriptor->name() + ".java";
@@ -238,7 +238,7 @@ static void GenerateSibling(const string& package_dir,
 }
 
 void FileGenerator::GenerateSiblings(const string& package_dir,
-                                     OutputDirectory* output_directory,
+                                     GeneratorContext* output_directory,
                                      vector<string>* file_list) {
   if (params_.java_multiple_files(file_->name())) {
     for (int i = 0; i < file_->message_type_count(); i++) {

+ 5 - 5
src/google/protobuf/compiler/javanano/javanano_file.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_FILE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_FILE_H__
 
 #include <string>
 #include <vector>
@@ -47,7 +47,7 @@ namespace protobuf {
     class Printer;             // printer.h
   }
   namespace compiler {
-    class OutputDirectory;     // code_generator.h
+    class GeneratorContext;     // code_generator.h
   }
 }
 
@@ -71,7 +71,7 @@ class FileGenerator {
   // files other than the outer file (i.e. one for each message, enum, and
   // service type).
   void GenerateSiblings(const string& package_dir,
-                        OutputDirectory* output_directory,
+                        GeneratorContext* output_directory,
                         vector<string>* file_list);
 
   const string& java_package() { return java_package_; }
@@ -91,4 +91,4 @@ class FileGenerator {
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_FILE_H__

+ 1 - 1
src/google/protobuf/compiler/javanano/javanano_generator.cc

@@ -87,7 +87,7 @@ JavaNanoGenerator::~JavaNanoGenerator() {}
 
 bool JavaNanoGenerator::Generate(const FileDescriptor* file,
                              const string& parameter,
-                             OutputDirectory* output_directory,
+                             GeneratorContext* output_directory,
                              string* error) const {
   vector<pair<string, string> > options;
 

+ 4 - 4
src/google/protobuf/compiler/javanano/javanano_generator.h

@@ -34,8 +34,8 @@
 //
 // Generates Java nano code for a given .proto file.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_NANO_GENERATOR_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_NANO_GENERATOR_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_NANO_GENERATOR_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_NANO_GENERATOR_H__
 
 #include <string>
 #include <google/protobuf/compiler/code_generator.h>
@@ -57,7 +57,7 @@ class LIBPROTOC_EXPORT JavaNanoGenerator : public CodeGenerator {
   // implements CodeGenerator ----------------------------------------
   bool Generate(const FileDescriptor* file,
                 const string& parameter,
-                OutputDirectory* output_directory,
+                GeneratorContext* output_directory,
                 string* error) const;
 
  private:
@@ -69,4 +69,4 @@ class LIBPROTOC_EXPORT JavaNanoGenerator : public CodeGenerator {
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_NANO_GENERATOR_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_NANO_GENERATOR_H__

+ 3 - 3
src/google/protobuf/compiler/javanano/javanano_helpers.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_HELPERS_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_HELPERS_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_HELPERS_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_HELPERS_H__
 
 #include <string>
 #include <google/protobuf/compiler/javanano/javanano_params.h>
@@ -186,4 +186,4 @@ void SetBitOperationVariables(const string name,
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_HELPERS_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_HELPERS_H__

+ 3 - 3
src/google/protobuf/compiler/javanano/javanano_message.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_MESSAGE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_MESSAGE_H__
 
 #include <string>
 #include <google/protobuf/compiler/javanano/javanano_helpers.h>
@@ -92,4 +92,4 @@ class MessageGenerator {
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_MESSAGE_H__

+ 3 - 3
src/google/protobuf/compiler/javanano/javanano_message_field.h

@@ -32,8 +32,8 @@
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVANANO_MESSAGE_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVANANO_MESSAGE_FIELD_H__
 
 #include <map>
 #include <string>
@@ -93,4 +93,4 @@ class RepeatedMessageFieldGenerator : public FieldGenerator {
 }  // namespace protobuf
 
 }  // namespace google
-#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
+#endif  // GOOGLE_PROTOBUF_COMPILER_JAVANANO_MESSAGE_FIELD_H__