Upgrade ecj version to 3.33.0
Bump source and target version to 11 for Java UDFs
ICompilationUnit has new default methods
patch by Ekaterina Dimitrova; reviewed by Andres de la Pena and Berenguer Blasi for CASSANRA-18190
diff --git a/.build/cassandra-deps-template.xml b/.build/cassandra-deps-template.xml
index 4041a54..4b69504 100644
--- a/.build/cassandra-deps-template.xml
+++ b/.build/cassandra-deps-template.xml
@@ -244,7 +244,7 @@
<artifactId>sigar</artifactId>
</dependency>
<dependency>
- <groupId>org.eclipse.jdt.core.compiler</groupId>
+ <groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
</dependency>
<dependency>
diff --git a/.build/parent-pom-template.xml b/.build/parent-pom-template.xml
index 53120c2..af4a32d 100644
--- a/.build/parent-pom-template.xml
+++ b/.build/parent-pom-template.xml
@@ -829,7 +829,7 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.eclipse.jdt.core.compiler</groupId>
+ <groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
<version>${ecj.version}</version>
</dependency>
diff --git a/CHANGES.txt b/CHANGES.txt
index 2fc9df8..8f45c74 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
5.0
+ * Upgrade ECJ to version 3.33.0 (CASSANDRA-18190)
* Fix ClassCastException from jdk GaloisCounterMode when using JDK17 provider (CASSANDRA-18180)
* Drop JDK8, add JDK17 (CASSANDRA-18255)
* Remove WaitingOnFreeMemtableSpace and DroppedMutations metrics (CASSANDRA-18298)
diff --git a/build.xml b/build.xml
index eb22185..ef5910f 100644
--- a/build.xml
+++ b/build.xml
@@ -143,7 +143,7 @@
<property name="jflex.version" value="1.8.2"/>
<property name="jamm.version" value="0.4.0"/>
- <property name="ecj.version" value="4.6.1"/>
+ <property name="ecj.version" value="3.33.0"/>
<!-- When updating ASM, please, do consider whether you might need to update also FBUtilities#ASM_BYTECODE_VERSION
and the simulator InterceptClasses#BYTECODE_VERSION, in particular if we are looking to provide Cassandra support
for newer JDKs (CASSANDRA-17873). -->
diff --git a/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java b/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java
index 132721e..c84ab56 100644
--- a/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java
+++ b/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java
@@ -59,6 +59,8 @@
import org.eclipse.jdt.internal.compiler.env.INameEnvironment;
import org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
+import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment;
+import org.eclipse.jdt.internal.compiler.lookup.ModuleBinding;
import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;
public final class JavaBasedUDFunction extends UDFunction
@@ -138,9 +140,9 @@
settings.put(CompilerOptions.OPTION_ReportDeprecation,
CompilerOptions.IGNORE);
settings.put(CompilerOptions.OPTION_Source,
- CompilerOptions.VERSION_1_8);
+ CompilerOptions.VERSION_11);
settings.put(CompilerOptions.OPTION_TargetPlatform,
- CompilerOptions.VERSION_1_8);
+ CompilerOptions.VERSION_11);
compilerOptions = new CompilerOptions(settings);
compilerOptions.parseLiteralExpressionsAsConstants = true;
@@ -538,6 +540,30 @@
return false;
}
+ @Override
+ public ModuleBinding module(LookupEnvironment environment)
+ {
+ return environment.getModule(this.getModuleName());
+ }
+
+ @Override
+ public char[] getModuleName()
+ {
+ return null;
+ }
+
+ @Override
+ public String getDestinationPath()
+ {
+ return null;
+ }
+
+ @Override
+ public String getExternalAnnotationPath(String qualifiedTypeName)
+ {
+ return null;
+ }
+
// ICompilerRequestor
@Override