Skip to content

Commit 019de4b

Browse files
author
Vincent Potucek
committed
[Experimental] Add rewrite support for RemoveUnusedPrivateMethods & RemoveUnusedImports
1 parent 6ef675d commit 019de4b

File tree

34 files changed

+77
-214
lines changed

34 files changed

+77
-214
lines changed

build.gradle

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
import org.ajoberstar.grgit.Grgit
1717
import java.nio.charset.StandardCharsets
1818

19+
import static java.lang.Boolean.valueOf
20+
import static java.lang.System.getenv
21+
import static java.lang.System.getenv
22+
import static java.util.Objects.isNull
23+
1924
buildscript {
2025
repositories {
2126
mavenCentral()
@@ -29,18 +34,43 @@ buildscript {
2934
}
3035

3136
plugins {
32-
id 'com.github.ben-manes.versions' version '0.48.0'
33-
id 'idea'
34-
id 'jacoco'
35-
id 'java-library'
36-
id 'org.owasp.dependencycheck' version '8.2.1'
37-
id 'org.nosphere.apache.rat' version "0.8.1"
37+
id "com.diffplug.spotless" version "7.2.1"
38+
id "com.github.ben-manes.versions" version "0.48.0"
39+
id "com.github.spotbugs" version "6.0.25" apply false
40+
id "com.gradleup.shadow" version "8.3.6" apply false
41+
id "idea"
3842
id "io.swagger.core.v3.swagger-gradle-plugin" version "${swaggerVersion}"
43+
id "jacoco"
44+
id "java-library"
45+
id "org.nosphere.apache.rat" version "0.8.1"
46+
id "org.openrewrite.rewrite" version "7.10.0"
47+
id "org.owasp.dependencycheck" version "8.2.1"
48+
id "org.scoverage" version "8.0.3" apply false
49+
}
50+
51+
rewrite {
52+
activeRecipe("org.openrewrite.gradle.GradleBestPractices")
53+
activeRecipe("org.openrewrite.java.RemoveUnusedImports")
54+
activeRecipe("org.openrewrite.staticanalysis.RemoveUnusedLocalVariables")
55+
activeRecipe("org.openrewrite.staticanalysis.RemoveUnusedPrivateFields")
56+
activeRecipe("org.openrewrite.staticanalysis.RemoveUnusedPrivateMethods")
57+
failOnDryRunResults = true
58+
}
59+
60+
spotless {
61+
java {
62+
targetExclude('**/generated/**/*.java','**/generated-test/**/*.java')
63+
importOrder('kafka', 'org.apache.kafka', 'com', 'net', 'org', 'java', 'javax', '', '\\#')
64+
//licenseHeaderFile("$rootDir/checkstyle/java.header", 'package') todo apply me
65+
}
66+
scala {
67+
scalafmt("$versions.scalafmt").configFile("$rootDir/checkstyle/.scalafmt.conf").scalaMajorVersion(versions.baseScala)
68+
//licenseHeaderFile("$rootDir/checkstyle/java.header", 'package') todo apply me
69+
}
70+
}
3971

40-
id "com.github.spotbugs" version '6.0.25' apply false
41-
id 'org.scoverage' version '8.0.3' apply false
42-
id 'com.gradleup.shadow' version '8.3.6' apply false
43-
id 'com.diffplug.spotless' version "6.25.0"
72+
dependencies {
73+
rewrite("org.openrewrite.recipe:rewrite-static-analysis:2.12.0")
4474
}
4575

4676
ext {
@@ -224,6 +254,11 @@ allprojects {
224254
delete "${projectDir}/src/generated"
225255
delete "${projectDir}/src/generated-test"
226256
}
257+
258+
// off switch for release: ' -x check' or ' -x rewriteDryRun spotlessJavaCheck'
259+
tasks {
260+
check.dependsOn(rewriteDryRun, spotlessCheck)
261+
}
227262
}
228263

229264
def determineCommitId() {
@@ -816,14 +851,6 @@ subprojects {
816851
skipProjects = [ ":jmh-benchmarks", ":trogdor" ]
817852
skipConfigurations = [ "zinc" ]
818853
}
819-
apply plugin: 'com.diffplug.spotless'
820-
spotless {
821-
java {
822-
targetExclude('**/generated/**/*.java','**/generated-test/**/*.java')
823-
importOrder('kafka', 'org.apache.kafka', 'com', 'net', 'org', 'java', 'javax', '', '\\#')
824-
removeUnusedImports()
825-
}
826-
}
827854
}
828855

829856
gradle.taskGraph.whenReady { taskGraph ->
@@ -2811,15 +2838,6 @@ project(':streams:streams-scala') {
28112838
jar {
28122839
dependsOn 'copyDependantLibs'
28132840
}
2814-
2815-
apply plugin: 'com.diffplug.spotless'
2816-
spotless {
2817-
scala {
2818-
target '**/*.scala'
2819-
scalafmt("$versions.scalafmt").configFile('../../checkstyle/.scalafmt.conf').scalaMajorVersion(versions.baseScala)
2820-
licenseHeaderFile '../../checkstyle/java.header', 'package'
2821-
}
2822-
}
28232841
}
28242842

28252843
project(':streams:integration-tests') {

clients/clients-integration-tests/src/test/java/org/apache/kafka/clients/consumer/ConsumerTopicCreationTest.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,15 @@
1919
import org.apache.kafka.clients.admin.Admin;
2020
import org.apache.kafka.clients.admin.TopicListing;
2121
import org.apache.kafka.common.test.ClusterInstance;
22-
import org.apache.kafka.common.test.api.ClusterConfig;
2322
import org.apache.kafka.common.test.api.ClusterTemplate;
2423

2524
import java.time.Duration;
2625
import java.util.List;
2726
import java.util.Locale;
2827
import java.util.Map;
29-
import java.util.Set;
3028

3129
import static org.apache.kafka.clients.consumer.ConsumerConfig.ALLOW_AUTO_CREATE_TOPICS_CONFIG;
3230
import static org.apache.kafka.clients.consumer.ConsumerConfig.GROUP_PROTOCOL_CONFIG;
33-
import static org.apache.kafka.common.test.api.Type.KRAFT;
3431
import static org.apache.kafka.server.config.ServerLogConfigs.AUTO_CREATE_TOPICS_ENABLE_CONFIG;
3532
import static org.junit.jupiter.api.Assertions.assertFalse;
3633
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -102,19 +99,6 @@ private List<String> getAllTopics(ClusterInstance cluster) throws Exception {
10299
}
103100
}
104101

105-
private static List<ClusterConfig> autoCreateTopicsConfigs() {
106-
return List.of(
107-
ClusterConfig.defaultBuilder()
108-
.setTypes(Set.of(KRAFT))
109-
.setServerProperties(Map.of(AUTO_CREATE_TOPICS_ENABLE_CONFIG, "true"))
110-
.build(),
111-
ClusterConfig.defaultBuilder()
112-
.setTypes(Set.of(KRAFT))
113-
.setServerProperties(Map.of(AUTO_CREATE_TOPICS_ENABLE_CONFIG, "false"))
114-
.build()
115-
);
116-
}
117-
118102
private Consumer<byte[], byte[]> createConsumer(ClusterInstance cluster, GroupProtocol protocol, boolean allowConsumerAutoCreateTopics) {
119103
Map<String, Object> consumerConfig = Map.of(
120104
ALLOW_AUTO_CREATE_TOPICS_CONFIG, allowConsumerAutoCreateTopics,

clients/src/main/java/org/apache/kafka/common/requests/ShareAcknowledgeResponse.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,6 @@ public static ShareAcknowledgeResponse parse(Readable readable, short version) {
8888
);
8989
}
9090

91-
private static boolean matchingTopic(ShareAcknowledgeResponseData.ShareAcknowledgeTopicResponse previousTopic, TopicIdPartition currentTopic) {
92-
if (previousTopic == null)
93-
return false;
94-
return previousTopic.topicId().equals(currentTopic.topicId());
95-
}
96-
9791
public static ShareAcknowledgeResponseData.PartitionData partitionResponse(TopicIdPartition topicIdPartition, Errors error) {
9892
return partitionResponse(topicIdPartition.topicPartition().partition(), error);
9993
}

clients/src/test/java/org/apache/kafka/clients/consumer/internals/ConsumerCoordinatorTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ public abstract class ConsumerCoordinatorTest {
149149
private final long retryBackoffMaxMs = 1000;
150150
private final int autoCommitIntervalMs = 2000;
151151
private final int requestTimeoutMs = 30000;
152-
private final int throttleMs = 10;
153152
private final MockTime time = new MockTime();
154153
private GroupRebalanceConfig rebalanceConfig;
155154

clients/src/test/java/org/apache/kafka/common/security/oauthbearer/internals/secured/assertion/DefaultAssertionCreatorTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.apache.kafka.common.KafkaException;
2020
import org.apache.kafka.common.security.oauthbearer.internals.secured.OAuthBearerTest;
2121
import org.apache.kafka.common.utils.MockTime;
22-
import org.apache.kafka.common.utils.Time;
2322

2423
import org.jose4j.jwt.consumer.JwtContext;
2524
import org.jose4j.jwx.JsonWebStructure;
@@ -165,8 +164,6 @@ public void testInvalidAlgorithm() throws IOException {
165164
}
166165

167166
private static class Builder {
168-
169-
private final Time time = new MockTime();
170167
private String algorithm = TOKEN_SIGNING_ALGORITHM_RS256;
171168
private File privateKeyFile;
172169
private Optional<String> passphrase = Optional.empty();

connect/runtime/src/test/java/org/apache/kafka/connect/runtime/WorkerTest.java

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2977,11 +2977,6 @@ private void verifyConverters() {
29772977
verify(plugins).newInternalConverter(eq(false), anyString(), anyMap());
29782978
}
29792979

2980-
private void mockTaskConverter(ClassLoaderUsage classLoaderUsage, String converterClassConfig, Converter returning) {
2981-
when(plugins.newConverter(any(AbstractConfig.class), eq(converterClassConfig), eq(classLoaderUsage)))
2982-
.thenReturn(returning);
2983-
}
2984-
29852980
private void mockVersionedTaskConverterFromConnector(String converterClassConfig, String converterVersionConfig, Converter returning) {
29862981
when(plugins.newConverter(any(ConnectorConfig.class), eq(converterClassConfig), eq(converterVersionConfig))).thenReturn(returning);
29872982
}
@@ -2998,15 +2993,6 @@ private void verifyVersionedTaskConverterFromWorker(String converterClassConfig,
29982993
verify(plugins).newConverter(any(WorkerConfig.class), eq(converterClassConfig), eq(converterVersionConfig));
29992994
}
30002995

3001-
private void mockTaskHeaderConverter(ClassLoaderUsage classLoaderUsage, HeaderConverter returning) {
3002-
when(plugins.newHeaderConverter(any(AbstractConfig.class), eq(WorkerConfig.HEADER_CONVERTER_CLASS_CONFIG), eq(classLoaderUsage)))
3003-
.thenReturn(returning);
3004-
}
3005-
3006-
private void verifyTaskHeaderConverter() {
3007-
verify(plugins).newHeaderConverter(any(AbstractConfig.class), eq(WorkerConfig.HEADER_CONVERTER_CLASS_CONFIG), eq(ClassLoaderUsage.CURRENT_CLASSLOADER));
3008-
}
3009-
30102996
private void mockVersionedTaskHeaderConverterFromConnector(HeaderConverter returning) {
30112997
when(plugins.newHeaderConverter(any(ConnectorConfig.class), eq(ConnectorConfig.HEADER_CONVERTER_CLASS_CONFIG), eq(ConnectorConfig.HEADER_CONVERTER_VERSION_CONFIG)))
30122998
.thenReturn(returning);
@@ -3034,25 +3020,13 @@ private void verifyGenericIsolation() {
30343020
verify(loaderSwap, atLeastOnce()).close();
30353021
}
30363022

3037-
private void mockConnectorIsolation(String connectorClass, Connector connector) {
3038-
mockGenericIsolation();
3039-
when(plugins.newConnector(connectorClass)).thenReturn(connector);
3040-
when(connector.version()).thenReturn("1.0");
3041-
}
3042-
30433023
private void mockVersionedConnectorIsolation(String connectorClass, VersionRange range, Connector connector) {
30443024
mockGenericIsolation();
30453025
when(plugins.pluginLoader(connectorClass, range)).thenReturn(pluginLoader);
30463026
when(plugins.newConnector(connectorClass, range)).thenReturn(connector);
30473027
when(connector.version()).thenReturn(range == null ? "unknown" : range.toString());
30483028
}
30493029

3050-
private void verifyConnectorIsolation(Connector connector) {
3051-
verifyGenericIsolation();
3052-
verify(plugins).newConnector(anyString());
3053-
verify(connector, atLeastOnce()).version();
3054-
}
3055-
30563030
private void verifyVersionedConnectorIsolation(String connectorClass, VersionRange range, Connector connector) {
30573031
verifyGenericIsolation();
30583032
verify(plugins).pluginLoader(connectorClass, range);
@@ -3077,13 +3051,6 @@ private void mockVersionedTaskIsolation(Class<? extends Connector> connectorClas
30773051
when(task.version()).thenReturn(range == null ? "unknown" : range.toString());
30783052
}
30793053

3080-
private void verifyTaskIsolation(Task task) {
3081-
verifyGenericIsolation();
3082-
verify(plugins).connectorClass(anyString());
3083-
verify(plugins).newTask(any());
3084-
verify(task).version();
3085-
}
3086-
30873054
private void verifyVersionedTaskIsolation(Class<? extends Connector> connectorClass, Class<? extends Task> taskClass, VersionRange range, Task task) {
30883055
verifyGenericIsolation();
30893056
verify(plugins).pluginLoader(connectorClass.getName(), range);

connect/runtime/src/test/resources/test-plugins/classpath-converter/org/apache/kafka/connect/converters/ByteArrayConverter.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,14 @@
1919
import org.apache.kafka.common.config.ConfigDef;
2020
import org.apache.kafka.common.utils.AppInfoParser;
2121
import org.apache.kafka.connect.components.Versioned;
22-
import org.apache.kafka.connect.connector.Task;
2322
import org.apache.kafka.connect.data.Schema;
2423
import org.apache.kafka.connect.data.SchemaAndValue;
2524
import org.apache.kafka.connect.errors.DataException;
26-
import org.apache.kafka.connect.sink.SinkConnector;
2725
import org.apache.kafka.connect.storage.Converter;
2826
import org.apache.kafka.connect.storage.ConverterConfig;
2927
import org.apache.kafka.connect.storage.HeaderConverter;
3028

3129
import java.nio.ByteBuffer;
32-
import java.util.List;
3330
import java.util.Map;
3431

3532
public class ByteArrayConverter implements Converter, HeaderConverter, Versioned {

connect/runtime/src/test/resources/test-plugins/sampling-connector/test/plugins/SamplingConnector.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
package test.plugins;
1919

20-
import java.io.IOException;
2120
import java.util.Collections;
2221
import java.util.ArrayList;
2322
import java.util.List;

connect/runtime/src/test/resources/test-plugins/sampling-header-converter/test/plugins/SamplingHeaderConverter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.apache.kafka.common.config.ConfigDef;
2727
import org.apache.kafka.connect.data.Schema;
2828
import org.apache.kafka.connect.data.SchemaAndValue;
29-
import org.apache.kafka.connect.storage.Converter;
3029
import org.apache.kafka.connect.runtime.isolation.SamplingTestPlugin;
3130
import org.apache.kafka.connect.storage.HeaderConverter;
3231

connect/runtime/src/test/resources/test-plugins/subclass-of-classpath/test/plugins/SubclassOfClasspathOverridePolicy.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package test.plugins;
1919

2020
import org.apache.kafka.connect.connector.policy.AllConnectorClientConfigOverridePolicy;
21-
import org.apache.kafka.connect.converters.ByteArrayConverter;
2221

2322
/**
2423
* Fake plugin class for testing classloading isolation.

0 commit comments

Comments
 (0)