Table of Contents


Xtend 2.27.0 Release Notes  May 30, 2022


Xtend 2.27.0 is a maintenance release.

Call to Action: Secure the future maintenance of Xtext & Xtend

As you might have recognized, the number of people contributing to Xtext & Xtend on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext & especially Xtend is at risk, at least in the current form and as part of the Eclipse Simrel. If you care, please join the discussion in https://github.com/eclipse/xtext/issues/1721.

Changes

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Lorenzo Bettini (Università degli Studi di Firenze)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.26.0 Release Notes  Feb 28, 2022


Xtend 2.26.0 is a maintenance release.

Call to Action: Secure the future maintenance of Xtext & Xtend

As you might have recognized, the number of people contributing to Xtext & Xtend on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext & especially Xtend is at risk, at least in the current form and as part of the Eclipse Simrel. If you care, please join the discussion in https://github.com/eclipse/xtext/issues/1721.

Xtend and Java 17

Xtend now supports running on Java 17 with Java 8 and 11 targets. Source and Target 17 are not supported yet and are planned for Xtext/Xtend 2.27.0. This will also require dropping Java 8 in the next release.

Deprecations

  • We will drop support for GWT in a future release.
  • The next Xtend version will likely no long support Java versions below Java 11.

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

Christian Dietrich (itemis)
Karsten Thoms (Karakun)
Arne Deutsch (itemis)
Sebastian Zarnekow (independent)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.25.0 Release Notes  Mar 2, 2021


Xtend 2.25.0 is a maintenance release.

Call to Action: Secure the future maintenance of Xtext & Xtend

As you might have recognized, the number of people contributing to Xtext & Xtend on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext & especially Xtend is at risk, at least in the current form and as part of the Eclipse Simrel. If you care, please join the discussion in https://github.com/eclipse/xtext/issues/1721.

Updates

  • Xtend now makes use of Guava 30.1.

Enhancements

  • #1029: Xtend now generates less unused imports (classes from the same package).
  • #1147: serialVersionUID is no longer flagged as unused.

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Harald Fassler
  • Karsten Thoms (Karakun)
  • Tamas Miklossy (itemis)
  • Nico Prediger (itemis)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.24.0 Release Notes  Dec 1, 2020


Xtend 2.24.0 is a maintenance release.

Call to Action: Secure the future maintenance of Xtext & Xtend

As you might have recognized, the number of people contributing to Xtext & Xtend on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext & especially Xtend is at risk. If you care, please join the discussion in https://github.com/eclipse/xtext/issues/1721.

Updates

  • Xtend now uses ASM 9.

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Karsten Thoms (Karakun)
  • Nico Prediger (itemis)
  • Sebastian Zarnekow (independent)
  • Emmanuel Chebbi (INRIA)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.23.0 Release Notes  Sep 1, 2020


Xtend 2.23.0 is a maintenance release.

Call to Action: Secure the future maintenance of Xtext & Xtend

As you might have recognized, the number of people contributing to Xtext & Xtend on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext & especially Xtend is at risk. If you care, please join the discussion in https://github.com/eclipse/xtext/issues/1721.

Xtext, Xtend, Eclipse, and Java 11

The Eclipse Platform and Java Development Tools have decided to migrate to Java 11 with the new 2020-09 (4.17) release. Xtext and Xtend depend on these projects both for the integration into Eclipse as well as in the LSP and standalone mode. Xtext 2.23 still works with Java 8, but if you want to work with Xtext in Eclipse 2020-09 (4.17) you have to start your Tycho builds with Java 11 as well as launch your Runtime Eclipse Applications with Java 11.

We decided to follow suit to close a window of opportunity for hard to find bugs. Therefore, the version 2.24 of Xtext and Xtend which is due along with Eclipse 2020-12 will be the first release that depends on Java 11. Please feel encouraged to join the discussion in https://github.com/eclipse/xtext/issues/1804 if you have any concerns, general comments or other suggestions.

Eclipse Integration

Quickfix improvements

A quick fix was added to create a local variable or value in addition to the option to create class members.

Quick Fix: Add local var/val
Quick Fix: Add local var/val

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Sebastian Zarnekow (independent)
  • Nico Prediger (itemis)
  • Lorenzo Addazi (Mälardalen University Sweden)
  • Aaron R Miller
  • Karsten Thoms (Karakun)
  • Tamas Miklossy (itemis)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.22.0 Release Notes  Jun 2, 2020


Xtend 2.22.0 is mainly a maintenance release with a small number of usability improvements.

Call to Action: Secure the future maintenance of Xtext & Xtend

As you might have recognized, the number of people contributing to Xtext & Xtend on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext & especially Xtend is at risk. If you care, please join the discussion in https://github.com/eclipse/xtext/issues/1721.

Documentation

The Xtend community website has been updated to list the recently published videos, presentations and blog posts around Xtend. The list is not yet complete, so feel free to contact us if you are also interested in listing your articles there.

Eclipse Integration

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Nico Prediger (itemis)
  • Tamas Miklossy (itemis)
  • Sebastian Zarnekow (independent)
  • Karsten Thoms (Karakun)
  • Mathias Rieder (Bachmann)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.21.0 Release Notes  Mar 3, 2020


Xtend 2.21.0 is a maintenance release with some usability improvements.

License Change

In compliance with general requirements by the Eclipse Foundation the license for Xtext & Xtend has been changed to EPL 2.0.

Xtend Compiler

Unnecessary modifiers

