Xtensions Library 1.0.0 released
News from Apr. 10, 2018
In March 2018, the Xtensions library 1.0.0 developed by Fraunhofer FOKUS has been published providing well tested and comprehensively documented helper functions for developers working with the Xtend programming language.
At the System Quality Center (SQC) of Fraunhofer FOKUS, Xtend has been used in several projects focused on model-driven software development. The use cases include generating source codes and other resources from specifically defined Domain Specific Languages (DSL). In addition, large scale model-to-model transformations were implemented using Xtend.
As the Xtend standard library only supports earlier versions of Java (JDK 7 and earlier), but does not provide the same support for Java JDK 8, the Xtensions library was developed. For instance, the Xtend standard library provides a filter method for iterables and iterators based on the class of contained items, but not a corresponding method for the new stream interface introduced with Java 8.
As a solution, researchers of SQC developed the Xtensions Library 1.0.0, which also offers extension methods for Java 8 classes. In addition, this library also provides additional useful functions, for example to iterate over primitive numeric values, without resorting to allocation of objects on the heap. Mainly, the Xtensions Library is a collection of class extension methods in the Java 8 Standard Library and the Xtend Standard Library. Objectives are:
- adding extension methods to Java 8 JDK types so that users can work more intuitively with Xtend,
- making selected Java 9 methods available on Java 8,
- supporting iteration over primitive values without resorting to boxing,
- adding some useful additional methods to existing standard JDK and Xtend standard library classes.
Additional functions are already being planned, which should be of particular help in in the context of model-to-model transformations.
More detailed information and documentation with examples of how to use the provided functions can be found at the project website. Users are welcome to try the library and contribute to the project.