You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/06/11 17:51:55 UTC
[groovy] 01/01: Gradle 7.2 for Java 16+
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch groovy3-java16
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 86cc8eada8e9ded0c69f69bf442ca402fde32c75
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Thu Mar 3 15:54:58 2022 -0600
Gradle 7.2 for Java 16+
---
.travis.yml | 8 ++++----
build.gradle | 3 +--
.../groovy/org/codehaus/groovy/gradle/JarJarTask.groovy | 16 ++++++----------
.../groovy/gradle/WriteExtensionDescriptorTask.groovy | 11 +++++++----
gradle.properties | 2 +-
gradle/wrapper/gradle-wrapper.properties | 2 +-
.../org/codehaus/groovy/reflection/ReflectionUtils.java | 16 ++++++++--------
.../codehaus/groovy/runtime/ProxyGeneratorAdapter.java | 11 +++++------
subprojects/groovy-servlet/build.gradle | 9 +++------
9 files changed, 36 insertions(+), 42 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index f2a4448b2b..6be975882a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -27,8 +27,8 @@ matrix:
include:
- env: BC='legacy' FEATURE='17' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
jdk: openjdk11
- - env: BC='legacy' FEATURE='16' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
- jdk: openjdk11
+ - env: BC='legacy'
+ jdk: openjdk16
- env: BC='legacy'
jdk: openjdk15
- env: BC='legacy'
@@ -38,8 +38,8 @@ matrix:
- env: BC='indy' FEATURE='17' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
jdk: openjdk11
- - env: BC='indy' FEATURE='16' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
- jdk: openjdk11
+ - env: BC='indy'
+ jdk: openjdk16
- env: BC='indy'
jdk: openjdk15
- env: BC='indy'
diff --git a/build.gradle b/build.gradle
index 5ef21fd1af..aff45b390a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -34,7 +34,6 @@ buildscript {
// using the old "classpath" style of plugins because the new one doesn't play well with multi-modules
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.8'
classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3'
- //classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0'
classpath 'org.nosphere.apache:creadur-rat-gradle:0.7.1'
classpath 'gradle.plugin.com.github.jk1:gradle-license-report:1.3'
}
@@ -432,7 +431,7 @@ apply from: 'gradle/test.gradle'
apply from: 'gradle/groovydoc.gradle'
apply from: 'gradle/docs.gradle'
apply from: 'gradle/assemble.gradle'
-apply from: 'gradle/upload.gradle'
+//apply from: 'gradle/upload.gradle' -- TODO: migrate to Gradle 7
apply from: 'gradle/idea.gradle'
apply from: 'gradle/eclipse.gradle'
apply from: 'gradle/quality.gradle'
diff --git a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy
index 0fdf771767..454eb73312 100644
--- a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy
+++ b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy
@@ -28,6 +28,7 @@ import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.Internal
+import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
@@ -53,23 +54,19 @@ class JarJarTask extends DefaultTask {
@org.gradle.api.tasks.Optional
List<String> untouchedFiles = []
- @Input
- @org.gradle.api.tasks.Optional
+ @Optional @Input
List<String> excludes = []
@Input
Map<String, String> patterns
- @Input
- @org.gradle.api.tasks.Optional
+ @Optional @Input
Map<String, List<String>> excludesPerLibrary = [:]
- @Input
- @org.gradle.api.tasks.Optional
+ @Optional @Input
Map<String, List<String>> includesPerLibrary = [:]
- @Input
- @org.gradle.api.tasks.Optional
+ @Optional @Input
Map<String, String> includedResources = [:]
@OutputFile
@@ -169,5 +166,4 @@ class JarJarTask extends DefaultTask {
private static String baseName(File file) {
file.name.substring(0, file.name.lastIndexOf('-'))
}
-
-}
\ No newline at end of file
+}
diff --git a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy
index dd582dcfc3..746235edbd 100644
--- a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy
+++ b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy
@@ -22,6 +22,7 @@ import org.gradle.api.DefaultTask
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.OutputFile
/**
@@ -30,10 +31,12 @@ import org.gradle.api.tasks.OutputFile
class WriteExtensionDescriptorTask extends DefaultTask {
@Internal
final String description = 'Generates the org.codehaus.groovy.runtime.ExtensionModule descriptor file of a module'
- @Input String extensionClasses = ''
- @Input String staticExtensionClasses = ''
- @OutputFile File descriptor = computeDescriptorFile()
-
+ @OutputFile
+ File descriptor = computeDescriptorFile()
+ @Input
+ String staticExtensionClasses = ''
+ @Input
+ String extensionClasses = ''
private File computeDescriptorFile() {
def metaInfDir = new File("${project.buildDir}/resources/main/META-INF/groovy")
diff --git a/gradle.properties b/gradle.properties
index f4dd30f628..1345e9df33 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -18,7 +18,7 @@ groovyVersion = 3.0.12-SNAPSHOT
groovyBundleVersion = 3.0.12.SNAPSHOT
binaryCompatibilityBaseline = 3.0.5
-gradle_version=6.9.2
+gradle_version=7.2
groovyJUnit_ms=512m
groovyJUnit_mx=2g
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index ec991f9aa1..ffed3a254e 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-6.9.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java b/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
index 1937ae0544..8a676b936e 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
@@ -135,6 +135,14 @@ public class ReflectionUtils {
}
}
+ private static boolean classShouldBeIgnored(final Class c, final Collection<String> extraIgnoredPackages) {
+ return (c != null
+ && (c.isSynthetic()
+ || (c.getPackage() != null
+ && (IGNORED_PACKAGES.contains(c.getPackage().getName())
+ || extraIgnoredPackages.contains(c.getPackage().getName())))));
+ }
+
public static List<Method> getDeclaredMethods(final Class<?> type, final String name, final Class<?>... parameterTypes) {
return doGetMethods(type, name, parameterTypes, Class::getDeclaredMethods);
}
@@ -235,14 +243,6 @@ public class ReflectionUtils {
return false;
}
- private static boolean classShouldBeIgnored(final Class c, final Collection<String> extraIgnoredPackages) {
- return (c != null
- && (c.isSynthetic()
- || (c.getPackage() != null
- && (IGNORED_PACKAGES.contains(c.getPackage().getName())
- || extraIgnoredPackages.contains(c.getPackage().getName())))));
- }
-
private static class ClassContextHelper extends SecurityManager {
@Override
public Class[] getClassContext() {
diff --git a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
index 4d0cd800e5..95a4fba718 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
@@ -145,7 +145,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
final ClassLoader proxyLoader,
final boolean emptyBody,
final Class<?> delegateClass) {
- super(CompilerConfiguration.ASM_API_VERSION, new ClassWriter(0));
+ super(CompilerConfiguration.ASM_API_VERSION, new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS));
this.loader = proxyLoader != null ? createInnerLoader(proxyLoader, interfaces) : findClassLoader(superClass, interfaces);
this.visitedMethods = new LinkedHashSet<>();
this.delegatedClosures = closureMap.isEmpty() ? EMPTY_DELEGATECLOSURE_MAP : new HashMap<>();
@@ -175,7 +175,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
this.classList = new LinkedHashSet<>();
this.classList.add(superClass);
if (generateDelegateField) {
- classList.add(delegateClass);
+ this.classList.add(delegateClass);
for (Class<?> i : delegateClass.getInterfaces()) {
if (!isSealed(i)) this.classList.add(i);
}
@@ -187,9 +187,9 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
this.emptyBody = emptyBody;
// generate bytecode
- ClassWriter writer = (ClassWriter) cv;
- this.visit(Opcodes.V1_5, ACC_PUBLIC, proxyName, null, null, null);
- byte[] b = writer.toByteArray();
+ int bytecodeVersion = CompilerConfiguration.JDK_TO_BYTECODE_VERSION_MAP.get(CompilerConfiguration.DEFAULT.getTargetBytecode());
+ this.visit(bytecodeVersion, ACC_PUBLIC, proxyName, null, null, null);
+ byte[] b = ((ClassWriter) cv).toByteArray();
// CheckClassAdapter.verify(new ClassReader(b), true, new PrintWriter(System.err));
cachedClass = loader.defineClass(proxyName.replace('/', '.'), b);
// cache no-arg constructor
@@ -903,5 +903,4 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
return value;
}
}
-
}
diff --git a/subprojects/groovy-servlet/build.gradle b/subprojects/groovy-servlet/build.gradle
index 224693f60e..0b3a524860 100644
--- a/subprojects/groovy-servlet/build.gradle
+++ b/subprojects/groovy-servlet/build.gradle
@@ -17,15 +17,12 @@
* under the License.
*/
dependencies {
- api("javax.servlet:javax.servlet-api:$servletApiVersion") { dep ->
- provided dep
- }
- api("javax.servlet.jsp:javax.servlet.jsp-api:$jspApiVersion") { dep ->
- provided dep
+ api rootProject // ServletBinding extends Binding...
+ api "javax.servlet:javax.servlet-api:$servletApiVersion"
+ api("javax.servlet.jsp:javax.servlet.jsp-api:$jspApiVersion") {
exclude(group: 'javax.servlet', module: 'javax.servlet-api')
}
- api rootProject // ServletBinding extends Binding...
implementation project(':groovy-xml') // needed for MarkupBuilder
implementation project(':groovy-templates') // needed by TemplateServlet