Skip to content

Commit 1390952

Browse files
author
Vincent Potucek
committed
[prone] Add UnusedMethod
Signed-off-by: Vincent Potucek <vpotucek@me.com>
1 parent 46164b5 commit 1390952

File tree

19 files changed

+165
-113
lines changed

19 files changed

+165
-113
lines changed

.github/workflows/precommit.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Gradle Precommit
1+
name: Gradle PreCommit
22
on: [pull_request]
33

44
jobs:
@@ -21,8 +21,11 @@ jobs:
2121
java-version: ${{ matrix.java }}
2222
distribution: temurin
2323
cache: gradle
24-
- name: Run Gradle (precommit)
24+
- name: Run Gradle (pre-commit)
2525
continue-on-error: ${{ matrix.experimental }}
2626
shell: bash
27-
run: |
28-
./gradlew javadoc precommit --parallel
27+
run: ./gradlew javadoc precommit --parallel
28+
- name: Run Gradle (sanity-check)
29+
continue-on-error: ${{ matrix.experimental }}
30+
shell: bash
31+
run: ./gradlew rewriteDryRun -Dorg.gradle.jvmargs=-Xmx8G

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
2020
- Add build-tooling to run in FIPS environment ([#18921](https://github.com/opensearch-project/OpenSearch/pull/18921))
2121
- Add SMILE/CBOR/YAML document format support to Bulk GRPC endpoint ([#19744](https://github.com/opensearch-project/OpenSearch/pull/19744))
2222
- Implement GRPC ConstantScoreQuery, FuzzyQuery, MatchBoolPrefixQuery, MatchPhrasePrefix, PrefixQuery, MatchQuery ([#19854](https://github.com/opensearch-project/OpenSearch/pull/19854))
23+
- [rewrite] Add `GradleBestPractices` ([#19885](https://github.com/opensearch-project/OpenSearch/pull/19885))
24+
- [prone] Add `UnusedMethod` ([#19896](https://github.com/opensearch-project/OpenSearch/pull/19896))
2325

2426
### Changed
2527
- Faster `terms` query creation for `keyword` field with index and docValues enabled ([#19350](https://github.com/opensearch-project/OpenSearch/pull/19350))

build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ plugins {
5959
id "org.gradle.test-retry" version "1.6.2" apply false
6060
id "test-report-aggregation"
6161
id 'jacoco-report-aggregation'
62+
id 'org.openrewrite.rewrite' version '7.19.0' apply false
63+
id 'net.ltgt.errorprone' version '4.3.0' apply false
6264
}
6365

6466
apply from: 'gradle/build-complete.gradle'
@@ -70,14 +72,12 @@ apply from: 'gradle/local-distribution.gradle'
7072
apply from: 'gradle/run.gradle'
7173
apply from: 'gradle/missing-javadoc.gradle'
7274
apply from: 'gradle/code-coverage.gradle'
75+
apply from: 'gradle/rewrite.gradle'
7376

74-
// Apply FIPS configuration to all projects
7577
allprojects {
78+
apply from: "$rootDir/gradle/error-prone.gradle"
7679
apply from: "$rootDir/gradle/fips.gradle"
77-
}
78-
79-
// common maven publishing configuration
80-
allprojects {
80+
// common maven publishing configuration
8181
group = 'org.opensearch'
8282
version = VersionProperties.getOpenSearch()
8383
description = "OpenSearch subproject ${project.path}"

gradle/error-prone.gradle

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* The OpenSearch Contributors require contributions made to
5+
* this file be licensed under the Apache-2.0 license or a
6+
* compatible open source license.
7+
*/
8+
9+
apply plugin: 'net.ltgt.errorprone'
10+
11+
repositories {
12+
mavenCentral()
13+
}
14+
15+
configurations.configureEach { // remove once in sync (collision resolved).
16+
resolutionStrategy {
17+
force 'com.google.code.findbugs:jsr305:3.0.2'
18+
force 'com.google.errorprone:error_prone_annotations:2.42.0'
19+
force 'com.google.errorprone:error_prone_core:2.42.0'
20+
force 'com.google.guava:guava:33.4.0-jre'
21+
force 'org.checkerframework:checker-qual:3.43.0'
22+
}
23+
}
24+
25+
dependencies {
26+
errorprone('com.google.errorprone:error_prone_core:2.42.0')
27+
errorprone('tech.picnic.error-prone-support:error-prone-contrib:0.25.0')
28+
}
29+
30+
tasks.withType(JavaCompile).configureEach {
31+
options.errorprone {
32+
disableAllChecks = true // remove once complain.
33+
error(
34+
'UnusedMethod'
35+
)
36+
errorproneArgs.add(
37+
'-XepExcludedPaths:' +
38+
'.*AggregatorTestCase.java|' + // https://github.com/google/error-prone/issues/5289
39+
'.*FactoryProvider.java|' +
40+
'.*MockBigArrays.java|' +
41+
'.*MoreTypes.java|' +
42+
'.*OpenSearchNode.java|' +
43+
'.*SnapshotsService.java|' +
44+
'.*Terms.java|' +
45+
'.*x-content.*'
46+
)
47+
}
48+
}

gradle/rewrite.gradle

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* The OpenSearch Contributors require contributions made to
5+
* this file be licensed under the Apache-2.0 license or a
6+
* compatible open source license.
7+
*/
8+
9+
project.apply plugin: 'org.openrewrite.rewrite'
10+
11+
rewrite {
12+
activeRecipe('org.opensearch.openrewrite.SanityCheck')
13+
exclusion('**ActionListener.java')
14+
exclusion('**SearchAfterIT.java')
15+
exclusion('**StarTreeMapper.java')
16+
exclusion('**package-info.java')
17+
setExportDatatables(true)
18+
setFailOnDryRunResults(true)
19+
}
20+
21+
dependencies {
22+
rewrite(platform('org.openrewrite.recipe:rewrite-recipe-bom:3.17.0'))
23+
rewrite('org.openrewrite.recipe:rewrite-migrate-java:3.20.0')
24+
rewrite('org.openrewrite.recipe:rewrite-java-security:3.19.2')
25+
rewrite('org.openrewrite.recipe:rewrite-rewrite:0.14.1')
26+
rewrite('org.openrewrite.recipe:rewrite-static-analysis:2.20.0')
27+
rewrite('org.openrewrite.recipe:rewrite-third-party:0.30.0')
28+
}

gradle/wrapper/gradle-wrapper.jar

1.83 KB
Binary file not shown.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME
77
zipStorePath=wrapper/dists
8-
distributionSha256Sum=16f2b95838c1ddcf7242b1c39e7bbbb43c842f1f1a1a0dc4959b6d4d68abcac3
8+
distributionSha256Sum=df67a32e86e3276d011735facb1535f64d0d88df84fa87521e90becc2d735444

gradlew

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
#
4-
# Copyright © 2015-2021 the original authors.
4+
# Copyright © 2015 the original authors.
55
#
66
# Licensed under the Apache License, Version 2.0 (the "License");
77
# you may not use this file except in compliance with the License.
@@ -202,7 +202,7 @@ fi
202202

203203

204204
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
205-
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
205+
DEFAULT_JVM_OPTS=
206206

207207
# Collect all arguments for the java command:
208208
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,

gradlew.bat

100644100755
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ set APP_HOME=%DIRNAME%
3636
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
3737

3838
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
39-
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
39+
set DEFAULT_JVM_OPTS=
4040

4141
@rem Find java.exe
4242
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -70,11 +70,10 @@ goto fail
7070
:execute
7171
@rem Setup the command line
7272

73-
set CLASSPATH=
7473

7574

7675
@rem Execute Gradle
77-
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
76+
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
7877

7978
:end
8079
@rem End local scope for the variables with windows NT shell

rewrite.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
type: specs.openrewrite.org/v1beta/recipe
3+
name: org.opensearch.openrewrite.SanityCheck
4+
displayName: Apply all Java & Gradle best practices
5+
description: Comprehensive code quality recipe combining modernization, security, and best practices.
6+
tags:
7+
- java
8+
- gradle
9+
- static-analysis
10+
- cleanup
11+
recipeList:
12+
- org.openrewrite.gradle.EnableGradleBuildCache
13+
- org.openrewrite.gradle.EnableGradleParallelExecution
14+
- org.openrewrite.gradle.GradleBestPractices
15+
- org.openrewrite.java.format.NormalizeLineBreaks
16+
- org.openrewrite.java.format.RemoveTrailingWhitespace
17+
- org.openrewrite.staticanalysis.RemoveUnusedPrivateMethods
18+
# TBD
19+
# - org.openrewrite.java.RemoveUnusedImports
20+
# - org.openrewrite.java.format.NormalizeFormat
21+
# - org.openrewrite.java.migrate.UpgradeToJava17
22+
# - org.openrewrite.java.migrate.lang.FindVirtualThreadOpportunities # don't want to use: https://github.com/diffplug/spotless/pull/2684#discussion_r2433831887
23+
# - org.openrewrite.java.migrate.lang.StringRulesRecipes
24+
# - org.openrewrite.java.migrate.util.JavaLangAPIs
25+
# - org.openrewrite.java.migrate.util.JavaUtilAPIs
26+
# - org.openrewrite.java.migrate.util.MigrateInflaterDeflaterToClose
27+
# - org.openrewrite.java.migrate.util.ReplaceStreamCollectWithToList
28+
# - org.openrewrite.java.migrate.util.SequencedCollection
29+
# - org.openrewrite.java.recipes.JavaRecipeBestPractices
30+
# - org.openrewrite.java.recipes.RecipeTestingBestPractices
31+
# - org.openrewrite.java.security.JavaSecurityBestPractices
32+
# - org.openrewrite.staticanalysis.BufferedWriterCreationRecipes
33+
# - org.openrewrite.staticanalysis.CommonStaticAnalysis
34+
# - org.openrewrite.staticanalysis.EqualsAvoidsNull
35+
# - org.openrewrite.staticanalysis.JavaApiBestPractices
36+
# - org.openrewrite.staticanalysis.LowercasePackage
37+
# - org.openrewrite.staticanalysis.MissingOverrideAnnotation
38+
# - org.openrewrite.staticanalysis.ModifierOrder
39+
# - org.openrewrite.staticanalysis.NoFinalizer
40+
# - org.openrewrite.staticanalysis.NoToStringOnStringType
41+
# - org.openrewrite.staticanalysis.NoValueOfOnStringType
42+
# - org.openrewrite.staticanalysis.RemoveUnusedLocalVariables
43+
# - org.openrewrite.staticanalysis.RemoveUnusedPrivateFields
44+
# - org.openrewrite.staticanalysis.ReplaceApacheCommonsLang3ValidateNotNullWithObjectsRequireNonNull
45+
# - org.openrewrite.staticanalysis.SimplifyTernaryRecipes
46+
# - org.openrewrite.staticanalysis.URLEqualsHashCodeRecipes
47+
# - org.openrewrite.staticanalysis.UnnecessaryCloseInTryWithResources
48+
# - org.openrewrite.staticanalysis.UnnecessaryExplicitTypeArguments
49+
# - org.openrewrite.staticanalysis.UnnecessaryParentheses
50+
# - org.openrewrite.staticanalysis.UnnecessaryReturnAsLastStatement
51+
# - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes
52+
# - tech.picnic.errorprone.refasterrules.CharSequenceRulesRecipes
53+
# - tech.picnic.errorprone.refasterrules.ClassRulesRecipes
54+
# - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes
55+
# - tech.picnic.errorprone.refasterrules.ComparatorRulesRecipes
56+
# - tech.picnic.errorprone.refasterrules.EqualityRulesRecipes
57+
# - tech.picnic.errorprone.refasterrules.FileRulesRecipes
58+
# - tech.picnic.errorprone.refasterrules.MapRulesRecipes
59+
# - tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes
60+
# - tech.picnic.errorprone.refasterrules.MockitoRulesRecipes
61+
# - tech.picnic.errorprone.refasterrules.NullRulesRecipes
62+
# - tech.picnic.errorprone.refasterrules.OptionalRulesRecipes
63+
# - tech.picnic.errorprone.refasterrules.PatternRulesRecipes
64+
# - tech.picnic.errorprone.refasterrules.PreconditionsRulesRecipes
65+
# - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes
66+
# - tech.picnic.errorprone.refasterrules.StreamRulesRecipes
67+
# - tech.picnic.errorprone.refasterrules.StringRulesRecipes
68+
# - tech.picnic.errorprone.refasterrules.TimeRulesRecipes
69+
---

0 commit comments

Comments
 (0)