public class CekMigrasi {

    // Deteksi API lama lewat reflection: ada, dihapus, atau dinonaktifkan?
    static boolean methodAda(Class<?> kelas, String nama) {
        try {
            kelas.getMethod(nama);
            return true;
        } catch (NoSuchMethodException e) {
            return false;
        }
    }

    public static void main(String[] args) {
        var versi = Runtime.version();
        System.out.println("runtime  : Java " + versi.feature()
                + " build " + versi.build().orElse(-1));

        int[] tonggak = {8, 11, 17, 21, 25};
        for (int v : tonggak) {
            String status = versi.feature() >= v ? "sudah terlewati" : "belum tercapai";
            System.out.printf("tonggak %2d : %s%n", v, status);
        }

        System.out.println("Thread.suspend  : "
                + (methodAda(Thread.class, "suspend") ? "ada" : "sudah dihapus"));
        System.out.println("Thread.stop     : "
                + (methodAda(Thread.class, "stop") ? "ada, kini selalu error" : "sudah dihapus"));

        // SecurityManager dinonaktifkan permanen sejak Java 24 (JEP 486).
        try {
            System.setSecurityManager(null);
        } catch (UnsupportedOperationException e) {
            System.out.println("SecurityManager : dinonaktifkan permanen");
        }
    }
}
