From: David Reiss Date: Wed, 27 Feb 2008 01:55:25 +0000 (+0000) Subject: Make the Java generator use non-hardcoded namespaces. X-Git-Tag: 0.2.0~958 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=771f8c797b1920919aadcb63d9e1dab3cd1905f6;p=common%2Fthrift.git Make the Java generator use non-hardcoded namespaces. - Make the Java generator use program->get_namespace("java") instead of program->get_java_namespace() - Eliminate the explicit "java_namespace" in t_program. - Deprecate the java_namespace token. - Update example .thrift files and syntax files. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665514 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index 75b114db..a7448a45 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -189,7 +189,7 @@ class t_java_generator : public t_oop_generator { void t_java_generator::init_generator() { // Make output directory MKDIR(get_out_dir().c_str()); - package_name_ = program_->get_java_package(); + package_name_ = program_->get_namespace("java"); string dir = package_name_; string subdir = get_out_dir(); @@ -2000,7 +2000,7 @@ string t_java_generator::type_name(t_type* ttype, bool in_container, bool in_ini // Check for namespacing t_program* program = ttype->get_program(); if (program != NULL && program != program_) { - string package = program->get_java_package(); + string package = program->get_namespace("java"); if (!package.empty()) { return package + "." + ttype->get_name(); } diff --git a/compiler/cpp/src/parse/t_program.h b/compiler/cpp/src/parse/t_program.h index ef9db496..72c3cddb 100644 --- a/compiler/cpp/src/parse/t_program.h +++ b/compiler/cpp/src/parse/t_program.h @@ -176,14 +176,6 @@ class t_program : public t_doc { return php_namespace_; } - void set_java_package(std::string java_package) { - java_package_ = java_package; - } - - const std::string& get_java_package() const { - return java_package_; - } - void set_csharp_namespace(std::string csharp_namespace) { csharp_namespace_ = csharp_namespace; } @@ -289,9 +281,6 @@ class t_program : public t_doc { // PHP namespace std::string php_namespace_; - // Java package - std::string java_package_; - // XSD namespace std::string xsd_namespace_; diff --git a/compiler/cpp/src/thrifty.yy b/compiler/cpp/src/thrifty.yy index bb683585..9aa56bdd 100644 --- a/compiler/cpp/src/thrifty.yy +++ b/compiler/cpp/src/thrifty.yy @@ -312,11 +312,13 @@ Header: g_program->set_smalltalk_prefix($2); } } +/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ | tok_java_package tok_identifier { + pwarning(1, "'cpp_namespace' is deprecated. Use 'namespace cpp' instead"); pdebug("Header -> tok_java_package tok_identifier"); if (g_parse_mode == PROGRAM) { - g_program->set_java_package($2); + g_program->set_namespace("java", $2); } } | tok_cocoa_prefix tok_identifier diff --git a/test/DocTest.thrift b/test/DocTest.thrift index d760d9e0..72599fac 100755 --- a/test/DocTest.thrift +++ b/test/DocTest.thrift @@ -4,7 +4,7 @@ * Seriously, this is the documentation for this whole program. */ -java_package thrift.test +namespace java thrift.test namespace cpp thrift.test // C++ comment diff --git a/test/ThriftTest.thrift b/test/ThriftTest.thrift index 6339f4d6..94a85489 100644 --- a/test/ThriftTest.thrift +++ b/test/ThriftTest.thrift @@ -1,4 +1,4 @@ -java_package thrift.test +namespace java thrift.test namespace cpp thrift.test ruby_namespace Thrift.Test perl_package ThriftTest diff --git a/thrift.el b/thrift.el index c094a145..3383aeec 100644 --- a/thrift.el +++ b/thrift.el @@ -10,7 +10,7 @@ (defconst thrift-font-lock-keywords (list '("#.*$" . font-lock-comment-face) ;; perl style comments - '("\\<\\(include\\|struct\\|exception\\|typedef\\|java_package\\|cocoa_prefix\\|csharp_namespace\\|php_namespace\\|ruby_namespace\\|py_module\\|perl_package\\|smalltalk_category\\|smalltalk_prefix\\|const\\|enum\\|service\\|extends\\|void\\|async\\|throws\\|optional\\|required\\)\\>" . font-lock-keyword-face) ;; keywords + '("\\<\\(include\\|struct\\|exception\\|typedef\\|cocoa_prefix\\|csharp_namespace\\|php_namespace\\|ruby_namespace\\|py_module\\|perl_package\\|smalltalk_category\\|smalltalk_prefix\\|const\\|enum\\|service\\|extends\\|void\\|async\\|throws\\|optional\\|required\\)\\>" . font-lock-keyword-face) ;; keywords '("\\<\\(bool\\|byte\\|i16\\|i32\\|i64\\|double\\|string\\|binary\\|map\\|list\\|set\\)\\>" . font-lock-type-face) ;; built-in types '("\\<\\([0-9]+\\)\\>" . font-lock-variable-name-face) ;; ordinals '("\\<\\(\\w+\\)\\s-*(" (1 font-lock-function-name-face)) ;; functions diff --git a/thrift.vim b/thrift.vim index bf6414b7..4cadaf76 100644 --- a/thrift.vim +++ b/thrift.vim @@ -30,7 +30,7 @@ syn region thriftStringDouble matchgroup=None start=+"+ end=+"+ syn match thriftNumber "-\=\<\d\+\>" contained " Keywords -syn keyword thriftKeyword namespace java_package cocoa_prefix +syn keyword thriftKeyword namespace cocoa_prefix syn keyword thriftKeyword csharp_namespace smalltalk_category smalltalk_prefix syn keyword thriftKeyword php_namespace ruby_namespace py_module perl_package syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_namespace xsd_attrs diff --git a/tutorial/shared.thrift b/tutorial/shared.thrift index 0d50bfa0..e986537e 100755 --- a/tutorial/shared.thrift +++ b/tutorial/shared.thrift @@ -6,7 +6,7 @@ */ namespace cpp shared -java_package shared +namespace java shared perl_package shared struct SharedStruct { diff --git a/tutorial/tutorial.thrift b/tutorial/tutorial.thrift index 575afcbf..3a1b7d24 100755 --- a/tutorial/tutorial.thrift +++ b/tutorial/tutorial.thrift @@ -45,7 +45,7 @@ include "shared.thrift" * target languages. */ namespace cpp tutorial -java_package tutorial +namespace java tutorial php_namespace tutorial perl_package tutorial smalltalk_category Thrift-Tutorial