You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by zi...@apache.org on 2022/08/01 08:48:46 UTC
[pulsar] branch master updated: [fix][broker] Fix misleading -c option in pulsar standalone (#16838)
This is an automated email from the ASF dual-hosted git repository.
zike pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 3f109d6cb7f [fix][broker] Fix misleading -c option in pulsar standalone (#16838)
3f109d6cb7f is described below
commit 3f109d6cb7f128a5f8331e33477fd69c3c26d531
Author: Zike Yang <zi...@apache.org>
AuthorDate: Mon Aug 1 16:48:39 2022 +0800
[fix][broker] Fix misleading -c option in pulsar standalone (#16838)
Motivation
The -c option offered in the standalone is missleading.
An error occurs when pass --config
Modification
* Add `-Dpulsar.config.file` to specify the pulsar standalone config file
* The priority for config file loading: using `-c or --config` > using `-Dpulsar.config.file`
---
bin/pulsar | 2 +-
.../main/java/org/apache/pulsar/PulsarStandalone.java | 2 +-
.../org/apache/pulsar/PulsarStandaloneStarter.java | 19 ++++++++++++++++---
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/bin/pulsar b/bin/pulsar
index d56376a0bf6..205659f8d18 100755
--- a/bin/pulsar
+++ b/bin/pulsar
@@ -371,7 +371,7 @@ elif [ $COMMAND == "functions-worker" ]; then
exec $JAVA $OPTS -Dpulsar.log.file=$PULSAR_LOG_FILE org.apache.pulsar.functions.worker.FunctionWorkerStarter -c $PULSAR_WORKER_CONF $@
elif [ $COMMAND == "standalone" ]; then
PULSAR_LOG_FILE=${PULSAR_LOG_FILE:-"pulsar-standalone.log"}
- exec $JAVA $LOG4J2_SHUTDOWN_HOOK_DISABLED $OPTS ${ZK_OPTS} -Dpulsar.log.file=$PULSAR_LOG_FILE org.apache.pulsar.PulsarStandaloneStarter --config $PULSAR_STANDALONE_CONF $@
+ exec $JAVA $LOG4J2_SHUTDOWN_HOOK_DISABLED $OPTS ${ZK_OPTS} -Dpulsar.log.file=$PULSAR_LOG_FILE -Dpulsar.config.file=$PULSAR_STANDALONE_CONF org.apache.pulsar.PulsarStandaloneStarter $@
elif [ ${COMMAND} == "autorecovery" ]; then
PULSAR_LOG_FILE=${PULSAR_LOG_FILE:-"pulsar-autorecovery.log"}
exec $JAVA $OPTS -Dpulsar.log.file=$PULSAR_LOG_FILE org.apache.bookkeeper.replication.AutoRecoveryMain --conf $PULSAR_BOOKKEEPER_CONF $@
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java
index 8d19971880f..8866922e103 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java
@@ -210,7 +210,7 @@ public class PulsarStandalone implements AutoCloseable {
return help;
}
- @Parameter(names = { "-c", "--config" }, description = "Configuration file path", required = true)
+ @Parameter(names = { "-c", "--config" }, description = "Configuration file path")
private String configFile;
@Parameter(names = { "--wipe-data" }, description = "Clean up previous ZK/BK data")
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java
index 58d9b369573..f2c397e170d 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java
@@ -21,6 +21,7 @@ package org.apache.pulsar;
import static org.apache.commons.lang3.StringUtils.isBlank;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
+import com.google.common.base.Strings;
import java.io.FileInputStream;
import java.util.Arrays;
import lombok.extern.slf4j.Slf4j;
@@ -32,6 +33,9 @@ import org.apache.pulsar.common.util.CmdGenerateDocs;
@Slf4j
public class PulsarStandaloneStarter extends PulsarStandalone {
+
+ private static final String PULSAR_CONFIG_FILE = "pulsar.config.file";
+
@Parameter(names = {"-g", "--generate-docs"}, description = "Generate docs")
private boolean generateDocs = false;
@@ -41,9 +45,18 @@ public class PulsarStandaloneStarter extends PulsarStandalone {
try {
jcommander.addObject(this);
jcommander.parse(args);
- if (this.isHelp() || isBlank(this.getConfigFile())) {
+ if (this.isHelp()) {
jcommander.usage();
- return;
+ System.exit(0);
+ }
+ if (Strings.isNullOrEmpty(this.getConfigFile())) {
+ String configFile = System.getProperty(PULSAR_CONFIG_FILE);
+ if (Strings.isNullOrEmpty(configFile)) {
+ throw new IllegalArgumentException(
+ "Config file not specified. Please use -c, --config-file or -Dpulsar.config.file to "
+ + "specify the config file.");
+ }
+ this.setConfigFile(configFile);
}
if (this.generateDocs) {
CmdGenerateDocs cmd = new CmdGenerateDocs("pulsar");
@@ -60,7 +73,7 @@ public class PulsarStandaloneStarter extends PulsarStandalone {
} catch (Exception e) {
jcommander.usage();
log.error(e.getMessage());
- return;
+ System.exit(1);
}
try (FileInputStream inputStream = new FileInputStream(this.getConfigFile())) {