aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjieluo@google.com <jieluo@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2014-08-07 19:03:12 +0000
committerjieluo@google.com <jieluo@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2014-08-07 19:03:12 +0000
commit7db9c098df1c73c6b35c23519d53ec3f92315db9 (patch)
treeb9242cc9b11854fdec5fc8bf5c88afe1294be8b8
parent9efebb3294791c0a3e26540f6c4943475603f1a5 (diff)
downloadprotobuf-7db9c098df1c73c6b35c23519d53ec3f92315db9.tar.gz
protobuf-7db9c098df1c73c6b35c23519d53ec3f92315db9.tar.bz2
protobuf-7db9c098df1c73c6b35c23519d53ec3f92315db9.zip
change java compiler to only produce one java file
-rw-r--r--examples/Makefile2
-rw-r--r--src/google/protobuf/compiler/java/java_file.cc8
-rw-r--r--src/google/protobuf/compiler/java/java_generator.cc9
-rw-r--r--src/google/protobuf/compiler/java/java_name_resolver.cc2
-rw-r--r--src/google/protobuf/compiler/java/java_shared_code_generator.cc18
-rw-r--r--src/google/protobuf/compiler/java/java_shared_code_generator.h3
6 files changed, 15 insertions, 27 deletions
diff --git a/examples/Makefile b/examples/Makefile
index bdfeae68..8dc90836 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -30,7 +30,7 @@ list_people_cpp: list_people.cc protoc_middleman
c++ list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
javac_middleman: AddPerson.java ListPeople.java protoc_middleman
- javac AddPerson.java ListPeople.java com/example/tutorial/AddressBookProtos.java com/example/tutorial/AddressBookProtosInternalDescriptors.java
+ javac AddPerson.java ListPeople.java com/example/tutorial/AddressBookProtos.java
@touch javac_middleman
add_person_java: javac_middleman
diff --git a/src/google/protobuf/compiler/java/java_file.cc b/src/google/protobuf/compiler/java/java_file.cc
index deec0e71..2d825f65 100644
--- a/src/google/protobuf/compiler/java/java_file.cc
+++ b/src/google/protobuf/compiler/java/java_file.cc
@@ -44,6 +44,7 @@
#include <google/protobuf/compiler/java/java_message.h>
#include <google/protobuf/compiler/java/java_name_resolver.h>
#include <google/protobuf/compiler/java/java_service.h>
+#include <google/protobuf/compiler/java/java_shared_code_generator.h>
#include <google/protobuf/compiler/code_generator.h>
#include <google/protobuf/io/printer.h>
#include <google/protobuf/io/zero_copy_stream.h>
@@ -314,14 +315,13 @@ void FileGenerator::GenerateDescriptorInitializationCodeForImmutable(
" getDescriptor() {\n"
" return descriptor;\n"
"}\n"
- "private static com.google.protobuf.Descriptors.FileDescriptor\n"
+ "public static com.google.protobuf.Descriptors.FileDescriptor\n"
" descriptor;\n"
"static {\n");
printer->Indent();
- printer->Print(
- "descriptor = $descriptor_classname$.descriptor;\n",
- "descriptor_classname", name_resolver_->GetDescriptorClassName(file_));
+ SharedCodeGenerator shared_code_generator(file_);
+ shared_code_generator.GenerateDescriptors(printer);
for (int i = 0; i < file_->message_type_count(); i++) {
message_generators_[i]->GenerateStaticVariableInitializers(printer);
diff --git a/src/google/protobuf/compiler/java/java_generator.cc b/src/google/protobuf/compiler/java/java_generator.cc
index b713797b..42132fa0 100644
--- a/src/google/protobuf/compiler/java/java_generator.cc
+++ b/src/google/protobuf/compiler/java/java_generator.cc
@@ -99,19 +99,10 @@ bool JavaGenerator::Generate(const FileDescriptor* file,
vector<string> all_files;
- if (generate_shared_code) {
- // Generate code shared between immutable and mutable API.
- SharedCodeGenerator shared_code_generator(file);
- shared_code_generator.Generate(context, &all_files);
- }
-
vector<FileGenerator*> file_generators;
if (generate_immutable_code) {
file_generators.push_back(new FileGenerator(file, /* immutable = */ true));
}
- if (generate_mutable_code) {
- file_generators.push_back(new FileGenerator(file, /* mutable = */ false));
- }
for (int i = 0; i < file_generators.size(); ++i) {
if (!file_generators[i]->Validate(error)) {
for (int j = 0; j < file_generators.size(); ++j) {
diff --git a/src/google/protobuf/compiler/java/java_name_resolver.cc b/src/google/protobuf/compiler/java/java_name_resolver.cc
index 7f52d234..bc7b8146 100644
--- a/src/google/protobuf/compiler/java/java_name_resolver.cc
+++ b/src/google/protobuf/compiler/java/java_name_resolver.cc
@@ -177,7 +177,7 @@ bool ClassNameResolver::HasConflictingClassName(
string ClassNameResolver::GetDescriptorClassName(
const FileDescriptor* descriptor) {
- return GetFileImmutableClassName(descriptor) + "InternalDescriptors";
+ return GetFileImmutableClassName(descriptor);
}
string ClassNameResolver::GetClassName(const FileDescriptor* descriptor,
diff --git a/src/google/protobuf/compiler/java/java_shared_code_generator.cc b/src/google/protobuf/compiler/java/java_shared_code_generator.cc
index c9f80abf..e454a526 100644
--- a/src/google/protobuf/compiler/java/java_shared_code_generator.cc
+++ b/src/google/protobuf/compiler/java/java_shared_code_generator.cc
@@ -80,12 +80,18 @@ void SharedCodeGenerator::Generate(GeneratorContext* context,
"package", java_package);
}
printer->Print(
- "public final class $classname$ {\n",
+ "public final class $classname$ {\n"
+ " public static com.google.protobuf.Descriptors.FileDescriptor\n"
+ " descriptor;\n"
+ " static {\n",
"classname", classname);
printer->Indent();
+ printer->Indent();
GenerateDescriptors(printer.get());
printer->Outdent();
+ printer->Outdent();
printer->Print(
+ " }\n"
"}\n");
printer.reset();
@@ -113,11 +119,7 @@ void SharedCodeGenerator::GenerateDescriptors(io::Printer* printer) {
file_proto.SerializeToString(&file_data);
printer->Print(
- "public static com.google.protobuf.Descriptors.FileDescriptor\n"
- " descriptor;\n"
- "static {\n"
- " java.lang.String[] descriptorData = {\n");
- printer->Indent();
+ "java.lang.String[] descriptorData = {\n");
printer->Indent();
// Only write 40 bytes per line.
@@ -206,10 +208,6 @@ void SharedCodeGenerator::GenerateDescriptors(io::Printer* printer) {
printer->Print(
" }, assigner);\n");
-
- printer->Outdent();
- printer->Print(
- "}\n");
}
bool SharedCodeGenerator::ShouldIncludeDependency(
diff --git a/src/google/protobuf/compiler/java/java_shared_code_generator.h b/src/google/protobuf/compiler/java/java_shared_code_generator.h
index c5457bf1..8e37eaf7 100644
--- a/src/google/protobuf/compiler/java/java_shared_code_generator.h
+++ b/src/google/protobuf/compiler/java/java_shared_code_generator.h
@@ -68,10 +68,9 @@ class SharedCodeGenerator {
void Generate(GeneratorContext* generator_context,
vector<string>* file_list);
-
- private:
void GenerateDescriptors(io::Printer* printer);
+ private:
// Returns whether the dependency should be included in the output file.
// Always returns true for opensource, but used internally at Google to help
// improve compatibility with version 1 of protocol buffers.