diff --git a/.github/workflows/deploy-snapshot.yml b/.github/workflows/deploy-snapshot.yml index 7c908230..c35ed02b 100644 --- a/.github/workflows/deploy-snapshot.yml +++ b/.github/workflows/deploy-snapshot.yml @@ -14,7 +14,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle Files uses: actions/cache@v2 @@ -29,7 +29,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Build run: ./gradlew build diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index ea8b7c26..40cea840 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -18,6 +18,6 @@ jobs: - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/merge-check.yml b/.github/workflows/merge-check.yml index 5819f00a..58b3e8b4 100644 --- a/.github/workflows/merge-check.yml +++ b/.github/workflows/merge-check.yml @@ -20,7 +20,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Cache Gradle Files uses: actions/cache@v2 diff --git a/.github/workflows/publish-maven-central.yml b/.github/workflows/publish-maven-central.yml index 3771a0be..5d467d3a 100644 --- a/.github/workflows/publish-maven-central.yml +++ b/.github/workflows/publish-maven-central.yml @@ -14,7 +14,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Build run: ./gradlew build diff --git a/build.gradle b/build.gradle index b9d589ad..6cd543b3 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.android.tools.build:gradle:8.5.0' } } @@ -16,4 +16,23 @@ allprojects { group = GROUP_ID version = VERSION_NAME + + // The `errorprone` library now needs some additional exports to allow it to + // perform reflections. The flags passed to the JVM are from the errorprone + // documentation: https://errorprone.info/docs/installation. + tasks.withType(JavaCompile) { + options.fork = true + options.forkOptions.jvmArgs += [ + "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED" + ] + } } diff --git a/dexmaker-mockito-inline-dispatcher/build.gradle b/dexmaker-mockito-inline-dispatcher/build.gradle index b8119046..33771465 100644 --- a/dexmaker-mockito-inline-dispatcher/build.gradle +++ b/dexmaker-mockito-inline-dispatcher/build.gradle @@ -1,12 +1,13 @@ apply plugin: 'com.android.application' android { + namespace 'com.android.dexmaker.mockito.inline.dispatcher' compileSdkVersion 32 defaultConfig { applicationId 'com.android.dexmaker.mockito.inline.dispatcher' minSdkVersion 28 - targetSdkVersion 32 + targetSdkVersion 33 versionName VERSION_NAME } } diff --git a/dexmaker-mockito-inline-dispatcher/src/main/AndroidManifest.xml b/dexmaker-mockito-inline-dispatcher/src/main/AndroidManifest.xml index 75024f1f..48652056 100644 --- a/dexmaker-mockito-inline-dispatcher/src/main/AndroidManifest.xml +++ b/dexmaker-mockito-inline-dispatcher/src/main/AndroidManifest.xml @@ -1,3 +1,3 @@ - + diff --git a/dexmaker-mockito-inline-extended-tests/build.gradle b/dexmaker-mockito-inline-extended-tests/build.gradle index e5dc2131..4c4c3883 100644 --- a/dexmaker-mockito-inline-extended-tests/build.gradle +++ b/dexmaker-mockito-inline-extended-tests/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' android { + namespace 'com.android.dexmaker.mockito.inline.extended.tests' compileSdkVersion 32 android { @@ -11,7 +12,7 @@ android { defaultConfig { minSdkVersion 28 - targetSdkVersion 32 + targetSdkVersion 33 testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } diff --git a/dexmaker-mockito-inline-extended-tests/src/main/AndroidManifest.xml b/dexmaker-mockito-inline-extended-tests/src/main/AndroidManifest.xml index 11f9513e..d9e9b95d 100644 --- a/dexmaker-mockito-inline-extended-tests/src/main/AndroidManifest.xml +++ b/dexmaker-mockito-inline-extended-tests/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ - diff --git a/dexmaker-mockito-inline-extended/build.gradle b/dexmaker-mockito-inline-extended/build.gradle index b02cd37c..e0182ede 100644 --- a/dexmaker-mockito-inline-extended/build.gradle +++ b/dexmaker-mockito-inline-extended/build.gradle @@ -7,6 +7,7 @@ apply from: "$rootDir/gradle/publishing_aar.gradle" description = 'Extension of the Mockito Inline API to allow mocking static methods on the Android Dalvik VM' android { + namespace 'com.android.dx.mockito.inline.extended' compileSdkVersion 32 android { @@ -17,8 +18,8 @@ android { } defaultConfig { - minSdkVersion 9 - targetSdkVersion 32 + minSdkVersion 21 + targetSdkVersion 33 } externalNativeBuild { @@ -40,7 +41,7 @@ tasks.withType(JavaCompile) { } dependencies { - errorprone "com.google.errorprone:error_prone_core:2.5.1" + errorprone "com.google.errorprone:error_prone_core:2.29.2" errorproneJavac "com.google.errorprone:javac:9+181-r4173-1" implementation project(':dexmaker-mockito-inline') diff --git a/dexmaker-mockito-inline-extended/src/main/AndroidManifest.xml b/dexmaker-mockito-inline-extended/src/main/AndroidManifest.xml index a5216024..c4e6c98d 100644 --- a/dexmaker-mockito-inline-extended/src/main/AndroidManifest.xml +++ b/dexmaker-mockito-inline-extended/src/main/AndroidManifest.xml @@ -1,2 +1 @@ - + diff --git a/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/MarkerToHandlerMap.java b/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/MarkerToHandlerMap.java index 74a38b87..346cc421 100644 --- a/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/MarkerToHandlerMap.java +++ b/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/MarkerToHandlerMap.java @@ -84,6 +84,7 @@ public Collection values() { } @Override + @SuppressWarnings("InfiniteRecursion") public Set> entrySet() { Set> set = new HashSet<>(entrySet().size()); for (Entry entry : markerToHandler.entrySet()) { diff --git a/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/StaticMockMethodAdvice.java b/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/StaticMockMethodAdvice.java index 7a6f273c..7699dd23 100644 --- a/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/StaticMockMethodAdvice.java +++ b/dexmaker-mockito-inline-extended/src/main/java/com/android/dx/mockito/inline/StaticMockMethodAdvice.java @@ -115,6 +115,7 @@ private static Class nameToType(String name) throws ClassNotFoundException { * @param methodParameters Parameter of method * @return {code true} iff the method would have be handled by superClass */ + @SuppressWarnings("ReturnValueIgnored") private static boolean isMethodDefinedBySuperClass(Class subclass, Class superClass, String methodName, Class[] methodParameters) { diff --git a/dexmaker-mockito-inline-tests/build.gradle b/dexmaker-mockito-inline-tests/build.gradle index 4961c5e7..a765a86a 100644 --- a/dexmaker-mockito-inline-tests/build.gradle +++ b/dexmaker-mockito-inline-tests/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' android { + namespace 'com.android.dexmaker.mockito.inline.tests' compileSdkVersion 32 android { @@ -12,7 +13,7 @@ android { defaultConfig { minSdkVersion 28 - targetSdkVersion 32 + targetSdkVersion 33 testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } diff --git a/dexmaker-mockito-inline-tests/src/main/AndroidManifest.xml b/dexmaker-mockito-inline-tests/src/main/AndroidManifest.xml index 9f14dbfb..9bbd8fcd 100644 --- a/dexmaker-mockito-inline-tests/src/main/AndroidManifest.xml +++ b/dexmaker-mockito-inline-tests/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ diff --git a/dexmaker-mockito-inline/build.gradle b/dexmaker-mockito-inline/build.gradle index dcffd651..d077f5d5 100644 --- a/dexmaker-mockito-inline/build.gradle +++ b/dexmaker-mockito-inline/build.gradle @@ -7,6 +7,7 @@ apply from: "$rootDir/gradle/publishing_aar.gradle" description = 'Implementation of the Mockito Inline API for use on the Android Dalvik VM' android { + namespace 'com.android.dx.mockito.inline' compileSdkVersion 32 android { @@ -17,8 +18,8 @@ android { } defaultConfig { - minSdkVersion 1 - targetSdkVersion 32 + minSdkVersion 21 + targetSdkVersion 33 } externalNativeBuild { @@ -35,7 +36,7 @@ tasks.withType(JavaCompile) { } dependencies { - errorprone "com.google.errorprone:error_prone_core:2.5.1" + errorprone "com.google.errorprone:error_prone_core:2.29.2" errorproneJavac "com.google.errorprone:javac:9+181-r4173-1" implementation project(':dexmaker') diff --git a/dexmaker-mockito-inline/src/main/AndroidManifest.xml b/dexmaker-mockito-inline/src/main/AndroidManifest.xml index 9295bf26..48652056 100644 --- a/dexmaker-mockito-inline/src/main/AndroidManifest.xml +++ b/dexmaker-mockito-inline/src/main/AndroidManifest.xml @@ -1,3 +1,3 @@ - + diff --git a/dexmaker-mockito-tests/build.gradle b/dexmaker-mockito-tests/build.gradle index 918f2771..925954b4 100644 --- a/dexmaker-mockito-tests/build.gradle +++ b/dexmaker-mockito-tests/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' android { + namespace 'com.android.dexmaker.mockito.tests' compileSdkVersion 32 android { @@ -11,8 +12,8 @@ android { } defaultConfig { - minSdkVersion 14 - targetSdkVersion 32 + minSdkVersion 21 + targetSdkVersion 33 testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } diff --git a/dexmaker-mockito-tests/src/main/AndroidManifest.xml b/dexmaker-mockito-tests/src/main/AndroidManifest.xml index 2f3d475f..835fbcac 100644 --- a/dexmaker-mockito-tests/src/main/AndroidManifest.xml +++ b/dexmaker-mockito-tests/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ diff --git a/dexmaker-mockito/build.gradle b/dexmaker-mockito/build.gradle index c3095ad0..1354cc68 100644 --- a/dexmaker-mockito/build.gradle +++ b/dexmaker-mockito/build.gradle @@ -7,8 +7,8 @@ description = "Implementation of the Mockito API for use on the Android Dalvik V apply plugin: 'java-library' apply from: "$rootDir/gradle/publishing.gradle" -targetCompatibility = '1.7' -sourceCompatibility = '1.7' +java.targetCompatibility = '1.8' +java.sourceCompatibility = '1.8' tasks.withType(JavaCompile) { options.errorprone { @@ -17,7 +17,7 @@ tasks.withType(JavaCompile) { } dependencies { - errorprone "com.google.errorprone:error_prone_core:2.5.1" + errorprone "com.google.errorprone:error_prone_core:2.29.2" errorproneJavac "com.google.errorprone:javac:9+181-r4173-1" implementation project(':dexmaker') diff --git a/dexmaker-tests/build.gradle b/dexmaker-tests/build.gradle index 996008db..45271c19 100644 --- a/dexmaker-tests/build.gradle +++ b/dexmaker-tests/build.gradle @@ -1,12 +1,13 @@ apply plugin: 'com.android.application' android { + namespace 'com.linkedin.dexmaker' compileSdkVersion 32 defaultConfig { applicationId 'com.linkedin.dexmaker' - minSdkVersion 14 - targetSdkVersion 32 + minSdkVersion 21 + targetSdkVersion 33 versionCode 1 versionName VERSION_NAME diff --git a/dexmaker-tests/src/main/AndroidManifest.xml b/dexmaker-tests/src/main/AndroidManifest.xml index 62cf305d..fee917f0 100644 --- a/dexmaker-tests/src/main/AndroidManifest.xml +++ b/dexmaker-tests/src/main/AndroidManifest.xml @@ -13,11 +13,10 @@ See the License for the specific language governing permissions and limitations under the License. --> - + - \ No newline at end of file + diff --git a/dexmaker/build.gradle b/dexmaker/build.gradle index 01b0bdb1..e1dc0e7f 100644 --- a/dexmaker/build.gradle +++ b/dexmaker/build.gradle @@ -7,8 +7,8 @@ description = "A utility for doing compile or runtime code generation targeting apply plugin: 'java' apply from: "$rootDir/gradle/publishing.gradle" -targetCompatibility = '1.7' -sourceCompatibility = '1.7' +java.targetCompatibility = '1.8' +java.sourceCompatibility = '1.8' tasks.withType(JavaCompile) { options.errorprone { @@ -21,7 +21,7 @@ javadoc { } dependencies { - errorprone "com.google.errorprone:error_prone_core:2.5.1" + errorprone "com.google.errorprone:error_prone_core:2.29.2" errorproneJavac "com.google.errorprone:javac:9+181-r4173-1" implementation 'com.jakewharton.android.repackaged:dalvik-dx:9.0.0_r3' diff --git a/dexmaker/src/main/java/com/android/dx/AppDataDirGuesser.java b/dexmaker/src/main/java/com/android/dx/AppDataDirGuesser.java index db4d76dc..4a591bfb 100644 --- a/dexmaker/src/main/java/com/android/dx/AppDataDirGuesser.java +++ b/dexmaker/src/main/java/com/android/dx/AppDataDirGuesser.java @@ -29,6 +29,7 @@ class AppDataDirGuesser { // Copied from UserHandle, indicates range of uids allocated for a user. public static final int PER_USER_RANGE = 100000; + @SuppressWarnings("ReturnValueIgnored") public File guess() { try { ClassLoader classLoader = guessSuitableClassLoader(); diff --git a/dexmaker/src/main/java/com/android/dx/stock/ProxyBuilder.java b/dexmaker/src/main/java/com/android/dx/stock/ProxyBuilder.java index 007abc1a..f09055ad 100644 --- a/dexmaker/src/main/java/com/android/dx/stock/ProxyBuilder.java +++ b/dexmaker/src/main/java/com/android/dx/stock/ProxyBuilder.java @@ -434,6 +434,7 @@ public static void setInvocationHandler(Object instance, InvocationHandler handl /** * Returns true if {@code c} is a proxy class created by this builder. */ + @SuppressWarnings("ReturnValueIgnored") public static boolean isProxyClass(Class c) { // TODO: use a marker interface instead? try { diff --git a/gradle/publishing_aar.gradle b/gradle/publishing_aar.gradle index 9c994488..faab9c79 100644 --- a/gradle/publishing_aar.gradle +++ b/gradle/publishing_aar.gradle @@ -1,21 +1,13 @@ apply plugin: 'maven-publish' apply plugin: 'signing' -tasks.register("sourcesJar", Jar) { - classifier 'sources' - from android.sourceSets.main.java.srcDirs -} - -tasks.register("javadoc", Javadoc) { - failOnError false - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) -} - -tasks.register("javadocJar", Jar) { - dependsOn javadoc - classifier 'javadoc' - from javadoc.destinationDir +android { + publishing { + singleVariant("release") { + withSourcesJar() + withJavadocJar() + } + } } // AGP creates the components in afterEvaluate, so we need to use it too @@ -26,9 +18,6 @@ afterEvaluate { maven(MavenPublication) { from components.release - artifact sourcesJar - artifact javadocJar - pom { name = 'Dexmaker' description = project.description diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e6e5897..48c0a02c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists