Skip to content

Commit

Permalink
[pulsar-admin] New option takes precedence over deprecated option (ap…
Browse files Browse the repository at this point in the history
…ache#12260)

### Motivation
Currently, we use new option to replace some deprecated option in client-tools. for example:
pulsar/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
```java
 @parameter(names = "--brokerServiceUrl", description = "The URL for the Pulsar broker", hidden = true) 
 protected String DEPRECATED_brokerServiceUrl; 
 @parameter(names = "--broker-service-url", description = "The URL for the Pulsar broker") 
 protected String brokerServiceUrl; 
```
In order to maintain compatibility, the deprecated option still take effect through merging, as below:
pulsar/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
```java
 private void mergeArgs() { 
     if (!isBlank(DEPRECATED_brokerServiceUrl)) brokerServiceUrl = DEPRECATED_brokerServiceUrl; 
     if (!isBlank(DEPRECATED_clientAuthPlugin)) clientAuthPlugin = DEPRECATED_clientAuthPlugin; 
     if (!isBlank(DEPRECATED_clientAuthParams)) clientAuthParams = DEPRECATED_clientAuthParams; 
     if (DEPRECATED_useTls != null) useTls = DEPRECATED_useTls; 
     if (DEPRECATED_tlsAllowInsecureConnection != null) tlsAllowInsecureConnection = DEPRECATED_tlsAllowInsecureConnection; 
     if (DEPRECATED_tlsHostNameVerificationEnabled != null) tlsHostNameVerificationEnabled = DEPRECATED_tlsHostNameVerificationEnabled; 
     if (!isBlank(DEPRECATED_tlsTrustCertFilePath)) tlsTrustCertFilePath = DEPRECATED_tlsTrustCertFilePath; 
 } 
```
But I found that its priority is higher than the new option, which causes the new option to be invalid when we set both at the same time.

### Modifications
Adjust the priority of the new and deprecated option, the deprecated option only takes effect when the new option is not set.
  • Loading branch information
yuruguo authored Oct 12, 2021
1 parent 6c03e53 commit 8505422
Show file tree
Hide file tree
Showing 3 changed files with 169 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -325,22 +325,52 @@ abstract class FunctionDetailsCommand extends BaseCommand {
protected String userCodeFile;

private void mergeArgs() {
if (!StringUtils.isBlank(DEPRECATED_className)) className = DEPRECATED_className;
if (!StringUtils.isBlank(DEPRECATED_topicsPattern)) topicsPattern = DEPRECATED_topicsPattern;
if (!StringUtils.isBlank(DEPRECATED_logTopic)) logTopic = DEPRECATED_logTopic;
if (!StringUtils.isBlank(DEPRECATED_outputSerdeClassName)) outputSerdeClassName = DEPRECATED_outputSerdeClassName;
if (!StringUtils.isBlank(DEPRECATED_customSerdeInputString)) customSerdeInputString = DEPRECATED_customSerdeInputString;

if (!StringUtils.isBlank(DEPRECATED_fnConfigFile)) fnConfigFile = DEPRECATED_fnConfigFile;
if (DEPRECATED_processingGuarantees != null) processingGuarantees = DEPRECATED_processingGuarantees;
if (!StringUtils.isBlank(DEPRECATED_userConfigString)) userConfigString = DEPRECATED_userConfigString;
if (DEPRECATED_retainOrdering != null) retainOrdering = DEPRECATED_retainOrdering;
if (DEPRECATED_windowLengthCount != null) windowLengthCount = DEPRECATED_windowLengthCount;
if (DEPRECATED_windowLengthDurationMs != null) windowLengthDurationMs = DEPRECATED_windowLengthDurationMs;
if (DEPRECATED_slidingIntervalCount != null) slidingIntervalCount = DEPRECATED_slidingIntervalCount;
if (DEPRECATED_slidingIntervalDurationMs != null) slidingIntervalDurationMs = DEPRECATED_slidingIntervalDurationMs;
if (DEPRECATED_autoAck != null) autoAck = DEPRECATED_autoAck;
if (DEPRECATED_timeoutMs != null) timeoutMs = DEPRECATED_timeoutMs;
if (isBlank(className) && !isBlank(DEPRECATED_className)) {
className = DEPRECATED_className;
}
if (isBlank(topicsPattern) && !isBlank(DEPRECATED_topicsPattern)) {
topicsPattern = DEPRECATED_topicsPattern;
}
if (isBlank(logTopic) && !isBlank(DEPRECATED_logTopic)) {
logTopic = DEPRECATED_logTopic;
}
if (isBlank(outputSerdeClassName) && !isBlank(DEPRECATED_outputSerdeClassName)) {
outputSerdeClassName = DEPRECATED_outputSerdeClassName;
}
if (isBlank(customSerdeInputString) && !isBlank(DEPRECATED_customSerdeInputString)) {
customSerdeInputString = DEPRECATED_customSerdeInputString;
}

if (isBlank(fnConfigFile) && !isBlank(DEPRECATED_fnConfigFile)) {
fnConfigFile = DEPRECATED_fnConfigFile;
}
if (processingGuarantees == null && DEPRECATED_processingGuarantees != null) {
processingGuarantees = DEPRECATED_processingGuarantees;
}
if (isBlank(userConfigString) && !isBlank(DEPRECATED_userConfigString)) {
userConfigString = DEPRECATED_userConfigString;
}
if (retainOrdering == null && DEPRECATED_retainOrdering != null) {
retainOrdering = DEPRECATED_retainOrdering;
}
if (windowLengthCount == null && DEPRECATED_windowLengthCount != null) {
windowLengthCount = DEPRECATED_windowLengthCount;
}
if (windowLengthDurationMs == null && DEPRECATED_windowLengthDurationMs != null) {
windowLengthDurationMs = DEPRECATED_windowLengthDurationMs;
}
if (slidingIntervalCount == null && DEPRECATED_slidingIntervalCount != null) {
slidingIntervalCount = DEPRECATED_slidingIntervalCount;
}
if (slidingIntervalDurationMs == null && DEPRECATED_slidingIntervalDurationMs != null) {
slidingIntervalDurationMs = DEPRECATED_slidingIntervalDurationMs;
}
if (autoAck == null && DEPRECATED_autoAck != null) {
autoAck = DEPRECATED_autoAck;
}
if (timeoutMs == null && DEPRECATED_timeoutMs != null) {
timeoutMs = DEPRECATED_timeoutMs;
}
}

@Override
Expand Down Expand Up @@ -657,15 +687,33 @@ class LocalRunner extends FunctionDetailsCommand {
protected String metricsPortStart;

private void mergeArgs() {
if (!StringUtils.isBlank(DEPRECATED_stateStorageServiceUrl)) stateStorageServiceUrl = DEPRECATED_stateStorageServiceUrl;
if (!StringUtils.isBlank(DEPRECATED_brokerServiceUrl)) brokerServiceUrl = DEPRECATED_brokerServiceUrl;
if (!StringUtils.isBlank(DEPRECATED_clientAuthPlugin)) clientAuthPlugin = DEPRECATED_clientAuthPlugin;
if (!StringUtils.isBlank(DEPRECATED_clientAuthParams)) clientAuthParams = DEPRECATED_clientAuthParams;
if (DEPRECATED_useTls != null) useTls = DEPRECATED_useTls;
if (DEPRECATED_tlsAllowInsecureConnection != null) tlsAllowInsecureConnection = DEPRECATED_tlsAllowInsecureConnection;
if (DEPRECATED_tlsHostNameVerificationEnabled != null) tlsHostNameVerificationEnabled = DEPRECATED_tlsHostNameVerificationEnabled;
if (!StringUtils.isBlank(DEPRECATED_tlsTrustCertFilePath)) tlsTrustCertFilePath = DEPRECATED_tlsTrustCertFilePath;
if (DEPRECATED_instanceIdOffset != null) instanceIdOffset = DEPRECATED_instanceIdOffset;
if (isBlank(stateStorageServiceUrl) && !isBlank(DEPRECATED_stateStorageServiceUrl)) {
stateStorageServiceUrl = DEPRECATED_stateStorageServiceUrl;
}
if (isBlank(brokerServiceUrl) && !isBlank(DEPRECATED_brokerServiceUrl)) {
brokerServiceUrl = DEPRECATED_brokerServiceUrl;
}
if (isBlank(clientAuthPlugin) && !isBlank(DEPRECATED_clientAuthPlugin)) {
clientAuthPlugin = DEPRECATED_clientAuthPlugin;
}
if (isBlank(clientAuthParams) && !isBlank(DEPRECATED_clientAuthParams)) {
clientAuthParams = DEPRECATED_clientAuthParams;
}
if (useTls == false && DEPRECATED_useTls != null) {
useTls = DEPRECATED_useTls;
}
if (tlsAllowInsecureConnection == false && DEPRECATED_tlsAllowInsecureConnection != null) {
tlsAllowInsecureConnection = DEPRECATED_tlsAllowInsecureConnection;
}
if (tlsHostNameVerificationEnabled == false && DEPRECATED_tlsHostNameVerificationEnabled != null) {
tlsHostNameVerificationEnabled = DEPRECATED_tlsHostNameVerificationEnabled;
}
if (isBlank(tlsTrustCertFilePath) && !isBlank(DEPRECATED_tlsTrustCertFilePath)) {
tlsTrustCertFilePath = DEPRECATED_tlsTrustCertFilePath;
}
if (instanceIdOffset == null && DEPRECATED_instanceIdOffset != null) {
instanceIdOffset = DEPRECATED_instanceIdOffset;
}
}

@Override
Expand Down Expand Up @@ -935,8 +983,12 @@ class TriggerFunction extends FunctionCommand {
protected String topic;

public void mergeArgs() {
if (!StringUtils.isBlank(DEPRECATED_triggerValue)) triggerValue = DEPRECATED_triggerValue;
if (!StringUtils.isBlank(DEPRECATED_triggerFile)) triggerFile = DEPRECATED_triggerFile;
if (isBlank(triggerValue) && !isBlank(DEPRECATED_triggerValue)) {
triggerValue = DEPRECATED_triggerValue;
}
if (isBlank(triggerFile) && !isBlank(DEPRECATED_triggerFile)) {
triggerFile = DEPRECATED_triggerFile;
}
}

@Override
Expand Down Expand Up @@ -971,7 +1023,9 @@ class UploadFunction extends BaseCommand {
protected String path;

private void mergeArgs() {
if (!StringUtils.isBlank(DEPRECATED_sourceFile)) sourceFile = DEPRECATED_sourceFile;
if (isBlank(sourceFile) && !isBlank(DEPRECATED_sourceFile)) {
sourceFile = DEPRECATED_sourceFile;
}
}

@Override
Expand Down Expand Up @@ -1006,7 +1060,9 @@ class DownloadFunction extends FunctionCommand {
protected String path;

private void mergeArgs() {
if (!StringUtils.isBlank(DEPRECATED_destinationFile)) destinationFile = DEPRECATED_destinationFile;
if (isBlank(destinationFile) && !isBlank(DEPRECATED_destinationFile)) {
destinationFile = DEPRECATED_destinationFile;
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,13 +182,27 @@ protected class LocalSinkRunner extends CreateSink {
protected String metricsPortStart;

private void mergeArgs() {
if (!StringUtils.isBlank(DEPRECATED_brokerServiceUrl)) brokerServiceUrl = DEPRECATED_brokerServiceUrl;
if (!StringUtils.isBlank(DEPRECATED_clientAuthPlugin)) clientAuthPlugin = DEPRECATED_clientAuthPlugin;
if (!StringUtils.isBlank(DEPRECATED_clientAuthParams)) clientAuthParams = DEPRECATED_clientAuthParams;
if (DEPRECATED_useTls != null) useTls = DEPRECATED_useTls;
if (DEPRECATED_tlsAllowInsecureConnection != null) tlsAllowInsecureConnection = DEPRECATED_tlsAllowInsecureConnection;
if (DEPRECATED_tlsHostNameVerificationEnabled != null) tlsHostNameVerificationEnabled = DEPRECATED_tlsHostNameVerificationEnabled;
if (!StringUtils.isBlank(DEPRECATED_tlsTrustCertFilePath)) tlsTrustCertFilePath = DEPRECATED_tlsTrustCertFilePath;
if (isBlank(brokerServiceUrl) && !isBlank(DEPRECATED_brokerServiceUrl)) {
brokerServiceUrl = DEPRECATED_brokerServiceUrl;
}
if (isBlank(clientAuthPlugin) && !isBlank(DEPRECATED_clientAuthPlugin)) {
clientAuthPlugin = DEPRECATED_clientAuthPlugin;
}
if (isBlank(clientAuthParams) && !isBlank(DEPRECATED_clientAuthParams)) {
clientAuthParams = DEPRECATED_clientAuthParams;
}
if (useTls == false && DEPRECATED_useTls != null) {
useTls = DEPRECATED_useTls;
}
if (tlsAllowInsecureConnection == false && DEPRECATED_tlsAllowInsecureConnection != null) {
tlsAllowInsecureConnection = DEPRECATED_tlsAllowInsecureConnection;
}
if (tlsHostNameVerificationEnabled == false && DEPRECATED_tlsHostNameVerificationEnabled != null) {
tlsHostNameVerificationEnabled = DEPRECATED_tlsHostNameVerificationEnabled;
}
if (isBlank(tlsTrustCertFilePath) && !isBlank(DEPRECATED_tlsTrustCertFilePath)) {
tlsTrustCertFilePath = DEPRECATED_tlsTrustCertFilePath;
}
}

@Override
Expand Down Expand Up @@ -349,14 +363,30 @@ abstract class SinkDetailsCommand extends BaseCommand {
protected SinkConfig sinkConfig;

private void mergeArgs() {
if (!StringUtils.isBlank(DEPRECATED_subsName)) subsName = DEPRECATED_subsName;
if (!StringUtils.isBlank(DEPRECATED_topicsPattern)) topicsPattern = DEPRECATED_topicsPattern;
if (!StringUtils.isBlank(DEPRECATED_customSerdeInputString)) customSerdeInputString = DEPRECATED_customSerdeInputString;
if (DEPRECATED_processingGuarantees != null) processingGuarantees = DEPRECATED_processingGuarantees;
if (DEPRECATED_retainOrdering != null) retainOrdering = DEPRECATED_retainOrdering;
if (!StringUtils.isBlank(DEPRECATED_className)) className = DEPRECATED_className;
if (!StringUtils.isBlank(DEPRECATED_sinkConfigFile)) sinkConfigFile = DEPRECATED_sinkConfigFile;
if (!StringUtils.isBlank(DEPRECATED_sinkConfigString)) sinkConfigString = DEPRECATED_sinkConfigString;
if (isBlank(subsName) && !isBlank(DEPRECATED_subsName)) {
subsName = DEPRECATED_subsName;
}
if (isBlank(topicsPattern) && !isBlank(DEPRECATED_topicsPattern)) {
topicsPattern = DEPRECATED_topicsPattern;
}
if (isBlank(customSerdeInputString) && !isBlank(DEPRECATED_customSerdeInputString)) {
customSerdeInputString = DEPRECATED_customSerdeInputString;
}
if (processingGuarantees == null && DEPRECATED_processingGuarantees != null) {
processingGuarantees = DEPRECATED_processingGuarantees;
}
if (retainOrdering == null && DEPRECATED_retainOrdering != null) {
retainOrdering = DEPRECATED_retainOrdering;
}
if (isBlank(className) && !isBlank(DEPRECATED_className)) {
className = DEPRECATED_className;
}
if (isBlank(sinkConfigFile) && !isBlank(DEPRECATED_sinkConfigFile)) {
sinkConfigFile = DEPRECATED_sinkConfigFile;
}
if (isBlank(sinkConfigString) && !isBlank(DEPRECATED_sinkConfigString)) {
sinkConfigString = DEPRECATED_sinkConfigString;
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,13 +181,27 @@ protected class LocalSourceRunner extends CreateSource {
protected String metricsPortStart;

private void mergeArgs() {
if (!isBlank(DEPRECATED_brokerServiceUrl)) brokerServiceUrl = DEPRECATED_brokerServiceUrl;
if (!isBlank(DEPRECATED_clientAuthPlugin)) clientAuthPlugin = DEPRECATED_clientAuthPlugin;
if (!isBlank(DEPRECATED_clientAuthParams)) clientAuthParams = DEPRECATED_clientAuthParams;
if (DEPRECATED_useTls != null) useTls = DEPRECATED_useTls;
if (DEPRECATED_tlsAllowInsecureConnection != null) tlsAllowInsecureConnection = DEPRECATED_tlsAllowInsecureConnection;
if (DEPRECATED_tlsHostNameVerificationEnabled != null) tlsHostNameVerificationEnabled = DEPRECATED_tlsHostNameVerificationEnabled;
if (!isBlank(DEPRECATED_tlsTrustCertFilePath)) tlsTrustCertFilePath = DEPRECATED_tlsTrustCertFilePath;
if (isBlank(brokerServiceUrl) && !isBlank(DEPRECATED_brokerServiceUrl)) {
brokerServiceUrl = DEPRECATED_brokerServiceUrl;
}
if (isBlank(clientAuthPlugin) && !isBlank(DEPRECATED_clientAuthPlugin)) {
clientAuthPlugin = DEPRECATED_clientAuthPlugin;
}
if (isBlank(clientAuthParams) && !isBlank(DEPRECATED_clientAuthParams)) {
clientAuthParams = DEPRECATED_clientAuthParams;
}
if (useTls == false && DEPRECATED_useTls != null) {
useTls = DEPRECATED_useTls;
}
if (tlsAllowInsecureConnection == false && DEPRECATED_tlsAllowInsecureConnection != null) {
tlsAllowInsecureConnection = DEPRECATED_tlsAllowInsecureConnection;
}
if (tlsHostNameVerificationEnabled == false && DEPRECATED_tlsHostNameVerificationEnabled != null) {
tlsHostNameVerificationEnabled = DEPRECATED_tlsHostNameVerificationEnabled;
}
if (isBlank(tlsTrustCertFilePath) && !isBlank(DEPRECATED_tlsTrustCertFilePath)) {
tlsTrustCertFilePath = DEPRECATED_tlsTrustCertFilePath;
}
}

@Override
Expand Down Expand Up @@ -329,12 +343,24 @@ abstract class SourceDetailsCommand extends BaseCommand {
protected SourceConfig sourceConfig;

private void mergeArgs() {
if (DEPRECATED_processingGuarantees != null) processingGuarantees = DEPRECATED_processingGuarantees;
if (!isBlank(DEPRECATED_destinationTopicName)) destinationTopicName = DEPRECATED_destinationTopicName;
if (!isBlank(DEPRECATED_deserializationClassName)) deserializationClassName = DEPRECATED_deserializationClassName;
if (!isBlank(DEPRECATED_className)) className = DEPRECATED_className;
if (!isBlank(DEPRECATED_sourceConfigFile)) sourceConfigFile = DEPRECATED_sourceConfigFile;
if (!isBlank(DEPRECATED_sourceConfigString)) sourceConfigString = DEPRECATED_sourceConfigString;
if (processingGuarantees == null && DEPRECATED_processingGuarantees != null) {
processingGuarantees = DEPRECATED_processingGuarantees;
}
if (isBlank(destinationTopicName) && !isBlank(DEPRECATED_destinationTopicName)) {
destinationTopicName = DEPRECATED_destinationTopicName;
}
if (isBlank(deserializationClassName) && !isBlank(DEPRECATED_deserializationClassName)) {
deserializationClassName = DEPRECATED_deserializationClassName;
}
if (isBlank(className) && !isBlank(DEPRECATED_className)) {
className = DEPRECATED_className;
}
if (isBlank(sourceConfigFile) && !isBlank(DEPRECATED_sourceConfigFile)) {
sourceConfigFile = DEPRECATED_sourceConfigFile;
}
if (isBlank(sourceConfigString) && !isBlank(DEPRECATED_sourceConfigString)) {
sourceConfigString = DEPRECATED_sourceConfigString;
}
}

@Override
Expand Down

0 comments on commit 8505422

Please sign in to comment.