Ethan Li created STORM-3688:
-------------------------------
Summary: Copy storm.daemon.metrics.reporter.plugin.* configs from
Config class to DaemonConfig class and deprecate the copy in Config class
Key: STORM-3688
URL: https://issues.apache.org/jira/browse/STORM-3688
Project: Apache Storm
Issue Type: Improvement
Reporter: Ethan Li
After the change in STORM-3670, the following configs
{code:java}
public static final String STORM_DAEMON_METRICS_REPORTER_PLUGIN_LOCALE =
"storm.daemon.metrics.reporter.plugin.locale";
public static final String STORM_DAEMON_METRICS_REPORTER_PLUGIN_RATE_UNIT =
"storm.daemon.metrics.reporter.plugin.rate.unit";
public static final String STORM_DAEMON_METRICS_REPORTER_PLUGIN_DURATION_UNIT =
"storm.daemon.metrics.reporter.plugin.duration.unit";
{code}
are only used in daemon side. We can't move it to DaemonConfig from Config
class because if a topology code refers to them directly, it will break
(ClassNotFoundException) if the variables are moved out of Config class in a
newer version of storm cluster.
A better way is to duplicate them in DaemonConfig and "@deprecate" them in
Config class.
While doing so, I saw errors unit test (nimbus_test.clj)
{code:java}
[INFO] --- clojure-maven-plugin:1.7.1:test (test-clojure) @ storm-core ---
Exception in thread "main" Syntax error compiling at
(org/apache/storm/nimbus_test.clj:1:1).
at clojure.lang.Compiler.load(Compiler.java:7647)
at clojure.lang.RT.loadResourceScript(RT.java:381)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.load(RT.java:463)
at clojure.lang.RT.load(RT.java:428)
at clojure.core$load$fn__6824.invoke(core.clj:6126)
at clojure.core$load.invokeStatic(core.clj:6125)
at clojure.core$load.doInvoke(core.clj:6109)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5908)
at clojure.core$load_one.invoke(core.clj:5903)
at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
at clojure.core$load_lib.invokeStatic(core.clj:5947)
at clojure.core$load_lib.doInvoke(core.clj:5928)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$load_libs.invokeStatic(core.clj:5985)
at clojure.core$load_libs.doInvoke(core.clj:5969)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$require.invokeStatic(core.clj:6007)
at clojure.core$require.doInvoke(core.clj:6007)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at
org.apache.storm.testrunner$eval194$iter__195__199$fn__200$fn__201.invoke(test_runner.clj:43)
at
org.apache.storm.testrunner$eval194$iter__195__199$fn__200.invoke(test_runner.clj:42)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:51)
at clojure.lang.RT.seq(RT.java:531)
at clojure.core$seq__5387.invokeStatic(core.clj:137)
at clojure.core$dorun.invokeStatic(core.clj:3133)
at clojure.core$dorun.invoke(core.clj:3133)
at org.apache.storm.testrunner$eval194.invokeStatic(test_runner.clj:42)
at org.apache.storm.testrunner$eval194.invoke(test_runner.clj:42)
at clojure.lang.Compiler.eval(Compiler.java:7176)
at clojure.lang.Compiler.load(Compiler.java:7635)
at clojure.lang.Compiler.loadFile(Compiler.java:7573)
at clojure.main$load_script.invokeStatic(main.clj:452)
at clojure.main$script_opt.invokeStatic(main.clj:512)
at clojure.main$script_opt.invoke(main.clj:507)
at clojure.main$main.invokeStatic(main.clj:598)
at clojure.main$main.doInvoke(main.clj:561)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:705)
at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalStateException:
STORM-DAEMON-METRICS-REPORTER-PLUGIN-DURATION-UNIT already refers to:
#'org.apache.storm.daemon-config/STORM-DAEMON-METRICS-REPORTER-PLUGIN-DURATION-UNIT
in namespace: org.apache.storm.nimbus-test
at clojure.lang.Namespace.warnOrFailOnReplace(Namespace.java:88)
at clojure.lang.Namespace.reference(Namespace.java:110)
at clojure.lang.Namespace.refer(Namespace.java:168)
at clojure.core$refer.invokeStatic(core.clj:4252)
at clojure.core$refer.doInvoke(core.clj:4217)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at clojure.lang.AFn.applyToHelper(AFn.java:154)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$load_lib.invokeStatic(core.clj:5966)
at clojure.core$load_lib.doInvoke(core.clj:5928)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$load_libs.invokeStatic(core.clj:5989)
at clojure.core$load_libs.doInvoke(core.clj:5969)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$use.invokeStatic(core.clj:6093)
at clojure.core$use.doInvoke(core.clj:6093)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at
org.apache.storm.nimbus_test$eval212$loading__6706__auto____213.invoke(nimbus_test.clj:16)
at org.apache.storm.nimbus_test$eval212.invokeStatic(nimbus_test.clj:16)
at org.apache.storm.nimbus_test$eval212.invoke(nimbus_test.clj:16)
at clojure.lang.Compiler.eval(Compiler.java:7176)
at clojure.lang.Compiler.eval(Compiler.java:7165)
at clojure.lang.Compiler.load(Compiler.java:7635)
... 43 more
{code}
So I filed this as a separate task. And anyone can work on it later.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)