[fix][admin] Fix deprecated check (#22653)
Signed-off-by: Zixuan Liu <nodeces@gmail.com>
diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
index be1cd0a..a4fb047 100644
--- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
+++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java
@@ -25,6 +25,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.annotations.VisibleForTesting;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
@@ -197,8 +198,8 @@
}
}
- @Override
- public void runCmd() throws Exception {
+ @VisibleForTesting
+ List<String> getLocalRunArgs() throws Exception {
// merge deprecated args with new args
mergeArgs();
List<String> localRunArgs = new LinkedList<>();
@@ -206,7 +207,7 @@
localRunArgs.add("--sinkConfig");
localRunArgs.add(new Gson().toJson(sinkConfig));
for (Field field : this.getClass().getDeclaredFields()) {
- if (field.getName().startsWith("DEPRECATED")) {
+ if (field.getName().toUpperCase().startsWith("DEPRECATED")) {
continue;
}
if (field.getName().contains("$")) {
@@ -218,7 +219,12 @@
localRunArgs.add(value.toString());
}
}
- ProcessBuilder processBuilder = new ProcessBuilder(localRunArgs).inheritIO();
+ return localRunArgs;
+ }
+
+ @Override
+ public void runCmd() throws Exception {
+ ProcessBuilder processBuilder = new ProcessBuilder(getLocalRunArgs()).inheritIO();
Process process = processBuilder.start();
process.waitFor();
}
diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
index e691d7c..c8af7dd 100644
--- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
+++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java
@@ -25,6 +25,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.annotations.VisibleForTesting;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
@@ -198,17 +199,16 @@
}
}
- @Override
- public void runCmd() throws Exception {
+ @VisibleForTesting
+ List<String> getLocalRunArgs() throws Exception {
// merge deprecated args with new args
mergeArgs();
-
List<String> localRunArgs = new LinkedList<>();
localRunArgs.add(System.getenv("PULSAR_HOME") + "/bin/function-localrunner");
localRunArgs.add("--sourceConfig");
localRunArgs.add(new Gson().toJson(sourceConfig));
for (Field field : this.getClass().getDeclaredFields()) {
- if (field.getName().startsWith("DEPRECATED")) {
+ if (field.getName().toUpperCase().startsWith("DEPRECATED")) {
continue;
}
if (field.getName().contains("$")) {
@@ -220,7 +220,12 @@
localRunArgs.add(value.toString());
}
}
- ProcessBuilder processBuilder = new ProcessBuilder(localRunArgs).inheritIO();
+ return localRunArgs;
+ }
+
+ @Override
+ public void runCmd() throws Exception {
+ ProcessBuilder processBuilder = new ProcessBuilder(getLocalRunArgs()).inheritIO();
Process process = processBuilder.start();
process.waitFor();
}
diff --git a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java
index 6fbe3bc..5885b60 100644
--- a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java
+++ b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSinks.java
@@ -25,6 +25,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertFalse;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
import java.io.Closeable;
@@ -37,6 +38,7 @@
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
+import org.apache.pulsar.admin.cli.CmdSinks.LocalSinkRunner;
import org.apache.pulsar.admin.cli.utils.CmdUtils;
import org.apache.pulsar.client.admin.PulsarAdmin;
import org.apache.pulsar.client.admin.Sinks;
@@ -808,4 +810,14 @@
Assert.assertEquals(config.get("float_string"), "1000.0");
Assert.assertEquals(config.get("created_at"), "Mon Jul 02 00:33:15 +0000 2018");
}
+
+ @Test
+ public void testExcludeDeprecatedOptions() throws Exception {
+ SinkConfig testSinkConfig = getSinkConfig();
+ LocalSinkRunner localSinkRunner = spy(new CmdSinks(() -> pulsarAdmin)).getLocalSinkRunner();
+ localSinkRunner.sinkConfig = testSinkConfig;
+ localSinkRunner.deprecatedBrokerServiceUrl = "pulsar://localhost:6650";
+ List<String> localRunArgs = localSinkRunner.getLocalRunArgs();
+ assertFalse(String.join(",", localRunArgs).contains("--deprecated"));
+ }
}
diff --git a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSources.java b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSources.java
index d96b093..576e633 100644
--- a/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSources.java
+++ b/pulsar-client-tools/src/test/java/org/apache/pulsar/admin/cli/TestCmdSources.java
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
@@ -33,8 +34,10 @@
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
+import org.apache.pulsar.admin.cli.CmdSources.LocalSourceRunner;
import org.apache.pulsar.admin.cli.utils.CmdUtils;
import org.apache.pulsar.client.admin.PulsarAdmin;
import org.apache.pulsar.client.admin.Sources;
@@ -680,4 +683,14 @@
Assert.assertEquals(config.get("float_string"), "1000.0");
Assert.assertEquals(config.get("created_at"), "Mon Jul 02 00:33:15 +0000 2018");
}
+
+ @Test
+ public void testExcludeDeprecatedOptions() throws Exception {
+ SourceConfig testSinkConfig = getSourceConfig();
+ LocalSourceRunner localSourceRunner = spy(new CmdSources(() -> pulsarAdmin)).getLocalSourceRunner();
+ localSourceRunner.sourceConfig = testSinkConfig;
+ localSourceRunner.deprecatedBrokerServiceUrl = "pulsar://localhost:6650";
+ List<String> localRunArgs = localSourceRunner.getLocalRunArgs();
+ assertFalse(String.join(",", localRunArgs).contains("--deprecated"));
+ }
}