<!DOCTYPE html>
<html>

  <head>
	<meta charset="UTF-8">
	<title>Xtext - Release Notes</title>
	
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description"
		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
	<meta name="author" content="Sven Efftinge">
	<meta name="author" content="Miro Spoenemann">
	<!--  styles -->
	<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
	<!--[if lt IE 9]>
	  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	
	<!-- Le fav and touch icons -->
	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
	
	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
	<!-- cover flow -->
	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
	<!--[if lt IE 9]>
	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
	<![endif]-->

	<!-- BEGIN Cookie Consent
	<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
	<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
	<script>
	window.addEventListener("load", function(){
	window.cookieconsent.initialise({
		"palette": {
		"popup": {
		  "background": "#000"
		},
		"button": {
		  "background": "#f1d600"
		}
		},
		"theme": "edgeless",
		"type": "opt-in",
		onInitialise: function (status) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		},
		onStatusChange: function(status, chosenBefore) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		}, 
		onRevokeChoice: function() {
		  var type = this.options.type;
		  if (type == 'opt-in') {
		    // TODO: disable cookies
		  }
		  if (type == 'opt-out') {
		    // TODO: enable cookies
		  }
		},
		"content": {
		"href": "http://www.eclipse.org/legal/privacy.php"
		}
	})});
	</script>
	END Cookie Consent -->
</head>


  <body>
  
    <header class="site-header">

  <!-- Navbar -->
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <a class="btn btn-navbar" data-toggle="collapse"
          data-target=".nav-collapse"> <span class="icon-bar"></span> <span
          class="icon-bar"></span> <span class="icon-bar"></span>
        </a> <a class="brand" href="/Xtext/index.html"></a>
        <div class="nav-collapse collapse" style="height: 0px;">
          <ul class="nav">
            <!--li ><a href="/Xtext/news.html">News</a></li-->
            <li ><a href="/Xtext/download.html">Download</a></li>
            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
            <li ><a href="/Xtext/community.html">Community</a></li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
              </ul>
            </li>
            <li ><a href="http://xtend-lang.org">Xtend</a></li>
          </ul>
          <!--div class="nav pull-right">
            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
          </div-->
        </div>
        <!--/.nav-collapse -->
      </div>
    </div>
  </div>
  <!-- Navbar End -->

</header>


    <div id="page">  
	<div class="inner">
		<div class="container">
			<br/>
				<div> 
					<h3>Table of Contents</h3>
					<ul>
						
							<li><p><a href="#/releasenotes/2020/03/03/version-2-21-0">Xtext 2.21.0 Release Notes &mdash; Mar 3, 2020</a></p>
						
							<li><p><a href="#/releasenotes/2019/12/03/version-2-20-0">Xtext 2.20.0 Release Notes &mdash; Dec 3, 2019</a></p>
						
							<li><p><a href="#/releasenotes/2019/09/03/version-2-19-0">Xtext 2.19.0 Release Notes &mdash; Sep 3, 2019</a></p>
						
							<li><p><a href="#/releasenotes/2019/06/04/version-2-18-0">Xtext 2.18.0 Release Notes &mdash; Jun 4, 2019</a></p>
						
							<li><p><a href="#/releasenotes/2019/04/03/version-2-17-1">Xtext 2.17.1 Release Notes &mdash; Apr 3, 2019</a></p>
						
							<li><p><a href="#/releasenotes/2019/03/05/version-2-17-0">Xtext 2.17.0 Release Notes &mdash; Mar 5, 2019</a></p>
						
							<li><p><a href="#/releasenotes/2018/12/04/version-2-16-0">Xtext 2.16.0 Release Notes &mdash; Dec 4, 2018</a></p>
						
							<li><p><a href="#/releasenotes/2018/09/04/version-2-15-0">Xtext 2.15.0 Release Notes &mdash; Sep 4, 2018</a></p>
						
							<li><p><a href="#/releasenotes/2018/05/23/version-2-14-0">Xtext 2.14.0 Release Notes &mdash; May 23, 2018</a></p>
						
							<li><p><a href="#/releasenotes/2017/10/20/version-2-13-0">Xtext 2.13.0 Release Notes &mdash; Oct 20, 2017</a></p>
						
					</ul>
				</div>
				
				  <hr/>
				  <section id="/releasenotes/2020/03/03/version-2-21-0">
				  	<h1>Xtext 2.21.0 Release Notes<small>&nbsp;&nbsp;Mar 3, 2020</small></h1>
				    <br/>
				    <p>Xtext 2.21 is mainly a maintenance release with a focus on internal improvements to enable more people to contribute and only a few new features. The internal usage of Xtend was reduced where it is not beneficial. This improves build performance and lowers the barrier for new contributors. Also all the tests that were failing on Windows only were adapted, such that developing Xtext on Windows machines is now more satisfying.</p>

<h2 id="license-change">License Change</h2>

<p>In compliance with general requirements by the Eclipse Foundation the license for Xtext &amp; Xtend has been changed to <a href="https://www.eclipse.org/legal/epl-2.0/">EPL 2.0</a>.</p>

<h2 id="documentation">Documentation</h2>

<p>The <a href="https://www.eclipse.org/Xtext/community.html">Xtext community website</a> has been updated to list all the cool projects people are building around Xtext/Xtend.<br />
The list is not yet complete, so feel free to contact us if you are also interested in listing your project there.</p>

<p>The documentation about the <a href="https://github.com/eclipse/xtext/blob/master/dev-doc/MaintenanceTasks.md">release process</a> was improved to enable more people to contribute to this process.</p>

<h2 id="eclipse-integration">Eclipse Integration</h2>

<h3 id="skip-create-markers-in-target-folders">Skip create markers in target folders</h3>

<p>Creation of markers in target folders is disabled. This avoids confusing error markers and improves performance at the same time.</p>

<h3 id="avoid-generation-of-dependency-to-xpandold-generator">Avoid generation of dependency to Xpand/old generator</h3>

<p>The wizard to generate projects for existing ecore models does not create a dependency to deprecated Xpand/old generator any more.</p>

<h2 id="xtext-maven-plugin">xtext-maven-plugin</h2>

<h3 id="testgenerate-goal">testGenerate Goal</h3>

<p>The Maven plugin has now two goals, <code>generate</code> and <code>testGenerate</code>. The new <code>testGenerate</code> goal runs during the <code>generate-test-sources</code> phase and uses the test classpath of the Maven project.</p>

<h2 id="lsp">LSP</h2>

<h3 id="multiple-root-folders-per-workspace">Multiple root folders per workspace</h3>

<p>Xtext based languages now allow a workspace to be composed of multiple root folders.</p>

<h2 id="upgrades">Upgrades</h2>

<ul>
  <li>MWE(2) was updated to 2.11.2 / 1.5.2.</li>
  <li>Xtext 2.21 now requires EMF 2.20 as minimal required version.</li>
  <li>LSP4J is now on version 0.9.0 / Language Server Protocol version 3.15.</li>
  <li>Maven Tycho was updated to version 1.6.0.</li>
  <li>JUnit was updated to version 5.6.</li>
</ul>

<h2 id="deprecations">Deprecations</h2>

<ul>
  <li>In <code>org.eclipse.xtext.ide</code> many of the LSP Services were changed in the protocol to use service specific parameters instead of <code>TextDocumentPositionParams</code>. We adapted the services to use the new parameter classes and marked the old ones as deprecated and to be removed with Xtext 2.22. If you have custom subclasses of the affected services please adapt your implementations. This also holds true for deprecations in lsp services that we marked as deprecated in earlier releases.</li>
  <li>We again encourage you to get rid of the old generator as we might have to remove it in 2020-06 / Xtext 2.22 - see/join <a href="https://github.com/eclipse/xtext/issues/1669">Xtext Issue #1669</a>.</li>
</ul>

<h2 id="credits">Credits</h2>

<p>The Xtext 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 to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>

