Repository: incubator-gearpump Updated Branches: refs/heads/master 9234e530c -> d034fc56d
[GEARPUMP-368] Add dedicated trait for commands Author: karol-brejna-i <[email protected]> Closes #241 from karol-brejna-i/GEARPUMP-368_submit_app_via_ui. Project: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/commit/d034fc56 Tree: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/tree/d034fc56 Diff: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/diff/d034fc56 Branch: refs/heads/master Commit: d034fc56d006ff317f5aa819b213a9bffb5d740b Parents: 9234e53 Author: karol-brejna-i <[email protected]> Authored: Sun Apr 29 15:24:11 2018 +0800 Committer: manuzhang <[email protected]> Committed: Sun Apr 29 15:24:24 2018 +0800 ---------------------------------------------------------------------- .../gearpump/cluster/main/AppSubmitter.scala | 5 +-- .../org/apache/gearpump/cluster/main/Gear.scala | 6 +--- .../org/apache/gearpump/cluster/main/Info.scala | 4 +-- .../org/apache/gearpump/cluster/main/Kill.scala | 4 +-- .../apache/gearpump/cluster/main/Local.scala | 4 +-- .../gearpump/cluster/main/MainRunner.scala | 4 +-- .../apache/gearpump/cluster/main/Replay.scala | 4 +-- .../gearpump/util/MasterClientCommand.scala | 37 ++++++++++++++++++++ .../experiments/storm/main/GearpumpNimbus.scala | 4 +-- 9 files changed, 53 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/cluster/main/AppSubmitter.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/cluster/main/AppSubmitter.scala b/core/src/main/scala/org/apache/gearpump/cluster/main/AppSubmitter.scala index 508448f..defd86e 100644 --- a/core/src/main/scala/org/apache/gearpump/cluster/main/AppSubmitter.scala +++ b/core/src/main/scala/org/apache/gearpump/cluster/main/AppSubmitter.scala @@ -21,12 +21,13 @@ import java.io.File import java.net.{URL, URLClassLoader} import java.util.jar.JarFile -import org.apache.gearpump.util.{AkkaApp, Constants, LogUtil, Util} +import org.apache.gearpump.cluster.client.RuntimeEnvironment +import org.apache.gearpump.util.{Constants, LogUtil, MasterClientCommand, Util} import scala.util.{Failure, Success, Try} /** Tool to submit an application jar to cluster */ -object AppSubmitter extends AkkaApp with ArgumentsParser { +object AppSubmitter extends MasterClientCommand with ArgumentsParser { override val ignoreUnknownArgument = true http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/cluster/main/Gear.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/cluster/main/Gear.scala b/core/src/main/scala/org/apache/gearpump/cluster/main/Gear.scala index 7301819..7d6181f 100644 --- a/core/src/main/scala/org/apache/gearpump/cluster/main/Gear.scala +++ b/core/src/main/scala/org/apache/gearpump/cluster/main/Gear.scala @@ -39,9 +39,7 @@ object Gear { private def executeCommand(command: String, commandArgs: Array[String]) = { commands.get(command) match { case Some(runner) => - val akkaConfig = ClusterConfig.default() - LogUtil.loadConfiguration(akkaConfig, ProcessType.CLIENT) - runner.main(akkaConfig, commandArgs) + runner.main(commandArgs) case None => printUsage() } @@ -54,8 +52,6 @@ object Gear { System.setProperty(Constants.GEARPUMP_CUSTOM_CONFIG_FILE, configFile) } - RuntimeEnvironment.setRuntimeEnv(new RemoteRuntimeEnvironment) - if (args.length == 0) { printUsage() } else { http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/cluster/main/Info.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/cluster/main/Info.scala b/core/src/main/scala/org/apache/gearpump/cluster/main/Info.scala index fa2d429..8f8290c 100644 --- a/core/src/main/scala/org/apache/gearpump/cluster/main/Info.scala +++ b/core/src/main/scala/org/apache/gearpump/cluster/main/Info.scala @@ -19,10 +19,10 @@ package org.apache.gearpump.cluster.main import org.apache.gearpump.cluster.MasterToAppMaster.AppMastersData import org.apache.gearpump.cluster.client.ClientContext -import org.apache.gearpump.util.AkkaApp +import org.apache.gearpump.util.MasterClientCommand /** Tool to query master info */ -object Info extends AkkaApp with ArgumentsParser { +object Info extends MasterClientCommand with ArgumentsParser { override val options: Array[(String, CLIOption[Any])] = Array( // For document purpose only, OPTION_CONFIG option is not used here. http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/cluster/main/Kill.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/cluster/main/Kill.scala b/core/src/main/scala/org/apache/gearpump/cluster/main/Kill.scala index d5a3520..d7016a3 100644 --- a/core/src/main/scala/org/apache/gearpump/cluster/main/Kill.scala +++ b/core/src/main/scala/org/apache/gearpump/cluster/main/Kill.scala @@ -19,10 +19,10 @@ package org.apache.gearpump.cluster.main import org.apache.gearpump.cluster.client.ClientContext -import org.apache.gearpump.util.AkkaApp +import org.apache.gearpump.util.MasterClientCommand /** Tool to kill an App */ -object Kill extends AkkaApp with ArgumentsParser { +object Kill extends MasterClientCommand with ArgumentsParser { override val options: Array[(String, CLIOption[Any])] = Array( "appid" -> CLIOption("<application id>", required = true), http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/cluster/main/Local.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/cluster/main/Local.scala b/core/src/main/scala/org/apache/gearpump/cluster/main/Local.scala index db2cd8a..64a26c4 100644 --- a/core/src/main/scala/org/apache/gearpump/cluster/main/Local.scala +++ b/core/src/main/scala/org/apache/gearpump/cluster/main/Local.scala @@ -25,14 +25,14 @@ import org.apache.gearpump.cluster.master.{Master => MasterActor} import org.apache.gearpump.cluster.worker.{Worker => WorkerActor} import org.apache.gearpump.util.Constants._ import org.apache.gearpump.util.LogUtil.ProcessType -import org.apache.gearpump.util.{ActorUtil, AkkaApp, Constants, LogUtil, Util} +import org.apache.gearpump.util.{ActorUtil, Constants, LogUtil, MasterClientCommand, Util} import org.slf4j.Logger import scala.collection.JavaConverters._ import scala.concurrent.Await import scala.concurrent.duration.Duration -object Local extends AkkaApp with ArgumentsParser { +object Local extends MasterClientCommand with ArgumentsParser { override def akkaConfig: Config = ClusterConfig.master() var LOG: Logger = LogUtil.getLogger(getClass) http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/cluster/main/MainRunner.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/cluster/main/MainRunner.scala b/core/src/main/scala/org/apache/gearpump/cluster/main/MainRunner.scala index 11b7239..acc8e56 100644 --- a/core/src/main/scala/org/apache/gearpump/cluster/main/MainRunner.scala +++ b/core/src/main/scala/org/apache/gearpump/cluster/main/MainRunner.scala @@ -18,10 +18,10 @@ package org.apache.gearpump.cluster.main -import org.apache.gearpump.util.AkkaApp +import org.apache.gearpump.util.MasterClientCommand /** Tool to run any main class by providing a jar */ -object MainRunner extends AkkaApp with ArgumentsParser { +object MainRunner extends MasterClientCommand with ArgumentsParser { override val options: Array[(String, CLIOption[Any])] = Array( // For document purpose only, OPTION_CONFIG option is not used here. http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/cluster/main/Replay.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/cluster/main/Replay.scala b/core/src/main/scala/org/apache/gearpump/cluster/main/Replay.scala index 8c2d7ef..3a9cac1 100644 --- a/core/src/main/scala/org/apache/gearpump/cluster/main/Replay.scala +++ b/core/src/main/scala/org/apache/gearpump/cluster/main/Replay.scala @@ -18,10 +18,10 @@ package org.apache.gearpump.cluster.main import org.apache.gearpump.cluster.client.ClientContext -import org.apache.gearpump.util.AkkaApp +import org.apache.gearpump.util.MasterClientCommand // Internal tool to restart an application -object Replay extends AkkaApp with ArgumentsParser { +object Replay extends MasterClientCommand with ArgumentsParser { override val options: Array[(String, CLIOption[Any])] = Array( "appid" -> CLIOption("<application id>", required = true), http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/core/src/main/scala/org/apache/gearpump/util/MasterClientCommand.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/org/apache/gearpump/util/MasterClientCommand.scala b/core/src/main/scala/org/apache/gearpump/util/MasterClientCommand.scala new file mode 100644 index 0000000..4d46eb5 --- /dev/null +++ b/core/src/main/scala/org/apache/gearpump/util/MasterClientCommand.scala @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.gearpump.util + +import org.apache.gearpump.cluster.client.{RemoteRuntimeEnvironment, RuntimeEnvironment} +import org.apache.gearpump.util.LogUtil.ProcessType + +import scala.util.Try + +trait MasterClientCommand extends AkkaApp { + + override def main(args: Array[String]): Unit = { + RuntimeEnvironment.setRuntimeEnv(new RemoteRuntimeEnvironment) + LogUtil.loadConfiguration(akkaConfig, ProcessType.CLIENT) + + Try { + main(akkaConfig, args) + }.failed.foreach { ex => help(); throw ex } + } + +} http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/d034fc56/experiments/storm/src/main/scala/org/apache/gearpump/experiments/storm/main/GearpumpNimbus.scala ---------------------------------------------------------------------- diff --git a/experiments/storm/src/main/scala/org/apache/gearpump/experiments/storm/main/GearpumpNimbus.scala b/experiments/storm/src/main/scala/org/apache/gearpump/experiments/storm/main/GearpumpNimbus.scala index c66159e..1a0b9ff 100644 --- a/experiments/storm/src/main/scala/org/apache/gearpump/experiments/storm/main/GearpumpNimbus.scala +++ b/experiments/storm/src/main/scala/org/apache/gearpump/experiments/storm/main/GearpumpNimbus.scala @@ -42,9 +42,9 @@ import org.apache.gearpump.experiments.storm.topology.GearpumpStormTopology import org.apache.gearpump.experiments.storm.util.TimeCacheMapWrapper.Callback import org.apache.gearpump.experiments.storm.util.{GraphBuilder, StormConstants, StormUtil, TimeCacheMapWrapper} import org.apache.gearpump.streaming.StreamApplication -import org.apache.gearpump.util.{AkkaApp, Constants, LogUtil} +import org.apache.gearpump.util.{Constants, LogUtil, MasterClientCommand} -object GearpumpNimbus extends AkkaApp with ArgumentsParser { +object GearpumpNimbus extends MasterClientCommand with ArgumentsParser { private val THRIFT_PORT = StormUtil.getThriftPort() private val OUTPUT = "output" private val LOG: Logger = LogUtil.getLogger(classOf[GearpumpNimbus])
