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 75b114d..a7448a4 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -189,7 +189,7 @@
 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 @@
   // 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 ef9db49..72c3cdd 100644
--- a/compiler/cpp/src/parse/t_program.h
+++ b/compiler/cpp/src/parse/t_program.h
@@ -176,14 +176,6 @@
     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 @@
   // 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 bb68358..9aa56bd 100644
--- a/compiler/cpp/src/thrifty.yy
+++ b/compiler/cpp/src/thrifty.yy
@@ -312,11 +312,13 @@
         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 d760d9e..72599fa 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 6339f4d..94a8548 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 c094a14..3383aee 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 bf6414b..4cadaf7 100644
--- a/thrift.vim
+++ b/thrift.vim
@@ -30,7 +30,7 @@
 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 0d50bfa..e986537 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 575afcb..3a1b7d2 100755
--- a/tutorial/tutorial.thrift
+++ b/tutorial/tutorial.thrift
@@ -45,7 +45,7 @@
  * target languages.
  */
 namespace cpp tutorial
-java_package tutorial
+namespace java tutorial
 php_namespace tutorial
 perl_package tutorial
 smalltalk_category Thrift-Tutorial