@@ -192,6 +192,7 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
192192 public static final String TWENTYTHREE_PROJECT_NAME = "Two_Three" ;
193193 public static final String TWENTYFOUR_PROJECT_NAME = "Two_Four" ;
194194 public static final String TWENTYFIVE_PROJECT_NAME = "Two_Five" ;
195+ public static final String TWENTYSIX_PROJECT_NAME = "Two_Six" ;
195196 public static final String BOUND_JRE_PROJECT_NAME = "BoundJRE" ;
196197 public static final String MR_PROJECT_NAME = "MR" ;
197198 public static final String CLONE_SUFFIX = "Clone" ;
@@ -256,11 +257,13 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
256257 private static boolean loaded23 = false ;
257258 private static boolean loaded24 = false ;
258259 private static boolean loaded25 = false ;
260+ private static boolean loaded26 = false ;
259261 private static boolean loadedEE = false ;
260262 private static boolean loadedJRE = false ;
261263 private static boolean loadedMulti = false ;
262264 private static boolean loadedMR ;
263265 private static boolean welcomeClosed = false ;
266+ protected boolean isJRE26plus = false ;
264267
265268 /**
266269 * Constructor
@@ -270,6 +273,10 @@ public AbstractDebugTest(String name) {
270273 // set error dialog to non-blocking to avoid hanging the UI during test
271274 ErrorDialog .AUTOMATED_MODE = true ;
272275 SafeRunnable .setIgnoreErrors (true );
276+ String javaVersion = System .getProperty ("java.version" );
277+ if (javaVersion .startsWith ("26" )) {
278+ isJRE26plus = true ;
279+ }
273280 }
274281
275282 @ Override
@@ -371,6 +378,11 @@ synchronized void assert14Project() {
371378 handleProjectCreationException (e , ONE_FOUR_PROJECT_CLOSED_NAME , jp );
372379 }
373380 jp = createProject (ONE_FOUR_PROJECT_NAME , JavaProjectHelper .TEST_SRC_DIR .toString (), JavaProjectHelper .JAVA_SE_1_8_EE_NAME , false );
381+ if (isJRE26plus ) {
382+ // these files cannot be compiled against 26+
383+ jp .getProject ().getFile ("src/AppletImpl.java" ).delete (true , null );
384+ jp .getProject ().getFile ("src/RunnableAppletImpl.java" ).delete (true , null );
385+ }
374386 IPackageFragmentRoot src = jp .findPackageFragmentRoot (new Path (ONE_FOUR_PROJECT_NAME ).append (JavaProjectHelper .SRC_DIR ).makeAbsolute ());
375387 assertNotNull ("The 'src' package fragment root should not be null" , src );
376388 File root = JavaTestPlugin .getDefault ().getFileInPlugin (new Path ("testjars" ));
@@ -750,7 +762,7 @@ synchronized void assert25Project() {
750762 try {
751763 if (!loaded25 ) {
752764 jp = createProject (TWENTYFIVE_PROJECT_NAME , JavaProjectHelper .TEST_25_SRC_DIR .toString (), JavaProjectHelper .JAVA_SE_25_EE_NAME , false );
753- jp .setOption (JavaCore .COMPILER_PB_ENABLE_PREVIEW_FEATURES , JavaCore .ENABLED );
765+ jp .setOption (JavaCore .COMPILER_PB_ENABLE_PREVIEW_FEATURES , JavaCore .DISABLED );
754766 jp .setOption (JavaCore .COMPILER_SOURCE , JavaCore .VERSION_25 );
755767 jp .setOption (JavaCore .COMPILER_COMPLIANCE , JavaCore .VERSION_25 );
756768 jp .setOption (JavaCore .COMPILER_CODEGEN_TARGET_PLATFORM , JavaCore .VERSION_25 );
@@ -775,6 +787,36 @@ synchronized void assert25Project() {
775787 }
776788 }
777789
790+ synchronized void assert26Project () {
791+ IJavaProject jp = null ;
792+ ArrayList <ILaunchConfiguration > cfgs = new ArrayList <>(1 );
793+ try {
794+ if (!loaded26 ) {
795+ jp = createProject (TWENTYSIX_PROJECT_NAME , JavaProjectHelper .TEST_26_SRC_DIR .toString (), JavaProjectHelper .JAVA_SE_26_EE_NAME , false );
796+ jp .setOption (JavaCore .COMPILER_PB_ENABLE_PREVIEW_FEATURES , JavaCore .DISABLED );
797+ jp .setOption (JavaCore .COMPILER_SOURCE , JavaCore .VERSION_26 );
798+ jp .setOption (JavaCore .COMPILER_COMPLIANCE , JavaCore .VERSION_26 );
799+ jp .setOption (JavaCore .COMPILER_CODEGEN_TARGET_PLATFORM , JavaCore .VERSION_26 );
800+ cfgs .add (createLaunchConfiguration (jp , "Main1" ));
801+ cfgs .add (createLaunchConfiguration (jp , "Main2" ));
802+ loaded26 = true ;
803+ waitForBuild ();
804+ assertNoErrorMarkersExist (jp .getProject ());
805+ }
806+ } catch (Exception e ) {
807+ try {
808+ if (jp != null ) {
809+ jp .getProject ().delete (true , true , null );
810+ for (int i = 0 ; i < cfgs .size (); i ++) {
811+ cfgs .get (i ).delete ();
812+ }
813+ }
814+ } catch (CoreException ce ) {
815+ // ignore
816+ }
817+ handleProjectCreationException (e , TWENTYSIX_PROJECT_NAME , jp );
818+ }
819+ }
778820 /**
779821 * Creates the 'BoundJRE' project used for the JRE testing
780822 */
@@ -1111,6 +1153,16 @@ protected IJavaProject get25Project() {
11111153 return getJavaProject (TWENTYFIVE_PROJECT_NAME );
11121154 }
11131155
1156+ /**
1157+ * Returns the 'Two_Six' project, used for Java 26 tests.
1158+ *
1159+ * @return the test project
1160+ */
1161+ protected IJavaProject get26Project () {
1162+ assert26Project ();
1163+ return getJavaProject (TWENTYSIX_PROJECT_NAME );
1164+ }
1165+
11141166 /**
11151167 * Returns the 'BoundJRE' project
11161168 *
0 commit comments