You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2015/07/05 19:24:56 UTC

thrift git commit: THRIFT-3220 Option to suppress @Generated Annotation entirely Client: Java Patch: notona & Jens Geyer

Repository: thrift
Updated Branches:
  refs/heads/master 74086f18a -> 6e4037656


THRIFT-3220 Option to suppress @Generated Annotation entirely
Client: Java
Patch: notona <no...@gmail.com> & Jens Geyer

This closes #540

This change contains:
- the work of notona from GitHub PR 540
- additional changes I made to align THRIFT-3220 and THRIFT-3193


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/6e403765
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/6e403765
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/6e403765

Branch: refs/heads/master
Commit: 6e4037656885132a44407fb7d66f6d034b379376
Parents: 74086f1
Author: Jens Geyer <je...@apache.org>
Authored: Sun Jul 5 18:40:17 2015 +0200
Committer: Jens Geyer <je...@apache.org>
Committed: Sun Jul 5 19:24:11 2015 +0200

----------------------------------------------------------------------
 compiler/cpp/src/generate/t_java_generator.cc | 32 +++++++++++++++++-----
 1 file changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/6e403765/compiler/cpp/src/generate/t_java_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index d5b46f9..c4cbc45 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -91,8 +91,14 @@ public:
     iter = parsed_options.find("option_type");
     use_option_type_ = (iter != parsed_options.end());
 
-    iter = parsed_options.find("undated_generated_annotations");
-    undated_generated_annotations_ = (iter != parsed_options.end());
+    iter = parsed_options.find("generated_annotations");
+    if (iter != parsed_options.end()) {
+      undated_generated_annotations_  = (iter->second.compare("undated") == 0);
+      suppress_generated_annotations_ = (iter->second.compare("suppress") == 0);
+    } else {
+      undated_generated_annotations_  = false;
+      suppress_generated_annotations_ = false;
+    }
 
     out_dir_base_ = (bean_style_ ? "gen-javabean" : "gen-java");
   }
@@ -347,6 +353,8 @@ private:
   bool reuse_objects_;
   bool use_option_type_;
   bool undated_generated_annotations_;
+  bool suppress_generated_annotations_;
+  
 };
 
 /**
@@ -396,6 +404,8 @@ string t_java_generator::java_package() {
 string t_java_generator::java_type_imports() {
   string hash_builder;
   string tree_set_and_map;
+  string annotation_generated;
+
   string option;
   if (sorted_containers_) {
     tree_set_and_map = string() + "import java.util.TreeSet;\n" + "import java.util.TreeMap;\n";
@@ -405,6 +415,11 @@ string t_java_generator::java_type_imports() {
     option = string() + "import org.apache.thrift.Option;\n";
   }
 
+  // android does not support @Generated Annotation
+  if (!suppress_generated_annotations_) {
+    annotation_generated = string() + "import javax.annotation.Generated;\n";
+  }
+
   return string() + hash_builder + "import org.apache.thrift.scheme.IScheme;\n"
          + "import org.apache.thrift.scheme.SchemeFactory;\n"
          + "import org.apache.thrift.scheme.StandardScheme;\n\n"
@@ -421,7 +436,7 @@ string t_java_generator::java_type_imports() {
          + "import java.util.HashSet;\n" + "import java.util.EnumSet;\n" + tree_set_and_map
          + "import java.util.Collections;\n" + "import java.util.BitSet;\n"
          + "import java.nio.ByteBuffer;\n"
-           "import java.util.Arrays;\n" + "import javax.annotation.Generated;\n"
+         + "import java.util.Arrays;\n" + annotation_generated
          + "import org.slf4j.Logger;\n" + "import org.slf4j.LoggerFactory;\n\n";
 }
 
@@ -1333,7 +1348,7 @@ void t_java_generator::generate_java_struct_definition(ofstream& out,
 
   bool is_final = (tstruct->annotations_.find("final") != tstruct->annotations_.end());
 
-  if (!in_class) {
+  if (!in_class && !suppress_generated_annotations_) {
     generate_javax_generated_annotation(out);
   }
 
@@ -2635,7 +2650,9 @@ void t_java_generator::generate_service(t_service* tservice) {
 
   f_service_ << autogen_comment() << java_package() << java_type_imports() << java_suppressions();
 
-  generate_javax_generated_annotation(f_service_);
+  if (!suppress_generated_annotations_) {
+    generate_javax_generated_annotation(f_service_);
+  }
   f_service_ << "public class " << service_name_ << " {" << endl << endl;
   indent_up();
 
@@ -5124,5 +5141,6 @@ THRIFT_REGISTER_GENERATOR(
     "    sorted_containers:\n"
     "                     Use TreeSet/TreeMap instead of HashSet/HashMap as a implementation of "
     "set/map.\n"
-    "    undated_generated_annotations:\n"
-    "                     Do not generate the date for the @Generated annotation")
+    "    generated_annotations=[undated|suppress]:\n"
+    "                     undated: suppress the date at @Generated annotations\n"
+    "                     suppress: suppress @Generated annotations entirely\n")