diff --git a/src/main/java/org/javademos/Main.java b/src/main/java/org/javademos/Main.java index 13bea96d..b119990d 100644 --- a/src/main/java/org/javademos/Main.java +++ b/src/main/java/org/javademos/Main.java @@ -1,15 +1,18 @@ package org.javademos; import org.javademos.commons.IDemo; -import org.javademos.init.*; +import org.javademos.commons.ArgsFilterUtil; -import java.util.ArrayList; +import java.util.Comparator; +import java.util.Map; + +import static org.javademos.init.JEPInfo.JEP_DEMO; +import static org.javademos.init.JEPInfo.JEP_DATA; /** * This application helps to show some new features from Java 11 to Java 21. - * The 'demoPool' array consists of simple IDemo interface implementations. + * The 'JEP_DATA' map consists of simple IDemo interface implementations. * Code logic is being implemented inside .demo() methods. - * * @see IDemo * * You can try switching the compile/build settings back to Java 1.8 to see @@ -19,14 +22,16 @@ * @author alois.seckar@gmail.com */ public class Main { - + /** - * Simple main method. - * No complex logic - all available demo implementations are being put - * inside a list, and then being executed one by one. - * - * @param args not supported (ignored) in this application - */ + * Main method supports filtering demos based on command line arguments. + * Supported arguments and examples: + * --skip-links: Skip demos that are link-only to other JEP + * --code-only: Only run demos that contain code + * --jdk=17,25: Only run demos from specific JDK versions + * --only=382,409: Only run specific JEP numbers + * @see ArgsFilterUtil + * */ public static void main(String[] args) { // https://stackoverflow.com/a/19165338/3204544 @@ -36,34 +41,18 @@ public static void main(String[] args) { System.out.println(System.getProperty("java.vendor")); System.out.println(System.getProperty("java.version")); System.out.println(System.getProperty("java.specification.vendor")); - // - - var demoPool = new ArrayList(); - - // you may find useful to comment out other JDKs except the one - // you are about to examine - // it may be confusing to search the actual output of particular - // demo class implementation you are currently interested in - demoPool.addAll(Java11.getDemos()); - demoPool.addAll(Java12.getDemos()); - demoPool.addAll(Java13.getDemos()); - demoPool.addAll(Java14.getDemos()); - demoPool.addAll(Java15.getDemos()); - demoPool.addAll(Java16.getDemos()); - demoPool.addAll(Java17.getDemos()); - demoPool.addAll(Java18.getDemos()); - demoPool.addAll(Java19.getDemos()); - demoPool.addAll(Java20.getDemos()); - demoPool.addAll(Java21.getDemos()); - demoPool.addAll(Java22.getDemos()); - demoPool.addAll(Java23.getDemos()); - demoPool.addAll(Java24.getDemos()); - demoPool.addAll(Java25.getDemos()); - - // run method .demo() on each entry to see the output - demoPool.forEach(IDemo::demo); - + var filteredJepData = ArgsFilterUtil.getFilteredJepData(args, JEP_DATA); + + // Run only filtered demos, sorted by JDK version and JEP number + JEP_DEMO.entrySet().stream() + .filter(e -> filteredJepData.containsKey(e.getKey())) + .sorted( + Comparator + .comparingInt((Map.Entry e) -> JEP_DATA.get(e.getKey()).jdk()) + .thenComparingInt(Map.Entry::getKey) + ) + .map(Map.Entry::getValue) + .forEach(IDemo::demo); } - } diff --git a/src/main/java/org/javademos/commons/ArgsFilterUtil.java b/src/main/java/org/javademos/commons/ArgsFilterUtil.java new file mode 100644 index 00000000..537afbd7 --- /dev/null +++ b/src/main/java/org/javademos/commons/ArgsFilterUtil.java @@ -0,0 +1,158 @@ +package org.javademos.commons; + +import org.javademos.init.JEPInfo.JEPData; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * Utility class for filtering and parsing command-line arguments + * that determine which JEP demos should be executed. + *

+ * This class provides filtering logic based on various criteria + * such as JDK version, JEP number, and demo type (code or link-only). + *

+ * + *

Supported arguments and examples:

+ * + * +*

Multiple filters and examples:

+ *

+ * Multiple filters can be combined. When multiple filters are specified, + * only demos that satisfy all active filters are executed. + *

+ * + * + * + * + * @author Alexander Schneider @ab-schneider + */ +public class ArgsFilterUtil { + + private static final Set jdkVersions = new HashSet<>(); + private static final Set specificJeps = new HashSet<>(); + private static boolean skipLinks = false; + private static boolean codeOnly = false; + + private static final String SKIP_LINKS = "--skip-links"; + private static final String CODE_ONLY = "--code-only"; + private static final String JDK = "--jdk="; + private static final String ONLY = "--only="; + private static final String DELIMITER = ","; + + private ArgsFilterUtil() { + } + + public static Map getFilteredJepData(String[] args, Map jepDataMap) { + parseArguments(args); + var filtered = filterJepData(jepDataMap); + printFilteredInfo(filtered); + return filtered; + } + + private static void parseArguments(String[] args) { + for (String arg : args) { + if (SKIP_LINKS.equals(arg)) { + skipLinks = true; + } else if (CODE_ONLY.equals(arg)) { + codeOnly = true; + } else if (arg.startsWith(JDK)) { + String jdkValues = arg.substring(JDK.length()); + parseJdkVersions(jdkValues); + } else if (arg.startsWith(ONLY)) { + String jepValues = arg.substring(ONLY.length()); + parseSpecificJeps(jepValues); + } else { + throw new IllegalArgumentException("Unknown arg: " + arg); + } + } + } + + private static void printFilteredInfo(Map filtered) { + System.out.println("\n=== FILTERED JEP INFORMATION ==="); + + if (!skipLinks && !codeOnly && specificJeps.isEmpty() && jdkVersions.isEmpty()) { + System.out.println("No filters applied. Total JEPs found: " + filtered.size()); + } else { + if (skipLinks) { + var linkOnlyCount = filtered.values().stream() + .filter(jepData -> !jepData.link()) + .count(); + System.out.println("Skipped link demos. JEPs found: " + linkOnlyCount); + } + + if (codeOnly) { + var codeOnlyCount = filtered.values().stream() + .filter(jepData -> !jepData.code()) + .count(); + System.out.println("Skipped no code demos. JEPs found: " + codeOnlyCount); + } + + if (!jdkVersions.isEmpty()) { + System.out.println("JDK versions: " + jdkVersions); + } + + if (!specificJeps.isEmpty()) { + System.out.println("Specific JEPs: " + specificJeps); + } + } + + System.out.println("================================\n"); + } + + private static void parseJdkVersions(String jdkValues) { + String[] versions = jdkValues.split(DELIMITER); + for (String version : versions) { + try { + jdkVersions.add(Integer.parseInt(version.trim())); + } catch (NumberFormatException e) { + throw new IllegalArgumentException("Invalid JDK version: " + version); + } + } + } + + private static void parseSpecificJeps(String jepValues) { + String[] jeps = jepValues.split(DELIMITER); + for (String jep : jeps) { + try { + specificJeps.add(Integer.parseInt(jep.trim())); + } catch (NumberFormatException e) { + throw new IllegalArgumentException("Invalid JEP number: " + jep); + } + } + } + + private static Map filterJepData(Map jepDataMap) { + return jepDataMap.entrySet().stream() + .filter(entry -> matchesFilters(entry.getValue())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + + private static boolean matchesFilters(JEPData jepData) { + if (skipLinks && jepData.link()) { + return false; + } + + if (codeOnly && !jepData.code()) { + return false; + } + + if (!jdkVersions.isEmpty() && !jdkVersions.contains(jepData.jdk())) { + return false; + } + + if (!specificJeps.isEmpty() && !specificJeps.contains(jepData.jep())) { + return false; + } + + return true; + } +} diff --git a/src/main/java/org/javademos/commons/IDemo.java b/src/main/java/org/javademos/commons/IDemo.java index 1ca76b41..b142a59b 100644 --- a/src/main/java/org/javademos/commons/IDemo.java +++ b/src/main/java/org/javademos/commons/IDemo.java @@ -1,5 +1,7 @@ package org.javademos.commons; +import org.javademos.init.JEPInfo; + /// Simple interface to unify the demo building process. /// /// Override method 'demo()' in your implementation and include new instance @@ -44,9 +46,9 @@ default void info(String demoName, String demoDscr) { /// This method accepts intended number of JEP and looks for data in DEMO_INFO map. /// /// @param jepNumber JEP number to be displayed - /// @see JEPInfo#JEP_INFO + /// @see JEPInfo#JEP_DATA default void info (int jepNumber) { - var demoInfo = JEPInfo.JEP_INFO.get(jepNumber); + var demoInfo = JEPInfo.JEP_DATA.get(jepNumber); if (demoInfo != null) { info(demoInfo.name(), demoInfo.dscr()); } else { diff --git a/src/main/java/org/javademos/commons/IDemoLoader.java b/src/main/java/org/javademos/commons/IDemoLoader.java new file mode 100644 index 00000000..35ab5f02 --- /dev/null +++ b/src/main/java/org/javademos/commons/IDemoLoader.java @@ -0,0 +1,11 @@ +package org.javademos.commons; + +import java.util.Map; + +/** + * Interface for loading demos for a specific Java version. + */ +public interface IDemoLoader { + + void loadDemos(Map demos); +} diff --git a/src/main/java/org/javademos/commons/JEPInfo.java b/src/main/java/org/javademos/commons/JEPInfo.java deleted file mode 100644 index 68c9acad..00000000 --- a/src/main/java/org/javademos/commons/JEPInfo.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.javademos.commons; - -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import java.io.*; -import java.text.MessageFormat; -import java.util.*; - -public class JEPInfo { - - private JEPInfo() {} - - public record JEPData(int jep, int jdk, String name, String dscr, boolean link, boolean code) {} - - public static Map JEP_INFO = getAllEntries(); - - private static Map getAllEntries() { - var jeps = new HashMap(); - - var sources = Arrays.asList(14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25); - for (Integer src : sources) { - var srcFile = MessageFormat.format("/JDK{0}Info.json", src); - try (InputStream inputStream = JEPInfo.class.getResourceAsStream(srcFile)) { - if (inputStream != null) { - try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) { - var JEPListType = new TypeToken>() { - }.getType(); - var gson = new Gson(); - List data = gson.fromJson(br, JEPListType); - data.forEach(d -> jeps.put(d.jep(), d)); - } catch (IOException e) { - e.printStackTrace(System.out); - } - } else { - System.err.println(MessageFormat.format("InputStream {0} is null", src)); - } - } catch (IOException e) { - e.printStackTrace(System.out); - } - } - - return jeps; - } - -} diff --git a/src/main/java/org/javademos/init/JEPInfo.java b/src/main/java/org/javademos/init/JEPInfo.java new file mode 100644 index 00000000..836dd839 --- /dev/null +++ b/src/main/java/org/javademos/init/JEPInfo.java @@ -0,0 +1,70 @@ +package org.javademos.init; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.javademos.commons.IDemo; + +import java.io.*; +import java.text.MessageFormat; +import java.util.*; + + public class JEPInfo { + + private JEPInfo() {} + + public record JEPData(int jep, int jdk, String name, String dscr, boolean link, boolean code) {} + + public static final Map JEP_DATA = getAllInfos(); + public static final Map JEP_DEMO = getAllDemos(); + + private static Map getAllInfos() { + var jeps = new HashMap(); + + var sources = Arrays.asList(14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25); + for (Integer src : sources) { + var srcFile = MessageFormat.format("/JDK{0}Info.json", src); + try (InputStream inputStream = org.javademos.init.JEPInfo.class.getResourceAsStream(srcFile)) { + if (inputStream != null) { + try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) { + var JEPListType = new TypeToken>() { + }.getType(); + var gson = new Gson(); + List data = gson.fromJson(br, JEPListType); + data.forEach(d -> jeps.put(d.jep(), d)); + } catch (IOException e) { + e.printStackTrace(System.out); + } + } else { + System.err.println(MessageFormat.format("InputStream {0} is null", src)); + } + } catch (IOException e) { + e.printStackTrace(System.out); + } + } + + return jeps; + } + + private static Map getAllDemos() { + var demos = new HashMap(); + + new Java11DemoLoader().loadDemos(demos); + new Java12DemoLoader().loadDemos(demos); + new Java13DemoLoader().loadDemos(demos); + new Java14DemoLoader().loadDemos(demos); + new Java15DemoLoader().loadDemos(demos); + new Java16DemoLoader().loadDemos(demos); + new Java17DemoLoader().loadDemos(demos); + new Java18DemoLoader().loadDemos(demos); + new Java19DemoLoader().loadDemos(demos); + new Java20DemoLoader().loadDemos(demos); + new Java21DemoLoader().loadDemos(demos); + new Java22DemoLoader().loadDemos(demos); + new Java23DemoLoader().loadDemos(demos); + new Java24DemoLoader().loadDemos(demos); + new Java25DemoLoader().loadDemos(demos); + + return demos; + } + +} diff --git a/src/main/java/org/javademos/init/Java11.java b/src/main/java/org/javademos/init/Java11.java deleted file mode 100644 index e775f197..00000000 --- a/src/main/java/org/javademos/init/Java11.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; -import org.javademos.java11.http.HttpDemo; -import org.javademos.java11.j9.J9Demo; -import org.javademos.java11.string11.String11Demo; -import org.javademos.java11.var.VarDemo; - -import java.util.ArrayList; - -public class Java11 { - - /** - * @return list of demos available for JDK 11 - */ - public static ArrayList getDemos() { - var java11DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - java11DemoPool.add(new J9Demo()); - java11DemoPool.add(new VarDemo()); - java11DemoPool.add(new HttpDemo()); - java11DemoPool.add(new String11Demo()); - - return java11DemoPool; - } - -} diff --git a/src/main/java/org/javademos/init/Java11DemoLoader.java b/src/main/java/org/javademos/init/Java11DemoLoader.java new file mode 100644 index 00000000..d99e4734 --- /dev/null +++ b/src/main/java/org/javademos/init/Java11DemoLoader.java @@ -0,0 +1,23 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; + +import java.util.Map; + +/** + * Loads demos for Java 11. + */ +public class Java11DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + //TODO align old demos and add necessary JDKInfo.json + + // Java 11 +// demos.put(11, new J9Demo()); +// demos.put(11, new VarDemo()); +// demos.put(11, new HttpDemo()); +// demos.put(11, new String11Demo()); + } +} diff --git a/src/main/java/org/javademos/init/Java12.java b/src/main/java/org/javademos/init/Java12.java deleted file mode 100644 index e280c9b1..00000000 --- a/src/main/java/org/javademos/init/Java12.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; -import org.javademos.java12.extras.String12Demo; - -import java.util.ArrayList; - -public class Java12 { - - /** - * @return list of demos available for JDK 12 - */ - public static ArrayList getDemos() { - var java12DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // extra features not related to any JEP - java12DemoPool.add(new String12Demo()); - // JEP xxx - // java12DemoPool.add(new xyz()); - - return java12DemoPool; - } - -} diff --git a/src/main/java/org/javademos/init/Java12DemoLoader.java b/src/main/java/org/javademos/init/Java12DemoLoader.java new file mode 100644 index 00000000..eafbbb27 --- /dev/null +++ b/src/main/java/org/javademos/init/Java12DemoLoader.java @@ -0,0 +1,20 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; + +import java.util.Map; + +/** + * Loads demos for Java 12. + */ +public class Java12DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + //TODO align old demos and add necessary JDKInfo.json + + // Java 12 + // demos.put(12, new String12Demo()); + } +} diff --git a/src/main/java/org/javademos/init/Java13.java b/src/main/java/org/javademos/init/Java13.java deleted file mode 100644 index 4362b02d..00000000 --- a/src/main/java/org/javademos/init/Java13.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; - -import java.util.ArrayList; - -public class Java13 { - - /** - * @return list of demos available for JDK 13 - */ - public static ArrayList getDemos() { - var java13DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // JEP xxx - // java13DemoPool.add(new xyz()); - - return java13DemoPool; - } - -} diff --git a/src/main/java/org/javademos/init/Java13DemoLoader.java b/src/main/java/org/javademos/init/Java13DemoLoader.java new file mode 100644 index 00000000..6a755028 --- /dev/null +++ b/src/main/java/org/javademos/init/Java13DemoLoader.java @@ -0,0 +1,20 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java14.jep370.ForeignMemoryAccessDemo; + +import java.util.Map; + +/** + * Loads demos for Java 13. + */ +public class Java13DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + //TODO add demos for java 13 + + //demos.put(123, new FutureDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java14.java b/src/main/java/org/javademos/init/Java14.java deleted file mode 100644 index ce756c81..00000000 --- a/src/main/java/org/javademos/init/Java14.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.javademos.init; - -import java.util.ArrayList; - -import org.javademos.commons.IDemo; -import org.javademos.java14.jep305.InstanceofPatternMatchingPreview; -import org.javademos.java14.jep359.RecordsPreviewDemo; -import org.javademos.java14.jep370.ForeignMemoryAccessDemo; - -public class Java14 { - - /** - * @return list of demos available for JDK 14 - */ - public static ArrayList getDemos() { - var java14DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - //JEP 305 - java14DemoPool.add(new InstanceofPatternMatchingPreview()); - // JEP 359 - java14DemoPool.add(new RecordsPreviewDemo()); - // JEP 370 - java14DemoPool.add(new ForeignMemoryAccessDemo()); - - return java14DemoPool; - } -} diff --git a/src/main/java/org/javademos/init/Java14DemoLoader.java b/src/main/java/org/javademos/init/Java14DemoLoader.java new file mode 100644 index 00000000..5b893e84 --- /dev/null +++ b/src/main/java/org/javademos/init/Java14DemoLoader.java @@ -0,0 +1,22 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java14.jep305.InstanceofPatternMatchingPreview; +import org.javademos.java14.jep359.RecordsPreviewDemo; +import org.javademos.java14.jep370.ForeignMemoryAccessDemo; + +import java.util.Map; + +/** + * Loads demos for Java 14. + */ +public class Java14DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(305, new InstanceofPatternMatchingPreview()); + demos.put(359, new RecordsPreviewDemo()); + demos.put(370, new ForeignMemoryAccessDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java15.java b/src/main/java/org/javademos/init/Java15.java deleted file mode 100644 index c455b526..00000000 --- a/src/main/java/org/javademos/init/Java15.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.javademos.init; - -import java.util.ArrayList; - -import org.javademos.commons.IDemo; -import org.javademos.java15.jep339.EdDSADemo; -import org.javademos.java15.jep360.SealedClassesDemo; -import org.javademos.java15.jep371.HiddenClassesDemo; -import org.javademos.java15.jep372.NashornRemovalDemo; -import org.javademos.java15.jep373.DatagramSocketDemo15; -import org.javademos.java15.jep375.InstanceofPatternMatchingSecondPreview; -import org.javademos.java15.jep377.ZGarbageCollectorDemo; -import org.javademos.java15.jep381.SolarisSparcRemovalDemo; -import org.javademos.java15.jep383.ForeignMemoryAccessDemo; -import org.javademos.java15.jep384.RecordsSecondPreviewDemo; -public class Java15 { - - /** - * @return list of demos available for JDK 15 - */ - public static ArrayList getDemos() { - var java15DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // JEP 339 - java15DemoPool.add(new EdDSADemo()); - // JEP 360 - java15DemoPool.add(new SealedClassesDemo()); - // JEP 371 - java15DemoPool.add(new HiddenClassesDemo()); - // JEP 372 - java15DemoPool.add(new NashornRemovalDemo()); - // JEP 373 - java15DemoPool.add(new DatagramSocketDemo15()); - // JEP 375 - java15DemoPool.add(new InstanceofPatternMatchingSecondPreview()); - // JEP 377 - java15DemoPool.add(new ZGarbageCollectorDemo()); - // JEP 381 - java15DemoPool.add(new SolarisSparcRemovalDemo()); - // JEP 383 - java15DemoPool.add(new ForeignMemoryAccessDemo()); - // JEP 384 - java15DemoPool.add(new RecordsSecondPreviewDemo()); - - return java15DemoPool; - } -} diff --git a/src/main/java/org/javademos/init/Java15DemoLoader.java b/src/main/java/org/javademos/init/Java15DemoLoader.java new file mode 100644 index 00000000..1ff1bd02 --- /dev/null +++ b/src/main/java/org/javademos/init/Java15DemoLoader.java @@ -0,0 +1,36 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java15.jep339.EdDSADemo; +import org.javademos.java15.jep360.SealedClassesDemo; +import org.javademos.java15.jep371.HiddenClassesDemo; +import org.javademos.java15.jep372.NashornRemovalDemo; +import org.javademos.java15.jep373.DatagramSocketDemo; +import org.javademos.java15.jep375.InstanceofPatternMatchingSecondPreview; +import org.javademos.java15.jep377.ZGarbageCollectorDemo; +import org.javademos.java15.jep381.SolarisSparcRemovalDemo; +import org.javademos.java15.jep383.ForeignMemoryAccessDemo; +import org.javademos.java15.jep384.RecordsSecondPreviewDemo; + +import java.util.Map; + +/** + * Loads demos for Java 15. + */ +public class Java15DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(339, new EdDSADemo()); + demos.put(360, new SealedClassesDemo()); + demos.put(371, new HiddenClassesDemo()); + demos.put(372, new NashornRemovalDemo()); + demos.put(373, new DatagramSocketDemo()); + demos.put(375, new InstanceofPatternMatchingSecondPreview()); + demos.put(377, new ZGarbageCollectorDemo()); + demos.put(381, new SolarisSparcRemovalDemo()); + demos.put(383, new ForeignMemoryAccessDemo()); + demos.put(384, new RecordsSecondPreviewDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java16.java b/src/main/java/org/javademos/init/Java16.java deleted file mode 100644 index df08e22a..00000000 --- a/src/main/java/org/javademos/init/Java16.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.javademos.init; - -import java.util.ArrayList; - -import org.javademos.commons.IDemo; -import org.javademos.java16.extras.J16Demo; -import org.javademos.java16.jep338.VectorAPIDemo; -import org.javademos.java16.jep347.Cpp14FeaturesDemo; -import org.javademos.java16.jep380.UnixDomainSocketsDemo; -import org.javademos.java16.jep386.AlpineLinuxPortDemo; -import org.javademos.java16.jep388.WindowsPortDemo; -import org.javademos.java16.jep389.ForeignLinkerDemo; -import org.javademos.java16.jep390.ValueBasedClassesDemo; -import org.javademos.java16.jep392.PackagingToolDemo; -import org.javademos.java16.jep393.ForeignMemoryAccessDemo; -import org.javademos.java16.jep394.InstanceofPatternMatchingDemo; -import org.javademos.java16.jep395.RecordDemo; -import org.javademos.java16.jep396.EncapsulationDemo; -import org.javademos.java16.jep397.SealedClassesDemo; - -public class Java16 { - - /** - * @return list of demos available for JDK 16 - */ - public static ArrayList getDemos() { - var java16DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // extra features not related to any JEP - java16DemoPool.add(new J16Demo()); - // JEP 338 - java16DemoPool.add(new VectorAPIDemo()); - // JEP 347 - java16DemoPool.add(new Cpp14FeaturesDemo()); - // JEP 380 - java16DemoPool.add(new UnixDomainSocketsDemo()); - // JEP 386 - java16DemoPool.add(new AlpineLinuxPortDemo()); - // JEP 388 - java16DemoPool.add(new WindowsPortDemo()); - // JEP 389 - java16DemoPool.add(new ForeignLinkerDemo()); - // JEP 390 - java16DemoPool.add(new ValueBasedClassesDemo()); - // JEP 392 - java16DemoPool.add(new PackagingToolDemo()); - // JEP 393 - java16DemoPool.add(new ForeignMemoryAccessDemo()); - // JEP 394 - java16DemoPool.add(new InstanceofPatternMatchingDemo()); - // JEP 395 - java16DemoPool.add(new RecordDemo()); - // JEP 396 - java16DemoPool.add(new EncapsulationDemo()); - // JEP 397 - java16DemoPool.add(new SealedClassesDemo()); - - return java16DemoPool; - } -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java16DemoLoader.java b/src/main/java/org/javademos/init/Java16DemoLoader.java new file mode 100644 index 00000000..abd15c6d --- /dev/null +++ b/src/main/java/org/javademos/init/Java16DemoLoader.java @@ -0,0 +1,42 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java16.jep338.VectorAPIDemo; +import org.javademos.java16.jep347.Cpp14FeaturesDemo; +import org.javademos.java16.jep380.UnixDomainSocketsDemo; +import org.javademos.java16.jep386.AlpineLinuxPortDemo; +import org.javademos.java16.jep388.WindowsPortDemo; +import org.javademos.java16.jep389.ForeignLinkerDemo; +import org.javademos.java16.jep390.ValueBasedClassesDemo; +import org.javademos.java16.jep392.PackagingToolDemo; +import org.javademos.java16.jep393.ForeignMemoryAccessDemo; +import org.javademos.java16.jep394.InstanceofPatternMatchingDemo; +import org.javademos.java16.jep395.RecordDemo; +import org.javademos.java16.jep396.EncapsulationDemo; +import org.javademos.java16.jep397.SealedClassesDemo; + +import java.util.Map; + +/** + * Loads demos for Java 16. + */ +public class Java16DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(338, new VectorAPIDemo()); + demos.put(347, new Cpp14FeaturesDemo()); + demos.put(380, new UnixDomainSocketsDemo()); + demos.put(386, new AlpineLinuxPortDemo()); + demos.put(388, new WindowsPortDemo()); + demos.put(389, new ForeignLinkerDemo()); + demos.put(390, new ValueBasedClassesDemo()); + demos.put(392, new PackagingToolDemo()); + demos.put(393, new ForeignMemoryAccessDemo()); + demos.put(394, new InstanceofPatternMatchingDemo()); + demos.put(395, new RecordDemo()); + demos.put(396, new EncapsulationDemo()); + demos.put(397, new SealedClassesDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java17.java b/src/main/java/org/javademos/init/Java17.java deleted file mode 100644 index 651fe97c..00000000 --- a/src/main/java/org/javademos/init/Java17.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.javademos.init; - -import java.util.ArrayList; - -import org.javademos.commons.IDemo; -import org.javademos.java17.extras.J17DeprecatedDemo; -import org.javademos.java17.jep306.RestoreAlwaysStrictFloatingPointSemanticsDemo; -import org.javademos.java17.jep356.RandomGenerators17; -import org.javademos.java17.jep382.MacosRenderingPipelineDemo; -import org.javademos.java17.jep391.MacOsAarch64PortDemo; -import org.javademos.java17.jep398.DeprecateAppletApiForRemovalDemo; -import org.javademos.java17.jep403.StronglyEncapsulateInternalsDemo; -import org.javademos.java17.jep406.PatternMatchingForSwitchPreview; -import org.javademos.java17.jep407.RemoveRmiActivationDemo; -import org.javademos.java17.jep409.SealedDemo; -import org.javademos.java17.jep410.RemoveAotJitDemo; -import org.javademos.java17.jep411.DeprecateSecurityManagerDemo; -import org.javademos.java17.jep412.ForeignFunctionMemoryDemo; -import org.javademos.java17.jep414.VectorAPIDemo; -import org.javademos.java17.jep415.ContextSpecificDeserializationFiltersDemo; -import org.javademos.java17.newswitch.SwitchDemo; -import org.javademos.java17.nullpointer.NullPointerDemo; -import org.javademos.java17.textblock.TextBlockDemo; - -public class Java17 { - - /** - * @return list of demos available for JDK 17 - */ - public static ArrayList getDemos() { - var java17DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // extra features not related to any JEP - java17DemoPool.add(new J17DeprecatedDemo()); - // JEP 306 - java17DemoPool.add(new RestoreAlwaysStrictFloatingPointSemanticsDemo()); - // JEP 356 - java17DemoPool.add(new RandomGenerators17()); - // JEP 382 - java17DemoPool.add(new MacosRenderingPipelineDemo()); - // JEP 391 - java17DemoPool.add(new MacOsAarch64PortDemo()); - // JEP 398 - java17DemoPool.add(new DeprecateAppletApiForRemovalDemo()); - // JEP 403 - java17DemoPool.add(new StronglyEncapsulateInternalsDemo()); - // JEP 406 - java17DemoPool.add(new PatternMatchingForSwitchPreview()); - // JEP 407 - java17DemoPool.add(new RemoveRmiActivationDemo()); - // JEP 409 - java17DemoPool.add(new SealedDemo()); - // JEP 410 - java17DemoPool.add(new RemoveAotJitDemo()); - // JEP 411 - java17DemoPool.add(new DeprecateSecurityManagerDemo()); - // JEP 412 - java17DemoPool.add(new ForeignFunctionMemoryDemo()); - // JEP 414 - java17DemoPool.add(new VectorAPIDemo()); - // JEP 415 - java17DemoPool.add(new ContextSpecificDeserializationFiltersDemo()); - - // older demos created with "non-JEP" style - java17DemoPool.add(new SwitchDemo()); - java17DemoPool.add(new NullPointerDemo()); - java17DemoPool.add(new TextBlockDemo()); - - return java17DemoPool; - } - -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java17DemoLoader.java b/src/main/java/org/javademos/init/Java17DemoLoader.java new file mode 100644 index 00000000..9e144ccf --- /dev/null +++ b/src/main/java/org/javademos/init/Java17DemoLoader.java @@ -0,0 +1,44 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java17.jep306.RestoreAlwaysStrictFloatingPointSemanticsDemo; +import org.javademos.java17.jep356.RandomGeneratorsDemo; +import org.javademos.java17.jep382.MacosRenderingPipelineDemo; +import org.javademos.java17.jep391.MacOsAarch64PortDemo; +import org.javademos.java17.jep398.DeprecateAppletApiForRemovalDemo; +import org.javademos.java17.jep403.StronglyEncapsulateInternalsDemo; +import org.javademos.java17.jep406.PatternMatchingForSwitchPreview; +import org.javademos.java17.jep407.RemoveRmiActivationDemo; +import org.javademos.java17.jep409.SealedDemo; +import org.javademos.java17.jep410.RemoveAotJitDemo; +import org.javademos.java17.jep411.DeprecateSecurityManagerDemo; +import org.javademos.java17.jep412.ForeignFunctionMemoryDemo; +import org.javademos.java17.jep414.VectorAPIDemo; +import org.javademos.java17.jep415.ContextSpecificDeserializationFiltersDemo; + +import java.util.Map; + +/** + * Loads demos for Java 17. + */ +public class Java17DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(356, new RandomGeneratorsDemo()); + demos.put(306, new RestoreAlwaysStrictFloatingPointSemanticsDemo()); + demos.put(382, new MacosRenderingPipelineDemo()); + demos.put(391, new MacOsAarch64PortDemo()); + demos.put(398, new DeprecateAppletApiForRemovalDemo()); + demos.put(403, new StronglyEncapsulateInternalsDemo()); + demos.put(406, new PatternMatchingForSwitchPreview()); + demos.put(407, new RemoveRmiActivationDemo()); + demos.put(409, new SealedDemo()); + demos.put(410, new RemoveAotJitDemo()); + demos.put(411, new DeprecateSecurityManagerDemo()); + demos.put(412, new ForeignFunctionMemoryDemo()); + demos.put(414, new VectorAPIDemo()); + demos.put(415, new ContextSpecificDeserializationFiltersDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java18.java b/src/main/java/org/javademos/init/Java18.java deleted file mode 100644 index bc1cd321..00000000 --- a/src/main/java/org/javademos/init/Java18.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; -import org.javademos.java18.jep400.DefaultUTF8Demo; -import org.javademos.java18.jep408.SimpleWebServerDemo; -import org.javademos.java18.jep413.CodeSnippetsInJavadoc; -import org.javademos.java18.jep416.CoreReflectionWithMethodHandles; -import org.javademos.java18.jep417.VectorAPIDemo; -import org.javademos.java18.jep418.InternetAddressResolutionSPI; -import org.javademos.java18.jep419.ForeignFunctionMemoryDemo; -import org.javademos.java18.jep420.PatternMatchingForSwitchSecondPreview; -import org.javademos.java18.jep421.DeprecateFinalization; - -import java.util.ArrayList; - -public class Java18 { - - /** - * @return list of demos available for JDK 18 - */ - public static ArrayList getDemos() { - var java18DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // JEP 400 - java18DemoPool.add(new DefaultUTF8Demo()); - // JEP 408 - java18DemoPool.add(new SimpleWebServerDemo()); - // JEP 413 - java18DemoPool.add(new CodeSnippetsInJavadoc()); - // JEP 416 - java18DemoPool.add(new CoreReflectionWithMethodHandles()); - // JEP 417 - java18DemoPool.add(new VectorAPIDemo()); - // JEP 418 - java18DemoPool.add(new InternetAddressResolutionSPI()); - // JEP 419 - java18DemoPool.add(new ForeignFunctionMemoryDemo()); - // JEP 420 - java18DemoPool.add(new PatternMatchingForSwitchSecondPreview()); - // JEP 421 - java18DemoPool.add(new DeprecateFinalization()); - - return java18DemoPool; - } -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java18DemoLoader.java b/src/main/java/org/javademos/init/Java18DemoLoader.java new file mode 100644 index 00000000..cb709ac5 --- /dev/null +++ b/src/main/java/org/javademos/init/Java18DemoLoader.java @@ -0,0 +1,34 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java18.jep400.DefaultUTF8Demo; +import org.javademos.java18.jep408.SimpleWebServerDemo; +import org.javademos.java18.jep413.CodeSnippetsInJavadoc; +import org.javademos.java18.jep416.CoreReflectionWithMethodHandles; +import org.javademos.java18.jep417.VectorAPIDemo; +import org.javademos.java18.jep418.InternetAddressResolutionSPI; +import org.javademos.java18.jep419.ForeignFunctionMemoryDemo; +import org.javademos.java18.jep420.PatternMatchingForSwitchSecondPreview; +import org.javademos.java18.jep421.DeprecateFinalization; + +import java.util.Map; + +/** + * Loads demos for Java 18. + */ +public class Java18DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(400, new DefaultUTF8Demo()); + demos.put(408, new SimpleWebServerDemo()); + demos.put(413, new CodeSnippetsInJavadoc()); + demos.put(416, new CoreReflectionWithMethodHandles()); + demos.put(417, new VectorAPIDemo()); + demos.put(418, new InternetAddressResolutionSPI()); + demos.put(419, new ForeignFunctionMemoryDemo()); + demos.put(420, new PatternMatchingForSwitchSecondPreview()); + demos.put(421, new DeprecateFinalization()); + } +} diff --git a/src/main/java/org/javademos/init/Java19.java b/src/main/java/org/javademos/init/Java19.java deleted file mode 100644 index a2b4af52..00000000 --- a/src/main/java/org/javademos/init/Java19.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.javademos.init; - -import java.util.ArrayList; - -import org.javademos.commons.IDemo; -import org.javademos.java19.jep405.RecordPatterns; -import org.javademos.java19.jep422.LinuxRiscVPort; -import org.javademos.java19.jep424.ForeignFunctionMemoryDemo; -import org.javademos.java19.jep425.VirtualThreads; -import org.javademos.java19.jep426.VectorAPIDemo; -import org.javademos.java19.jep427.PatternMatchingForSwitchThirdPreview; -import org.javademos.java19.jep428.StructuredConcurrencyDemo; - -public class Java19 { - - /** - * @return list of demos available for JDK 19 - */ - public static ArrayList getDemos() { - var java19DemoPool = new ArrayList(); - - // JEP 405 - java19DemoPool.add(new RecordPatterns()); - // JEP 422 - java19DemoPool.add(new LinuxRiscVPort()); - // JEP 424 - java19DemoPool.add(new ForeignFunctionMemoryDemo()); - // JEP 425 - java19DemoPool.add(new VirtualThreads()); - // JEP 426 - java19DemoPool.add(new VectorAPIDemo()); - // JEP 427 - java19DemoPool.add(new PatternMatchingForSwitchThirdPreview()); - // JEP 428 - java19DemoPool.add(new StructuredConcurrencyDemo()); - - return java19DemoPool; - } -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java19DemoLoader.java b/src/main/java/org/javademos/init/Java19DemoLoader.java new file mode 100644 index 00000000..42e8b63d --- /dev/null +++ b/src/main/java/org/javademos/init/Java19DemoLoader.java @@ -0,0 +1,30 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java19.jep405.RecordPatterns; +import org.javademos.java19.jep422.LinuxRiscVPort; +import org.javademos.java19.jep424.ForeignFunctionMemoryDemo; +import org.javademos.java19.jep425.VirtualThreads; +import org.javademos.java19.jep426.VectorAPIDemo; +import org.javademos.java19.jep427.PatternMatchingForSwitchThirdPreview; +import org.javademos.java19.jep428.StructuredConcurrencyDemo; + +import java.util.Map; + +/** + * Loads demos for Java 19. + */ +public class Java19DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(405, new RecordPatterns()); + demos.put(422, new LinuxRiscVPort()); + demos.put(424, new ForeignFunctionMemoryDemo()); + demos.put(425, new VirtualThreads()); + demos.put(426, new VectorAPIDemo()); + demos.put(427, new PatternMatchingForSwitchThirdPreview()); + demos.put(428, new StructuredConcurrencyDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java20.java b/src/main/java/org/javademos/init/Java20.java deleted file mode 100644 index ed66e2c6..00000000 --- a/src/main/java/org/javademos/init/Java20.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.javademos.init; - -import java.util.ArrayList; - -import org.javademos.commons.IDemo; -import org.javademos.java20.jep432.RecordPatterns; -import org.javademos.java20.jep429.ScopedValuesDemo; -import org.javademos.java20.jep433.PatternMatchingForSwitchFourthPreview; -import org.javademos.java20.jep434.ForeignFunctionMemoryDemo; -import org.javademos.java20.jep436.VirtualThreads; -import org.javademos.java20.jep438.VectorAPIDemo; -import org.javademos.java20.jep437.StructuredConcurrencyDemo; - -public class Java20 { - - /** - * @return list of demos available for JDK 20 - */ - public static ArrayList getDemos() { - var java20DemoPool = new ArrayList(); - - // JEP 429 - java20DemoPool.add(new ScopedValuesDemo()); - // JEP 432 - java20DemoPool.add(new RecordPatterns()); - // JEP 433 - java20DemoPool.add(new PatternMatchingForSwitchFourthPreview()); - // JEP 434 - java20DemoPool.add(new ForeignFunctionMemoryDemo()); - // JEP 436 - java20DemoPool.add(new VirtualThreads()); - // JEP 437 - java20DemoPool.add(new StructuredConcurrencyDemo()); - // JEP 438 - java20DemoPool.add(new VectorAPIDemo()); - - return java20DemoPool; - } -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java20DemoLoader.java b/src/main/java/org/javademos/init/Java20DemoLoader.java new file mode 100644 index 00000000..5e9dd216 --- /dev/null +++ b/src/main/java/org/javademos/init/Java20DemoLoader.java @@ -0,0 +1,30 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java20.jep429.ScopedValuesDemo; +import org.javademos.java20.jep432.RecordPatterns; +import org.javademos.java20.jep433.PatternMatchingForSwitchFourthPreview; +import org.javademos.java20.jep434.ForeignFunctionMemoryDemo; +import org.javademos.java20.jep436.VirtualThreads; +import org.javademos.java20.jep437.StructuredConcurrencyDemo; +import org.javademos.java20.jep438.VectorAPIDemo; + +import java.util.Map; + +/** + * Loads demos for Java 20. + */ +public class Java20DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(429, new ScopedValuesDemo()); + demos.put(432, new RecordPatterns()); + demos.put(433, new PatternMatchingForSwitchFourthPreview()); + demos.put(434, new ForeignFunctionMemoryDemo()); + demos.put(436, new VirtualThreads()); + demos.put(437, new StructuredConcurrencyDemo()); + demos.put(438, new VectorAPIDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java21.java b/src/main/java/org/javademos/init/Java21.java deleted file mode 100644 index d65c5217..00000000 --- a/src/main/java/org/javademos/init/Java21.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; -import org.javademos.java21.extras.J21Demo; -import org.javademos.java21.jep430.StringTemplatesDemo; -import org.javademos.java21.jep431.SequencedCollectionsDemo; -import org.javademos.java21.jep439.GenerationalZGC21; -import org.javademos.java21.jep440.RecordPatternsDemo; -import org.javademos.java21.jep441.PatternMatchingForSwitchDemo; -import org.javademos.java21.jep442.ForeignFunctionMemoryDemo; -import org.javademos.java21.jep443.UnnamedPatternsAndVariablesPreview; -import org.javademos.java21.jep444.VirtualThreadsDemo; -import org.javademos.java21.jep445.UnnamedClassesDemo; -import org.javademos.java21.jep446.ScopedValuesDemo; -import org.javademos.java21.jep448.VectorAPIDemo; -import org.javademos.java21.jep449.DeprecateWindows32BitX86Demo; -import org.javademos.java21.jep451.DisallowDynamicAgentLoading; -import org.javademos.java21.jep452.KeyEncapsulationMechanismAPIDemo; -import org.javademos.java21.jep453.StructuredConcurrencyDemo; - -import java.util.ArrayList; - -public class Java21 { - - /** - * @return list of demos available for JDK 21 - */ - public static ArrayList getDemos() { - var java21DemoPool = new ArrayList(); - - // extra features not related to any JEP - java21DemoPool.add(new J21Demo()); - // JEP 430 - java21DemoPool.add(new StringTemplatesDemo()); - // JEP 431 - java21DemoPool.add(new SequencedCollectionsDemo()); - // JEP 439 - java21DemoPool.add(new GenerationalZGC21()); - // JEP 440 - java21DemoPool.add(new RecordPatternsDemo()); - // JEP 441 - java21DemoPool.add(new PatternMatchingForSwitchDemo()); - // JEP 442 - java21DemoPool.add(new ForeignFunctionMemoryDemo()); - // JEP 443 - java21DemoPool.add(new UnnamedPatternsAndVariablesPreview()); - // JEP 444 - java21DemoPool.add(new VirtualThreadsDemo()); - // JEP 445 - java21DemoPool.add(new UnnamedClassesDemo()); - // JEP 446 - java21DemoPool.add(new ScopedValuesDemo()); - // JEP 448 - java21DemoPool.add(new VectorAPIDemo()); - // JEP 449 - java21DemoPool.add(new DeprecateWindows32BitX86Demo()); - // JEP 451 - java21DemoPool.add(new DisallowDynamicAgentLoading()); - // JEP 452 - java21DemoPool.add(new KeyEncapsulationMechanismAPIDemo()); - // JEP 453 - java21DemoPool.add(new StructuredConcurrencyDemo()); - - return java21DemoPool; - } -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java21DemoLoader.java b/src/main/java/org/javademos/init/Java21DemoLoader.java new file mode 100644 index 00000000..27c23bd6 --- /dev/null +++ b/src/main/java/org/javademos/init/Java21DemoLoader.java @@ -0,0 +1,46 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java21.jep430.StringTemplatesDemo; +import org.javademos.java21.jep431.SequencedCollectionsDemo; +import org.javademos.java21.jep439.GenerationalZGC21; +import org.javademos.java21.jep440.RecordPatternsDemo; +import org.javademos.java21.jep441.PatternMatchingForSwitchDemo; +import org.javademos.java21.jep442.ForeignFunctionMemoryDemo; +import org.javademos.java21.jep443.UnnamedPatternsAndVariablesPreview; +import org.javademos.java21.jep444.VirtualThreadsDemo; +import org.javademos.java21.jep445.UnnamedClassesDemo; +import org.javademos.java21.jep446.ScopedValuesDemo; +import org.javademos.java21.jep448.VectorAPIDemo; +import org.javademos.java21.jep449.DeprecateWindows32BitX86Demo; +import org.javademos.java21.jep451.DisallowDynamicAgentLoading; +import org.javademos.java21.jep452.KeyEncapsulationMechanismAPIDemo; +import org.javademos.java21.jep453.StructuredConcurrencyDemo; + +import java.util.Map; + +/** + * Loads demos for Java 21. + */ +public class Java21DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(430, new StringTemplatesDemo()); + demos.put(431, new SequencedCollectionsDemo()); + demos.put(439, new GenerationalZGC21()); + demos.put(440, new RecordPatternsDemo()); + demos.put(441, new PatternMatchingForSwitchDemo()); + demos.put(442, new ForeignFunctionMemoryDemo()); + demos.put(443, new UnnamedPatternsAndVariablesPreview()); + demos.put(444, new VirtualThreadsDemo()); + demos.put(445, new UnnamedClassesDemo()); + demos.put(446, new ScopedValuesDemo()); + demos.put(448, new VectorAPIDemo()); + demos.put(449, new DeprecateWindows32BitX86Demo()); + demos.put(451, new DisallowDynamicAgentLoading()); + demos.put(452, new KeyEncapsulationMechanismAPIDemo()); + demos.put(453, new StructuredConcurrencyDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java22.java b/src/main/java/org/javademos/init/Java22.java deleted file mode 100644 index 20016ee5..00000000 --- a/src/main/java/org/javademos/init/Java22.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; -import org.javademos.java22.jep423.RegionPinningForG1; -import org.javademos.java22.jep447.StatementsBeforeSuper; -import org.javademos.java22.jep454.ForeignFunctionMemoryDemo; -import org.javademos.java22.jep456.UnnamedPatternsAndVariablesDemo; -import org.javademos.java22.jep457.ClassFileAPIDemo; -import org.javademos.java22.jep458.LaunchMultiFileSourceDemo; -import org.javademos.java22.jep459.StringTemplatesSecondPreview; -import org.javademos.java22.jep460.VectorAPIDemo; -import org.javademos.java22.jep461.StreamGatherersDemo; -import org.javademos.java22.jep462.StructuredConcurrencyDemo; -import org.javademos.java22.jep463.ImplicitlyDeclaredClassesDemo; -import org.javademos.java22.jep464.ScopedValuesDemo; - -import java.util.ArrayList; - -public class Java22 { - - /** - * @return list of demos available for JDK 22 - */ - public static ArrayList getDemos() { - var java22DemoPool = new ArrayList(); - - // JEP 423 - java22DemoPool.add(new RegionPinningForG1()); - // JEP 447 - java22DemoPool.add(new StatementsBeforeSuper()); - // JEP 454 - java22DemoPool.add(new ForeignFunctionMemoryDemo()); - // JEP 456 - java22DemoPool.add(new UnnamedPatternsAndVariablesDemo()); - // JEP 457 - java22DemoPool.add(new ClassFileAPIDemo()); - // JEP 458 - java22DemoPool.add(new LaunchMultiFileSourceDemo()); - // JEP 459 - java22DemoPool.add(new StringTemplatesSecondPreview()); - // JEP 460 - java22DemoPool.add(new VectorAPIDemo()); - // JEP 461 - java22DemoPool.add(new StreamGatherersDemo()); - // JEP 462 - java22DemoPool.add(new StructuredConcurrencyDemo()); - // JEP 463 - java22DemoPool.add(new ImplicitlyDeclaredClassesDemo()); - // JEP 464 - java22DemoPool.add(new ScopedValuesDemo()); - - return java22DemoPool; - } -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java22DemoLoader.java b/src/main/java/org/javademos/init/Java22DemoLoader.java new file mode 100644 index 00000000..72ab16fd --- /dev/null +++ b/src/main/java/org/javademos/init/Java22DemoLoader.java @@ -0,0 +1,40 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java22.jep423.RegionPinningForG1; +import org.javademos.java22.jep447.StatementsBeforeSuper; +import org.javademos.java22.jep454.ForeignFunctionMemoryDemo; +import org.javademos.java22.jep456.UnnamedPatternsAndVariablesDemo; +import org.javademos.java22.jep457.ClassFileAPIDemo; +import org.javademos.java22.jep458.LaunchMultiFileSourceDemo; +import org.javademos.java22.jep459.StringTemplatesSecondPreview; +import org.javademos.java22.jep460.VectorAPIDemo; +import org.javademos.java22.jep461.StreamGatherersDemo; +import org.javademos.java22.jep462.StructuredConcurrencyDemo; +import org.javademos.java22.jep463.ImplicitlyDeclaredClassesDemo; +import org.javademos.java22.jep464.ScopedValuesDemo; + +import java.util.Map; + +/** + * Loads demos for Java 22. + */ +public class Java22DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(423, new RegionPinningForG1()); + demos.put(447, new StatementsBeforeSuper()); + demos.put(454, new ForeignFunctionMemoryDemo()); + demos.put(456, new UnnamedPatternsAndVariablesDemo()); + demos.put(457, new ClassFileAPIDemo()); + demos.put(458, new LaunchMultiFileSourceDemo()); + demos.put(459, new StringTemplatesSecondPreview()); + demos.put(460, new VectorAPIDemo()); + demos.put(461, new StreamGatherersDemo()); + demos.put(462, new StructuredConcurrencyDemo()); + demos.put(463, new ImplicitlyDeclaredClassesDemo()); + demos.put(464, new ScopedValuesDemo()); + } +} diff --git a/src/main/java/org/javademos/init/Java23.java b/src/main/java/org/javademos/init/Java23.java deleted file mode 100644 index c7c3055a..00000000 --- a/src/main/java/org/javademos/init/Java23.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; -import org.javademos.java23.jep455.PrimitiveTypesInPatterns; -import org.javademos.java23.jep462.StructuredConcurrencyDemo; -import org.javademos.java23.jep466.ClassFileAPIDemo; -import org.javademos.java23.jep467.MarkdownComments; -import org.javademos.java23.jep469.VectorAPIDemo; -import org.javademos.java23.jep471.DeprecateMemoryAccessMethods; -import org.javademos.java23.jep473.StreamGatherersDemo; -import org.javademos.java23.jep474.GenerationalZGC23; -import org.javademos.java23.jep476.ModuleImportDeclarations; -import org.javademos.java23.jep477.ImplicitlyDeclaredClassesDemo; -import org.javademos.java23.jep480.StructuredConcurrency; -import org.javademos.java23.jep481.ScopedValuesDemo; -import org.javademos.java23.jep482.FlexibleConstructorBodies; - -import java.util.ArrayList; - -public class Java23 { - - /// @return list of demos available for JDK 23 - public static ArrayList getDemos() { - var java23DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // JEP 455 - java23DemoPool.add(new PrimitiveTypesInPatterns()); - // JEP 462 - java23DemoPool.add(new StructuredConcurrencyDemo()); - // JEP 466 - java23DemoPool.add(new ClassFileAPIDemo()); - // JEP 467 - java23DemoPool.add(new MarkdownComments()); - // JEP 469 - java23DemoPool.add(new VectorAPIDemo()); - // JEP 471 - java23DemoPool.add(new DeprecateMemoryAccessMethods()); - // JEP 473 - java23DemoPool.add(new StreamGatherersDemo()); - // JEP 474 - java23DemoPool.add(new GenerationalZGC23()); - // JEP 476 - java23DemoPool.add(new ModuleImportDeclarations()); - // JEP 477 - java23DemoPool.add(new ImplicitlyDeclaredClassesDemo()); - // JEP 480 - java23DemoPool.add(new StructuredConcurrency()); - // JEP 481 - java23DemoPool.add(new ScopedValuesDemo()); - // JEP 482 - java23DemoPool.add(new FlexibleConstructorBodies()); - - return java23DemoPool; - } - -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java23DemoLoader.java b/src/main/java/org/javademos/init/Java23DemoLoader.java new file mode 100644 index 00000000..d397bde6 --- /dev/null +++ b/src/main/java/org/javademos/init/Java23DemoLoader.java @@ -0,0 +1,40 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java23.jep455.PrimitiveTypesInPatterns; +import org.javademos.java23.jep466.ClassFileAPIDemo; +import org.javademos.java23.jep467.MarkdownComments; +import org.javademos.java23.jep469.VectorAPIDemo; +import org.javademos.java23.jep471.DeprecateMemoryAccessMethods; +import org.javademos.java23.jep473.StreamGatherersDemo; +import org.javademos.java23.jep474.GenerationalZGC23; +import org.javademos.java23.jep476.ModuleImportDeclarations; +import org.javademos.java23.jep477.ImplicitlyDeclaredClassesDemo; +import org.javademos.java23.jep480.StructuredConcurrency; +import org.javademos.java23.jep481.ScopedValuesDemo; +import org.javademos.java23.jep482.FlexibleConstructorBodies; + +import java.util.Map; + +/** + * Loads demos for Java 23. + */ +public class Java23DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(455, new PrimitiveTypesInPatterns()); + demos.put(466, new ClassFileAPIDemo()); + demos.put(467, new MarkdownComments()); + demos.put(469, new VectorAPIDemo()); + demos.put(471, new DeprecateMemoryAccessMethods()); + demos.put(473, new StreamGatherersDemo()); + demos.put(474, new GenerationalZGC23()); + demos.put(476, new ModuleImportDeclarations()); + demos.put(477, new ImplicitlyDeclaredClassesDemo()); + demos.put(480, new StructuredConcurrency()); + demos.put(481, new ScopedValuesDemo()); + demos.put(482, new FlexibleConstructorBodies()); + } +} diff --git a/src/main/java/org/javademos/init/Java24.java b/src/main/java/org/javademos/init/Java24.java deleted file mode 100644 index ad10203e..00000000 --- a/src/main/java/org/javademos/init/Java24.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.javademos.init; - -import java.util.ArrayList; - -import org.javademos.commons.IDemo; -import org.javademos.java24.jep404.GenerationalShenandoahExperimental; -import org.javademos.java24.jep450.CompactObjectHeadersExperimental; -import org.javademos.java24.jep472.PrepareToRestrictJNI; -import org.javademos.java24.jep475.LateBarrierExpansionG1; -import org.javademos.java24.jep478.KeyDerivationApiPreview; -import org.javademos.java24.jep479.RemovedWindows32BitX86Demo; -import org.javademos.java24.jep483.AotLoadingAndLinking; -import org.javademos.java24.jep484.ClassFileAPIDemo; -import org.javademos.java24.jep485.StreamGatherersDemo; -import org.javademos.java24.jep486.DisableSecurityManager; -import org.javademos.java24.jep487.ScopedValuesDemo; -import org.javademos.java24.jep488.PrimitiveTypesSecondPreview; -import org.javademos.java24.jep489.VectorAPIDemo; -import org.javademos.java24.jep490.ZgcNonGenerationalModeRemoval; -import org.javademos.java24.jep491.SynchronizedNoPinning; -import org.javademos.java24.jep493.LinkingRunTimeImages493; -import org.javademos.java24.jep494.ModuleImportSecondPreview; -import org.javademos.java24.jep495.SimpleSourceFilesDemo; -import org.javademos.java24.jep496.QuantumResistantModuleLatticeBasedKeyEncapsulation; -import org.javademos.java24.jep497.QuantumResistantModuleLatticeBasedDigitalSignature; -import org.javademos.java24.jep498.MemoryAccessMethods; -import org.javademos.java24.jep499.StructuredConcurrencyDemo; -import org.javademos.java24.jep501.Deprecate32BitX86Demo; - -public class Java24 { - - /** - * @return list of demos available for JDK 24 - */ - public static ArrayList getDemos() { - var java24DemoPool = new ArrayList(); - - // JEP 404 - java24DemoPool.add(new GenerationalShenandoahExperimental()); - // JEP 450 - java24DemoPool.add(new CompactObjectHeadersExperimental()); - // JEP 472 - java24DemoPool.add(new PrepareToRestrictJNI()); - // JEP 475 - java24DemoPool.add(new LateBarrierExpansionG1()); - // JEP 478 - java24DemoPool.add(new KeyDerivationApiPreview()); - // JEP 479 - java24DemoPool.add(new RemovedWindows32BitX86Demo()); - // JEP 483 - java24DemoPool.add(new AotLoadingAndLinking()); - // JEP 484 - java24DemoPool.add(new ClassFileAPIDemo()); - // JEP 485 - java24DemoPool.add(new StreamGatherersDemo()); - // JEP 486 - java24DemoPool.add(new DisableSecurityManager()); - // JEP 487 - java24DemoPool.add(new ScopedValuesDemo()); - // JEP 488 - java24DemoPool.add(new PrimitiveTypesSecondPreview()); - // JEP 489 - java24DemoPool.add(new VectorAPIDemo()); - // JEP 490 - java24DemoPool.add(new ZgcNonGenerationalModeRemoval()); - // JEP 491 - java24DemoPool.add(new SynchronizedNoPinning()); - // JEP 493 - java24DemoPool.add(new LinkingRunTimeImages493()); - // JEP 494 - java24DemoPool.add(new ModuleImportSecondPreview()); - // JEP 495 - java24DemoPool.add(new SimpleSourceFilesDemo()); - // JEP 496 - java24DemoPool.add(new QuantumResistantModuleLatticeBasedKeyEncapsulation()); - // JEP 497 - java24DemoPool.add(new QuantumResistantModuleLatticeBasedDigitalSignature()); - // JEP 498 - java24DemoPool.add(new MemoryAccessMethods()); - // JEP 499 - java24DemoPool.add(new StructuredConcurrencyDemo()); - // JEP 501 - java24DemoPool.add(new Deprecate32BitX86Demo()); - - return java24DemoPool; - } -} \ No newline at end of file diff --git a/src/main/java/org/javademos/init/Java24DemoLoader.java b/src/main/java/org/javademos/init/Java24DemoLoader.java new file mode 100644 index 00000000..07b832fa --- /dev/null +++ b/src/main/java/org/javademos/init/Java24DemoLoader.java @@ -0,0 +1,62 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java24.jep404.GenerationalShenandoahExperimental; +import org.javademos.java24.jep450.CompactObjectHeadersExperimental; +import org.javademos.java24.jep472.PrepareToRestrictJNI; +import org.javademos.java24.jep475.LateBarrierExpansionG1; +import org.javademos.java24.jep478.KeyDerivationApiPreview; +import org.javademos.java24.jep479.RemovedWindows32BitX86Demo; +import org.javademos.java24.jep483.AotLoadingAndLinking; +import org.javademos.java24.jep484.ClassFileAPIDemo; +import org.javademos.java24.jep485.StreamGatherersDemo; +import org.javademos.java24.jep486.DisableSecurityManager; +import org.javademos.java24.jep487.ScopedValuesDemo; +import org.javademos.java24.jep488.PrimitiveTypesSecondPreview; +import org.javademos.java24.jep489.VectorAPIDemo; +import org.javademos.java24.jep490.ZgcNonGenerationalModeRemoval; +import org.javademos.java24.jep491.SynchronizedNoPinning; +import org.javademos.java24.jep493.LinkingRunTimeImages493; +import org.javademos.java24.jep494.ModuleImportSecondPreview; +import org.javademos.java24.jep495.SimpleSourceFilesDemo; +import org.javademos.java24.jep496.QuantumResistantModuleLatticeBasedKeyEncapsulation; +import org.javademos.java24.jep497.QuantumResistantModuleLatticeBasedDigitalSignature; +import org.javademos.java24.jep498.MemoryAccessMethods; +import org.javademos.java24.jep499.StructuredConcurrencyDemo; +import org.javademos.java24.jep501.Deprecate32BitX86Demo; + +import java.util.Map; + +/** + * Loads demos for Java 24. + */ +public class Java24DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(404, new GenerationalShenandoahExperimental()); + demos.put(450, new CompactObjectHeadersExperimental()); + demos.put(472, new PrepareToRestrictJNI()); + demos.put(475, new LateBarrierExpansionG1()); + demos.put(478, new KeyDerivationApiPreview()); + demos.put(479, new RemovedWindows32BitX86Demo()); + demos.put(483, new AotLoadingAndLinking()); + demos.put(484, new ClassFileAPIDemo()); + demos.put(485, new StreamGatherersDemo()); + demos.put(486, new DisableSecurityManager()); + demos.put(487, new ScopedValuesDemo()); + demos.put(488, new PrimitiveTypesSecondPreview()); + demos.put(489, new VectorAPIDemo()); + demos.put(490, new ZgcNonGenerationalModeRemoval()); + demos.put(491, new SynchronizedNoPinning()); + demos.put(493, new LinkingRunTimeImages493()); + demos.put(494, new ModuleImportSecondPreview()); + demos.put(495, new SimpleSourceFilesDemo()); + demos.put(496, new QuantumResistantModuleLatticeBasedKeyEncapsulation()); + demos.put(497, new QuantumResistantModuleLatticeBasedDigitalSignature()); + demos.put(498, new MemoryAccessMethods()); + demos.put(499, new StructuredConcurrencyDemo()); + demos.put(501, new Deprecate32BitX86Demo()); + } +} diff --git a/src/main/java/org/javademos/init/Java25.java b/src/main/java/org/javademos/init/Java25.java deleted file mode 100644 index f841fc1b..00000000 --- a/src/main/java/org/javademos/init/Java25.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.javademos.init; - -import org.javademos.commons.IDemo; -import org.javademos.java25.jep470.PemEncodingsDemo; -import org.javademos.java25.jep502.StableValuesDemo; -import org.javademos.java25.jep503.Remove32BitX86Demo; -import org.javademos.java25.jep505.StructuredConcurrencyDemo; -import org.javademos.java25.jep506.ScopedValuesDemo; -import org.javademos.java25.jep507.PrimitiveTypesDemo; -import org.javademos.java25.jep508.VectorAPIDemo; -import org.javademos.java25.jep509.CpuTimeProfilingDemo; -import org.javademos.java25.jep510.KeyDerivationFunctionDemo; -import org.javademos.java25.jep511.ModuleImportDeclarationsDemo; -import org.javademos.java25.jep512.CompactSourceFilesDemo; -import org.javademos.java25.jep513.FlexibleConstructorBodiesDemo; -import org.javademos.java25.jep514.AheadOfTimeCLIDemo; -import org.javademos.java25.jep515.AheadOfTimeMethodProfilingDemo; -import org.javademos.java25.jep518.JFRCooperativeSamplingDemo; -import org.javademos.java25.jep519.CompactObjectHeaderDemo; -import org.javademos.java25.jep520.Jep520MethodTracingDemo; -import org.javademos.java25.jep521.GenerationalShenandoahDemo; - -import java.util.ArrayList; - -public class Java25 { - - /** - * @return list of demos available for JDK 25 - */ - public static ArrayList getDemos() { - var java25DemoPool = new ArrayList(); - - // feel free to comment out demos you are not interested in right now - - // JEP 470 - java25DemoPool.add(new PemEncodingsDemo()); - // JEP 502 - java25DemoPool.add(new StableValuesDemo()); - // JEP 503 - java25DemoPool.add(new Remove32BitX86Demo()); - // JEP 505 - java25DemoPool.add(new StructuredConcurrencyDemo()); - // JEP 506 - java25DemoPool.add(new ScopedValuesDemo()); - // JEP 507 - java25DemoPool.add(new PrimitiveTypesDemo()); - // JEP 508 - java25DemoPool.add(new VectorAPIDemo()); - // JEP 509 - java25DemoPool.add(new CpuTimeProfilingDemo()); - // JEP 510 - java25DemoPool.add(new KeyDerivationFunctionDemo()); - // JEP 511 - java25DemoPool.add(new ModuleImportDeclarationsDemo()); - // JEP 512 - java25DemoPool.add(new CompactSourceFilesDemo()); - // JEP 513 - java25DemoPool.add(new FlexibleConstructorBodiesDemo()); - // JEP 514 - java25DemoPool.add(new AheadOfTimeCLIDemo()); - // JEP 515 - java25DemoPool.add(new AheadOfTimeMethodProfilingDemo()); - // JEP 518 - java25DemoPool.add(new JFRCooperativeSamplingDemo()); - // JEP 519 - java25DemoPool.add(new CompactObjectHeaderDemo()); - // JEP 520 - java25DemoPool.add(new Jep520MethodTracingDemo()); - //JEP 521 - java25DemoPool.add(new GenerationalShenandoahDemo()); - - return java25DemoPool; - } -} diff --git a/src/main/java/org/javademos/init/Java25DemoLoader.java b/src/main/java/org/javademos/init/Java25DemoLoader.java new file mode 100644 index 00000000..3aca36bc --- /dev/null +++ b/src/main/java/org/javademos/init/Java25DemoLoader.java @@ -0,0 +1,52 @@ +package org.javademos.init; + +import org.javademos.commons.IDemo; +import org.javademos.commons.IDemoLoader; +import org.javademos.java25.jep470.PemEncodingsDemo; +import org.javademos.java25.jep502.StableValuesDemo; +import org.javademos.java25.jep503.Remove32BitX86Demo; +import org.javademos.java25.jep505.StructuredConcurrencyDemo; +import org.javademos.java25.jep506.ScopedValuesDemo; +import org.javademos.java25.jep507.PrimitiveTypesDemo; +import org.javademos.java25.jep508.VectorAPIDemo; +import org.javademos.java25.jep509.CpuTimeProfilingDemo; +import org.javademos.java25.jep510.KeyDerivationFunctionDemo; +import org.javademos.java25.jep511.ModuleImportDeclarationsDemo; +import org.javademos.java25.jep512.CompactSourceFilesDemo; +import org.javademos.java25.jep513.FlexibleConstructorBodiesDemo; +import org.javademos.java25.jep514.AheadOfTimeCLIDemo; +import org.javademos.java25.jep515.AheadOfTimeMethodProfilingDemo; +import org.javademos.java25.jep518.JFRCooperativeSamplingDemo; +import org.javademos.java25.jep519.CompactObjectHeaderDemo; +import org.javademos.java25.jep520.Jep520MethodTracingDemo; +import org.javademos.java25.jep521.GenerationalShenandoahDemo; + +import java.util.Map; + +/** + * Loads demos for Java 25. + */ +public class Java25DemoLoader implements IDemoLoader { + + @Override + public void loadDemos(Map demos) { + demos.put(470, new PemEncodingsDemo()); + demos.put(502, new StableValuesDemo()); + demos.put(503, new Remove32BitX86Demo()); + demos.put(505, new StructuredConcurrencyDemo()); + demos.put(506, new ScopedValuesDemo()); + demos.put(507, new PrimitiveTypesDemo()); + demos.put(508, new VectorAPIDemo()); + demos.put(509, new CpuTimeProfilingDemo()); + demos.put(510, new KeyDerivationFunctionDemo()); + demos.put(511, new ModuleImportDeclarationsDemo()); + demos.put(512, new CompactSourceFilesDemo()); + demos.put(513, new FlexibleConstructorBodiesDemo()); + demos.put(514, new AheadOfTimeCLIDemo()); + demos.put(515, new AheadOfTimeMethodProfilingDemo()); + demos.put(518, new JFRCooperativeSamplingDemo()); + demos.put(519, new CompactObjectHeaderDemo()); + demos.put(520, new Jep520MethodTracingDemo()); + demos.put(521, new GenerationalShenandoahDemo()); + } +} diff --git a/src/main/java/org/javademos/java15/jep373/DatagramSocketDemo15.java b/src/main/java/org/javademos/java15/jep373/DatagramSocketDemo.java similarity index 95% rename from src/main/java/org/javademos/java15/jep373/DatagramSocketDemo15.java rename to src/main/java/org/javademos/java15/jep373/DatagramSocketDemo.java index e37482a0..05b510da 100644 --- a/src/main/java/org/javademos/java15/jep373/DatagramSocketDemo15.java +++ b/src/main/java/org/javademos/java15/jep373/DatagramSocketDemo.java @@ -17,7 +17,7 @@ /// /// /// @author sayiamarora -public class DatagramSocketDemo15 implements IDemo { +public class DatagramSocketDemo implements IDemo { @Override public void demo() { diff --git a/src/main/java/org/javademos/java17/jep356/RandomGenerators17.java b/src/main/java/org/javademos/java17/jep356/RandomGeneratorsDemo.java similarity index 96% rename from src/main/java/org/javademos/java17/jep356/RandomGenerators17.java rename to src/main/java/org/javademos/java17/jep356/RandomGeneratorsDemo.java index 2eddf060..9419db7d 100644 --- a/src/main/java/org/javademos/java17/jep356/RandomGenerators17.java +++ b/src/main/java/org/javademos/java17/jep356/RandomGeneratorsDemo.java @@ -19,7 +19,7 @@ /// - [Baeldung: Enhanced Pseudo-Random Number Generators in Java 17](https://www.baeldung.com/java-17-random-number-generators) /// /// @author alois.seckar@gmail.com -public class RandomGenerators17 implements IDemo { +public class RandomGeneratorsDemo implements IDemo { @Override public void demo() {