Make limited reflection optional (off by default).

Limited reflection is deprecated, and it is slowing down compilation.
This change will disable generation of static reflection by default,
but it adds a command line argument to re-enable it.

Tested by running make check and building the C++ test client and server.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665520 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index 27753ac..93ad7ee 100644
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -41,6 +41,9 @@
     iter = parsed_options.find("include_prefix");
     use_include_prefix_ = (iter != parsed_options.end());
 
+    iter = parsed_options.find("reflection_limited");
+    gen_reflection_limited_ = (iter != parsed_options.end());
+
     out_dir_base_ = "gen-cpp";
   }
 
@@ -193,6 +196,11 @@
   std::string get_include_prefix(const t_program& program) const;
 
   /**
+   * True iff we should generate limited reflectors for services.
+   */
+  bool gen_reflection_limited_;
+
+  /**
    * True iff we should generate local reflection metadata for TDenseProtocol.
    */
   bool gen_dense_;
@@ -1316,7 +1324,9 @@
     generate_function_helpers(tservice, *f_iter);
   }
 
-  generate_service_limited_reflector(tservice);
+  if (gen_reflection_limited_) {
+    generate_service_limited_reflector(tservice);
+  }
 }
 
 /**
diff --git a/test/Makefile.am b/test/Makefile.am
index 118d869..c690790 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -66,13 +66,13 @@
 THRIFT = $(top_srcdir)/compiler/cpp/thrift
 
 gen-cpp/DebugProtoTest_types.cpp gen-cpp/PartiallyReflectable.cpp: DebugProtoTest.thrift
-	$(THRIFT) --gen cpp $<
+	$(THRIFT) --gen cpp:dense,reflection_limited $<
 
 gen-cpp/OptionalRequiredTest_types.cpp: OptionalRequiredTest.thrift
-	$(THRIFT) --gen cpp $<
+	$(THRIFT) --gen cpp:dense $<
 
 gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp: StressTest.thrift
-	$(THRIFT) --gen cpp $<
+	$(THRIFT) --gen cpp:dense,reflection_limited $<
 
 
 INCLUDES = \