blob: 7aca068911e5784db93612262701ebefc96a771c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Xtend - Modernized Java</title>
<description>Xtend is a flexible and expressive dialect of Java, which compiles into readable Java 5 compatible source code. You can use any existing Java library seamlessly. The compiled output is readable and pretty-printed, and tends to run as fast as the equivalent handwritten Java code.
</description>
<link>http://xtend-lang.org/xtend/</link>
<atom:link href="http://xtend-lang.org/xtend/feed.xml" rel="self" type="application/rss+xml"/>
<pubDate>Tue, 28 Aug 2018 08:37:15 -0400</pubDate>
<lastBuildDate>Tue, 28 Aug 2018 08:37:15 -0400</lastBuildDate>
<generator>Jekyll v2.5.3</generator>
<item>
<title>Xtend 2.14.0 Release Notes</title>
<description>&lt;h2 id=&quot;java-9-and-10-support&quot;&gt;Java 9 and 10 Support&lt;/h2&gt;
&lt;p&gt;Xtext and Xtend 2.14 are able to compile with and against Java 10. Here are a few notes on the Support&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is no native support for Java 9/10 module visibilities but we fall back to jdt/javac on that topic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;compiler&quot;&gt;Compiler&lt;/h2&gt;
&lt;h3 id=&quot;avoid-generation-of-unnecessary-exception-variables&quot;&gt;Avoid generation of unnecessary exception variables&lt;/h3&gt;
&lt;p&gt;When an exception variable is not used within a catch block, the transpiled Java code contained an unused variable.&lt;/p&gt;
&lt;p&gt;Considering the following Xtend snippet:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;try {
... some code ...
} catch (SomeException e) {
// do nothing with &quot;e&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The catch block was transpiled to:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;catch (final Throwable _t) {
if (_t instanceof SomeException) {
final SomeException e = (SomeException)_t;
} else {
throw Exceptions.sneakyThrow(_t);
}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Xtend will now avoid the generation of the variable when it is not used within the catch block:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;catch (final Throwable _t) {
if (_t instanceof SomeException) {
} else {
throw Exceptions.sneakyThrow(_t);
}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;multi-catch-support&quot;&gt;Multi-Catch Support&lt;/h3&gt;
&lt;p&gt;With Xtend 2.14 the exception handling supports multi-catch clauses.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_14_0_xtend-multi-catch-new.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The multi-catch clause can handle an arbitrary number of exceptions separated by “|”. &lt;br /&gt;
Within the catch block, the intersection exception type of the exceptions caught by the multi-catch statement is available for further processing.&lt;br /&gt;
Multi-catch support leads to semantically rich and more concise catch statements.&lt;/p&gt;
&lt;h3 id=&quot;multi-type-guard-support&quot;&gt;Multi-Type Guard Support&lt;/h3&gt;
&lt;p&gt;The type guard feature in switch statements is enhanced by support for testing multiple types in one case statement.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_14_0_xtend-multi-type-guard-new.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;As for the multi-catch statements the different types handled by a single case statement are separated by “|”.&lt;br /&gt;
The intersection type of the types specified in the multi-type guard statement is available within the case block.&lt;/p&gt;
&lt;h2 id=&quot;unnecessary-modifiers-validation&quot;&gt;Unnecessary Modifiers Validation&lt;/h2&gt;
&lt;p&gt;Xtend detects unnecessary modifiers in code, e.g. the &lt;code&gt;public&lt;/code&gt; modifier on types. By default issues of this kind are raised as warnings, the severity level is configurable.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_14_unnecessary_modifier.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For convenient resolution of these issues a quick fix has been added.&lt;/p&gt;
&lt;h2 id=&quot;eclipse-integration&quot;&gt;Eclipse Integration&lt;/h2&gt;
&lt;h3 id=&quot;organize-imports&quot;&gt;Organize Imports&lt;/h3&gt;
&lt;p&gt;The Organize Imports feature has been improved to consider inner types properly.&lt;/p&gt;
&lt;h2 id=&quot;links&quot;&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/xtend-2-14-unnecessary-modifiers-validation&quot;&gt;“Unnecessary modifiers validation” blog post&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;fixed-issues&quot;&gt;Fixed Issues&lt;/h2&gt;
&lt;p&gt;As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 20 Bugzilla tickets have made it into this release. For further details please refer to the following lists:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3ARelease_2.14+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3ARelease_2.14+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;classification=Modeling&amp;amp;classification=Tools&amp;amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;known_name=Xtext%202.14&amp;amp;list_id=16618269&amp;amp;product=TMF&amp;amp;product=Xtend&amp;amp;query_based_on=Xtext%202.14&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.14&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;Fixed Eclipse Bugzilla tickets&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Wed, 23 May 2018 00:00:00 -0400</pubDate>
<link>http://xtend-lang.org/xtend/releasenotes/2018/05/23/version-2-14-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2018/05/23/version-2-14-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtext 2.13.0 Release Notes</title>
<description>&lt;h3 id=&quot;xtend-213-is-out&quot;&gt;Xtend 2.13 is out&lt;/h3&gt;
&lt;p&gt;Xtend 2.13 is mainly a bugfix release.&lt;/p&gt;
&lt;h2 id=&quot;fixed-issues&quot;&gt;Fixed Issues&lt;/h2&gt;
&lt;p&gt;As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 60 Bugzilla tickets have made it into this release. For further details please refer to the following lists:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3ARelease_2.13+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3ARelease_2.13+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;classification=Modeling&amp;amp;classification=Tools&amp;amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;known_name=Xtext%202.13&amp;amp;list_id=16618269&amp;amp;product=TMF&amp;amp;product=Xtend&amp;amp;query_based_on=Xtext%202.13&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.13&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;Fixed Eclipse Bugzilla tickets&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Fri, 20 Oct 2017 00:00:00 -0400</pubDate>
<link>http://xtend-lang.org/xtend/releasenotes/2017/10/20/version-2-13-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2017/10/20/version-2-13-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtend 2.11.0 Release Notes</title>
<description>&lt;p&gt;Xtend version 2.11 comes with a new source repository and plenty of improvements and bug fixes.&lt;/p&gt;
&lt;h2 id=&quot;new-source-repository&quot;&gt;New Source Repository&lt;/h2&gt;
&lt;p&gt;The Xtend code base has been moved to a dedicated repository &lt;a href=&quot;https://github.com/eclipse/xtext-xtend&quot;&gt;xtext-xtend&lt;/a&gt; in the course of the restructuring of Xtext (see the &lt;a href=&quot;https://www.eclipse.org/Xtext/releasenotes.html&quot;&gt;Xtext 2.11.0 Release Notes&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id=&quot;the-xtend-language-and-library&quot;&gt;The Xtend Language and Library&lt;/h2&gt;
&lt;h3 id=&quot;string-concatenation-performance-improvements&quot;&gt;String Concatenation Performance Improvements&lt;/h3&gt;
&lt;p&gt;The performance of string concatenation, e.g. as used for rich strings, &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=427909&quot;&gt;has been improved&lt;/a&gt;. This change has important consequences for working with Xtend: you should make sure that you use consistent versions of Xtend in your host IDE and your target platform in order to avoid &lt;a href=&quot;https://github.com/eclipse/xtext-xtend/issues/122&quot;&gt;compatibility problems&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;improved-compiler&quot;&gt;Improved Compiler&lt;/h3&gt;
&lt;p&gt;The Java code produced by the Xtend compiler is now &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072&quot;&gt;less verbose and more readable&lt;/a&gt;. For many situations Xtend does not produce synthetic variables anymore.&lt;/p&gt;
&lt;p&gt;For &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=501975&quot;&gt;switch statements on Strings&lt;/a&gt; an additional null guard is produced. This lead to NPEs when a null argument was passed to the switch statement.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xbase-switch-nullguard.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A for-loop over an array resulted in uncompilable Java code. This has been &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=440006&quot;&gt;fixed&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;comparison-with-null&quot;&gt;Comparison with null&lt;/h3&gt;
&lt;p&gt;For comparison expressions with &lt;code&gt;null&lt;/code&gt; as argument it is more efficient to use the triple (not) equals operator &lt;code&gt;===&lt;/code&gt; and &lt;code&gt;!==&lt;/code&gt; instead of &lt;code&gt;==&lt;/code&gt; and &lt;code&gt;!=&lt;/code&gt;. While the “normal” operators will result in a call of &lt;code&gt;Objects.equal&lt;/code&gt;, the triple equals operator can perform a direct comparison.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xbase-compare-null-gen.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For these situations &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=401012&quot;&gt;a warning is produced&lt;/a&gt; and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=403018&quot;&gt;a quickfix is offered&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xbase-compare-null-quickfix.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;new-class-wizard&quot;&gt;New Class Wizard&lt;/h2&gt;
&lt;p&gt;The New Xtend Class wizard has an option to create a main method.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xtend-new-main-class.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</description>
<pubDate>Wed, 01 Feb 2017 03:00:00 -0500</pubDate>
<link>http://xtend-lang.org/xtend/releasenotes/2017/02/01/version-2-11-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2017/02/01/version-2-11-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtend 2.9.0 Release Notes</title>
<description>&lt;p&gt;Version 2.9 adds support for IntelliJ and includes many bug fixes. (&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;list_id=11217573&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.9&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;full bugzilla list&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id=&quot;intellij-idea-support&quot;&gt;IntelliJ IDEA support&lt;/h2&gt;
&lt;p&gt;There is now an Xtend plug-in for IntelliJ IDEA. The plug-in provides a smart code editor for Xtend files, including syntax highlighting, code completion, on-the-fly validation, automatic compilation in the background, and more. The plug-in uses the same parser and compiler as Eclipse, but we had to re-implement large parts of the UI integration code.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_9_0_intellij_new_xtend_type.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
Create a new Xtend type (class, interface, or enum) inside Java packages.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_9_0_intellij_editor.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
Enjoy the smart code editor with syntax highlighting and code completion. The latter also proposes Xtend’s extension methods. The example from this screenshot is a small JUnit test, which - obviously - can also be launched as such.&lt;/p&gt;
&lt;h2 id=&quot;android-studio-support&quot;&gt;Android Studio Support&lt;/h2&gt;
&lt;p&gt;Xtend now supports &lt;a href=&quot;http://developer.android.com/tools/revisions/studio.html&quot;&gt;Android Studio&lt;/a&gt;, which uses IntelliJ IDEA as a foundation. This is not to be confused with the &lt;a href=&quot;http://developer.android.com/tools/help/adt.html&quot;&gt;Android Developer Tools&lt;/a&gt;, which are based on Eclipse and which have been supported by Xtend since the very beginning.&lt;/p&gt;
&lt;p&gt;This is exciting news as it allows you to use lambda expressions and Active Annotations for Android development - something neither Android Studio nor ADT support out of the box.&lt;/p&gt;
</description>
<pubDate>Tue, 01 Dec 2015 04:30:00 -0500</pubDate>
<link>http://xtend-lang.org/xtend/releasenotes/2015/12/01/version-2-9-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2015/12/01/version-2-9-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>IntelliJ IDEA Support Released</title>
<description>&lt;p&gt;Finally! The team is proud to release Xtend 2.9.0 and with it the new IDEA plugin. &lt;br /&gt;
For more details please have a look at the &lt;a href=&quot;/xtend/releasenotes.html#/releasenotes/2015/12/01/version-2-9-0&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.jetbrains.com/idea/docs/logo_intellij_idea.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</description>
<pubDate>Tue, 01 Dec 2015 00:00:00 -0500</pubDate>
<link>http://xtend-lang.org/xtend/news/2015/12/01/Xtend-2-9-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/news/2015/12/01/Xtend-2-9-0.html</guid>
<category>news</category>
</item>
<item>
<title>Intellij IDEA Plug-in Preview</title>
<description>&lt;p&gt;Today we are pleased to announce, that we have put out a preview (beta version) of the upcoming IntelliJ IDEA plugin.&lt;br /&gt;
The repository URL is:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note, that it requires &lt;a href=&quot;https://www.jetbrains.com/idea/nextversion/&quot;&gt;IDEA 15 Preview&lt;/a&gt;.&lt;br /&gt;
Please try it out and &lt;a href=&quot;https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Xtend&quot;&gt;file tickets&lt;/a&gt; when you hit any bugs!&lt;/p&gt;
</description>
<pubDate>Fri, 02 Oct 2015 00:00:00 -0400</pubDate>
<link>http://xtend-lang.org/xtend/news/2015/10/02/Xtend-Intellij-IDEA-Preview.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/news/2015/10/02/Xtend-Intellij-IDEA-Preview.html</guid>
<category>news</category>
</item>
<item>
<title>Xtend 2.8.0 Release Notes</title>
<description>&lt;p&gt;Version 2.8 got many new features, bug fixes, and performance improvements (&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;list_id=11217573&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.8&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;full bugzilla list&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The most noteworthy changes are the following.&lt;/p&gt;
&lt;h2 id=&quot;target-java-version&quot;&gt;Target Java Version&lt;/h2&gt;
&lt;p&gt;The new version of the Xbase compiler allows to configure the Java version of the generated code. The default is to use the same version as set for the source compatibility of the Java compiler (&lt;em&gt;Java → Compiler → Source compatibility&lt;/em&gt;), which is in turn usually set to the same version as the &lt;em&gt;compiler compliance level&lt;/em&gt;. The Xbase compiler settings can be configured in the &lt;em&gt;Compiler&lt;/em&gt; preference page or project properties page of your Xbase language.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_xbase-java-version.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;By unchecking &lt;em&gt;Use source compatibility level from Java settings&lt;/em&gt;, you can choose to generate Java code with a different version than is set for the Java compiler. The actual changes in the generated code are described in the following.&lt;/p&gt;
&lt;h3 id=&quot;java-5&quot;&gt;Java 5&lt;/h3&gt;
&lt;p&gt;Java 5 has been the version level of the Xtend compiler from the beginning, so the generated code is the same as with earlier Xtend versions if you choose this target version.&lt;/p&gt;
&lt;h3 id=&quot;java-6&quot;&gt;Java 6&lt;/h3&gt;
&lt;p&gt;When the Xtend compiler is set to at least Java 6, it generates an &lt;code&gt;@Override&lt;/code&gt; annotation to each method that overrides a method from a superclass or implements an interface method.&lt;/p&gt;
&lt;h3 id=&quot;java-7&quot;&gt;Java 7&lt;/h3&gt;
&lt;p&gt;Xtend expressions like &lt;code&gt;switch (obj) { ... }&lt;/code&gt; where &lt;code&gt;obj&lt;/code&gt; is of type &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/api/java/lang/String.html&quot;&gt;String&lt;/a&gt; are translated to Java &lt;code&gt;switch&lt;/code&gt; statements (see &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html&quot;&gt;Strings in switch Statements&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;In Xtend you can write number literals in the form &lt;code&gt;2_147_483_647&lt;/code&gt; to enhance their readability. This is also &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/technotes/guides/language/underscores-literals.html&quot;&gt;supported by Java 7&lt;/a&gt;. When the Xtend compiler is set to at least Java 7, underscores in number literals are retained in the generated code.&lt;/p&gt;
&lt;h3 id=&quot;java-8&quot;&gt;Java 8&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;/xtend/documentation/203_xtend_expressions.html#lambdas&quot;&gt;Xtend lambda expressions&lt;/a&gt; like &lt;code&gt;[String s | s.toLowerCase]&lt;/code&gt; are translated to &lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html&quot;&gt;Java 8 lambda expressions&lt;/a&gt;, e.g. &lt;code&gt;(String s) -&amp;gt; return s.toLowerCase();&lt;/code&gt;. More details on this translation are discussed in &lt;a href=&quot;http://spoenemann.blogspot.de/2015/02/xtend-for-java-8.html&quot;&gt;this blog post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that independent of which Java version is chosen for the generated code, Xtend works perfectly with the &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/technotes/guides/language/lambda_api_jdk8.html&quot;&gt;lambda-optimized Java 8 API&lt;/a&gt; because Xtend lambdas are fully compatible with Java 8 lambdas.&lt;/p&gt;
&lt;p&gt;Xtend allows to define non-abstract methods (static or non-static) in interfaces when Java 8 is chosen as target language level. If such a method is non-static, it is translated to a &lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html&quot;&gt;Java 8 default method&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;more-compiler-options&quot;&gt;More Compiler Options&lt;/h2&gt;
&lt;p&gt;You can now disable the automatic generation of &lt;code&gt;@SuppressWarnings&lt;/code&gt; annotations for generated classes. Furthermore, you can enable the generation of &lt;code&gt;@Generated&lt;/code&gt; annotations for all generated types, which can be useful for automatic processing of the source code, e.g. when you want to exclude generated types in code analysis tools. The annotation also allows to attach more information, which can be enabled in the preferences.&lt;/p&gt;
&lt;h2 id=&quot;enhancements-of-the-xtend-editor&quot;&gt;Enhancements of the Xtend Editor&lt;/h2&gt;
&lt;h3 id=&quot;open-generated-file&quot;&gt;Open Generated File&lt;/h3&gt;
&lt;p&gt;You can open the Java file that was generated from Xtend by right-clicking the Xtend editor and selecting &lt;em&gt;Open Generated File&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_xbase-open-generated.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;open-inferred-type&quot;&gt;Open Inferred Type&lt;/h3&gt;
&lt;p&gt;You can open the declaration of the inferred type of a local variable by &lt;em&gt;Ctrl&lt;/em&gt;-clicking (&lt;em&gt;Cmd&lt;/em&gt; on Mac) the variable name.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_open-inferred-type.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;improved-hover-for-annotations&quot;&gt;Improved Hover for Annotations&lt;/h3&gt;
&lt;p&gt;Hovers of annotated members have been improved and allow to navigate to annotation values.&lt;/p&gt;
&lt;h3 id=&quot;unique-class-name-validation&quot;&gt;Unique Class Name Validation&lt;/h3&gt;
&lt;p&gt;If your Xtend type’s qualified name collides with another Java or Xtend type in the same project you now get an error.&lt;/p&gt;
&lt;h2 id=&quot;convert-java-to-xtend&quot;&gt;Convert Java to Xtend&lt;/h2&gt;
&lt;p&gt;The new version features a Java-to-Xtend converter. Right-click a Java file, package or source folder in the Package Explorer and select &lt;em&gt;Convert to Xtend&lt;/em&gt;. You can choose to keep the original Java files (though that will lead to errors due to duplicate types), and you are warned if the Java code contains parts that cannot be translated automatically. These are marked with &lt;code&gt;FIXME&lt;/code&gt; comments in the Xtend code. However, the converter is able to convert the majority of Java classes without problems.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_java-convert-to-xtend.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;active-annotations&quot;&gt;Active Annotations&lt;/h2&gt;
&lt;h4 id=&quot;constant-field-initializer&quot;&gt;Constant Field Initializer&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;MutableFieldDeclaration&lt;/em&gt; now features a set of methods like &lt;code&gt;setConstantValueAsInt(int value)&lt;/code&gt; for creating static final fields with constant initializers. All primitive values as well as &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/api/java/lang/String.html&quot;&gt;String&lt;/a&gt; are supported.&lt;/p&gt;
&lt;h4 id=&quot;default-methods&quot;&gt;Default Methods&lt;/h4&gt;
&lt;p&gt;If the Xtend compiler is set to Java 8, you can create a method with default implementation in a Java interface by defining a method body and setting the &lt;em&gt;abstract&lt;/em&gt; flag on the &lt;em&gt;MutableMethodDeclaration&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faster-builds-and-more-responsive-ui&quot;&gt;Faster Builds and More Responsive UI&lt;/h2&gt;
&lt;p&gt;Compiling an Xtend resource involves a lot of computation. With 2.8 we store the computed resource state and reload it if no changes have happened. This leads to a significantly faster build.&lt;/p&gt;
&lt;p&gt;Into the bargain, user actions like saving an editor now cancel the auto-build and are no longer blocked by it.&lt;/p&gt;
</description>
<pubDate>Wed, 11 Mar 2015 05:30:28 -0400</pubDate>
<link>http://xtend-lang.org/xtend/releasenotes/2015/03/11/version-2-8-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2015/03/11/version-2-8-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtend 2.8.0 Released</title>
<description>&lt;p&gt;The team is proud to release Xtext &amp;amp; Xtend 2.8.0. The new release comes with over 260 bugfixes and enhancements, the runtime performance as well as the tool performance have been improved significantly. Version 2.8.0 is the best Xtext &amp;amp; Xtend ever! :-)&lt;/p&gt;
&lt;p&gt;For more details please have a look at the &lt;a href=&quot;/xtend/releasenotes.html#/releasenotes/2015/03/11/version-2-8-0&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Wed, 11 Mar 2015 00:00:00 -0400</pubDate>
<link>http://xtend-lang.org/xtend/news/2015/03/11/Xtend-2-8-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/news/2015/03/11/Xtend-2-8-0.html</guid>
<category>news</category>
</item>
<item>
<title>Xtend 2.7.3 is out!</title>
<description>&lt;p&gt;We have just released version 2.7.3 of Xtend. It comes with some important bugfixes and is recommended for any 2.7.x users.&lt;/p&gt;
&lt;p&gt;Here is the &lt;a href=&quot;http://goo.gl/bPLxSD&quot;&gt;full log&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Thu, 20 Nov 2014 00:00:00 -0500</pubDate>
<link>http://xtend-lang.org/xtend/news/2014/11/20/Xtend-2-7-3.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/news/2014/11/20/Xtend-2-7-3.html</guid>
<category>news</category>
</item>
<item>
<title>Xtend 2.7.0 Available</title>
<description>&lt;p&gt;We are proud to announce the general availability of Xtend 2.7.0. The release contains again tons of improvements, new features, and bugfixes. Check out the &lt;a href=&quot;/xtend/releasenotes.html#/releasenotes/2014/09/02/version-2-7-0&quot;&gt;release notes&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;Special thanks go to all those who contributed to this release: Anton Kosyakov, Dennis Huebner, Holger Schill, Jan Köhnlein, Jan Rosczak, Jörg Reichert, Knut Wannheden, Michael Vorburger, Moritz Eysholdt, Ralf Kretzschmar-Auer, Sebastian Zarnekow, Stefan Oehme, Stéphane Galland, Sven Efftinge, Thomas Fritsch, and Vladimir Piskarev.&lt;/p&gt;
&lt;p&gt;We’re also very grateful for the feedback that we get everyday. It helped us to get where we are now.&lt;/p&gt;
</description>
<pubDate>Wed, 03 Sep 2014 00:00:00 -0400</pubDate>
<link>http://xtend-lang.org/xtend/news/2014/09/03/Xtend-2-7-0.html</link>
<guid isPermaLink="true">http://xtend-lang.org/xtend/news/2014/09/03/Xtend-2-7-0.html</guid>
<category>news</category>
</item>
</channel>
</rss>