diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 322fb658df1..a17bf7f10e2 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -14,7 +14,7 @@ jobs:
strategy:
matrix: # 'macos-14' is arm64
os: ['ubuntu-22.04', 'macos-14', 'windows-2022']
- java: [ 21 ]
+ java: [ 25 ]
additional-maven-args: ['']
additional-label: ['']
include:
@@ -22,6 +22,10 @@ jobs:
java: 21
additional-maven-args: -Pstrict-jdk-21
additional-label: -strict
+ - os: ubuntu-22.04
+ java: 25
+ additional-maven-args: -Pstrict-jdk-25
+ additional-label: -strict
fail-fast: false
runs-on: ${{ matrix.os }}
@@ -82,7 +86,7 @@ jobs:
- name: 'Set up Java'
uses: actions/setup-java@v5
with:
- java-version: 21
+ java-version: 25
distribution: 'temurin'
- name: 'Cache Maven packages'
@@ -100,7 +104,7 @@ jobs:
clean verify
-f org.eclipse.xtext.maven.releng
-B -fae -PuseJenkinsSnapshots
- -Pstrict-jdk-21
+ -Pstrict-jdk-25
- name: Archive Test Results
uses: actions/upload-artifact@v7.0.0
diff --git a/Jenkinsfile b/Jenkinsfile
index f2908434220..70332759017 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -8,7 +8,7 @@ pipeline {
parameters {
choice(name: 'TARGET_PLATFORM', choices: ['r202403', 'r202406', 'r202409', 'r202412', 'r202503', 'r202506', 'r202509', 'r202512', 'r202603', 'latest'], description: 'Which Target Platform should be used?')
// see https://wiki.eclipse.org/Jenkins#JDK
- choice(name: 'JDK_VERSION', choices: [ '17', '21' ], description: 'Which JDK version should be used?')
+ choice(name: 'JDK_VERSION', choices: [ '17', '21', '25' ], description: 'Which JDK version should be used?')
}
triggers {
@@ -61,6 +61,7 @@ pipeline {
// Set all Java version that can be discovered/selected by maven-toolchains-plugin
JAVA_17_HOME = tool(type:'jdk', name:'temurin-jdk17-latest')
JAVA_21_HOME = tool(type:'jdk', name:'temurin-jdk21-latest')
+ JAVA_25_HOME = tool(type:'jdk', name:'temurin-jdk25-latest')
}
steps {
xvnc(useXauthority: true) {
@@ -178,7 +179,10 @@ def selectedTargetPlatform() {
def isUpstream = isTriggeredByUpstream()
def javaVersion = javaVersion()
- if (isTriggeredByUpstream() && javaVersion>=21) {
+ if (isTriggeredByUpstream() && javaVersion>=25) {
+ println("Choosing 'latest' target since this build was triggered by upstream with Java ${javaVersion}")
+ return 'latest'
+ } else if (isTriggeredByUpstream() && javaVersion>=21) {
println("Choosing 'latest' target since this build was triggered by upstream with Java ${javaVersion}")
return 'latest'
} else if (isTriggeredByUpstream() && javaVersion>=17) {
diff --git a/org.eclipse.xtend.core.tests/src/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.xtend b/org.eclipse.xtend.core.tests/src/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.xtend
index 0f84cdbd7ca..1f6543d8cc3 100644
--- a/org.eclipse.xtend.core.tests/src/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.xtend
+++ b/org.eclipse.xtend.core.tests/src/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.xtend
@@ -2020,21 +2020,21 @@ class ImportOrganizerTest extends AbstractXtendTestCase {
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=399519
@Test def testExtensionFeatureCallToStaticLocalFieldFromSuper() {
'''
- import java.util.Collections
+ import java.util.ArrayList
- import static extension java.util.Collections.*
+ import static extension java.util.List.*
- class Foo extends Collections {
+ class Foo extends ArrayList {
def foo() {
- ''.singleton
+ ''.of
}
}
'''.assertIsOrganizedTo('''
- import java.util.Collections
+ import java.util.ArrayList
- class Foo extends Collections {
+ class Foo extends ArrayList {
def foo() {
- ''.singleton
+ ''.of
}
}
''')
diff --git a/org.eclipse.xtend.core.tests/xtend-gen/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.java b/org.eclipse.xtend.core.tests/xtend-gen/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.java
index e1aa6e8b635..3f4d07b7a54 100644
--- a/org.eclipse.xtend.core.tests/xtend-gen/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.java
+++ b/org.eclipse.xtend.core.tests/xtend-gen/org/eclipse/xtend/core/tests/imports/ImportOrganizerTest.java
@@ -3875,19 +3875,19 @@ public void testExtensionFeatureCallToStaticLocal() {
@Test
public void testExtensionFeatureCallToStaticLocalFieldFromSuper() {
StringConcatenation _builder = new StringConcatenation();
- _builder.append("import java.util.Collections");
+ _builder.append("import java.util.ArrayList");
_builder.newLine();
_builder.newLine();
- _builder.append("import static extension java.util.Collections.*");
+ _builder.append("import static extension java.util.List.*");
_builder.newLine();
_builder.newLine();
- _builder.append("class Foo extends Collections {");
+ _builder.append("class Foo extends ArrayList {");
_builder.newLine();
_builder.append("\t");
_builder.append("def foo() {");
_builder.newLine();
_builder.append("\t\t");
- _builder.append("\'\'.singleton");
+ _builder.append("\'\'.of");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
@@ -3895,16 +3895,16 @@ public void testExtensionFeatureCallToStaticLocalFieldFromSuper() {
_builder.append("}");
_builder.newLine();
StringConcatenation _builder_1 = new StringConcatenation();
- _builder_1.append("import java.util.Collections");
+ _builder_1.append("import java.util.ArrayList");
_builder_1.newLine();
_builder_1.newLine();
- _builder_1.append("class Foo extends Collections {");
+ _builder_1.append("class Foo extends ArrayList {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def foo() {");
_builder_1.newLine();
_builder_1.append("\t\t");
- _builder_1.append("\'\'.singleton");
+ _builder_1.append("\'\'.of");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("}");
diff --git a/org.eclipse.xtend.maven.plugin/src/test/java/org/eclipse/xtend/maven/XtendCompilerMojoIT.java b/org.eclipse.xtend.maven.plugin/src/test/java/org/eclipse/xtend/maven/XtendCompilerMojoIT.java
index 9c7dbe03568..2220775a60b 100644
--- a/org.eclipse.xtend.maven.plugin/src/test/java/org/eclipse/xtend/maven/XtendCompilerMojoIT.java
+++ b/org.eclipse.xtend.maven.plugin/src/test/java/org/eclipse/xtend/maven/XtendCompilerMojoIT.java
@@ -71,6 +71,12 @@ public void simpleJava21Project() throws Exception {
verifyErrorFreeLog(ROOT + "/simple-java21");
}
+ @Test
+ public void simpleJava25Project() throws Exception {
+ Assume.assumeTrue("Active only on Java 25 and later", JavaRuntimeVersion.isJava25OrLater());
+ verifyErrorFreeLog(ROOT + "/simple-java21");
+ }
+
@Test
public void encoding() throws Exception {
Verifier verifier = MavenVerifierUtil.newVerifier(ROOT + "/encoding");
diff --git a/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/.mvn/maven.config b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/.mvn/maven.config
new file mode 100644
index 00000000000..1c353156948
--- /dev/null
+++ b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/.mvn/maven.config
@@ -0,0 +1 @@
+-Djava-25
diff --git a/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/pom.xml b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/pom.xml
new file mode 100644
index 00000000000..0cbd5db6a80
--- /dev/null
+++ b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/pom.xml
@@ -0,0 +1,24 @@
+
+ 4.0.0
+
+ org.eclipse.xtext
+ it-tests-parent
+ IT-SNAPSHOT
+ ../../pom.xml
+
+ simple-java25
+
+ 25
+ 25
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+
+
+
+
diff --git a/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/src/main/java/test/JavaRecord.java b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/src/main/java/test/JavaRecord.java
new file mode 100644
index 00000000000..1792c04fbf4
--- /dev/null
+++ b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/src/main/java/test/JavaRecord.java
@@ -0,0 +1,7 @@
+package test;
+
+public record JavaRecord(String name) {
+ public XtendA foo(XtendA test) {
+ return test;
+ }
+}
diff --git a/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/src/main/java/test/XtendA.xtend b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/src/main/java/test/XtendA.xtend
new file mode 100644
index 00000000000..395aed80058
--- /dev/null
+++ b/org.eclipse.xtend.maven.plugin/src/test/resources/it/compile/simple-java25/src/main/java/test/XtendA.xtend
@@ -0,0 +1,11 @@
+package test
+
+class XtendA {
+ def JavaRecord newJavaRecord() {
+ return new JavaRecord("a test")
+ }
+
+ def String aName(JavaRecord r) {
+ r.name
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.xtext.common.types.eclipse.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java b/org.eclipse.xtext.common.types.eclipse.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
index 6a766ca8c8f..ce0b61aec70 100644
--- a/org.eclipse.xtext.common.types.eclipse.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
+++ b/org.eclipse.xtext.common.types.eclipse.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
@@ -14,6 +14,7 @@
import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -319,18 +320,19 @@ public void testFindTypeByName_javaLangCharSequence_01() {
@Test
public void testFindTypeByName_javaLangCharSequence_02() {
String typeName = CharSequence.class.getName();
- try {
- Set memberNames = Sets.newHashSet("length", "chars", "charAt", "codePoints", "subSequence", "toString");
- assertMembers(typeName, memberNames);
- } catch(AssertionError e) {
- try {
- Set memberNamesJ11 = Sets.newHashSet("length", "chars", "charAt", "codePoints", "subSequence", "toString", "compare");
- assertMembers(typeName, memberNamesJ11);
- } catch (AssertionError e2) {
- Set memberNamesJ15 = Sets.newHashSet("length", "chars", "charAt", "codePoints", "isEmpty", "subSequence", "toString", "compare");
- assertMembers(typeName, memberNamesJ15);
- }
+ int javaVersion = Runtime.version().feature();
+ Set expectedMemberNames = new HashSet<>(
+ Set.of("length", "chars", "charAt", "codePoints", "subSequence", "toString"));
+ if (javaVersion >= 11) {
+ expectedMemberNames.add("compare");
+ }
+ if (javaVersion >= 15) {
+ expectedMemberNames.add("isEmpty");
+ }
+ if (javaVersion >= 25) {
+ expectedMemberNames.add("getChars");
}
+ assertMembers(typeName, expectedMemberNames);
}
@Test
diff --git a/org.eclipse.xtext.common.types.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java b/org.eclipse.xtext.common.types.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
index e1de8077ab8..8235c9c6d0e 100644
--- a/org.eclipse.xtext.common.types.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
+++ b/org.eclipse.xtext.common.types.tests/tests/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
@@ -14,6 +14,7 @@
import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -321,18 +322,19 @@ public void testFindTypeByName_javaLangCharSequence_01() {
@Test
public void testFindTypeByName_javaLangCharSequence_02() {
String typeName = CharSequence.class.getName();
- try {
- Set memberNames = Sets.newHashSet("length", "chars", "charAt", "codePoints", "subSequence", "toString");
- assertMembers(typeName, memberNames);
- } catch(AssertionError e) {
- try {
- Set memberNamesJ11 = Sets.newHashSet("length", "chars", "charAt", "codePoints", "subSequence", "toString", "compare");
- assertMembers(typeName, memberNamesJ11);
- } catch (AssertionError e2) {
- Set memberNamesJ15 = Sets.newHashSet("length", "chars", "charAt", "codePoints", "isEmpty", "subSequence", "toString", "compare");
- assertMembers(typeName, memberNamesJ15);
- }
+ int javaVersion = Runtime.version().feature();
+ Set expectedMemberNames = new HashSet<>(
+ Set.of("length", "chars", "charAt", "codePoints", "subSequence", "toString"));
+ if (javaVersion >= 11) {
+ expectedMemberNames.add("compare");
+ }
+ if (javaVersion >= 15) {
+ expectedMemberNames.add("isEmpty");
+ }
+ if (javaVersion >= 25) {
+ expectedMemberNames.add("getChars");
}
+ assertMembers(typeName, expectedMemberNames);
}
@Test
diff --git a/org.eclipse.xtext.dev-bom/pom.xml b/org.eclipse.xtext.dev-bom/pom.xml
index 6768a5fd026..68e44245781 100644
--- a/org.eclipse.xtext.dev-bom/pom.xml
+++ b/org.eclipse.xtext.dev-bom/pom.xml
@@ -519,6 +519,29 @@
+
+
+ java-25
+
+
+ java-25
+
+
+
+
+ 3.44.0
+
+
+
diff --git a/org.eclipse.xtext.java.tests/src/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java b/org.eclipse.xtext.java.tests/src/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
index aed9bda1a0e..56c3cdc1d8d 100644
--- a/org.eclipse.xtext.java.tests/src/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
+++ b/org.eclipse.xtext.java.tests/src/org/eclipse/xtext/common/types/access/impl/AbstractTypeProviderTest.java
@@ -18,6 +18,7 @@
import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -325,18 +326,19 @@ public void testFindTypeByName_javaLangCharSequence_01() {
@Test
public void testFindTypeByName_javaLangCharSequence_02() {
String typeName = CharSequence.class.getName();
- try {
- Set memberNames = Sets.newHashSet("length", "chars", "charAt", "codePoints", "subSequence", "toString");
- assertMembers(typeName, memberNames);
- } catch(AssertionError e) {
- try {
- Set memberNamesJ11 = Sets.newHashSet("length", "chars", "charAt", "codePoints", "subSequence", "toString", "compare");
- assertMembers(typeName, memberNamesJ11);
- } catch (AssertionError e2) {
- Set memberNamesJ15 = Sets.newHashSet("length", "chars", "charAt", "codePoints", "isEmpty", "subSequence", "toString", "compare");
- assertMembers(typeName, memberNamesJ15);
- }
+ int javaVersion = Runtime.version().feature();
+ Set expectedMemberNames = new HashSet<>(
+ Set.of("length", "chars", "charAt", "codePoints", "subSequence", "toString"));
+ if (javaVersion >= 11) {
+ expectedMemberNames.add("compare");
+ }
+ if (javaVersion >= 15) {
+ expectedMemberNames.add("isEmpty");
+ }
+ if (javaVersion >= 25) {
+ expectedMemberNames.add("getChars");
}
+ assertMembers(typeName, expectedMemberNames);
}
@Test
diff --git a/org.eclipse.xtext.tests/src/org/eclipse/xtext/util/JavaVersionTest.java b/org.eclipse.xtext.tests/src/org/eclipse/xtext/util/JavaVersionTest.java
index 2f0d6fd0aeb..d6b365e193d 100644
--- a/org.eclipse.xtext.tests/src/org/eclipse/xtext/util/JavaVersionTest.java
+++ b/org.eclipse.xtext.tests/src/org/eclipse/xtext/util/JavaVersionTest.java
@@ -18,6 +18,7 @@
public class JavaVersionTest {
@Test
public void test_fromBree() {
+ assertEquals(JavaVersion.JAVA25, JavaVersion.fromBree("JavaSE-25"));
assertEquals(JavaVersion.JAVA21, JavaVersion.fromBree("JavaSE-21"));
assertEquals(JavaVersion.JAVA17, JavaVersion.fromBree("JavaSE-17"));
assertEquals(JavaVersion.JAVA11, JavaVersion.fromBree("JavaSE-11"));
@@ -31,6 +32,8 @@ public void test_fromBree() {
@Test
public void testFromQualifier() {
+ assertEquals(JavaVersion.JAVA25, JavaVersion.fromQualifier("25"));
+ assertEquals(JavaVersion.JAVA25, JavaVersion.fromQualifier("1.25"));
assertEquals(JavaVersion.JAVA21, JavaVersion.fromQualifier("21"));
assertEquals(JavaVersion.JAVA21, JavaVersion.fromQualifier("1.21"));
assertEquals(JavaVersion.JAVA17, JavaVersion.fromQualifier("17"));
@@ -55,6 +58,7 @@ public void testFromQualifier() {
@Test
public void test_getQualifier() {
+ assertEquals("25", JavaVersion.JAVA25.getQualifier());
assertEquals("21", JavaVersion.JAVA21.getQualifier());
assertEquals("17", JavaVersion.JAVA17.getQualifier());
assertEquals("11", JavaVersion.JAVA11.getQualifier());
@@ -73,6 +77,7 @@ public void test_isAtLeast() {
@Test
public void test_toJdtClassFileConstant () {
+ assertEquals(4521984, JavaVersion.JAVA25.toJdtClassFileConstant());
assertEquals(4259840, JavaVersion.JAVA21.toJdtClassFileConstant());
assertEquals(3997696, JavaVersion.JAVA17.toJdtClassFileConstant());
assertEquals(3604480, JavaVersion.JAVA11.toJdtClassFileConstant());
diff --git a/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/wizard/cli/CliWizardIntegrationTest.java b/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/wizard/cli/CliWizardIntegrationTest.java
index 30417f06c28..47d58f9a544 100644
--- a/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/wizard/cli/CliWizardIntegrationTest.java
+++ b/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/wizard/cli/CliWizardIntegrationTest.java
@@ -200,6 +200,18 @@ public static void main(String[] args) {
project.getIdeProject().setEnabled(true);
project.getWebProject().setEnabled(true);
project.getP2Project().setEnabled(true);
+ }), CliWizardIntegrationTest.newProjectConfig(project -> {
+ project.setBaseName("mavenTychoP2J25");
+ project.setJavaVersion(JavaVersion.JAVA25);
+ project.setPreferredBuildSystem(BuildSystem.MAVEN);
+ project.setSourceLayout(SourceLayout.PLAIN);
+ project.setProjectLayout(ProjectLayout.HIERARCHICAL);
+ project.getRuntimeProject().getTestProject().setEnabled(true);
+ project.getUiProject().setEnabled(true);
+ project.getUiProject().getTestProject().setEnabled(true);
+ project.getIdeProject().setEnabled(true);
+ project.getWebProject().setEnabled(true);
+ project.getP2Project().setEnabled(true);
}), CliWizardIntegrationTest.newProjectConfig(project -> {
project.setBaseName("full");
project.setPreferredBuildSystem(BuildSystem.GRADLE);
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/build.properties b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/build.properties
new file mode 100644
index 00000000000..64f93a9f0b7
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/feature.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/feature.xml
new file mode 100644
index 00000000000..78b9db3353b
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/feature.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/pom.xml
new file mode 100644
index 00000000000..2136c1a0c9a
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.feature/pom.xml
@@ -0,0 +1,15 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.feature
+ eclipse-feature
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/META-INF/MANIFEST.MF b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..ce1cf7dd3d8
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: mavenTychoP2J25.ide
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: mavenTychoP2J25.ide; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: mavenTychoP2J25,
+ org.eclipse.xtext.ide,
+ org.eclipse.xtext.xbase.ide
+Bundle-RequiredExecutionEnvironment: JavaSE-25
+Automatic-Module-Name: mavenTychoP2J25.ide
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/build.properties b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/build.properties
new file mode 100644
index 00000000000..5c6bbf99f08
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/
+bin.excludes = **/*.xtend
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/pom.xml
new file mode 100644
index 00000000000..29b9f11fe21
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ide/pom.xml
@@ -0,0 +1,21 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.ide
+ eclipse-plugin
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.repository/category.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.repository/category.xml
new file mode 100644
index 00000000000..984d8ee74e4
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.repository/category.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.repository/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.repository/pom.xml
new file mode 100644
index 00000000000..8b0ddc54bd9
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.repository/pom.xml
@@ -0,0 +1,15 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.repository
+ eclipse-repository
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.target/mavenTychoP2J25.target.target b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.target/mavenTychoP2J25.target.target
new file mode 100644
index 00000000000..31f13ae7828
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.target/mavenTychoP2J25.target.target
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.target/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.target/pom.xml
new file mode 100644
index 00000000000..f26c971c674
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.target/pom.xml
@@ -0,0 +1,15 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.target
+ eclipse-target-definition
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/META-INF/MANIFEST.MF b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..375a0414c24
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: mavenTychoP2J25.tests
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: mavenTychoP2J25.tests; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: mavenTychoP2J25,
+ org.junit;bundle-version="4.13.2",
+ org.eclipse.xtext.testing,
+ org.eclipse.xtext.xbase.testing
+Bundle-RequiredExecutionEnvironment: JavaSE-25
+Automatic-Module-Name: mavenTychoP2J25.tests
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/build.properties b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/build.properties
new file mode 100644
index 00000000000..5c6bbf99f08
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/
+bin.excludes = **/*.xtend
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/pom.xml
new file mode 100644
index 00000000000..8a3b8c6bfb8
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.tests/pom.xml
@@ -0,0 +1,21 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.tests
+ eclipse-test-plugin
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/META-INF/MANIFEST.MF b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..3cab5eedad1
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: mavenTychoP2J25.ui.tests
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: mavenTychoP2J25.ui.tests; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: mavenTychoP2J25.ui,
+ org.junit;bundle-version="4.13.2",
+ org.eclipse.xtext.testing,
+ org.eclipse.xtext.ui.testing,
+ org.eclipse.xtext.xbase.testing,
+ org.eclipse.xtext.xbase.ui.testing
+Bundle-RequiredExecutionEnvironment: JavaSE-25
+Automatic-Module-Name: mavenTychoP2J25.ui.tests
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/build.properties b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/build.properties
new file mode 100644
index 00000000000..5c6bbf99f08
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/
+bin.excludes = **/*.xtend
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/pom.xml
new file mode 100644
index 00000000000..b23621ee0a4
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui.tests/pom.xml
@@ -0,0 +1,28 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.ui.tests
+ eclipse-test-plugin
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+
+
+ org.eclipse.tycho
+ tycho-surefire-plugin
+
+ true
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/META-INF/MANIFEST.MF b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..151327b7823
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: mavenTychoP2J25.ui
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: mavenTychoP2J25.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: mavenTychoP2J25,
+ mavenTychoP2J25.ide,
+ org.eclipse.xtext.ui,
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.ui.editors;bundle-version="3.14.300",
+ org.eclipse.ui.ide;bundle-version="3.18.500"
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: JavaSE-25
+Automatic-Module-Name: mavenTychoP2J25.ui
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/build.properties b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/build.properties
new file mode 100644
index 00000000000..323f56c513d
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/,\
+ plugin.xml
+bin.excludes = **/*.xtend
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/pom.xml
new file mode 100644
index 00000000000..a2c46cf1058
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.ui/pom.xml
@@ -0,0 +1,21 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.ui
+ eclipse-plugin
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.web/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.web/pom.xml
new file mode 100644
index 00000000000..86b80c9172b
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25.web/pom.xml
@@ -0,0 +1,130 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25.web
+ war
+
+
+ src
+
+
+ src
+
+ **/*.java
+ **/*.xtend
+
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+
+
+ maven-war-plugin
+ 3.4.0
+
+ WebRoot
+ false
+
+
+
+ org.eclipse.jetty
+ jetty-maven-plugin
+ 11.0.26
+
+ WebRoot
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.3.0
+
+
+
+ add-source
+ initialize
+
+ add-source
+ add-resource
+
+
+
+ src-gen
+
+
+
+ src-gen
+
+ **/*.java
+
+
+
+
+
+
+
+
+
+
+
+
+ ${project.groupId}
+ mavenTychoP2J25
+ ${project.version}
+
+
+ ${project.groupId}
+ mavenTychoP2J25.ide
+ ${project.version}
+
+
+ org.eclipse.xtext
+ org.eclipse.xtext.xbase.web
+ ${xtextVersion}
+
+
+ org.eclipse.xtext
+ org.eclipse.xtext.web.servlet
+ ${xtextVersion}
+
+
+ org.eclipse.xtext
+ org.eclipse.xtend.lib
+ ${xtextVersion}
+
+
+ org.webjars
+ requirejs
+ 2.3.7
+
+
+ org.webjars
+ jquery
+ 3.6.0
+
+
+ org.webjars
+ ace
+ 1.3.3
+
+
+ org.eclipse.jetty
+ jetty-annotations
+ 11.0.26
+ provided
+
+
+ org.slf4j
+ slf4j-simple
+ 2.0.5
+ provided
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch
new file mode 100644
index 00000000000..49a938fcada
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/.launch/Launch Runtime Eclipse.launch b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/.launch/Launch Runtime Eclipse.launch
new file mode 100644
index 00000000000..fb1e89c52ee
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/.launch/Launch Runtime Eclipse.launch
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/META-INF/MANIFEST.MF b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..26e995aa659
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: mavenTychoP2J25
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: mavenTychoP2J25; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext,
+ org.eclipse.xtext.xbase,
+ org.eclipse.equinox.common;bundle-version="3.19.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-25
+Automatic-Module-Name: mavenTychoP2J25
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/build.properties b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/build.properties
new file mode 100644
index 00000000000..8fa43cc640f
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/build.properties
@@ -0,0 +1,9 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/,\
+ plugin.xml
+bin.excludes = **/*.mwe2,\
+ **/*.xtend
+additional.bundles = org.eclipse.xtext.xtext.generator.dependencies
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/pom.xml
new file mode 100644
index 00000000000..7ce6ffab45d
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/pom.xml
@@ -0,0 +1,102 @@
+
+ 4.0.0
+
+ mavenTychoP2J25
+ mavenTychoP2J25.parent
+ 1.0.0-SNAPSHOT
+
+ mavenTychoP2J25
+ eclipse-plugin
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.0.0
+
+
+
+ mwe2Launcher
+ generate-sources
+
+ java
+
+
+
+
+ org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher
+
+ /${project.basedir}/src/mydsl/GenerateMyDsl.mwe2
+ -p
+ rootPath=/${project.basedir}/..
+
+ compile
+ true
+ false
+
+
+
+ org.eclipse.xtext
+ org.eclipse.xtext.xtext.generator.dependencies
+ ${xtextVersion}
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+
+
+
+ org.apache.maven.plugins
+ maven-clean-plugin
+
+
+
+ ${basedir}/../mavenTychoP2J25/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../mavenTychoP2J25.tests/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../mavenTychoP2J25.ide/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../mavenTychoP2J25.ui/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../mavenTychoP2J25.ui.tests/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../mavenTychoP2J25.web/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/model/generated/
+
+
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/src/mydsl/GenerateMyDsl.mwe2 b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/src/mydsl/GenerateMyDsl.mwe2
new file mode 100644
index 00000000000..0e74ee78f96
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/src/mydsl/GenerateMyDsl.mwe2
@@ -0,0 +1,57 @@
+module mydsl.GenerateMyDsl
+
+import org.eclipse.xtext.xtext.generator.*
+import org.eclipse.xtext.xtext.generator.model.project.*
+
+var rootPath = ".."
+
+Workflow {
+
+ component = XtextGenerator {
+ configuration = {
+ project = StandardProjectConfig {
+ baseName = "mavenTychoP2J25"
+ rootPath = rootPath
+ runtimeTest = {
+ enabled = true
+ }
+ eclipsePlugin = {
+ enabled = true
+ }
+ eclipsePluginTest = {
+ enabled = true
+ }
+ web = {
+ enabled = true
+ }
+ createEclipseMetaData = true
+ }
+ code = {
+ encoding = "UTF-8"
+ lineDelimiter = "\n"
+ fileHeader = "/*\n * generated by Xtext \${version}\n */"
+ preferXtendStubs = false
+ }
+ }
+ language = StandardLanguage {
+ name = "mydsl.MyDsl"
+ fileExtensions = "mydsl"
+
+ serializer = {
+ generateStub = false
+ }
+ validator = {
+ // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+
+ // Enables several checks on the inferred Jvm model for Xbase languages concerning Java inheritance relations
+ // composedCheck = "org.eclipse.xtext.xbase.validation.JvmGenericTypeValidator"
+
+ // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
+ generateDeprecationValidation = true
+ }
+ generator = {
+ generateXtendStub = true
+ }
+ }
+ }
+}
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/src/mydsl/MyDsl.xtext b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/src/mydsl/MyDsl.xtext
new file mode 100644
index 00000000000..2576748e6f7
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/mavenTychoP2J25/src/mydsl/MyDsl.xtext
@@ -0,0 +1,9 @@
+grammar mydsl.MyDsl with org.eclipse.xtext.common.Terminals
+
+generate myDsl "http://www.MyDsl.mydsl"
+
+Model:
+ greetings+=Greeting*;
+
+Greeting:
+ 'Hello' name=ID '!';
diff --git a/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/pom.xml b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/pom.xml
new file mode 100644
index 00000000000..4dc13f89c3f
--- /dev/null
+++ b/org.eclipse.xtext.tests/testdata/wizard-expectations/mavenTychoP2J25/mavenTychoP2J25.parent/pom.xml
@@ -0,0 +1,302 @@
+
+ 4.0.0
+ mavenTychoP2J25
+ 1.0.0-SNAPSHOT
+ mavenTychoP2J25.parent
+ pom
+
+
+ unspecified
+ 2.25.0
+ UTF-8
+ 25
+ 25
+
+ 4.0.13
+
+
+
+
+
+
+
+ mavenTychoP2J25
+ mavenTychoP2J25.ide
+ mavenTychoP2J25.ui
+ mavenTychoP2J25.web
+ mavenTychoP2J25.target
+ mavenTychoP2J25.feature
+ mavenTychoP2J25.repository
+ mavenTychoP2J25.tests
+ mavenTychoP2J25.ui.tests
+
+
+
+
+ org.eclipse.xtext
+ xtext-dev-bom
+ ${xtextVersion}
+ pom
+ import
+
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-maven-plugin
+ ${tycho-version}
+ true
+
+
+ org.eclipse.tycho
+ tycho-source-plugin
+ ${tycho-version}
+
+
+ plugin-source
+
+ plugin-source
+
+
+
+ feature-source
+
+ feature-source
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-p2-plugin
+ ${tycho-version}
+
+
+ attach-p2-metadata
+ package
+
+ p2-metadata
+
+
+
+
+
+ org.eclipse.tycho
+ target-platform-configuration
+ ${tycho-version}
+
+
+
+ mavenTychoP2J25
+ mavenTychoP2J25.target
+ ${project.version}
+
+
+
+
+ macosx
+ cocoa
+ x86_64
+
+
+ win32
+ win32
+ x86_64
+
+
+ linux
+ gtk
+ x86_64
+
+
+
+
+
+ eclipse-plugin
+ org.eclipse.xtext.logging
+ 0.0.0
+
+
+
+ eclipse-feature
+ org.eclipse.rcp
+ 0.0.0
+
+
+
+
+
+
+
+
+
+ org.eclipse.xtext
+ xtend-maven-plugin
+ ${xtextVersion}
+
+
+
+ compile
+ xtend-install-debug-info
+ testCompile
+ xtend-test-install-debug-info
+
+
+
+
+ ${basedir}/xtend-gen
+ ${basedir}/xtend-gen
+
+
+
+ org.apache.maven.plugins
+ maven-clean-plugin
+ 3.2.0
+
+
+
+ ${basedir}/xtend-gen
+
+ **/*
+
+
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-compiler-plugin
+ ${tycho-version}
+
+ -err:-forbidden
+ false
+
+
+
+
+ org.eclipse.tycho
+ tycho-surefire-plugin
+ ${tycho-version}
+
+
+ ${platformSystemProperties} ${systemProperties} ${moduleProperties} ${additionalTestArguments}
+ false
+ false
+
+
+
+
+
+
+
+ codehaus-snapshots
+ disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478
+ http://nexus.codehaus.org/snapshots/
+
+ false
+
+
+ false
+
+
+
+
+ ossrh-snapshots
+ ossrh-snapshots
+
+ false
+
+
+ false
+
+ http://oss.sonatype.org/content/repositories/snapshots
+
+
+
+ sonatype-nexus-snapshots
+ Sonatype Nexus Snapshots
+ https://oss.sonatype.org/content/repositories/snapshots
+
+ false
+
+
+ false
+
+
+
+
+
+ codehaus-snapshots
+ disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478
+ http://nexus.codehaus.org/snapshots/
+
+ false
+
+
+ false
+
+
+
+ ossrh-snapshots
+ ossrh-snapshots
+
+ false
+
+
+ false
+
+ http://oss.sonatype.org/content/repositories/snapshots
+
+
+ sonatype-nexus-snapshots
+ Sonatype Nexus Snapshots
+ https://oss.sonatype.org/content/repositories/snapshots
+
+ false
+
+
+ false
+
+
+
+
+
+ macos
+
+
+ mac
+
+
+
+
+ -XstartOnFirstThread
+
+
+
+ jdk9-or-newer
+
+ [9,)
+
+
+ --add-modules=ALL-SYSTEM
+
+
+
+
+
+
+
diff --git a/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaRuntimeVersion.java b/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaRuntimeVersion.java
index 5a474a0ed6f..bdc6c358351 100644
--- a/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaRuntimeVersion.java
+++ b/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaRuntimeVersion.java
@@ -3,7 +3,7 @@
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
- *
+ *
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.xtext.util;
@@ -58,6 +58,10 @@ public static boolean isJava21OrLater() {
return JAVA_VERSION >= 21;
}
+ public static boolean isJava25OrLater() {
+ return JAVA_VERSION >= 25;
+ }
+
private static int determineJavaVersion() {
String javaVersion = System.getProperty("java.version");
if (javaVersion == null) {
diff --git a/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaVersion.java b/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaVersion.java
index 741837fe8e4..6aaf010508e 100644
--- a/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaVersion.java
+++ b/org.eclipse.xtext.util/src/org/eclipse/xtext/util/JavaVersion.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2017, 2024 itemis AG (http://www.itemis.eu) and others.
+ * Copyright (c) 2015, 2026 itemis AG (http://www.itemis.eu) and others.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
@@ -69,13 +69,17 @@ public enum JavaVersion {
*/
JAVA11("Java 11", new String[] {"11", "1.11"}, "JavaSE-11", "-1.11", Constants.JAVA11),
/**
- * Well, Java 17, next LTS version
+ * Well, Java 17
*/
JAVA17("Java 17", new String[] {"17", "1.17"}, "JavaSE-17", "-1.17", Constants.JAVA17),
/**
- * Java 21, next LTS version
+ * Java 21
*/
- JAVA21("Java 21", new String[] {"21", "1.21"}, "JavaSE-21", "-1.21", Constants.JAVA21)
+ JAVA21("Java 21", new String[] {"21", "1.21"}, "JavaSE-21", "-1.21", Constants.JAVA21),
+ /**
+ * Java 25
+ */
+ JAVA25("Java 25", new String[] {"25", "1.25"}, "JavaSE-25", "-1.25", Constants.JAVA25),
;
private static final class Constants {
@@ -88,6 +92,7 @@ private static final class Constants {
private static final long JAVA11 = ((long)(MAJOR_VERSION_1_5 + 6) << 16) + MINOR_VERSION_0;
private static final long JAVA17 = ((long)(MAJOR_VERSION_1_5 + 12) << 16) + MINOR_VERSION_0;
private static final long JAVA21 = ((long)(MAJOR_VERSION_1_5 + 16) << 16) + MINOR_VERSION_0;
+ private static final long JAVA25 = ((long)(MAJOR_VERSION_1_5 + 20) << 16) + MINOR_VERSION_0;
}
// if you introduce a new JavaVersion don't forget to adapt
diff --git a/org.eclipse.xtext.xbase.ui.tests/src/org/eclipse/xtext/xbase/ui/tests/JavaVersionExtendedTest.java b/org.eclipse.xtext.xbase.ui.tests/src/org/eclipse/xtext/xbase/ui/tests/JavaVersionExtendedTest.java
index 63b564fab1c..07b07b6665d 100644
--- a/org.eclipse.xtext.xbase.ui.tests/src/org/eclipse/xtext/xbase/ui/tests/JavaVersionExtendedTest.java
+++ b/org.eclipse.xtext.xbase.ui.tests/src/org/eclipse/xtext/xbase/ui/tests/JavaVersionExtendedTest.java
@@ -26,10 +26,11 @@ public void testToJdtClassFileConstant() {
assertEquals(ClassFileConstants.JDK10, JavaVersion.JAVA10.toJdtClassFileConstant());
assertEquals(ClassFileConstants.JDK11, JavaVersion.JAVA11.toJdtClassFileConstant());
assertEquals(ClassFileConstants.JDK17, JavaVersion.JAVA17.toJdtClassFileConstant());
- // until we use the newer JDT as minimal requirement, we cannot refer to ClassFileConstants.JDK21
+ assertEquals(ClassFileConstants.JDK21, JavaVersion.JAVA21.toJdtClassFileConstant());
+ // until we use the newer JDT as minimal requirement, we cannot refer to ClassFileConstants.JDK25
// or the test won't compile with older target platforms
- // assertEquals(ClassFileConstants.JDK21, JavaVersion.JAVA21.toJdtClassFileConstant());
- assertEquals(4259840, JavaVersion.JAVA21.toJdtClassFileConstant());
+ // assertEquals(ClassFileConstants.JDK25, JavaVersion.JAVA25.toJdtClassFileConstant());
+ assertEquals(4521984, JavaVersion.JAVA25.toJdtClassFileConstant());
// try {
// long value = ClassFileConstants.class.getField("JDK17").getLong(null);
// assertEquals(value, JavaVersion.JAVA17.toJdtClassFileConstant());
diff --git a/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend b/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend
index b82567043d5..e2f2fc3682a 100644
--- a/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend
+++ b/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend
@@ -54,7 +54,9 @@ class TargetPlatformProject extends ProjectDescriptor {
- «IF config.javaVersion.isAtLeast(JavaVersion.JAVA21)»
+ «IF config.javaVersion.isAtLeast(JavaVersion.JAVA25)»
+
+ «ELSEIF config.javaVersion.isAtLeast(JavaVersion.JAVA21)»
«ELSE»
diff --git a/org.eclipse.xtext.xtext.wizard/xtend-gen/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.java b/org.eclipse.xtext.xtext.wizard/xtend-gen/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.java
index 959cc412a90..2c52dd97cb3 100644
--- a/org.eclipse.xtext.xtext.wizard/xtend-gen/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.java
+++ b/org.eclipse.xtext.xtext.wizard/xtend-gen/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.java
@@ -88,15 +88,22 @@ public CharSequence target() {
_builder.append("\" sequenceNumber=\"1\">");
_builder.newLineIfNotEmpty();
{
- boolean _isAtLeast = this.getConfig().getJavaVersion().isAtLeast(JavaVersion.JAVA21);
+ boolean _isAtLeast = this.getConfig().getJavaVersion().isAtLeast(JavaVersion.JAVA25);
if (_isAtLeast) {
_builder.append("\t");
- _builder.append("");
+ _builder.append("");
_builder.newLine();
} else {
- _builder.append("\t");
- _builder.append("");
- _builder.newLine();
+ boolean _isAtLeast_1 = this.getConfig().getJavaVersion().isAtLeast(JavaVersion.JAVA21);
+ if (_isAtLeast_1) {
+ _builder.append("\t");
+ _builder.append("");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("");
+ _builder.newLine();
+ }
}
}
_builder.append("\t");
@@ -121,8 +128,8 @@ public CharSequence target() {
_builder.append("");
_builder.newLine();
{
- boolean _isAtLeast_1 = this.getConfig().getJavaVersion().isAtLeast(JavaVersion.JAVA21);
- if (_isAtLeast_1) {
+ boolean _isAtLeast_2 = this.getConfig().getJavaVersion().isAtLeast(JavaVersion.JAVA21);
+ if (_isAtLeast_2) {
_builder.append("\t\t\t");
_builder.append("");
_builder.newLine();
diff --git a/pom.xml b/pom.xml
index e03b9dbb51e..a68fb0d0b64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -715,6 +715,19 @@
[21,22)
+
+ strict-jdk-25
+
+ [25,26)
+
+ 21
+
+