m1a2st commented on code in PR #16350:
URL: https://github.com/apache/kafka/pull/16350#discussion_r1640841663
##########
connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/RestClientTest.java:
##########
@@ -352,4 +373,4 @@ public int hashCode() {
return Objects.hash(content);
}
}
-}
Review Comment:
Please revert this unrelated change
##########
connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed/WorkerCoordinatorIncrementalTest.java:
##########
@@ -116,19 +112,15 @@ public class WorkerCoordinatorIncrementalTest {
// Arguments are:
// - Protocol type
// - Expected metadata size
- @Parameters
- public static Iterable<?> mode() {
- return Arrays.asList(new Object[][]{{COMPATIBLE, 2}, {SESSIONED, 3}});
+ static Stream<Arguments> mode() {
+ return Stream.of(
+ Arguments.of(ConnectProtocolCompatibility.COMPATIBLE, 2),
+ Arguments.of(ConnectProtocolCompatibility.SESSIONED, 3)
+ );
}
- @Parameter
- public ConnectProtocolCompatibility compatibility;
-
- @Parameter(1)
- public int expectedMetadataSize;
-
- @Before
- public void setup() {
+ public void init(ConnectProtocolCompatibility compatibility) {
+ System.err.println("init:" + compatibility);
Review Comment:
Do there need to print compatibility value?
##########
connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation/PluginScannerTest.java:
##########
@@ -17,161 +17,156 @@
package org.apache.kafka.connect.runtime.isolation;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
+import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
+import java.util.Map;
import java.util.Set;
+import java.util.stream.Stream;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.io.TempDir;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-@RunWith(Parameterized.class)
public class PluginScannerTest {
private enum ScannerType { Reflection, ServiceLoader }
- @Rule
- public TemporaryFolder pluginDir = new TemporaryFolder();
+ @TempDir
+ File pluginDir;
- private final PluginScanner scanner;
+ private Map<ScannerType, PluginScanner> scannerMap;
- @Parameterized.Parameters
- public static Collection<Object[]> parameters() {
- List<Object[]> values = new ArrayList<>();
- for (ScannerType type : ScannerType.values()) {
- values.add(new Object[]{type});
- }
- return values;
+ @BeforeEach
+ public void setScanner() {
+ scannerMap = new HashMap<>();
+ scannerMap.put(ScannerType.Reflection, new ReflectionScanner());
+ scannerMap.put(ScannerType.ServiceLoader, new ServiceLoaderScanner());
}
- public PluginScannerTest(ScannerType scannerType) {
- switch (scannerType) {
- case Reflection:
- this.scanner = new ReflectionScanner();
- break;
- case ServiceLoader:
- this.scanner = new ServiceLoaderScanner();
- break;
- default:
- throw new IllegalArgumentException("Unknown type " +
scannerType);
- }
+ static Stream<ScannerType> parameters() {
+ return Stream.of(ScannerType.values());
}
- @BeforeClass
+ @BeforeAll
public static void setUp() {
// Work around a circular-dependency in TestPlugins.
TestPlugins.pluginPath();
}
- @Test
- public void testScanningEmptyPluginPath() {
- PluginScanResult result = scan(
- Collections.emptySet()
- );
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testScanningEmptyPluginPath(ScannerType scannerType) {
+ PluginScanResult result = scan(scannerType, Collections.emptySet());
assertTrue(result.isEmpty());
}
- @Test
- public void testScanningPluginClasses() {
- PluginScanResult result = scan(
- TestPlugins.pluginPath()
- );
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testScanningPluginClasses(ScannerType scannerType) {
+ PluginScanResult result = scan(scannerType, TestPlugins.pluginPath());
Set<String> classes = new HashSet<>();
result.forEach(pluginDesc -> classes.add(pluginDesc.className()));
Set<String> expectedClasses = new
HashSet<>(TestPlugins.pluginClasses());
assertEquals(expectedClasses, classes);
}
- @Test
- public void testScanningInvalidUberJar() throws Exception {
- pluginDir.newFile("invalid.jar");
-
- PluginScanResult result = scan(
-
Collections.singleton(pluginDir.getRoot().toPath().toAbsolutePath())
- );
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testScanningInvalidUberJar(ScannerType scannerType) throws
Exception {
+ File newFile = new File(pluginDir, "invalid.jar");
+ newFile.createNewFile();
+ PluginScanResult result = scan(scannerType,
Collections.singleton(pluginDir.toPath()));
assertTrue(result.isEmpty());
}
- @Test
- public void testScanningPluginDirContainsInvalidJarsOnly() throws
Exception {
- pluginDir.newFolder("my-plugin");
- pluginDir.newFile("my-plugin/invalid.jar");
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testScanningPluginDirContainsInvalidJarsOnly(ScannerType
scannerType) throws Exception {
+ File newFile = new File(pluginDir, "my-plugin");
+ newFile.mkdir();
+ newFile = new File(newFile, "invalid.jar");
+ newFile.createNewFile();
- PluginScanResult result = scan(
-
Collections.singleton(pluginDir.getRoot().toPath().toAbsolutePath())
- );
+ PluginScanResult result = scan(scannerType,
Collections.singleton(pluginDir.toPath()));
assertTrue(result.isEmpty());
}
- @Test
- public void testScanningNoPlugins() {
- PluginScanResult result = scan(
-
Collections.singleton(pluginDir.getRoot().toPath().toAbsolutePath())
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testScanningNoPlugins(ScannerType scannerType) {
+ PluginScanResult result = scan(scannerType,
+ Collections.singleton(pluginDir.toPath())
);
assertTrue(result.isEmpty());
}
- @Test
- public void testScanningPluginDirEmpty() throws Exception {
- pluginDir.newFolder("my-plugin");
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testScanningPluginDirEmpty(ScannerType scannerType) throws
Exception {
+ File newFile = new File(pluginDir, "my-plugin");
+ newFile.mkdir();
- PluginScanResult result = scan(
-
Collections.singleton(pluginDir.getRoot().toPath().toAbsolutePath())
+ PluginScanResult result = scan(scannerType,
+ Collections.singleton(pluginDir.toPath())
);
assertTrue(result.isEmpty());
}
- @Test
- public void testScanningMixOfValidAndInvalidPlugins() throws Exception {
- pluginDir.newFile("invalid.jar");
- pluginDir.newFolder("my-plugin");
- pluginDir.newFile("my-plugin/invalid.jar");
- Path pluginPath = this.pluginDir.getRoot().toPath();
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testScanningMixOfValidAndInvalidPlugins(ScannerType
scannerType) throws Exception {
+ new File(pluginDir, "invalid.jar").createNewFile();
+ File newFile = new File(pluginDir, "my-plugin");
+ newFile.mkdir();
+ newFile = new File(newFile, "invalid.jar");
+ newFile.createNewFile();
+ Path pluginPath = this.pluginDir.toPath();
for (Path source : TestPlugins.pluginPath()) {
Files.copy(source, pluginPath.resolve(source.getFileName()));
}
- PluginScanResult result = scan(
-
Collections.singleton(pluginDir.getRoot().toPath().toAbsolutePath())
+ PluginScanResult result = scan(scannerType,
+ Collections.singleton(pluginDir.toPath())
);
Set<String> classes = new HashSet<>();
result.forEach(pluginDesc -> classes.add(pluginDesc.className()));
Set<String> expectedClasses = new
HashSet<>(TestPlugins.pluginClasses());
assertEquals(expectedClasses, classes);
}
- @Test
- public void testNonVersionedPluginHasUndefinedVersion() {
- PluginScanResult unversionedPluginsResult =
scan(TestPlugins.pluginPath(TestPlugins.TestPlugin.SAMPLING_HEADER_CONVERTER));
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testNonVersionedPluginHasUndefinedVersion(ScannerType
scannerType) {
+ PluginScanResult unversionedPluginsResult = scan(scannerType,
+
TestPlugins.pluginPath(TestPlugins.TestPlugin.SAMPLING_HEADER_CONVERTER));
assertFalse(unversionedPluginsResult.isEmpty());
unversionedPluginsResult.forEach(pluginDesc ->
assertEquals(PluginDesc.UNDEFINED_VERSION, pluginDesc.version()));
}
- @Test
- public void testVersionedPluginsHasVersion() {
- PluginScanResult versionedPluginResult =
scan(TestPlugins.pluginPath(TestPlugins.TestPlugin.READ_VERSION_FROM_RESOURCE_V1));
+ @ParameterizedTest
+ @MethodSource("parameters")
+ public void testVersionedPluginsHasVersion(ScannerType scannerType) {
+ PluginScanResult versionedPluginResult = scan(scannerType,
+
TestPlugins.pluginPath(TestPlugins.TestPlugin.READ_VERSION_FROM_RESOURCE_V1));
assertFalse(versionedPluginResult.isEmpty());
versionedPluginResult.forEach(pluginDesc -> assertEquals("1.0.0",
pluginDesc.version()));
}
- private PluginScanResult scan(Set<Path> pluginLocations) {
+ private PluginScanResult scan(ScannerType scannerType, Set<Path>
pluginLocations) {
ClassLoaderFactory factory = new ClassLoaderFactory();
Set<PluginSource> pluginSources =
PluginUtils.pluginSources(pluginLocations,
PluginScannerTest.class.getClassLoader(), factory);
- return scanner.discoverPlugins(pluginSources);
+ return this.scannerMap.get(scannerType).discoverPlugins(pluginSources);
}
-
-}
Review Comment:
Please revert this unrelated change
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]