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 + +