The Xtend compiler has been improved to avoid generating unnecessary modifiers. No modifier is produced in these contexts:

  • static modifier for nested types within interfaces
  • public modifier for interface members
  • abstract modifier for operations within interfaces

Example:

interface FooItf {
  def void bar ()
  static class FooItfImpl implements FooItf {
    override void bar () {}
  }
}

Old compilation result:

public interface FooItf {
  public static class FooItfImpl implements FooItf {
    @Override
    public void bar () {
    }
  }

  public abstract void bar();
}

New compilation result:

public interface FooItf {
  class FooItfImpl implements FooItf {
    @Override
    void bar () {
    }
  }

  void bar();
}

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Karsten Thoms (Karakun)
  • Arne Deutsch (itemis)
  • Nico Prediger (itemis)
  • Sven Efftinge (TypeFox)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.20.0 Release Notes  Dec 3, 2019


Xtend 2.20.0 is mainly a maintenance release with a small number of usability improvements

Eclipse Integration

New Refactoring: Import Static Method and Import Static Extension Method

Two refactoring commands have been added which can add as static or static extension import the selected static method call and update all the occurrences in the document. The refactoring commands can be triggered from the Refactoring > Import Static | Import Static Extension context menu in the Xtend editor or using M1+Shift+M and M1+Shift+Alt+M key shortcuts. (#751)

Refactoring: Import Static Method

Improved JUnit test case recognition/execution

The Xtend IDE has been improved to recognize and execute all JUnit test cases (implemented in Xtend) event if the cursor is currently located before/after the test class definition.

New Quick Fix: Add JUnit 4 or 5 to the classpath

A quick fix was added which adds the necessary libraries for JUnit 4 or 5 to the classpath. The quick fix will show on import errors starting with org.junit.jupiter (for JUnit 5) or org.junit (for JUnit 4). It works both for plug-in projects and regular Java projects. (#919

Quick Fix: Add JUnit 4 to Classpath
Quick Fix: Add JUnit 5 to Classpath

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Sebastian Zarnekow (independent)
  • Karsten Thoms (itemis)
  • Tamas Miklossy (itemis)
  • Vivien Jovet (TORO Limited)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:


Xtend 2.19.0 Release Notes  Sep 3, 2019


Xtend 2.19.0 is mainly a maintenance release.

Fixes

  • The Delegate Active Annotation now uses a stable order.
  • Improved @Override annotations in generated code.
  • Improved ambigous constructor calls.

Upgrades

Xtend now uses Guava 27.1.0. The new version will be picked up automatically if you make use of the Xtext BOM or consume Xtend from its P2 repository.

Infrastructure

Xtend is built now on the new Kubernetes based CBI infrastructure JIRO.

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Karsten Thoms (itemis)
  • Nico Prediger (itemis)
  • Sebastian Zarnekow (itemis)
  • Tamas Miklossy (itemis)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. 5 issues and 62 pull requests have made it into this release. For further details please refer to the following lists:


Xtend 2.18.0 Release Notes  Jun 4, 2019


Xtend 2.18.0 provides new language features (Ternary Expressions and Try-With-Resources) and some smaller improvements.

Ternary Expressions

Xtend now allows to use the ternary operator. This enables to assign conditional values to variables in the shortest possible way, as already well known from Java.

val v = condition ? “thenValue” : “elseValue”

If it is disapproved to use ternary expressions, it is possible to flag them with an error and convert them via quickfix into a traditional if-expression.

val v = if(condition) “thenValue” else “elseValue”

Try With Resources

Try statements are often used with resources, that have to be closed in the finally block. Xtend now supports the convenient try-with-resources expression. This closes the opened resources automatically at the end of the try block - without having to code that explicitly.

def m() {
    val resource = new StringReader("This \n is a text!");
    try
        return resource.read
    finally
        resource?.close     
}

Becomes:

def m() {
    try (val resource = new StringReader("This \n is a text!"))
        return resource.read
}

Eclipse Integration

New Quickfix: Rename Class

When an Xtend class name does not match the file name it is defined in then Xtend raises a warning. A new quickfix has been provided to rename the class according to the file name. (#744)

Quickfix: Rename Class

Quickfix “Remove Unused Member” Improved

The quickfix “Remove member” for unused members was improved. Additionally to the member itself the quickfix will now also remove obsolete import statements and write accesses. (xtext-xtend)

Xtend Elements Wizards in Project Explorer / Navigator View

Context menu entries to trigger New Wizards for Xtend elements were only offered in the Package Explorer. These entries are now additionally offered in the context menu in the Project Explorer and Navigator views. (xtext-xtend#699)

Maven Integration

When the goal xtend-install-debug-info is executed on empty source directories, a warning is raised by default:

[WARNING] Directory <SOURCE_DIR> is empty. Can't process.

This warning can now be suppressed by configure the new parameter showEmptyDirWarning to false. (xtext#787)

Xtend Compiler

The Xtend batch compiler lookup order preferred classes in jars on the classpath before local classes that are on the source path. The order has been changed so that local classes are now first on the search path. (#750)

Credits

The Xtend Language project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release):

  • Christian Dietrich (itemis)
  • Karsten Thoms (itemis)
  • Sebastian Zarnekow (itemis)
  • Arne Deutsch (itemis)
  • Holger Schill (itemis)
  • Eva Poell (itemis)
  • Lorenzo Addazi
  • Niko Stotz (Altran)
  • Max Leuthäuser (itemis)
  • Vivien Jovet (TORO Limited)

Fixed Issues

As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. More than 20 issues and almost 60 pull requests have made it into this release. For further details please refer to the following lists: