JAVA-18131 Upgrade core-java-modules to JDK 11 (#13462)

* JAVA-18131 Upgrade core-java-modules to JDK 11

* JAVA-18131 Fixed pom conflicts

* JAVA-18131 Upgraded ASM and updated expected test results

* JAVA-18131 Fixed FormatNumberUnitTest and removed core-java-security from upgrading to 17

* JAVA-18131 Removed core-java-sun from upgrading

* JAVA-18131 Removed core-java-jvm-2, fixed number test

* JAVA-18131 Removed core-java-sun from upgrading to 11

* JAVA-18131 Removed all edited submodules from pre-jdk9

* JAVA-18131 removed pre-jpms from pre-jdk9

* JAVA-18131 Removed core-java-numbers-3 from pre-jdk9 profiles

* JAVA-18131 Cleanup

* JAVA-18131 Cleanup 2 - Removed upgraded submodules from core-java-modules

* JAVA-18131 Cleanup completed

* JAVA-18131 Replaced core-java-modules submodules in main pom with core-java-modules

* JAVA-18131 Replaced core-java-modules submodules in main pom, continued

* JAVA-18131 Core-java-nio-2, core-java-serialization back to pre-jdk9

* JAVA-18131 Try removing math-3 from core-java-modules and explicitly refer in parent pom

* JAVA-18131 Removed -lang, -nio, -streams-2, -math-3, -conversions-2 from jdk9 profiles

* JAVA-18131 Corrected conversions-2 module

* JAVA-18131 Review fixes

* JAVA-18131 Fixed -nio, re-upgraded -lang

* JAVA-18131 Adapted -nio for JDK 11, returned -lang to JDK 8

* JAVA-18131 Final corrections
This commit is contained in:
Anastasios Ioannidis 2023-03-30 23:09:12 +03:00 committed by GitHub
parent 4d9f26ebe3
commit 11f740192c
21 changed files with 144 additions and 137 deletions

View File

@ -24,4 +24,12 @@
</resources>
</build>
<dependencies>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</project>

View File

@ -9,6 +9,7 @@ import java.util.Collection;
*/
public class UserList {
public UserList() {}
private Collection<User> users;
public Collection<User> getUsers() {

View File

@ -0,0 +1 @@
Hello, world!

View File

@ -27,9 +27,30 @@
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<compilerArgs>
<arg>--add-exports=java.base/jdk.internal.vm.annotation=ALL-UNNAMED</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<jol-core.version>0.10</jol-core.version>
<reflections.version>0.10.2</reflections.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
</project>

View File

@ -3,7 +3,8 @@ package com.baeldung.memlayout;
import org.junit.Test;
import org.openjdk.jol.info.ClassLayout;
import org.openjdk.jol.vm.VM;
import sun.misc.Contended;
import jdk.internal.vm.annotation.Contended;
public class MemoryLayoutUnitTest {

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>core-java-jvm</artifactId>
<version>0.1.0-SNAPSHOT</version>
@ -30,13 +30,6 @@
<artifactId>esapi</artifactId>
<version>${esapi.version}</version>
</dependency>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>${sun.tools.version}</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
@ -176,9 +169,8 @@
<properties>
<javaassist.version>3.27.0-GA</javaassist.version>
<sun.tools.version>1.8.0</sun.tools.version>
<jol-core.version>0.10</jol-core.version>
<asm.version>8.0.1</asm.version>
<asm.version>9.4</asm.version>
<bcel.version>6.5.0</bcel.version>
</properties>

View File

@ -1,13 +1,5 @@
package com.baeldung.classloader;
import com.sun.javafx.util.Logging;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
public class PrintClassLoader {
@ -15,7 +7,6 @@ public class PrintClassLoader {
public void printClassLoaders() throws ClassNotFoundException {
System.out.println("Classloader of this class:" + PrintClassLoader.class.getClassLoader());
System.out.println("Classloader of Logging:" + Logging.class.getClassLoader());
System.out.println("Classloader of ArrayList:" + ArrayList.class.getClassLoader());
}

View File

@ -33,7 +33,7 @@ public class ViewBytecodeUnitTest {
JavaClass objectClazz = Repository.lookupClass("java.lang.Object");
assertEquals(objectClazz.getClassName(), "java.lang.Object");
assertEquals(objectClazz.getMethods().length, 14);
assertEquals(objectClazz.getMethods().length, 12);
assertTrue(objectClazz.toString().contains("public class java.lang.Object"));
}
@ -43,7 +43,7 @@ public class ViewBytecodeUnitTest {
ClassFile cf = cp.get("java.lang.Object").getClassFile();
assertEquals(cf.getName(), "java.lang.Object");
assertEquals(cf.getMethods().size(), 14);
assertEquals(cf.getMethods().size(), 12);
}
}

View File

@ -3,13 +3,12 @@ package com.baeldung.headlessmode;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import java.awt.Canvas;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.GraphicsEnvironment;
import java.awt.HeadlessException;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.ComponentColorModel;
import java.awt.image.DataBuffer;
import java.awt.image.WritableRaster;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@ -58,7 +57,7 @@ public class HeadlessModeUnitTest {
boolean result = false;
try (InputStream inStream = HeadlessModeUnitTest.class.getResourceAsStream(IN_FILE); FileOutputStream outStream = new FileOutputStream(OUT_FILE)) {
BufferedImage inputImage = ImageIO.read(inStream);
result = ImageIO.write(inputImage, FORMAT, outStream);
result = ImageIO.write(removeAlphaChannel(inputImage), FORMAT, outStream);
}
assertThat(result).isTrue();
@ -84,4 +83,10 @@ public class HeadlessModeUnitTest {
assertThat(FlexibleApp.iAmFlexible()).isEqualTo(FlexibleApp.HEADED);
}
private BufferedImage removeAlphaChannel(BufferedImage inputImage) {
final WritableRaster raster = inputImage.getRaster();
final WritableRaster newRaster = raster.createWritableChild(0, 0, inputImage.getWidth(), inputImage.getHeight(), 0, 0, new int[]{0, 1, 2});
ColorModel newCM = new ComponentColorModel(inputImage.getColorModel().getColorSpace(), false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE);
return new BufferedImage(newCM, newRaster, false, null);
}
}

View File

@ -37,7 +37,7 @@ public class NumberOfLineFinder {
int lines = 0;
try (LineNumberReader reader = new LineNumberReader(new FileReader(fileName))) {
reader.skip(Integer.MAX_VALUE);
lines = reader.getLineNumber() + 1;
lines = reader.getLineNumber();
} catch (IOException ioe) {
ioe.printStackTrace();
}

View File

@ -21,9 +21,11 @@ public class CreationDateResolverUnitTest {
final Instant response = creationDateResolver.resolveCreationTimeWithBasicAttributes(path);
assertTrue(Instant
.now()
.isAfter(response));
Optional.of(response).ifPresent((value) -> {
assertTrue(Instant
.now()
.isAfter(value));
});
}

View File

@ -75,8 +75,8 @@ public class FormatNumberUnitTest {
public void givenCurrency_whenFormatNumberCurrencyWithChosenLocalisation_thenGetExpectedResult() {
double value = 23_500;
assertThat(currencyWithChosenLocalisation(value, new Locale("en", "US"))).isEqualTo("$23,500.00");
assertThat(currencyWithChosenLocalisation(value, new Locale("zh", "CN"))).isEqualTo("23,500.00");
assertThat(currencyWithChosenLocalisation(value, new Locale("pl", "PL"))).isEqualTo("23 500 ");
assertThat(currencyWithChosenLocalisation(value, new Locale("zh", "CN"))).isEqualTo("¥23,500.00");
assertThat(currencyWithChosenLocalisation(value, new Locale("pl", "PL"))).isEqualTo("23 500,00 ");
}
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>core-java-security</artifactId>
<version>0.1.0-SNAPSHOT</version>

View File

@ -44,6 +44,7 @@
<properties>
<icu4j.version>61.1</icu4j.version>
<argLine>-Djava.locale.providers=COMPAT</argLine>
</properties>
</project>

View File

@ -1,7 +1,6 @@
package com.baeldung.datetostring;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@ -14,7 +13,8 @@ import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import static org.junit.Assert.assertEquals;
import org.junit.BeforeClass;
import org.junit.Test;
public class DateToStringFormatterUnitTest {

View File

@ -15,6 +15,11 @@
</parent>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.4.0-b180725.0427</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>

View File

@ -16,9 +16,21 @@
</parent>
<modules>
<module>core-java</module>
<module>core-java-8</module>
<module>core-java-8-2</module>
<!--Won't be upgraded to JDK 17-->
<!--<module>core-java</module>-->
<!--<module>core-java-8</module>-->
<!--<module>core-java-8-2</module>-->
<!--<module>core-java-8-datetime</module>-->
<!--<module>core-java-8-datetime-2</module>-->
<!--<module>core-java-collections-conversions-2</module>-->
<!--<module>core-java-lang</module>-->
<!--<module>core-java-lang-math-3</module>-->
<!--<module>core-java-nio-2</module>-->
<!--<module>core-java-security</module>-->
<!--<module>core-java-serialization</module>-->
<!--<module>core-java-streams-2</module>-->
<!--<module>core-java-sun</module>-->
<module>core-java-annotations</module>
<module>core-java-arrays-sorting</module>
<module>core-java-arrays-guides</module>
@ -33,7 +45,6 @@
<module>core-java-collections-4</module>
<module>core-java-collections-5</module>
<module>core-java-collections-conversions</module>
<module>core-java-collections-conversions-2</module>
<module>core-java-collections-set-2</module>
<module>core-java-collections-list</module>
<module>core-java-collections-list-2</module>
@ -52,11 +63,9 @@
<module>core-java-concurrency-collections</module>
<module>core-java-concurrency-collections-2</module>
<module>core-java-console</module>
<module>core-java-8-datetime-2</module>
<module>core-java-datetime-string-2</module>
<module>core-java-date-operations-2</module>
<module>core-java-date-operations-3</module>
<module>core-java-8-datetime</module>
<module>core-java-exceptions</module>
<module>core-java-exceptions-2</module>
<module>core-java-exceptions-3</module>
@ -77,14 +86,12 @@
<module>core-java-jvm-2</module>
<module>core-java-jvm-3</module>
<module>core-java-lambdas</module>
<module>core-java-lang</module>
<module>core-java-lang-2</module>
<module>core-java-lang-3</module>
<module>core-java-lang-4</module>
<module>core-java-lang-5</module>
<module>core-java-lang-math</module>
<module>core-java-lang-math-2</module>
<module>core-java-lang-math-3</module>
<module>core-java-lang-oop-constructors</module>
<module>core-java-lang-oop-patterns</module>
<module>core-java-lang-oop-generics</module>
@ -102,27 +109,20 @@
<module>core-java-networking-2</module>
<module>core-java-networking-4</module>
<module>core-java-nio</module>
<module>core-java-nio-2</module>
<module>core-java-numbers</module>
<module>core-java-numbers-2</module>
<module>core-java-numbers-3</module>
<module>core-java-numbers-4</module>
<module>core-java-numbers-5</module>
<module>core-java-numbers-conversions</module>
<module>core-java-optional</module>
<module>core-java-perf</module>
<module>core-java-reflection</module>
<module>core-java-reflection-2</module>
<module>core-java-security</module>
<module>core-java-security-2</module>
<module>core-java-security-3</module>
<module>core-java-serialization</module>
<module>core-java-security-algorithms</module>
<module>core-java-streams</module>
<module>core-java-streams-2</module>
<module>core-java-streams-3</module>
<module>core-java-streams-maps</module>
<module>core-java-streams-collect</module>
<module>core-java-string-algorithms</module>
<module>core-java-string-algorithms-2</module>
<module>core-java-string-apis</module>
@ -131,7 +131,6 @@
<module>core-java-string-conversions-2</module>
<module>core-java-string-operations</module>
<module>core-java-string-operations-2</module>
<module>core-java-sun</module>
<module>core-java-regex</module>
<module>core-java-regex-2</module>
<module>core-java-uuid</module>

View File

@ -15,6 +15,11 @@
</parent>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.4.0-b180725.0427</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
@ -32,6 +37,9 @@
<configuration>
<source>${source.version}</source>
<target>${target.version}</target>
<compilerArgs>
<arg>--add-exports=java.base/com.sun.crypto.provider=ALL-UNNAMED</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
@ -72,8 +80,8 @@
<properties>
<dependency.plugin.version>3.1.1</dependency.plugin.version>
<compiler.plugin.version>3.8.0</compiler.plugin.version>
<source.version>1.8</source.version>
<target.version>1.8</target.version>
<source.version>11</source.version>
<target.version>11</target.version>
</properties>
</project>

View File

@ -1,19 +1,18 @@
package com.baeldung.prejpms;
import java.io.StringWriter;
import java.lang.StackWalker.Option;
import java.lang.StackWalker.StackFrame;
import com.sun.crypto.provider.SunJCE;
import java.util.Base64;
import java.util.concurrent.atomic.AtomicInteger;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sun.crypto.provider.SunJCE;
import sun.misc.BASE64Encoder;
import sun.reflect.Reflection;
public class App {
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
@ -37,14 +36,14 @@ public class App {
private static void getCallStackClassNames() {
try {
StringBuffer sbStack = new StringBuffer();
int i = 0;
Class<?> caller = Reflection.getCallerClass(i++);
do {
sbStack.append(i + ".")
.append(caller.getName())
.append("\n");
caller = Reflection.getCallerClass(i++);
} while (caller != null);
AtomicInteger i = new AtomicInteger(0);
StackWalker.getInstance((Option.RETAIN_CLASS_REFERENCE))
.walk(s -> s.map(StackFrame::getDeclaringClass)
.map(e -> {
i.getAndIncrement();
return e.getName();
}))
.forEach(name -> sbStack.append(String.format("%d. %s \n", i.get(), name)));
LOGGER.info("2. Call Stack:\n{}", sbStack);
} catch (Throwable e) {
LOGGER.error(e.toString());
@ -54,7 +53,7 @@ public class App {
private static void getXmlFromObject(Book book) {
try {
Marshaller marshallerObj = JAXBContext.newInstance(Book.class)
.createMarshaller();
.createMarshaller();
marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter sw = new StringWriter();
@ -68,7 +67,8 @@ public class App {
private static void getBase64EncodedString(String inputString) {
try {
String encodedString = new BASE64Encoder().encode(inputString.getBytes());
String encodedString = new String(Base64.getEncoder()
.encode(inputString.getBytes()));
LOGGER.info("4. Base Encoded String: {}", encodedString);
} catch (Throwable e) {
LOGGER.error(e.toString());

96
pom.xml
View File

@ -332,7 +332,21 @@
<module>checker-plugin</module>
<!-- <module>clojure</module> --> <!-- Not a maven project -->
<module>core-java-modules</module>
<module>core-java-modules/core-java</module>
<module>core-java-modules/core-java-8</module>
<module>core-java-modules/core-java-8-2</module>
<module>core-java-modules/core-java-8-datetime</module>
<module>core-java-modules/core-java-8-datetime-2</module>
<module>core-java-modules/core-java-sun</module>
<module>core-java-modules/core-java-security</module>
<module>core-java-modules/core-java-nio-2</module>
<module>core-java-modules/core-java-serialization</module>
<module>core-java-modules/core-java-lang</module>
<module>core-java-modules/core-java-lang-math-3</module>
<module>core-java-modules/core-java-collections-conversions-2</module>
<module>core-java-modules/core-java-streams-2</module>
<module>couchbase</module>
<!-- <module>ethereum</module> --> <!-- JAVA-6001 -->
<!-- <module>gradle-modules</module> --> <!-- Not a maven project -->
@ -521,7 +535,20 @@
<module>checker-plugin</module>
<!-- <module>clojure</module> --> <!-- Not a maven project -->
<module>core-java-modules</module>
<module>core-java-modules/core-java</module>
<module>core-java-modules/core-java-8</module>
<module>core-java-modules/core-java-8-2</module>
<module>core-java-modules/core-java-8-datetime</module>
<module>core-java-modules/core-java-8-datetime-2</module>
<module>core-java-modules/core-java-sun</module>
<module>core-java-modules/core-java-security</module>
<module>core-java-modules/core-java-nio-2</module>
<module>core-java-modules/core-java-serialization</module>
<module>core-java-modules/core-java-lang</module>
<module>core-java-modules/core-java-lang-math-3</module>
<module>core-java-modules/core-java-collections-conversions-2</module>
<module>core-java-modules/core-java-streams-2</module>
<module>couchbase</module>
<!-- <module>ethereum</module> --> <!-- JAVA-6001 -->
<!-- <module>gradle-modules</module> --> <!-- Not a maven project -->
@ -778,15 +805,8 @@
<module>couchbase</module>
<module>core-groovy-modules</module>
<module>core-java-modules/core-java-9</module>
<module>core-java-modules/core-java-9-improvements</module>
<module>core-java-modules/core-java-9-jigsaw</module>
<module>core-java-modules</module>
<!-- <module>core-java-modules/core-java-9-new-features</module> --> <!-- uses preview features, to be decided how to handle -->
<module>core-java-modules/core-java-9-streams</module>
<module>core-java-modules/core-java-10</module>
<module>core-java-modules/core-java-11</module>
<module>core-java-modules/core-java-11-2</module>
<module>core-java-modules/core-java-11-3</module>
<!-- <module>core-java-modules/core-java-12</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-13</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-14</module> --> <!-- uses preview features, to be decided how to handle -->
@ -794,27 +814,6 @@
<!-- <module>core-java-modules/core-java-16</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-17</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-19</module> --> <!-- uses preview features, to be decided how to handle -->
<module>core-java-modules/core-java-collections-set</module>
<module>core-java-modules/core-java-collections-list-4</module>
<module>core-java-modules/core-java-collections-array-list</module>
<module>core-java-modules/core-java-collections-maps-4</module>
<module>core-java-modules/core-java-collections-maps-5</module>
<module>core-java-modules/core-java-concurrency-simple</module>
<module>core-java-modules/core-java-date-operations-1</module>
<module>core-java-modules/core-java-datetime-conversion</module>
<module>core-java-modules/core-java-datetime-string</module>
<module>core-java-modules/core-java-io-conversions-2</module>
<module>core-java-modules/core-java-jpms</module>
<module>core-java-modules/core-java-os</module>
<module>core-java-modules/core-java-streams-4</module>
<module>core-java-modules/core-java-string-algorithms-3</module>
<module>core-java-modules/core-java-string-operations-3</module>
<module>core-java-modules/core-java-string-operations-4</module>
<module>core-java-modules/core-java-string-operations-5</module>
<module>core-java-modules/core-java-time-measurements</module>
<module>core-java-modules/core-java-networking-3</module>
<module>core-java-modules/core-java-strings</module>
<module>core-java-modules/core-java-httpclient</module>
<module>custom-pmd</module>
<module>spring-core-6</module>
<module>data-structures</module>
@ -954,7 +953,7 @@
<module>xstream</module>
<module>webrtc</module>
<module>persistence-modules/java-mongodb</module>
<module>messaging-modules</module>
<module>persistence-modules/questdb</module>
@ -1048,15 +1047,9 @@
<module>couchbase</module>
<module>core-groovy-modules</module>
<module>core-java-modules/core-java-9</module>
<module>core-java-modules/core-java-9-improvements</module>
<module>core-java-modules/core-java-9-jigsaw</module>
<module>core-java-modules</module>
<!-- <module>core-java-modules/core-java-9-new-features</module> --> <!-- uses preview features, to be decided how to handle -->
<module>core-java-modules/core-java-9-streams</module>
<module>core-java-modules/core-java-10</module>
<module>core-java-modules/core-java-11</module>
<module>core-java-modules/core-java-11-2</module>
<module>core-java-modules/core-java-11-3</module>
<!-- <module>core-java-modules/core-java-12</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-13</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-14</module> --> <!-- uses preview features, to be decided how to handle -->
@ -1064,27 +1057,6 @@
<!-- <module>core-java-modules/core-java-16</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-17</module> --> <!-- uses preview features, to be decided how to handle -->
<!-- <module>core-java-modules/core-java-19</module> --> <!-- uses preview features, to be decided how to handle -->
<module>core-java-modules/core-java-collections-set</module>
<module>core-java-modules/core-java-collections-list-4</module>
<module>core-java-modules/core-java-collections-array-list</module>
<module>core-java-modules/core-java-collections-maps-4</module>
<module>core-java-modules/core-java-collections-maps-5</module>
<module>core-java-modules/core-java-concurrency-simple</module>
<module>core-java-modules/core-java-date-operations-1</module>
<module>core-java-modules/core-java-datetime-conversion</module>
<module>core-java-modules/core-java-datetime-string</module>
<module>core-java-modules/core-java-io-conversions-2</module>
<module>core-java-modules/core-java-jpms</module>
<module>core-java-modules/core-java-os</module>
<module>core-java-modules/core-java-streams-4</module>
<module>core-java-modules/core-java-string-algorithms-3</module>
<module>core-java-modules/core-java-string-operations-3</module>
<module>core-java-modules/core-java-string-operations-4</module>
<module>core-java-modules/core-java-string-operations-5</module>
<module>core-java-modules/core-java-time-measurements</module>
<module>core-java-modules/core-java-networking-3</module>
<module>core-java-modules/core-java-strings</module>
<module>core-java-modules/core-java-httpclient</module>
<module>spring-aop</module>
<module>spring-aop-2</module>
<module>custom-pmd</module>
@ -1228,7 +1200,7 @@
<module>xstream</module>
<module>webrtc</module>
<module>persistence-modules/java-mongodb</module>
<module>libraries-2</module>
<module>libraries-2</module>
<module>messaging-modules</module>
<module>persistence-modules/questdb</module>