@@ -181,6 +181,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
181181 public static final String ONESIX_PROJECT_NAME = "One_Six" ;
182182 public static final String TWENTYONE_PROJECT_NAME = "Two_One" ;
183183 public static final String TWENTYTHREE_PROJECT_NAME = "Two_Three" ;
184+ public static final String TWENTYFOUR_PROJECT_NAME = "Two_Four" ;
184185 public static final String BOUND_JRE_PROJECT_NAME = "BoundJRE" ;
185186 public static final String CLONE_SUFFIX = "Clone" ;
186187
@@ -241,6 +242,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
241242 private static boolean loaded16_ = false ;
242243 private static boolean loaded21 = false ;
243244 private static boolean loaded23 = false ;
245+ private static boolean loaded24 = false ;
244246 private static boolean loadedEE = false ;
245247 private static boolean loadedJRE = false ;
246248 private static boolean loadedMulti = false ;
@@ -622,20 +624,15 @@ synchronized void assert21Project() {
622624 }
623625 }
624626
625- /**
626- * Creates the Java 23 compliant project
627- */
628627 synchronized void assert23Project () {
629628 IJavaProject jp = null ;
630629 ArrayList <ILaunchConfiguration > cfgs = new ArrayList <>(1 );
631630 try {
632631 if (!loaded23 ) {
633632 jp = createProject (TWENTYTHREE_PROJECT_NAME , JavaProjectHelper .TEST_23_SRC_DIR .toString (), JavaProjectHelper .JAVA_SE_23_EE_NAME , false );
634- jp .setOption (JavaCore .COMPILER_PB_ENABLE_PREVIEW_FEATURES , JavaCore .ENABLED );
635633 jp .setOption (JavaCore .COMPILER_SOURCE , JavaCore .VERSION_23 );
636634 jp .setOption (JavaCore .COMPILER_COMPLIANCE , JavaCore .VERSION_23 );
637- cfgs .add (createLaunchConfiguration (jp , "Main1" ));
638- cfgs .add (createLaunchConfiguration (jp , "Main2" ));
635+ cfgs .add (createLaunchConfiguration (jp , "Main21" ));
639636 loaded23 = true ;
640637 waitForBuild ();
641638 assertNoErrorMarkersExist (jp .getProject ());
@@ -655,6 +652,41 @@ synchronized void assert23Project() {
655652 }
656653 }
657654
655+ /**
656+ * Creates the Java 24 compliant project
657+ */
658+ synchronized void assert24Project () {
659+ IJavaProject jp = null ;
660+ ArrayList <ILaunchConfiguration > cfgs = new ArrayList <>(1 );
661+ try {
662+ if (!loaded24 ) {
663+ jp = createProject (TWENTYFOUR_PROJECT_NAME , JavaProjectHelper .TEST_24_SRC_DIR .toString (), JavaProjectHelper .JAVA_SE_24_EE_NAME , false );
664+ jp .setOption (JavaCore .COMPILER_PB_ENABLE_PREVIEW_FEATURES , JavaCore .ENABLED );
665+ jp .setOption (JavaCore .COMPILER_SOURCE , JavaCore .VERSION_24 );
666+ jp .setOption (JavaCore .COMPILER_COMPLIANCE , JavaCore .VERSION_24 );
667+ jp .setOption (JavaCore .COMPILER_CODEGEN_TARGET_PLATFORM , JavaCore .VERSION_24 );
668+ cfgs .add (createLaunchConfiguration (jp , "Main1" ));
669+ cfgs .add (createLaunchConfiguration (jp , "Main2" ));
670+ cfgs .add (createLaunchConfiguration (jp , "Main21" ));
671+ loaded24 = true ;
672+ waitForBuild ();
673+ assertNoErrorMarkersExist (jp .getProject ());
674+ }
675+ } catch (Exception e ) {
676+ try {
677+ if (jp != null ) {
678+ jp .getProject ().delete (true , true , null );
679+ for (int i = 0 ; i < cfgs .size (); i ++) {
680+ cfgs .get (i ).delete ();
681+ }
682+ }
683+ } catch (CoreException ce ) {
684+ // ignore
685+ }
686+ handleProjectCreationException (e , TWENTYFOUR_PROJECT_NAME , jp );
687+ }
688+ }
689+
658690 /**
659691 * Creates the 'BoundJRE' project used for the JRE testing
660692 */
@@ -696,9 +728,9 @@ void assertBoundeEeProject() {
696728 JavaProjectHelper .addSourceContainer (jp , JavaProjectHelper .SRC_DIR , JavaProjectHelper .BIN_DIR );
697729
698730 // add VM specific JRE container
699- IExecutionEnvironment j2se14 = JavaRuntime .getExecutionEnvironmentsManager ().getEnvironment (JavaProjectHelper .JAVA_SE_1_8_EE_NAME );
700- assertNotNull ("Missing J2SE -1.4 environment" , j2se14 );
701- IPath path = JavaRuntime .newJREContainerPath (j2se14 );
731+ IExecutionEnvironment javase1_8 = JavaRuntime .getExecutionEnvironmentsManager ().getEnvironment (JavaProjectHelper .JAVA_SE_1_8_EE_NAME );
732+ assertNotNull ("Missing JavaSE -1.8 environment" , javase1_8 );
733+ IPath path = JavaRuntime .newJREContainerPath (javase1_8 );
702734 JavaProjectHelper .addContainerEntry (jp , path );
703735 loadedEE = true ;
704736 waitForBuild ();
@@ -961,6 +993,16 @@ protected IJavaProject get23Project() {
961993 return getJavaProject (TWENTYTHREE_PROJECT_NAME );
962994 }
963995
996+ /**
997+ * Returns the 'Two_Four' project, used for Java 24 tests.
998+ *
999+ * @return the test project
1000+ */
1001+ protected IJavaProject get24Project () {
1002+ assert24Project ();
1003+ return getJavaProject (TWENTYFOUR_PROJECT_NAME );
1004+ }
1005+
9641006 /**
9651007 * Returns the 'BoundJRE' project
9661008 *
0 commit comments