From: Roger Meier Date: Sat, 9 Nov 2013 18:41:46 +0000 (+0100) Subject: THRIFT-1813 java: Add @Generated annotation to generated classes X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=1ee7bb645d1ca5b54198d77cdc9f0517e509cc39;p=common%2Fthrift.git THRIFT-1813 java: Add @Generated annotation to generated classes Patch: Arvind Jayaprakash and Andrew Gaul --- diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index ec9e1fc9..9b48df04 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -18,6 +18,7 @@ */ #include +#include #include #include @@ -177,6 +178,7 @@ public: void generate_java_struct_tuple_reader(ofstream& out, t_struct* tstruct); void generate_java_struct_tuple_writer(ofstream& out, t_struct* tstruct); + void generate_javax_generated_annotation(ofstream& out); /** * Serialization constructs */ @@ -396,6 +398,7 @@ string t_java_generator::java_type_imports() { "import java.util.BitSet;\n" + "import java.nio.ByteBuffer;\n" "import java.util.Arrays;\n" + + "import javax.annotation.Generated;\n" + "import org.slf4j.Logger;\n" + "import org.slf4j.LoggerFactory;\n\n"; } @@ -1281,6 +1284,10 @@ void t_java_generator::generate_java_struct_definition(ofstream &out, bool is_final = (tstruct->annotations_.find("final") != tstruct->annotations_.end()); + if (!in_class) { + generate_javax_generated_annotation(out); + } + indent(out) << "public " << (is_final ? "final " : "") << (in_class ? "static " : "") << "class " << tstruct->get_name() << " "; @@ -2241,6 +2248,7 @@ void t_java_generator::generate_service(t_service* tservice) { java_package() << java_type_imports(); + generate_javax_generated_annotation(f_service_); f_service_ << "public class " << service_name_ << " {" << endl << endl; indent_up(); @@ -4518,6 +4526,15 @@ void t_java_generator::generate_java_struct_tuple_scheme(ofstream& out, t_struct out << indent() << "}" << endl << endl; } +void t_java_generator::generate_javax_generated_annotation(ofstream& out){ + time_t seconds = time(NULL); + struct tm *now = localtime(&seconds); + indent(out) << "@Generated(value = \"" << autogen_summary() + << "\", date = \"" << (now->tm_year + 1900) + << "-" << (now->tm_mon + 1) << "-" << now->tm_mday + << "\")" << endl; +} + THRIFT_REGISTER_GENERATOR(java, "Java", " beans: Members will be private, and setter methods will return void.\n" " private-members: Members will be private, but setter methods will return 'this' like usual.\n" diff --git a/compiler/cpp/src/generate/t_oop_generator.h b/compiler/cpp/src/generate/t_oop_generator.h index 20b73b23..0cf2dce6 100644 --- a/compiler/cpp/src/generate/t_oop_generator.h +++ b/compiler/cpp/src/generate/t_oop_generator.h @@ -67,12 +67,17 @@ class t_oop_generator : public t_generator { virtual std::string autogen_comment() { return std::string("/**\n") + - " * Autogenerated by Thrift Compiler (" + THRIFT_VERSION + ")\n" + + " * " + autogen_summary() + "\n" + " *\n" + " * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n" + " * @generated\n" + " */\n"; } + + virtual std::string autogen_summary() { + return + std::string("Autogenerated by Thrift Compiler (") + THRIFT_VERSION + ")"; + } }; #endif