<ul>
  <li>Christian Dietrich (itemis)</li>
  <li>Karsten Thoms (Karakun)</li>
  <li>Sebastian Zarnekow (independent)</li>
  <li>Nico Prediger (itemis)</li>
  <li>Tamas Miklossy (itemis)</li>
  <li>Arne Deutsch (itemis)</li>
  <li>Marcus Mews (NumberFour)</li>
  <li>Lorenzo Bettini (Università degli Studi di Firenze)</li>
  <li>Sven Efftinge (TypeFox)</li>
  <li>Jan Rosczak (Hapag-Lloyd)</li>
  <li>Jan Koehnlein (TypeFox)</li>
  <li>Robert Lewis <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Ryan Dunn <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Mathias Rieder (Bachmann)</li>
  <li>Hannes Niederhausen (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>David Medina (Sigasi) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
</ul>

<h2 id="fixed-issues">Fixed Issues</h2>

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

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.21+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.21+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.21&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.21&amp;query_format=advanced&amp;status_whiteboard=v2.21&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>

				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2019/12/03/version-2-20-0">
				  	<h1>Xtext 2.20.0 Release Notes<small>&nbsp;&nbsp;Dec 3, 2019</small></h1>
				    <br/>
				    <p>Xtext 2.20.0 is mainly a maintenance release.</p>

<h2 id="eclipse-integration">Eclipse Integration</h2>

<h3 id="egit-minimal-version">EGit minimal version</h3>

<p>Xtext requires to use EGit 4.1 or newer now. We have removed a workaround that prevented an endless build loop caused by EGit <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=474003">Bug#474003</a>. Since we expect that no clients are still using Xtext &gt;= 2.20 together with the ancient EGit version, we felt safe to finally remove this workaround.</p>

<h3 id="new-project-wizard--new-file-wizard-improvements">New Project Wizard / New File Wizard improvements</h3>

<p>The <code>New Project Wizard</code> / <code>New File Wizard</code> generator fragments have been extended by the <code>generateToolbarButton</code> option. Setting this option to <code>true</code> adds new project wizard / new file wizard buttons to the toolbar. Furthermore, the New Project Wizard templates provide an API to<br />
register images that can be used in the template descriptions. All these wizard improvements are demonstrated by the Statemachine example shipped by the Xtext framework.</p>

<h2 id="xtext-web">Xtext-Web</h2>

<p>The <code>Xtext-Web Entities Example</code> provides improved validator and formatter capabilities, such as validating the entity, property and operation names, validating the uniquness of the property/operation definitions as well as properly formatting the defined packages, entities, properties and operations elements.</p>

<h2 id="upgrades">Upgrades</h2>

<ul>
  <li>The Eclipse Modeling Workflow Engine (MWE2) was updated to version 2.11.1.</li>
  <li>LSP4J is now on version 0.8.1.</li>
  <li>Maven Tycho was updated to version 1.5.1.</li>
  <li>Gradle to version 5.6.x (Should also work with Gradle 6.0.x which we will ship with Xtext 2.21).</li>
  <li>grgit Gradle Plugin 4.0.0</li>
</ul>

<h2 id="xtend">Xtend</h2>

<p>A word on Xtend. Back in 2013 Xtend was the “Java 10 of today” even before Java 8 was out. Meanwhile Java Release cadence has speeded up and many of Xtends features can be achieved with pure Java, too. There is still some areas where Xtend is particularly advanced like Code generation, Unit tests and lambda heavy APIs like JvmModelInferrer and Formatter. For other tasks there is no need to use Xtend. Also the resources we have no longer allow us to keep the head start against Java. And learning Xtend still is a burden for new Xtext users. To reflect this changed situation we have decided to make Java the default in the wizard again (except e.g. the Generator and a few other APIs). You can still decide if you want Java or Xtend in the workflow.</p>

<h2 id="deprecations">Deprecations</h2>

<h3 id="old-generator">Old Generator</h3>

<p>With Xtext 2.9 we changed the way Xtext languages are generated to a new generator infrastructure/workflow (<code>org.eclipse.xtext.xtext.generator</code>). Until now we still kept the support for the old (Xpand based) workflows and generator (<code>org.eclipse.xtext.generator</code>). We also allowed to use old generator fragments in new workflows through <code>org.eclipse.xtext.generator.adapter.FragmentAdapter</code>. As we want to stop using old Xpand in Xtext we will drop this support in a future Xtext release. We strongly recommend you to migrate to the new workflow and to get rid of the usages of <code>FragmentAdapter</code>.</p>

<h3 id="xtend1-based-ixtext2ecorepostprocessor">Xtend(1) based IXtext2EcorePostProcessor</h3>

<p>Xtext has basically two methods to work with metamodels. The first on is to infer the metamodel from the Grammar. The second one is to maintain it manually and import it in Xtext. In the past we had actually a third option too: To hook into the inference with a <code>IXtext2EcorePostProcessor</code> written in old Xtend(1). We plan to drop this feature in the future and recommend you to switch to a manually maintained metamodel.</p>

<h2 id="credits">Credits</h2>

<p>The Xtext 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 to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>

<ul>
  <li>Christian Dietrich (itemis)</li>
  <li>Karsten Thoms (itemis)</li>
  <li>Sebastian Zarnekow (independent)</li>
  <li>Tamas Miklossy (itemis)</li>
  <li>D. Gabriel (Bachmann) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Jan Köhnlein (TypeFox)</li>
  <li>Arne Deutsch (itemis)</li>
  <li>Mathias Rieder <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Elena Rogleva <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Mark Christiaens (Sigasi)</li>
  <li>Simeon Andreev (Advantest) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Stéphane Galland (Université de Technologie de Belfort)</li>
</ul>

<h2 id="fixed-issues">Fixed Issues</h2>

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

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.20+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.20+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.20&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.20&amp;query_format=advanced&amp;status_whiteboard=v2.20&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>

				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2019/09/03/version-2-19-0">
				  	<h1>Xtext 2.19.0 Release Notes<small>&nbsp;&nbsp;Sep 3, 2019</small></h1>
				    <br/>
				    <p>Xtext 2.19.0 is mainly a maintenance release.</p>

<h2 id="lsp-integration">LSP Integration</h2>

<p>Xtext 2.19 now uses LSP4J version 0.8.0 / Language Server Protocol version 3.14.0. This allows you to consume Xtext Language Servers through WebSocket.</p>

<h2 id="classgraph">Classgraph</h2>

<p>We use Classgraph to scan the classpath. This allows us to provide Standlone Content Assist proposals (LSP/WEB) not only when the application runs with Java 8 but with Java 11, too.</p>

<h2 id="upgrades">Upgrades</h2>

<p>Xtext now uses Guava 27.1.0. The new version will be picked up automatically if you make use of the Xtext BOM or consume Xtext from its P2 repository.<br />
The MWE(2) version was updated to 2.11.</p>

<h2 id="gradle">Gradle</h2>

<p>We made building Xtext projects and Xtext itself Gradle 6.0 ready and thus future-proof.</p>

<h2 id="maven-tycho">Maven Tycho</h2>

<p>For our integration of Eclipse Tycho based builds with Eclipse Orbit we now make use of the new Orbit Simrel Alias <a href="https://download.eclipse.org/tools/orbit/downloads/2019-09">https://download.eclipse.org/tools/orbit/downloads/2019-09</a> instead of our own solution <a href="https://download.eclipse.org/modeling/tmf/xtext/updates/orbit/2019-09">https://download.eclipse.org/modeling/tmf/xtext/updates/orbit/2019-09</a>.</p>

<h2 id="infrastructure">Infrastructure</h2>

<p>Xtend now is built on the new Kubernetes based CBI infrastructure <a href="https://wiki.eclipse.org/CBI/Jenkins_Migration_FAQ">JIRO</a>.</p>

<h2 id="more-upgrades">More Upgrades</h2>

<p>Xtext always follows the latest releases of the software it relies on. The following software upgrades have been considered for this release:</p>

<ul>
  <li>Latest supported Eclipse Platform 4.13 (a.k.a. 2019-09)</li>
  <li>Eclipse MWE 2.11</li>
  <li>Guava 27.1</li>
  <li>LSP4J 0.8</li>
  <li>jquery 3.4.1</li>
  <li>node 10.16.0</li>
  <li>Maven Plugins:
    <ul>
      <li>maven-compiler-plugin 3.8.1</li>
      <li>maven-source-plugin 3.1.0</li>
    </ul>
  </li>
  <li>Gradle 5.5</li>
  <li>Gradle Plugins:
    <ul>
      <li>com.github.johnrengelman.shadow 5.1.0</li>
      <li>io.spring.dependency-management 1.0.8.RELEASE</li>
      <li>de.esoco.gwt 1.0.9</li>
      <li>org.ajoberstar.grgit 3.1.1</li>
    </ul>
  </li>
</ul>

<h2 id="deprecations">Deprecations</h2>

<h3 id="generator-fragments">Generator Fragments</h3>

<p>The generator fragments</p>

<ul>
  <li><code>org.eclipse.xtext.generator.adapter.FragmentAdapter</code></li>
  <li><code>org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorComparisonFragment</code></li>
</ul>

<p>have been marked deprecated. They are in the already deprecated bundle <code>org.eclipse.xtext.generator</code>. There is currently no replacement for this fragment in the new <code>org.eclipse.xtext.xtext.generator</code> bundle.</p>

<h2 id="credits">Credits</h2>

<p>The Xtext 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 to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>

<ul>
  <li>Christian Dietrich (itemis)</li>
  <li>Karsten Thoms (itemis)</li>
  <li>Nico Prediger (itemis)</li>
  <li>Sebastian Zarnekow (itemis)</li>
  <li>Tamas Miklossy (itemis)</li>
  <li>Lorenzo Addazi (Mälardalen University Sweden)</li>
  <li>Marcus Mews (NumberFour)</li>
</ul>

<h2 id="fixed-issues">Fixed Issues</h2>

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

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.19+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.19+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.19&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.19&amp;query_format=advanced&amp;status_whiteboard=v2.19&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>

				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2019/06/04/version-2-18-0">
				  	<h1>Xtext 2.18.0 Release Notes<small>&nbsp;&nbsp;Jun 4, 2019</small></h1>
				    <br/>
				    <p>Xtext 2.18.0 is mainly a maintenance release.</p>

<h2 id="eclipse-integration">Eclipse Integration</h2>

<h3 id="search-references-result-page-new-context-actions">Search References Result Page: New Context Actions</h3>

<p>The results of the <em>Search References</em> action can now be copied to the clipboard. Further an action has been added to remove search results from the view. Both actions are available from the context menu and by common keyboard shortcuts.</p>

<p><img src="/Xtext/images/releasenotes/2_18_SearchReferencesResultActions.png" alt="Search References Result Page: New Context Actions" height="50%" width="50%" /></p>

<h3 id="new-quickfix-on-empty-keywords">New Quickfix on Empty Keywords</h3>

<p>Grammar rules with empty keyword statements (<code>''</code>) are raising errors already. Two new quickfixes have been added that can be used to resolve these errors:</p>

<ul>
  <li>Remove the empty keyword</li>
  <li>Set the keyword value from the declaring rule name</li>
</ul>

<p>(<a href="https://github.com/eclipse/xtext-eclipse/issues/994">xtext-eclipse#994</a>)</p>

<h3 id="fixed-potential-deadlock-on-startup">Fixed Potential Deadlock on Startup</h3>

<p>A deadlock may occur on startup of Eclipse. The builder infrastructure has been improved to avoid locking on loading its stored state. (<a href="https://github.com/eclipse/xtext/issues/1460">#1460</a>)</p>

<h3 id="fixed-exceptions-for-closed-projects">Fixed: Exceptions for Closed Projects</h3>

<p>When projects are removed from the workspace the <code>ProjectOpenedOrClosedListener</code> may caused exceptions that were logged to the error log. This situation has been fixed with <a href="https://github.com/eclipse/xtext-eclipse/issues/1066">xtext-eclipse#1066</a>.</p>

<h3 id="refactoring-support-improved-progress-reporting">Refactoring Support: Improved Progress Reporting</h3>

<p>The <code>ResourceRelocationProcessor</code> did not forward the progress monitor to the change serializer, which prevented proper feedback and cancellation support during the application of a rename refactoring. The progress monitor is now forwarded. (<a href="https://github.com/eclipse/xtext-eclipse/issues/1053">xtext-eclipse#1053</a>)</p>

<h3 id="refactoring-support-improved-memory-utilization">Refactoring Support: Improved Memory Utilization</h3>

<p>During rename or move refactorings a temporary resource set is created and populated. This resource set was kept in memory, leading to unnecessary memory consumption. Now the memory held by this temporary resource set is released properly. (<a href="https://github.com/eclipse/xtext-eclipse/issues/1048">xtext-eclipse#1048</a>)</p>

<h2 id="lsp-integration">LSP Integration</h2>

<h3 id="ilanguageserveraccess-provide-access-to-xtext-index"><code>ILanguageServerAccess</code>: Provide Access to Xtext Index</h3>

<p>A new method <code>doReadIndex</code> has been added to <code>ILanguageServerAccess</code> to allow access to the <code>IResourceDescritions</code> instance (a.k.a. the Xtext Index). This is useful for certain use cases for LS extension developers. (<a href="https://github.com/eclipse/xtext-core/issues/1067">xtext#1067</a>)</p>

<h3 id="report-partial-results-of-cancelled-multi-project-builds">Report Partial Results of Cancelled Multi-Project Builds</h3>

<p>When a multi-project build is canceled (another <code>runWrite</code> coming in from the <code>RequestManager</code>), it could be that some projects have already been built. Even though their <code>ProjectManager</code>s have been updated (e.g. their index state), their deltas were never returned, because the <code>BuildManager</code> aggregated all results in a local variable. Build listeners were never be informed about these changes.</p>

<p>The <code>BuildManager</code> has been improved to report also partial results to listeners. (<a href="https://github.com/eclipse/xtext-core/issues/1124">xtext-core#1124</a>)</p>

<h3 id="improved-handling-of-builds-cancellations-by-didchangewatchedfiles-notifications">Improved Handling of Builds Cancellations by <code>didChangeWatchedFiles</code> Notifications</h3>

<p>When editing files in an auto-saving editor, <code>didChange</code> notifications are usually followed by <code>didChangeWatchedFiles</code> notifications. The latter cancel the build, but only look at their own changes to decide whether a new build should be issued. The changes from the prior <code>didChange</code> queued on the <code>BuildManager</code> were ignored.</p>

<p>This issue has been improved by reprocessing URIs from cancelled builds in. (<a href="https://github.com/eclipse/xtext-core/issues/1121">xtext-core#1121</a>)</p>

<h3 id="fixed-unexpected-occurrance-highlighting">Fixed Unexpected Occurrance Highlighting</h3>

<p>In certain situations occurrances were not highlighted properly. The highlighting service has been improved for that. See <a href="https://github.com/eclipse/xtext-core/issues/1090">xtext-core#1090</a> for details.</p>

<h2 id="xtext-grammar--code-generator">Xtext Grammar &amp; Code Generator</h2>

<h3 id="fixed-illegal-whitespace-removal-in-merged-manifests">Fixed: Illegal Whitespace Removal in Merged Manifests</h3>

<p>When re-generating language implementations whitespace was illegally removed for required bundles with changed versions. (<a href="https://github.com/eclipse/xtext-extras/issues/406">xtext-extras#406</a>)</p>

<h2 id="security">Security</h2>

<p>With <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=544852">Bug#544852</a> a theoretical security issue was reported (CVE-2019-10249). While building Xtext artifacts may be downloaded through HTTP instead of HTTPS. To avoid this, all build related resources have been revised and assured that all artifacts participating in the software build are only downloaded with HTTPS.</p>

<ul>
  <li>p2 mirrors are disabled for builds using Eclipse Tycho. (<a href="https://github.com/eclipse/xtext/issues/1427">#1427</a>)</li>
  <li>p2 repository URLs changed from HTTP to HTTPS. (<a href="https://github.com/eclipse/xtext-xtend/issues/759">xtext-xtend#759</a>)</li>
  <li>Maven repository URLs changed from HTTP to HTTPS. (<a href="https://github.com/eclipse/xtext-maven/issues/74">xtext-maven</a>)</li>
</ul>

<h2 id="upgrades">Upgrades</h2>

<ul>
  <li>LSP4J has been upgraded to its latest release 0.7.2.</li>
  <li>The Java Bytecode Manipultation library ASM has been upgraded to version 7.1.0. (<a href="https://github.com/eclipse/xtext/issues/1440">#1440</a>)</li>
  <li>Gradle based projects have been upgraded to use the Gradle Wrapper version 5.4.1.</li>
  <li>Eclipse Tycho has been upgraded to release 1.4.0. (<a href="https://github.com/eclipse/xtext/issues/1422">#1422</a>)</li>
  <li>In Gradle builds usages of Spring’s <code>dependency-management-plugin</code> have been upgraded to version 1.0.7.RELEASE. (<a href="https://github.com/eclipse/xtext/issues/1420">#1420</a>)</li>
</ul>

<h2 id="new-features-in-xtend">New Features in Xtend</h2>

<p>Xtend has learned try-with-resources and the ternary operator. See the <a href="https://www.eclipse.org/xtend/releasenotes.html#/releasenotes/2019/06/04/version-2-18-0">Xtend Releasenotes</a> for details.</p>

<h2 id="credits">Credits</h2>

<p>The Xtext 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 to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>

<ul>
  <li>Christian Dietrich (itemis)</li>
  <li>Karsten Thoms (itemis)</li>
  <li>Sebastian Zarnekow (itemis)</li>
  <li>Jan Koehnlein (TypeFox)</li>
  <li>Holger Schill (itemis)</li>
  <li>Arne Deutsch (itemis)</li>
  <li>Christian Schneider (TypeFox)</li>
  <li>Titouan Vervack (Sigasi)</li>
  <li>Max Leuthäuser (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Akos Kitta (TypeFox)</li>
  <li>Lorenzo Addazi</li>
  <li>Lorenzo Bettini (Università degli Studi di Firenze)</li>
  <li>Tamas Miklossy (itemis)</li>
  <li>Dennis Huebner (TypeFox)</li>
  <li>RhiobeT <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Sergio Otero Lopez <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Eva Poell (itemis)</li>
  <li>Lieven Lemiengre (Sigasi)</li>
  <li>Mark Christiaens (Sigasi)</li>
  <li>Michael Budnick (all4net) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Stéphane Galland (Université de Technologie de Belfort)</li>
</ul>

<h2 id="fixed-issues">Fixed Issues</h2>

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

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.18+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.18+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.18&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.18&amp;query_format=advanced&amp;status_whiteboard=v2.18&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>

				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2019/04/03/version-2-17-1">
				  	<h1>Xtext 2.17.1 Release Notes<small>&nbsp;&nbsp;Apr 3, 2019</small></h1>
				    <br/>
				    <p>This is a hotfix release. Here is the list of fixed issues:</p>

<ul>
  <li>There was a <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=545343">bug</a> in the Xtext Builder that leads to non Xtext projects being built by Xtext.</li>
  <li>The <a href="https://github.com/eclipse/xtext-core/issues/1059">LSP4J</a> version in Xtext 2.17.0 did not match the one in Eclipse 2019-03. Upgraded to LSP4J 0.7.0.</li>
  <li>The <a href="https://github.com/eclipse/xtext-xtend/issues/750">Xtend Batch Compiler</a> preferred classes found on the classpath over local classes.</li>
</ul>

				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2019/03/05/version-2-17-0">
				  	<h1>Xtext 2.17.0 Release Notes<small>&nbsp;&nbsp;Mar 5, 2019</small></h1>
				    <br/>
				    <p>This release focuses on the compatibility with Java 11 &amp; Eclipse 2019-03, stability, performance and technical debt reduction.</p>

<h2 id="bom">BOM</h2>

<p>Xtext 2.17 introduces a new artifact, a <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies">Maven BOM (<em>bill of materials</em>)</a>. Basically it is an artifact with packaging type <code>pom</code>, which defines dependencies by a <code>&lt;dependencyManagement&gt;</code> section. A BOM is consumed by client projects also by <code>&lt;dependencyManagement&gt;</code> and using the BOM artifact with scope <code>import</code> there.</p>

<p>The BOM declares all dependencies that are used by Xtext and has the coordinates</p>

<ul>
  <li><code>groupId</code> : <code>org.eclipse.xtext</code></li>
  <li><code>artifactId</code> : <code>xtext-dev-bom</code></li>
</ul>

<p>The <code>xtext-dev-bom</code> is used in Maven configurations as follows:</p>

<pre><code>	&lt;dependencyManagement&gt;
		&lt;dependencies&gt;
			&lt;dependency&gt;
				&lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
				&lt;artifactId&gt;xtext-dev-bom&lt;/artifactId&gt;
				&lt;version&gt;${xtext.version}&lt;/version&gt;
				&lt;type&gt;pom&lt;/type&gt;
				&lt;scope&gt;import&lt;/scope&gt;
			&lt;/dependency&gt;
		&lt;/dependencies&gt;
	&lt;/dependencyManagement&gt;
</code></pre>

<p>Any artifact declared by the BOM (e.g. Eclipse Core, EMF, MWE, Guava, LSP4J, JDT, ANTLR) can then be used without declaration of a version.</p>

<p>With Gradle 5 support of <a href="https://docs.gradle.org/5.0/userguide/managing_transitive_dependencies.html#sec:bom_import">BOM managed dependency versions</a> was introduced. The Xtext BOM can be consumed by Gradle projects with the <code>platform</code> dependency:</p>

<pre><code>	dependencies {
		compile platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}")
	}
</code></pre>

<h2 id="java-11">Java 11</h2>

<p>Xtext and Xtend now fully support Java 11! With Xtext 2.16 it was already possible to run Xtext on a Java 11 VM, but it was not possible to use Java 11 also as the target Java version. Since this required Java 11 enabled versions of Eclipse JDT, Tycho and Gradle and not all were available and especially not tested with Xtext, we had to defer the full support to 2.17.</p>

<p>Now with that latest and greatest versions of JDT, Tycho and Gradle integrated, there are no restrictions to use Java 11 in any of the configurations.</p>

<h2 id="customizable-exception-handling-of-validation-code">Customizable Exception Handling of Validation Code</h2>

<p>By default Xtext swallows <code>NullPointerException</code> occuring during the execution of validators. While this behavior is desirable in most cases and users are not bothered with faulty validation or the likely case of NPEs caused by accessing unresolvable proxies, it may be desirable to report or rethrow these exceptions. To minimize the effort of customizing, the handling of exceptions is delegated to the new API method <code>AbstractDeclarativeValidator#handleExceptionDuringValidation(Throwable)</code>. Clients may overroide this method to change the exception handling behavior in their validator classes. (<a href="https://github.com/eclipse/xtext-core/issues/983">to issue</a>)</p>

<h2 id="guava-210-version-pinning">Guava 21.0 Version Pinning</h2>

<p>Xtext allowed a version range from 14.0 to 21.0 for the Guava library in the past. Effectively this range became invalid since API introduced with Guava 20.0 was used in Xbase. The open version range lead also to other surprises in the past.</p>

<p>With Xtext 2.17 it was decided to pin the required version of the Guava library to 21.0 only. This affects all bundle manifests for plugin builds as well as Gradle &amp; Maven builds through the introduced BOM (see above). Also the <em>New Project Wizard</em> will respect this restriction for newly created projects. (<a href="https://github.com/eclipse/xtext/issues/1391">to issue</a>)</p>

<h2 id="xtext-grammar-language">Xtext Grammar Language</h2>

<h3 id="new-validation-first-rule-must-not-be-a-fragment">New Validation: First Rule Must Not Be a Fragment</h3>

<p>An Xtext grammar’s first rule must not start with a fragment rule. This is now checked by an additional validation rule. (<a href="https://github.com/eclipse/xtext-core/pull/1041">to issue</a>)</p>

<p><img src="/Xtext/images/releasenotes/2_17_Xtext_First-rule-not-a-fragment.gif" alt="Validation: first rule not a fragment" height="50%" width="50%" /></p>

<h2 id="testing">Testing</h2>

<h3 id="hyperlinking">Hyperlinking</h3>

<p>A new base class <code>AbstractHyperlinkingTest</code> has been added to provide a convenient way to test hyperlinking navigation.</p>

<p>All standard example projects have been updated to provide a test class (<code>&lt;LangugageName&gt;HyperlinkingTest.java</code>) for demonstration. (<a href="https://github.com/eclipse/xtext-eclipse/issues/949">to issue</a>)</p>

<h3 id="junit-5-support">JUnit 5 Support</h3>

<p>The package <code>org.eclipse.xtext.testing.extensions</code> introduced with release 2.14 is now public API, thus users of Xtext JUnit 5 support will no longer receive restricted API usage warnings.</p>

<p>The <em>New Project Wizard</em> selects JUnit 5 as default.</p>

<p><img src="/Xtext/images/releasenotes/2_17_Xtext_JUnit5-default.png" alt="JUnit 5 support as default" height="50%" width="50%" /></p>

<h2 id="xtext-maven-plugin">xtext-maven-plugin</h2>

<h3 id="output-configuration-name">Output Configuration Name</h3>

<p>It is now possible to configure set the <code>name</code> attribute for non-default output configurations. (<a href="https://github.com/eclipse/xtext-maven/issues/62">to issue</a>)</p>

<h3 id="upgrade-to-maven-3-api">Upgrade to Maven 3 API</h3>

<p>The <code>xtext-maven-plugin</code> has been refactored to use the latest Maven 3 API. The most significant internal change is that all doclet based configurations have been changed to use Maven 3 annotation API.</p>

<h2 id="xtext-web">xtext-web</h2>

<p>The Xtext web support has been updated to the latest versions of the used libraries and editors. Particularly we upgraded to:</p>

<ul>
  <li>requirejs 2.3.6</li>
  <li>jquery 3.3.1-1</li>
  <li>ace 1.3.3</li>
  <li>codemirror 5.41.0</li>
  <li>Orion 17</li>
</ul>

<h2 id="upgrades">Upgrades</h2>

<p>Xtext builts on top of numerous technologies which frequently provide releases. An important task is therefore to keep up-to-date with the latest from the used technology stack. All upgrades affect Xtext in multiple ways:</p>

<ul>
  <li>All internal usages for building Xtext use the upgraded versions</li>
  <li>The <em>New Project Wizard</em> produces projects that make use of upgrades</li>
  <li>Our provided Oomph setup has been updated to reflect the latest changes</li>
</ul>

<h3 id="eclipse-2019-03">Eclipse 2019-03</h3>

<p>As member of the Eclipse Simultaneous Release Xtext is also built against the latest target platform 2019-03.</p>

<h3 id="gradle-521">Gradle 5.2.1</h3>

<p>We upgraded to Gradle 5.2.1. This version is used especially to support the introduced Maven BOM (see above) “natively” in Gradle configurations.</p>

<h3 id="tycho-130">Tycho 1.3.0</h3>

<p>Tycho 1.3.0 is required especially for full Java 11 support.</p>

<h3 id="mwe-210">MWE 2.10</h3>

<p>Xtext is now the latest release 2.10 of the Modeling Workflow Engine (MWE). The MWE project has been updated to use a recent Xtext version itself and supports now separate source folders for main sources and tests.</p>

<h3 id="eclipse-orbit">Eclipse Orbit</h3>

<p>Xtext uses the Orbit repository <a href="https://download.eclipse.org/releases/2019-03/">https://download.eclipse.org/releases/2019-03/</a> for third party libraries. The location redirects to the latest repository recommended for the simultanous release.</p>

<h2 id="credits">Credits</h2>

<p>The Xtext 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 to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>

<ul>
  <li>Christian Dietrich (itemis)</li>
  <li>Karsten Thoms (itemis)</li>
  <li>Sebastian Zarnekow (itemis)</li>
  <li>Tamas Miklossy (itemis)</li>
  <li>Holger Schill (itemis)</li>
  <li>Arne Deutsch (itemis)</li>
  <li>Prajwal Gowda (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Anders Dahlberg (Ericsson) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Eva Poell (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Lorenzo Addazi <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Jan Rosczak <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Jelle Schuhmacher (Altran) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Titouan Vervack (Sigasi)</li>
  <li>Jonathan Menzies <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
  <li>Christian Schneider (TypeFox)</li>
</ul>

<h2 id="fixed-issues">Fixed Issues</h2>

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

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.17+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.17+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.17&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.17&amp;query_format=advanced&amp;status_whiteboard=v2.17&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>

				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2018/12/04/version-2-16-0">
				  	<h1>Xtext 2.16.0 Release Notes<small>&nbsp;&nbsp;Dec 4, 2018</small></h1>
				    <br/>
				    <p>This release focuses on stability, performance and the compatibility with Eclipse 2018-12.</p>

<h2 id="java-11-preparation">Java 11 preparation</h2>

<p>Java 11 has been released in September 2018 and <a href="https://github.com/eclipse/xtext/issues/1182">Xtext is in preparation</a> for full support. Xtext relies on plenty of different components, each of which need to work with Java 11. So far, not all of these are available themselves. Other parties have released new versions that could not be integrated yet. As a result we had to reschedule Java 11 support for Xtext 2.17. However, some preparational work has already been included into Xtext 2.16:</p>

<ul>
  <li>ASM 7: The ASM bytecode analysis and manipulation framework has been upgraded to the latest version 7.0.</li>
  <li>Tycho 1.3: Tycho 1.3 is built against latest JDT, which is required to use Java 11. All projects and wizards have been upgraded to Tycho 1.3.</li>
  <li>Gradle: Xtext 2.16 builds against and uses Gradle 4.10.2 now.</li>
</ul>

<h2 id="testing">Testing</h2>

<h3 id="quickfix-testing-api">Quickfix testing API</h3>

<p>A new base class <a href="https://github.com/eclipse/xtext-eclipse/blob/master/org.eclipse.xtext.ui.testing/src/org/eclipse/xtext/ui/testing/AbstractQuickfixTest.java"><code>AbstractQuickfixTest</code></a> allows the definition of test cases for quickfixes. Quickfixes can be tested by using the method</p>

<pre><code class="language-java">public void testQuickfixesOn(CharSequence model, String issueCode, Quickfix... quickfixes)
</code></pre>

<p>This method takes the original DSL text as its first argument. The second argument is the issue code of the problem that can be fixed by the quickfixes under test. Finally the third argument is an array of <code>Quickfix</code> testing instances. A testable Quickfix defines a label, a description and the expected resulting DSL text.</p>

<pre><code class="language-xtend">	@Data
	protected static class Quickfix {
		String label
		String description
		String result
	}
</code></pre>

<p>The Xtext example projects Domainmodel, Statemachine and Home Automation do include exemplary tests to demonstrate its usage. The Domainmodel example’s quickfix test looks like this:</p>

<pre><code class="language-xtend">class QuickfixTest extends AbstractQuickfixTest {

	@Before
	def void setup() {
	}

	@Test
	def fix_invalid_entity_name() {
		'''
			entity blog {
			}
		'''.testQuickfixesOn(INVALID_TYPE_NAME, new Quickfix("Capitalize name", "Capitalize name  of 'blog'", '''
				entity Blog {
				}
			''')
		)
	}
	..
}}
</code></pre>

<h2 id="new-project-wizard">New Project Wizard</h2>

<ul>
  <li>The New Xtext Project wizard selects JUnit 5 as default now.</li>
  <li><em>Maven</em> build support:  the <code>maven-clean-plugin</code> configuration in the parent <code>pom.xml</code> has been fixed.</li>
  <li><em>Gradle</em> build support: Upgrade to Gradle wrapper 4.10.2.</li>
</ul>

<h2 id="xbase-library">Xbase Library</h2>

<p>The Xbase library supports now accessors for two-dimensional arrays.</p>

<h2 id="parallel-project-build-support">Parallel Project Build Support</h2>

<p>With Eclipse 4.8 (Photon) the Eclipse Platform is supporting parallel build of projects in the workspace. Enabling this feature requires that all configured builders of a project are defining a fine grained scheduling rule. For the XtextBuilder the scheduling rule is configurable by preference now.</p>

<p>The preference is not configurable through preference pages. To enable it, set the <code>org.eclipse.xtext.builder/schedulingrule</code> preference option programmatically or by providing a preference file. The supported values are:</p>

<ul>
  <li><code>WORKSPACE</code>:  Workspace root scheduling. This is the default value.</li>
  <li><code>ALL_XTEXT_PROJECTS</code>: Lock all projects with Xtext nature configured. Allows projects of other natures to be built in parallel.</li>
  <li><code>PROJECT</code>: Locks the currently built project.</li>
  <li><code>NULL</code>: No locking</li>
</ul>

<p>This feature is <em>experimental</em> for now.</p>

<h2 id="language-server-support">Language Server Support</h2>

<h3 id="upgrade-to-eclipse-lsp4j-060">Upgrade to Eclipse LSP4J 0.6.0</h3>

<p>Xtext 2.16 integrates Eclipse LSP4J version 0.6.0.</p>

<h3 id="hierarchical-document-symbols">Hierarchical Document Symbols</h3>

<p>Xtext now supports the <em>hierarchical document symbols</em> as a response to the <code>textDocument/documentSymbol</code> request (introduced in <a href="https://microsoft.github.io/language-server-protocol/specification#version_3_10_0">LSP 3.10.0</a>). For this support a new interface <a href="https://github.com/eclipse/xtext-core/blob/9e46f302bb7bfd68b61f1a05f1c9bb5d830b7fa1/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/symbol/IDocumentSymbolService.xtend"><code>IDocumentSymbolService</code></a> has been added to the bundle <code>org.eclipse.xtext.ide</code>. By default it binds to a no-op implementation. Hierarchical symbols can be activated by binding the interface to the <a href="https://github.com/eclipse/xtext-core/blob/9e46f302bb7bfd68b61f1a05f1c9bb5d830b7fa1/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/symbol/HierarchicalDocumentSymbolService.xtend"><code>HierarchicalDocumentSymbolService</code></a> implementation.</p>

<h3 id="configurable-server-exit-behavior">Configurable Server Exit Behavior</h3>

<p>The default behavior on receiving the <code>exit</code> command of Xtext language servers was to call <code>System.exit</code> and thus terminate the JVM. While this is desirable when a host process is shut down (like termination of the editing tool), it harms <a href="https://github.com/eclipse/xtext-core/issues/885">scenarios</a> where the language server and client run on the same JVM.</p>

<p>To support both use cases, the <code>exit</code> command is now delegated to the <code>ILanguageServerShutdownAndExitHandler</code>. Its default implementation <code>ILanguageServerShutdownAndExitHandler.DefaultImpl</code> preserves the existing behavior and invokes <code>System.exit()</code>. For embedded scenarios, the interface can be bound to <code>ILanguageServerShutdownAndExitHandler.NullImpl</code> instead, which ignores the exit request and keeps the JVM alive.</p>

<h2 id="minimal-target-platform">Minimal Target Platform</h2>

<p>The Eclipse Platform has changed the release cadence after its Photon release (4.9) to quartely major releases. This increases the speed of changes to the platform that Xtext relies on. Since Xtext integrates deeply with the platform, its becoming harder to to support a wide range of releases. Therefore we decided to cut off the supported Eclipse releases and require at least Eclipse 4.7.3a (Oxygen.3a, latest Oxygen release).</p>

<p>This has now been enforced by constraining the lower bound of all bundles of the Eclipse Platform. As a consequence, Xtext 2.16 can no longer be installed on an older Eclipse release.</p>

<h2 id="deprecation-of-gwt">Deprecation of GWT</h2>

<p>We will no longer maintain the GWT versions of Xbase and Xtend Lib. The corresponding jars will be no longer published with future versions of Xtext (likely from 2.17 on).</p>

<h2 id="outlook-for-217">Outlook for 2.17</h2>

<p>Java 11 Support, a Maven BOM and a new MWE version are planned for 2.17</p>

<h2 id="fixed-issues">Fixed Issues</h2>

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

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.16+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.16+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.16&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.16&amp;query_format=advanced&amp;status_whiteboard=v2.16&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>

				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2018/09/04/version-2-15-0">
				  	<h1>Xtext 2.15.0 Release Notes<small>&nbsp;&nbsp;Sep 4, 2018</small></h1>
				    <br/>
				    <p>This release focusses on stability, performance and the integration in Eclipse 2018-09.</p>

<h2 id="minimal-required-target-platform">Minimal Required Target Platform</h2>

<p>Xtext and Xtend 2.15 are built and tested against Eclipse Oxygen 3a and newer. Thus we recommend to use at least Eclipse Oxygen 3a or even better Eclipse 2018-09. For older versions of the Eclipse Platform we cannot guarantee backwards compatibility even though we carefully assess any changes that are made.</p>

<h2 id="support-for-designated-test-source-folders">Support for designated test source folders</h2>

<p>Recently Eclipse started to support Java projects with additional source folders that are specifically used for test sources. The project layout thus is more flexible and can be aligned with Maven or Gradle defaults. Test folders are highlighted in the UI and the class path for test sources and non-test sources are separated. This ensures that production code does not reference any test code. The Xtext new project wizard now ensures that new projects mark their source folders appropriately.</p>

<h2 id="improved-testing-support">Improved Testing Support</h2>

<p>The Xtext UI Testing infrastructure provides the <code>org.eclipse.xtext.ui.testing.AbstractHighlightingTest</code> base class for testing the syntactical/semantical highlighting behaviour. The Homeautomation and the State-Machine examples contain corresponding highlighting test cases to demonstrate the usage of the <code>AbstractHighlightingTest</code> class.</p>

<h2 id="improved-progress-reporting">Improved Progress Reporting</h2>

<p>The progress reporting for the Xtext builder was enhanced and does now provide more detailed information about the current task. Especially for full builds it is not easier to estimate the remaining time.</p>

<p><img src="/Xtext/images/releasenotes/2_15_progressmonitor.gif" alt="" height="50%" width="50%" /></p>

<h2 id="task-tags-and-task-tags">Task tags and TASK tags</h2>

<p>The Xtext API for ToDo task tags now supports case sensitive patterns such that a TASK can be rendered differently than a mere Task.</p>

<p><img src="/Xtext/images/releasenotes/2_15_tasktags.png" alt="" height="50%" width="50%" /></p>

<h2 id="navigation-in-external-files">Navigation in External Files</h2>

<p>The editing experience for files that are not contained in a workspace has been improved. Navigation and editing works more reliable now.</p>

<h2 id="command-line-interface-class-for-project-creation">Command line interface class for project creation</h2>

<p>Xtext projects can be created from a command line by invoking the <code>org.eclipse.xtext.xtext.wizard.cli.CliProjectsCreatorMain</code> main class. This class exposes all options that the New Project Wizard offers as command-line options. Call the class to see all options.</p>

<p>Example arguments for the creation of a typical DSL targetting Eclipse UI and Maven Tycho build on Java 10:</p>
<pre><code>-targetDir=./mydsl
-languageName=org.xtext.example.mydsl.MyDsl
-baseName=org.xtext.example.mydsl
-extension=mydsl
-enabledProjects=GenericIDE,RuntimeTest,UIProject,UITest,P2Project
-buildSystem=MAVEN
-sourceLayout=PLAIN
-languageServer=APP
-xtextVersion=2.15.0
-projectLayout=FLAT
-javaVersion=JAVA10
</code></pre>

<h2 id="api-improvements">API Improvements</h2>

<p>The API when working with the Xtext documents was improved. Convenience methods have been added that are more robust against broken document content when the model is accessed from units of work. If you don’t want to see any null resource or if you want to handle exceptions specifically when accessing the model, you may want to use <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.util/src/org/eclipse/xtext/util/concurrent/IWriteAccess.java#L53"><code>tryModify</code></a> or <code>tryReadOnly</code> respectively.</p>

<h2 id="lsp4j-050">LSP4J 0.5.0</h2>

<p>We have updated to LSP4J 0.5.0 which adds support for semantic highlighting.</p>

<p>Although the semantic highlighting <a href="https://microsoft.github.io/language-server-protocol/specification">Language Server Protocol</a> extension is still in a <a href="https://github.com/Microsoft/vscode-languageserver-node/pull/367">proposal</a> state, the Xtext-based language server (LS) is one of the early adopters. The semantic highlighting information is calculated on the Xtext language server and pushed to the client as a notification. This notification carries information about the ranges that have to be colored on the client-side. The desired coloring details are given as <a href="https://manual.macromates.com/en/language_grammars">TextMate scopes</a> for each affected range. Adopters can reuse the entire highlighting logic from the <a href="https://github.com/eclipse/xtext-core/blob/f7c7a604ed9d922a3ea5595a42e6922bccd123e6/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/syntaxcoloring/ISemanticHighlightingCalculator.java#L23"><code>ISemanticHighlightingCalculator</code></a> implementation as is to enable the LS-based semantic highlighting. The only thing they have to provide is a mapping between the style IDs and the desired TextMate scopes via the recently introduced <a href="https://github.com/eclipse/xtext-core/blob/f7c7a604ed9d922a3ea5595a42e6922bccd123e6/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/semanticHighlight/ISemanticHighlightingStyleToTokenMapper.xtend#L26">token mapper</a>. At this state, it is a must to map each style ID to the corresponding scopes manually.</p>

<p><img src="/Xtext/images/releasenotes/2_15_semantic-highlighting.gif" alt="" height="50%" width="50%" /></p>

<h2 id="update-gradle-to-49">Update Gradle to 4.9</h2>

<p>We have upgraded Gradle to 4.9. New projects are built against the this version.</p>

<h2 id="fixed-issues">Fixed Issues</h2>

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

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.15+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.15+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.15&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.15&amp;query_format=advanced&amp;status_whiteboard=v2.15&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>


				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2018/05/23/version-2-14-0">
				  	<h1>Xtext 2.14.0 Release Notes<small>&nbsp;&nbsp;May 23, 2018</small></h1>
				    <br/>
				    <p>While the Xtext project has paid more attention on bug fixing for the past release, Xtext 2.14 is bringing a whole bunch of new features. This version is part of the Eclipse Photon (4.8) simultaneous release. An important focus was to keep up with the fast development pace of important technologies that Xtext is building on. Since its past release, Java 9 and 10 came out. Build technologies like Maven Tycho and Gradle were changed to support that, too. The Language Server Protocol is evolving rapidly. JUnit 5 is adopted by IDEs and build systems. And Xtext is now ready for all of them!</p>

<h2 id="java-9-and-10-support">Java 9 and 10 Support</h2>

<p>Xtext and Xtend 2.14 are able to compile with and against Java 9 &amp; 10. Here are a few notes on the support</p>

<ul>
  <li>There is no native support for Java 9/10 module visibilities but we fall back to jdt/javac on that topic.</li>
  <li>A current Maven version is required (tested with 3.5)</li>
  <li>When using Gradle, version 4.7 is required at least. The wizard will create projects accordingly.</li>
  <li>Java 9 requires Tycho 1.1 or newer, Java 10 requires Tycho 1.2</li>
  <li>Java 9 requires Oxygen.1a at least, Java 10 requires Oxygen.3a. Eclipse Photon works fine for both.</li>
  <li>Java 10 requires the org.objectweb.asm library in version 6.1.1</li>
</ul>

<p>For upgrading existing project use the New Project Wizard to create a project with the desired settings and compare build relevant files (MANIFEST.MF, build.gradle, pom.xml, *.target) with the existing projects.</p>

<h2 id="junit-5-support">JUnit 5 Support</h2>

<p>Xtext now supports the JUnit 5 framework for writing tests. JUnit 5.1 or newer is required.</p>

<p>For new projects the project wizard’s advanced page allows to select the desired JUnit version.</p>

<p><img src="/Xtext/images/releasenotes/2_14_wizard_junit5.gif" alt="" /></p>

<p>Created test projects directly only depend on the JUnit 5 API artifact</p>

<pre><code>org.junit.jupiter:junit-jupiter-api:5.0.0
</code></pre>

<p>Additional dependencies are configured by the JUnit Library container. This lowers the coupling to concrete JUnit versions and the test engine used. For example, Eclipse Photon is using JUnit 5.1, while Eclipse Oxygen is using JUnit 5.0. Furthermore, the execution of tests in build systems is using the test engines provided by the build system’s test plugins.</p>

<h2 id="new-grammar-annotations">New Grammar Annotations</h2>

<p>The Xtext Grammar language supports the following additional annotations for parser rules:</p>

<h3 id="deprecated">@Deprecated</h3>

<p><img src="/Xtext/images/releasenotes/2_14_annotation_deprecated.png" alt="" /></p>

<p>This annotation marks a rule to be deprecated. Issue markers with are produced where a deprecated rule is used. By default the severity of issue is <em>Warning</em>. The severity level can be configured in the preferences. This feature will help you to do smooth langauage evolution of the time by informing your users about deprecated parts.</p>

<p><img src="/Xtext/images/releasenotes/2_14_annotation_preference.png" alt="" /></p>

<h3 id="final">@Final</h3>

<p><img src="/Xtext/images/releasenotes/2_14_annotation_final.png" alt="" /></p>

<p>A rule marked with <code>@Final</code> cannot be overridden.</p>

<h3 id="exported">@Exported</h3>

<p>As a default Xtext exports all elements to the index that have a name. For customizing this behaviour you need to create a custom IDefaultResourceDescriptionStrategy manually.<br />
With <code>@Exported</code> it can be customized on grammar level, which element types are exported to the index. The customization takes effect when at least one rule in a grammar is annotated with <code>@Exported</code>. By doing that you can easily manage visibility of elements and safe memory.</p>

<h2 id="eclipse-integration">Eclipse Integration</h2>

<h3 id="create-action-quickfix">Create Action Quickfix</h3>

<p>Rules that can be consumed without object instantiation usually require a <em>Create Action</em>. A typical example is when a rule defines an optional assignment. Xtext reports this as a warning in the grammar file.</p>

<p>For problems of this kind a new <em>quickfix</em> has been added that inserts the <em>Create Action</em> at the proper place of the parser rule.</p>

<p><img src="/Xtext/images/releasenotes/2_14_create-action.gif" alt="" /></p>

<h3 id="code-mining-support">Code Mining Support</h3>

<p>Eclipse Photon (4.8) adds a new API called <em>Code Mining</em>. With it text editors can inline additional semantic information into the text, which is not part of the text itself. A useful example to leverage this is to display names of inferred types, parameter names of a called function etc.</p>

<p>Xtext adds a new bundle <code>org.eclipse.xtext.ui.codemining</code> which is offering an API for usage of Code Mining with Xtext. The code generator fragment <code>org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment</code> can be added to the generator workflow to create a stub implementation and provide all dependencies and bindings for the use of this API.</p>

<p>An example implementation has been added to the Domainmodel Example DSL. To learn more about the usage of this API install the example from the File menu and look up the <code>DomainmodelCodeMiningProvider</code> class.</p>

<p><img src="/Xtext/images/releasenotes/2_14_domainmodel-codemining.gif" alt="" /></p>

<h3 id="new-project-and-file-wizard">New Project and File Wizard</h3>

<p>With two simple switches you can turn on the generation of a New Project Wizard and a New File Wizard for your language.</p>

<p>These wizards are based on flexible templates to generate one or many projects with any number of files. You can enable the generation from your .mwe2 file with two simple switches:</p>

<pre><code>language = StandardLanguage {
    name = "org.xtext.example.mydsl.MyDsl"
    fileExtensions = "mydsl"
        
    fileWizard = {
        generate = true
    }
    projectWizard = {
        generate = true
    }
}
</code></pre>

<p>The wizard to create projects allows to select from a number of templates and creates one or, in certain situations helpful, even many projects.</p>

<p><img src="/Xtext/images/releasenotes/2_14_new-file-wizard.png" alt="" /></p>

<p>The wizard to create files is more simple in its basic form and skips the template selection if there is only one file template.</p>

<p><img src="/Xtext/images/releasenotes/2_14_new-project-wizard-template-selection.png" alt="" /></p>

<p>In case there are many templates the wizard gets a second page to configure the parameter whereas on the first page a combo box to select the template appears.</p>

<p>The UI for the parameters of the templates as well as the templates them self are defined in code with a concise API. You do not need to fiddle around with SWT widgets and get most UI stuff for free. The templates are generated in the UI project of your language. You can adapt the generated templates, add new ones or contribute new template providers through extension points.</p>

<p>If you generate the wizards for an existing project the <code>plugin.xml</code> is not regenerated to not risk loosing manual changes you might have applied. Instead a <code>plugin.xml_gen</code> is created. You have to merge the generated extensions to your <code>plugin.xml</code> manually.</p>

<h3 id="console-icon">Console Icon</h3>

<p>The Xtext icon has been added for the Xtext console:</p>

<p><img src="/Xtext/images/releasenotes/2_14_console-icon.png" alt="" /></p>

<h2 id="language-server-support">Language Server Support</h2>

<p>Xtext has been upgraded to LSP4J version 0.4.0. This includes the following features:</p>

<ul>
  <li>Implementation of the Language Server Protocol 3.7.0</li>
  <li>Implementation of the VS Code Debug Protocol 1.25.0</li>
  <li>Support multiple local and remote services</li>
  <li>Improved error handling</li>
</ul>

<h2 id="emf-support">EMF Support</h2>

<p>With EMF 2.14 a new registry <code>EAnnotationValidator.Registry.INSTANCE</code>, which had to be considered in Xtext’s testing support for resetting.</p>

<p>EMF 2.8 <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=367569#c7">introduced</a> the concept <code>ResourceLocator</code> in <code>ResourceSet</code>s. Xtext’s specialized implementation <code>XtextResourceSet</code> did not support that so far and has been extended now.</p>

<h2 id="change-serializer--rename-refactoring">Change Serializer &amp; Rename Refactoring</h2>

<p>The past <a href="/Xtext/releasenotes.html#/releasenotes/2017/10/20/version-2-13-0">release 2.13</a> introduced a new API for EMF Model Manipulation and an improved rename refactoring based on the new <code>IChangeSerializer</code> API.</p>

<p>These new features are still incubating. Several issues that were identified by the adoption of the features have been solved.</p>

<h2 id="performance">Performance</h2>

<h3 id="output-configurations-cache">Output Configurations Cache</h3>

<p>A performance bottleneck was <a href="https://github.com/eclipse/xtext-eclipse/issues/535">discovered</a> in the access to <code>IOutputConfiguration</code>s in builder participants. The problem depends on the amount of files produced by code generators.</p>

<p>A cache was introduced in class <code>BuilderParticipant</code> to solve the issue.</p>

<h3 id="semantic-highlighting">Semantic Highlighting</h3>

<p>Computation of semantic highlighting <a href="https://github.com/eclipse/xtext-eclipse/issues/347">was performed twice</a>. This was fixed and should improve editing experience especially for larger files with intensive use of semantic highlighting, for example like the Xtend language.</p>

<h3 id="queuedbuilddata">QueuedBuildData</h3>

<p>A bottleneck in class <code>QueuedBuildData</code> has been <a href="https://github.com/eclipse/xtext-eclipse/issues/40">found</a> that affects the build time for a large number of resources. The build time has been improved for this scenario.</p>

<h2 id="execution-environment">Execution Environment</h2>

<p>Xtext 2.14 comes with the following requirements for the execution environment:</p>

<ul>
  <li>Java: 1.8, 9 or 10</li>
  <li>Eclipse Luna (4.4) or newer</li>
  <li>EMF 2.10 or newer</li>
  <li>Guice 3.0</li>
  <li>Tycho 1.1, 1.2 (Java 10 or JUnit 5)</li>
  <li>JUnit 4.12 or 5.1</li>
</ul>

<p>Note that bundle <code>org.eclipse.xtext.xbase.lib</code> was compiled with Java 1.8 now, while being compatible to 1.6 in earlier versions.</p>

<h2 id="links">Links</h2>

<p>More detailed information on some topics have been written in blog posts:</p>

<ul>
  <li><a href="https://blogs.itemis.com/en/xtext-2.14-adds-support-for-junit-5">“Xtext 2.14 adds support for JUnit 5”</a></li>
  <li><a href="https://blogs.itemis.com/en/code-mining-support-in-xtext">“Code Mining Support in Xtext”</a></li>
  <li><a href="https://blogs.itemis.com/en/generating-a-new-project-wizard-with-xtext-2.14">“Generating a new project wizard with Xtext 2.14”</a></li>
  <li><a href="https://blogs.itemis.com/en/new-file-wizard-easy-to-generate-with-xtext-2.14">“New File Wizard – easy to generate with Xtext 2.14”</a></li>
  <li><a href="https://blogs.itemis.com/de/new-project-wizard-einfach-mit-xtext-2-14-generieren">“New Project Wizard: einfach mit Xtext 2.14 generieren”</a> (German)</li>
  <li><a href="https://blogs.itemis.com/de/new-file-wizard-einfach-mit-xtext-2.14-generieren">“Erzeugen des New File Wizards”</a> (German)</li>
  <li><a href="https://github.com/eclipse/lsp4j/blob/master/CHANGELOG.md">LSP4J Changelog</a></li>
</ul>

<h2 id="fixed-issues">Fixed Issues</h2>

<p>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:</p>

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.14&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.14&amp;query_format=advanced&amp;status_whiteboard=v2.14&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>


				  </section>
				
				  <hr/>
				  <section id="/releasenotes/2017/10/20/version-2-13-0">
				  	<h1>Xtext 2.13.0 Release Notes<small>&nbsp;&nbsp;Oct 20, 2017</small></h1>
				    <br/>
				    <h2 id="language-server-support">Language Server Support</h2>

<h3 id="eclipse-new-project-wizard-language-server-build">Eclipse New Project Wizard: Language Server Build</h3>

<p>The New Project Wizard allows now to build an executable distribution of language server. On the advanced page a new option was added which is enabled when a Build System was selected. The option allows the selection of a distribution type:</p>

<ul>
  <li><strong>Regular</strong>: A batch script is created that is used to start the server. The DSL jars and all of its runtime dependencies are copied to the output folder.</li>
  <li><strong>Fat Jar</strong>: The language server is packaged in a single executable jar.</li>
</ul>

<p>Both Gradle and Maven are supported. When activated, the build script of the language’s Generic IDE project is extended and the language server is packaged to the project’s build</p>

<p><img src="/Xtext/images/releasenotes/2_13_project-wizard-ls.png" alt="" /></p>

<h2 id="eclipse-integration">Eclipse Integration</h2>

<h3 id="configuration-error-detection">Configuration Error Detection</h3>

<p>Invalid combinations of bundles are a frequent source of errors. This can be caused by an invalid mixture of Xtext’s UI and runtime plugins, or by DSL plugins developed with a different version of Xtext than used in the environment where it fails.</p>

<p>Although there can’t be done anything to get the plugins working on an invalid environment, the resulting failure messages were not good for the user, leaving an impression of an unstable framework.</p>

<p>When running in an error during the initial creation of Guice injectors in the DSL’s UI or Xtext’s Shared UI bundle, the error is catched and an analysis of the runtime environment is included in the failure message. This allows better analysis of the root cause.</p>

<h3 id="multi-quickfixes">Multi-Quickfixes</h3>

<p>These are quickfixes that allow to be applied to multiple markers at once.</p>

<p>TBD</p>

<h3 id="better-cancellation-in-refactorings">Better Cancellation in Refactorings</h3>

<p>You can how hit the cancel dialog in refactorings and it will actually cancel at the next opportunity and not at the end only.</p>

<h3 id="content-type-descriptor">Content Type Descriptor</h3>

<p>Xtext UI projects provide a Content Type Descriptor by contributing to the <a href="https://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_content_contributing.htm"><code>org.eclipse.core.contenttype.contentTypes</code> extension point</a> to the <code>plugin.xml</code> file. This is affecting performance on text searches in Eclipse, since Eclipse can decide that a DSL file has no binary content based on the content type’s base type. (<a href="https://github.com/eclipse/xtext-eclipse/issues/379">xtext-eclipse/issues/379</a>)</p>

<pre><code>&lt;extension point="org.eclipse.core.contenttype.contentTypes"&gt;
	&lt;content-type
		base-type="org.eclipse.core.runtime.text"
		file-extensions="mydsl"
		id="org.eclipse.xtext.mydsl.MyDSL.contenttype"
		name="MyDSL File"
		priority="normal"&gt;
	&lt;/content-type&gt;
&lt;/extension&gt;
</code></pre>

<h2 id="new-api">New API</h2>

<h3 id="emf-model-manipulation-api-incubating">EMF Model Manipulation API (incubating)</h3>

<p>The <code>IChangeSerializer</code> is a new API to listen to changes that are made to the EMF model of an XtextResource and serialize them back to the document’s text. It has a number of benefits to the old <code>XtextDocument.modify()</code> approach:</p>

<ul>
  <li>Direct integration with the formatter, such that changes are automatically nicely formatted.</li>
  <li>Minimum text region changes resulting in less noise.</li>
  <li>Many points to hook into, e.g. for automatic update of an import section.</li>
  <li>More ways to optimize for a specific language and to tune performance.</li>
  <li>Independence from Eclipse-UI concepts like the <code>Document</code>. This makes it reusable in languages server implementations.</li>
</ul>

<p>You can use the <code>IChangeSerializer</code> for refactorings, semantic quickfixes, code lens etc. It still has a few limitations, e.g. it does not work with derived state models, that’s why we keep it provisional for now.</p>

<p>Nevertheless, we have added the following new features based on it:</p>

<h3 id="rename-participants-for-eclipse-file-operations">Rename Participants for Eclipse File Operations</h3>

<p>Some languages tie the model file name to the content, like the package declaration in Java. For such cases you might want to participate in operations on files or directories, like move, rename or paste, to adapt your models automatically. Based on the new <code>IChangeSerializer</code> we have implemented some generic file refactoring participants. You will get notified of such changes to react appropriately by registering your own <code>IResourceRelocationStrategy</code>.</p>

<pre><code>&lt;extension point="org.eclipse.xtext.ui.resourceRelocationStrategy"&gt;
   &lt;strategy class="mydsl.MydslExecutableExtensionFactory:mydsl.MydslResourceRelocationStrategy"&gt;
   &lt;/strategy&gt;
&lt;/extension&gt;
</code></pre>

<h3 id="alternative-rename-refactoring-for-xtext">Alternative Rename Refactoring for Xtext</h3>

<p>By enabling <code>useChangeSerializer</code> flag in the workflow of your language</p>
<pre><code>Workflow {
  component = XtextGenerator {
    ...
    language = StandardLanguage {
      ...
      renameRefactoring = {
        useChangeSerializer = true
      ...
</code></pre>
<p>you will use an new, alternative rename refactoring for Eclipse based on the <code>IChangeSerializer</code>. This flag will also generate the binding for the <code>IRenameService</code> and thereby enable rename refactoring on your language server.</p>

<h3 id="xbase-library-orgeclipsextextxbaselib">Xbase Library (<code>org.eclipse.xtext.xbase.lib</code>)</h3>

<h4 id="no-arg-overloads-to-all-mutable-collection-literals">No-arg overloads to all mutable collection literals</h4>

<p>Class <code>CollectionLiterals</code> was extended by no-arg methods for all mutable collection literals:</p>
<ul>
  <li><code>newArrayList()</code></li>
  <li><code>newHashMap()</code></li>
  <li><code>newHashSet()</code></li>
  <li><code>newLinkedHashMap()</code></li>
  <li><code>newLinkedHashSet()</code></li>
  <li><code>newLinkedList()</code></li>
</ul>

<p>Xtext’s code base was refactored to use these methods where appropriate. As a consequence Xtext requires at least version 2.13 of <code>org.eclipse.xtext.xbase.lib</code>. Therefore bundle manifests were refactored to constraint the library bundle’s lower version. New projects will automatically add the version constraint to manifests.</p>

<h4 id="flatmap-extension-method">flatMap extension method</h4>

<p>A new convenience method <code>flatMap</code> has been added to <code>IterableExtensions</code> and <code>IteratorExtensions</code>, which combines <code>map</code> and <code>flatten</code>.</p>

<pre><code>@FinalFieldsConstructor
@Accessors
class Planet {
	final String name
	final List&lt;Moon&gt; moons
}

@FinalFieldsConstructor
@Accessors
class Moon {
	final String name
}


class Planets {
	def static void main (String[] args) {
		
		val Iterable&lt;Planet&gt; planets = #[
			new Planet("Earth", #[new Moon ("Moon")]),
			new Planet("Mars", #[new Moon ("Phobos"), new Moon("Deimos")])
		]
		
		val moonNames_old = planets.map[moons].flatten.map[name]
		val moonNames_new = planets.flatMap[moons].map[name]
	}
}
</code></pre>

<h2 id="tracing">Tracing</h2>

<p>Tracing can now be used for debugging in generated Java code as well. The <code>@Traced</code> annotation now takes optionally a <code>useForDebugging=true</code>. The <code>@TracedAccessors</code> are now adds to the <code>._&lt;feature&gt;()</code> extension method a <code>._&lt;feature&gt;(useForDebugging)</code> extension method.</p>

<h2 id="refactoring">Refactoring</h2>

<h3 id="jdt-dependency-reduction">JDT Dependency Reduction</h3>

<p>Xtext languages can be deployed in environments without JDT UI. In some use cases it was detected that this can still lead to runtime errors due to  (<code>NoClassDefFoundError</code>). Dependencies in the following bundles have been resolved:</p>

<ul>
  <li><code>org.eclipse.xtext.builder</code> (<a href="https://github.com/eclipse/xtext-eclipse/issues/386">issue#386</a>)</li>
  <li><code>org.eclipse.xtext.xbase.ui</code> (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=509630">bug#509630</a>)</li>
</ul>

<p>We reduced usage of internal API which is subject for removal in JDT. Since older Xtext versions rely on this API, the API is kept by the JDT team for backwards compatibility of Xtext. (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=525462">bug#525462</a>)</p>

<h3 id="improved-support-for-indentation-based-languages">Improved Support for Indentation Based Languages</h3>

<p>Token placement for INDENT / DEDENT tokens have been improved. This improves content assist for indentation based languages. (<a href="https://github.com/eclipse/xtext-core/pull/366">issue#366</a>)</p>

<h3 id="new-generator-infrastructure">New Generator Infrastructure</h3>

<p>Xtext 2.9 introduced a new generator infrastructure. While new projects created with Xtext and the main languages in Xtext already used this generator, there were still some languages, especially test languages, that still used the deprecated old infrastructure. All languages are now migrated to the new generator.</p>

<h2 id="an-eye-on-quality">An Eye on Quality</h2>

<p>With every release we are working hard on fixing as many bugs as possible. Besides our Bugtrackers Eclipse Bugzilla and GitHub Issues the <a href="https://www.codetrails.com/error-analytics/">Automatic Error Reporting System</a> at Eclipse (AERI) is an incredible valuable source of information for us. It uncovers real problems by real users, and has made error reporting to Eclipse a no-brainer.</p>

<p>As Xtext is a complex framework with an incredible flexibility, much can go wrong. Often these errors indicate ways of usage which we could not predict, or they show problems in custom DSLs. Sometimes they uncover also errors in code that we use. We are actively visiting the reports we get into EARI, with a focus on frequently occuring events and new ones.</p>

<p>The Xtext team is proud that this continuous effort finally pays off. For the first time ever, we had several weeks with no new problem report. And fighting against the existing issues no a clear burn-down curve (see the Incidents Timeline). From all problems reported to AERI, we have just ~12% open, and the most frequent and urgent ones are solved.</p>

<p><img src="/Xtext/images/releasenotes/2_13_aeri_problem_status.png" alt="" /><br />
<img src="/Xtext/images/releasenotes/2_13_aeri_problem_resolution.png" alt="" /><br />
<img src="/Xtext/images/releasenotes/2_13_aeri_incidents_timeline.png" alt="" /></p>

<h2 id="improved-developer-contribution-support">Improved Developer Contribution Support</h2>

<p>Setting up a developer workspace has never been so easy! We have reviewed and updated our Oomph Setup which allows you to create an Eclipse development environment for Xtext with a few clicks. Just get the <a href="https://www.eclipse.org/downloads/">Eclipse Installer</a>, go to Advanced Mode and select the Xtext subprojects you are working with. Let the Installer do the rest of the work while getting a fresh coffee.</p>

<h3 id="execution-environment">Execution Environment</h3>

<p>Minimal requirements are:</p>
<ul>
  <li>Java 8</li>
  <li>Eclipse Luna</li>
  <li>EMF 2.10</li>
  <li>Guice 3.0</li>
</ul>

<p>Xtext has been tested also on Eclipse Oxygen.1a and Eclipse Photon M2.</p>

<h2 id="some-words-on-java-9">Some words on Java 9</h2>

<p>Java 9 Support in Eclipse Oxygen 1a and Xtext 2.13 is not yet in a perfect state. To be able to run mwe workflows you need either to remove <code>org.objectweb.asm</code> from the mwe classpath (adapting manifest or build.properties) or install ASM 6.0 from the latest Eclipse Orbit repositories. The Compilation of Xtext projects with Java 9 is terrible slow due to a know <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=526209">bug</a> in JDT. So using Xtext 2.13 and Java 9 in production should be considered thrice and is not recommended. Setting the compiler level to 1.8 mitigates the performance issue slightly.</p>

<h2 id="fixed-issues">Fixed Issues</h2>

<p>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:</p>

<ul>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
  </li>
  <li>
    <p><a href="https://github.com/search?utf8=%E2%9C%93&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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
  </li>
  <li>
    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.13&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.13&amp;query_format=advanced&amp;status_whiteboard=v2.13&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
  </li>
</ul>


				  </section>
				
			
		</div>
  	</div>
</div>
    
    <footer class="site-footer">
  <div id="extra">
    <div class="inner">
      <div class="container">
        <div class="row">
          <div class="span6">
            <h3 class="footer-links-header">Quick Links</h3>
            <ul class="footer-links clearfix">
              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
            </ul>
            <ul class="footer-links clearfix">
              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
            </ul>
          </div>
          <div class="span6">
            <!-- Social Media Links -->
            <h3 class="footer-links-header"">Social Media</h3>
            <ul class="footer-links clearfix">
              <li>
                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
  <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
  <!-- Le javascript
      ================================================== -->
  <!-- Placed at the end of the document so the pages load faster -->
  
  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
  <script src="/Xtext/js/bootstrap.min.js"></script>
  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
  <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
  <!--script type="text/javascript">
    var _gaq = _gaq || [];  
      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
    _gaq.push([ '_trackPageview' ]);
    (function() {
      var ga = document.createElement('script');
      ga.type = 'text/javascript';
      ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl'
          : 'http://www')
          + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(ga, s);
    })();
  </script-->
  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
  <script>
      $(function() {
        $('#coverflow').coverflow({
          active : 1,
          visibleAside: 2,
          overlap : 0.5,
          scale : 0.9,
          angle : 20,
          trigger : {
            "itemfocus" : true,
            "swipe" : true,
            "mousewheel" : false
          }
        });
        $('#coverflow :hidden').toggle();
        $(window).resize(function() {
          $('#coverflow').coverflow();
        });
      });

  </script>
</footer>


  </body>

</html>
