From 044b9c3e78fc53480ae154a251a25b410e8444b6 Mon Sep 17 00:00:00 2001 From: Akshay Anand Date: Mon, 27 Oct 2025 00:24:18 +0530 Subject: [PATCH] feat: Add demo for JEP 357 - Migrate from Mercurial to Git --- src/main/java/org/javademos/init/Java16.java | 4 +++ .../jep357/MercurialToGitMigration.java | 35 +++++++++++++++++++ src/main/resources/JDK16Info.json | 8 +++++ 3 files changed, 47 insertions(+) create mode 100644 src/main/java/org/javademos/java16/jep357/MercurialToGitMigration.java diff --git a/src/main/java/org/javademos/init/Java16.java b/src/main/java/org/javademos/init/Java16.java index df08e22a..f56ee7c4 100644 --- a/src/main/java/org/javademos/init/Java16.java +++ b/src/main/java/org/javademos/init/Java16.java @@ -34,6 +34,10 @@ public static ArrayList getDemos() { java16DemoPool.add(new VectorAPIDemo()); // JEP 347 java16DemoPool.add(new Cpp14FeaturesDemo()); + // Inside the list/map initialization in the JDK 16 helper file + // ... other demos ... + demos.add(new org.javademos.java16.jep357.MercurialToGitMigration()); // JEP 357 + // ... other demos ... // JEP 380 java16DemoPool.add(new UnixDomainSocketsDemo()); // JEP 386 diff --git a/src/main/java/org/javademos/java16/jep357/MercurialToGitMigration.java b/src/main/java/org/javademos/java16/jep357/MercurialToGitMigration.java new file mode 100644 index 00000000..f3e9f489 --- /dev/null +++ b/src/main/java/org/javademos/java16/jep357/MercurialToGitMigration.java @@ -0,0 +1,35 @@ +package org.javademos.java16.jep357; + +import org.javademos.commons.IDemo; + +/** + * ## JEP 357: Migrate from Mercurial to Git + * + * ### History + * * JDK 16: Delivered + * + * ### Links + * * [JEP 357](https://openjdk.org/jeps/357) + * * [JEP 369: Migrate to GitHub](https://openjdk.org/jeps/369) + * + * This JEP was purely an infrastructure change for the OpenJDK community. + * There are no Java language features or APIs to demonstrate. + */ +public class MercurialToGitMigration implements IDemo { + + @Override + public void demo() { + info(357); + + System.out.println("This JEP was an infrastructure project to migrate the OpenJDK Community's source code repositories."); + System.out.println("The migration was from Mercurial (hg) to Git."); + System.out.println(); + System.out.println("Key Goals:"); + System.out.println("1. Migrate all single-repository OpenJDK Projects."); + System.out.println("2. Preserve all version control history, including tags."); + System.out.println("3. Port internal tools (like 'jcheck') to work with Git."); + System.out.println(); + System.out.println("This change did not introduce any new Java language features or APIs, " + + "but was a critical step for the community, leading to JEP 369 (Migrate to GitHub)."); + } +} \ No newline at end of file diff --git a/src/main/resources/JDK16Info.json b/src/main/resources/JDK16Info.json index fd4c1b38..103375af 100644 --- a/src/main/resources/JDK16Info.json +++ b/src/main/resources/JDK16Info.json @@ -15,6 +15,14 @@ "link": false, "code": false }, + { + "no": 357, + "jdk": 16, + "name": "Migrate from Mercurial to Git", + "description": "Migrate the OpenJDK Community's source code repositories from Mercurial (hg) to Git.", + "link": false, + "code": false + }, { "jep": 380, "jdk": 16,