This is an automated email from the ASF dual-hosted git repository.
lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new 48476ae Standardize the startup class structure (#243)
48476ae is described below
commit 48476ae587fa91f04eacf7486b6c7cf4bb988977
Author: Zhanhui Li <[email protected]>
AuthorDate: Sun Apr 8 16:33:45 2018 +0800
Standardize the startup class structure (#243)
---
.../org/apache/rocketmq/broker/BrokerStartup.java | 6 +
.../apache/rocketmq/namesrv/NamesrvStartup.java | 162 ++++++++++++---------
2 files changed, 99 insertions(+), 69 deletions(-)
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
index 7627bb9..f0a1150 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
@@ -79,6 +79,12 @@ public class BrokerStartup {
return null;
}
+ public static void shutdown(final BrokerController controller) {
+ if (null != controller) {
+ controller.shutdown();
+ }
+ }
+
public static BrokerController createBrokerController(String[] args) {
System.setProperty(RemotingCommand.REMOTING_VERSION_KEY,
Integer.toString(MQVersion.CURRENT_VERSION));
diff --git
a/namesrv/src/main/java/org/apache/rocketmq/namesrv/NamesrvStartup.java
b/namesrv/src/main/java/org/apache/rocketmq/namesrv/NamesrvStartup.java
index a55735a..a073daf 100644
--- a/namesrv/src/main/java/org/apache/rocketmq/namesrv/NamesrvStartup.java
+++ b/namesrv/src/main/java/org/apache/rocketmq/namesrv/NamesrvStartup.java
@@ -18,8 +18,10 @@ package org.apache.rocketmq.namesrv;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.concurrent.Callable;
@@ -40,99 +42,121 @@ import org.apache.rocketmq.srvutil.ShutdownHookThread;
import org.slf4j.LoggerFactory;
public class NamesrvStartup {
- public static Properties properties = null;
- public static CommandLine commandLine = null;
+
+ private static InternalLogger log;
+ private static Properties properties = null;
+ private static CommandLine commandLine = null;
public static void main(String[] args) {
main0(args);
}
public static NamesrvController main0(String[] args) {
- System.setProperty(RemotingCommand.REMOTING_VERSION_KEY,
Integer.toString(MQVersion.CURRENT_VERSION));
+
try {
- //PackageConflictDetect.detectFastjson();
+ NamesrvController controller = createNamesrvController(args);
+ start(controller);
+ String tip = "The Name Server boot success. serializeType=" +
RemotingCommand.getSerializeTypeConfigInThisServer();
+ log.info(tip);
+ System.out.printf("%s%n", tip);
+ return controller;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ System.exit(-1);
+ }
- Options options = ServerUtil.buildCommandlineOptions(new
Options());
- commandLine = ServerUtil.parseCmdLine("mqnamesrv", args,
buildCommandlineOptions(options), new PosixParser());
- if (null == commandLine) {
- System.exit(-1);
- return null;
- }
+ return null;
+ }
- final NamesrvConfig namesrvConfig = new NamesrvConfig();
- final NettyServerConfig nettyServerConfig = new
NettyServerConfig();
- nettyServerConfig.setListenPort(9876);
- if (commandLine.hasOption('c')) {
- String file = commandLine.getOptionValue('c');
- if (file != null) {
- InputStream in = new BufferedInputStream(new
FileInputStream(file));
- properties = new Properties();
- properties.load(in);
- MixAll.properties2Object(properties, namesrvConfig);
- MixAll.properties2Object(properties, nettyServerConfig);
-
- namesrvConfig.setConfigStorePath(file);
-
- System.out.printf("load config properties file OK, %s%n",
file);
- in.close();
- }
- }
+ public static NamesrvController createNamesrvController(String[] args)
throws IOException, JoranException {
+ System.setProperty(RemotingCommand.REMOTING_VERSION_KEY,
Integer.toString(MQVersion.CURRENT_VERSION));
+ //PackageConflictDetect.detectFastjson();
- if (commandLine.hasOption('p')) {
- MixAll.printObjectProperties(null, namesrvConfig);
- MixAll.printObjectProperties(null, nettyServerConfig);
- System.exit(0);
+ Options options = ServerUtil.buildCommandlineOptions(new Options());
+ commandLine = ServerUtil.parseCmdLine("mqnamesrv", args,
buildCommandlineOptions(options), new PosixParser());
+ if (null == commandLine) {
+ System.exit(-1);
+ return null;
+ }
+
+ final NamesrvConfig namesrvConfig = new NamesrvConfig();
+ final NettyServerConfig nettyServerConfig = new NettyServerConfig();
+ nettyServerConfig.setListenPort(9876);
+ if (commandLine.hasOption('c')) {
+ String file = commandLine.getOptionValue('c');
+ if (file != null) {
+ InputStream in = new BufferedInputStream(new
FileInputStream(file));
+ properties = new Properties();
+ properties.load(in);
+ MixAll.properties2Object(properties, namesrvConfig);
+ MixAll.properties2Object(properties, nettyServerConfig);
+
+ namesrvConfig.setConfigStorePath(file);
+
+ System.out.printf("load config properties file OK, %s%n",
file);
+ in.close();
}
+ }
+
+ if (commandLine.hasOption('p')) {
+ MixAll.printObjectProperties(null, namesrvConfig);
+ MixAll.printObjectProperties(null, nettyServerConfig);
+ System.exit(0);
+ }
-
MixAll.properties2Object(ServerUtil.commandLine2Properties(commandLine),
namesrvConfig);
+
MixAll.properties2Object(ServerUtil.commandLine2Properties(commandLine),
namesrvConfig);
- if (null == namesrvConfig.getRocketmqHome()) {
- System.out.printf("Please set the %s variable in your
environment to match the location of the RocketMQ installation%n",
MixAll.ROCKETMQ_HOME_ENV);
- System.exit(-2);
- }
+ if (null == namesrvConfig.getRocketmqHome()) {
+ System.out.printf("Please set the %s variable in your environment
to match the location of the RocketMQ installation%n",
MixAll.ROCKETMQ_HOME_ENV);
+ System.exit(-2);
+ }
- LoggerContext lc = (LoggerContext)
LoggerFactory.getILoggerFactory();
- JoranConfigurator configurator = new JoranConfigurator();
- configurator.setContext(lc);
- lc.reset();
- configurator.doConfigure(namesrvConfig.getRocketmqHome() +
"/conf/logback_namesrv.xml");
- final InternalLogger log =
InternalLoggerFactory.getLogger(LoggerName.NAMESRV_LOGGER_NAME);
+ LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
+ JoranConfigurator configurator = new JoranConfigurator();
+ configurator.setContext(lc);
+ lc.reset();
+ configurator.doConfigure(namesrvConfig.getRocketmqHome() +
"/conf/logback_namesrv.xml");
- MixAll.printObjectProperties(log, namesrvConfig);
- MixAll.printObjectProperties(log, nettyServerConfig);
+ log = InternalLoggerFactory.getLogger(LoggerName.NAMESRV_LOGGER_NAME);
- final NamesrvController controller = new
NamesrvController(namesrvConfig, nettyServerConfig);
+ MixAll.printObjectProperties(log, namesrvConfig);
+ MixAll.printObjectProperties(log, nettyServerConfig);
- // remember all configs to prevent discard
- controller.getConfiguration().registerConfig(properties);
+ final NamesrvController controller = new
NamesrvController(namesrvConfig, nettyServerConfig);
- boolean initResult = controller.initialize();
- if (!initResult) {
- controller.shutdown();
- System.exit(-3);
- }
+ // remember all configs to prevent discard
+ controller.getConfiguration().registerConfig(properties);
- Runtime.getRuntime().addShutdownHook(new ShutdownHookThread(log,
new Callable<Void>() {
- @Override
- public Void call() throws Exception {
- controller.shutdown();
- return null;
- }
- }));
+ return controller;
+ }
- controller.start();
+ public static NamesrvController start(final NamesrvController controller)
throws Exception {
- String tip = "The Name Server boot success. serializeType=" +
RemotingCommand.getSerializeTypeConfigInThisServer();
- log.info(tip);
- System.out.printf("%s%n", tip);
+ if (null == controller) {
+ throw new IllegalArgumentException("NamesrvController is null");
+ }
- return controller;
- } catch (Throwable e) {
- e.printStackTrace();
- System.exit(-1);
+ boolean initResult = controller.initialize();
+ if (!initResult) {
+ controller.shutdown();
+ System.exit(-3);
}
- return null;
+ Runtime.getRuntime().addShutdownHook(new ShutdownHookThread(log, new
Callable<Void>() {
+ @Override
+ public Void call() throws Exception {
+ controller.shutdown();
+ return null;
+ }
+ }));
+
+ controller.start();
+
+ return controller;
+ }
+
+ public static void shutdown(final NamesrvController controller) {
+ controller.shutdown();
}
public static Options buildCommandlineOptions(final Options options) {
--
To stop receiving notification emails like this one, please contact
[email protected].