Skip to content

Commit

Permalink
Merge pull request #1362 from eclipse/website-master
Browse files Browse the repository at this point in the history
Website master
  • Loading branch information
Karsten Thoms committed Dec 4, 2018
2 parents 5fe61a3 + f3508ae commit 3c1d99f
Show file tree
Hide file tree
Showing 5 changed files with 179 additions and 6 deletions.
37 changes: 37 additions & 0 deletions xtend-website/_posts/releasenotes/2018-12-04-version-2-16-0.md
@@ -0,0 +1,37 @@
---
layout: post
title: Xtend 2.16.0 Release Notes
date: 2018-12-04
categories: releasenotes
published: true
---

This release focuses on stability, performance and the compatibility with Eclipse 2018-12.

## Hover and Hyperlink on links in Javadoc comments

Inside Xtend source files, hovering over a link inside a Javadoc will now display the Javadoc comments in a hover pop-up. F3 is also supported on these links.

![Hover Example]({{site.baseurl}}/images/releasenotes/2_16_hover_javadoc_link.png)

## Triple-equals quickfix is now a multifix

Warnings of the type `The operator '!=' should be replaced by '!==' when null is one of the arguments.` could only be fixed one by one. The quickfix has been extended to allow fixing multiple issues at once.

## Deprecation of GWT

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).

## Outlook for 2.17

Java 11 Support, a Maven BOM and a new MWE version are planned for 2.17.

## Fixed Issues

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

* [Fixed GitHub issues](https://github.com/search?utf8=%E2%9C%93&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&type=Issues&ref=searchresults)

* [Closed Pull Requests](https://github.com/search?utf8=%E2%9C%93&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&type=Issues&ref=searchresults)

* [Fixed Eclipse Bugzilla tickets](https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Modeling&classification=Tools&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&f0=OP&f1=OP&f3=CP&f4=CP&known_name=Xtext%202.16&list_id=16618269&product=TMF&product=Xtend&query_based_on=Xtext%202.16&query_format=advanced&status_whiteboard=v2.16&status_whiteboard_type=allwordssubstr)
4 changes: 2 additions & 2 deletions xtend-website/documentation/204_activeannotations.md
Expand Up @@ -240,13 +240,13 @@ Therefore, careful testing and debugging of the processor is essential. It is be
<dependency>
<groupId>org.eclipse.xtend</groupId>
<artifactId>org.eclipse.xtend.core</artifactId>
<version>2.15.0</version>
<version>2.16.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.xtext</groupId>
<artifactId>org.eclipse.xtext.xbase.testing</artifactId>
<version>2.15.0</version>
<version>2.16.0</version>
<scope>test</scope>
</dependency>
```
Expand Down
8 changes: 4 additions & 4 deletions xtend-website/download.md
Expand Up @@ -52,7 +52,7 @@ If you already have a project, you need to add the Xtend library:
<dependency>
<groupId>org.eclipse.xtend</groupId>
<artifactId>org.eclipse.xtend.lib</artifactId>
<version>2.15.0</version>
<version>2.16.0</version>
</dependency>
```

Expand All @@ -62,7 +62,7 @@ and the Xtend compiler plugin:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.15.0</version>
<version>2.16.0</version>
<executions>
<execution>
<goals>
Expand All @@ -84,13 +84,13 @@ Here is a minimal Gradle build script using Xtend:

```groovy
plugins {
id "org.xtext.xtend" version "2.0.1"
id "org.xtext.xtend" version "2.0.2"
}
repositories.jcenter()
dependencies {
compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.15.0'
compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.16.0'
}
```

Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
136 changes: 136 additions & 0 deletions xtext-website/_posts/releasenotes/2018-12-04-version-2-16-0.md
@@ -0,0 +1,136 @@
---
layout: post
title: Xtext 2.16.0 Release Notes
date: 2018-12-04
categories: releasenotes
published: true
---

This release focuses on stability, performance and the compatibility with Eclipse 2018-12.

## Java 11 preparation

Java 11 has been released in September 2018 and [Xtext is in preparation](https://github.com/eclipse/xtext/issues/1182) 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:

* ASM 7: The ASM bytecode analysis and manipulation framework has been upgraded to the latest version 7.0.
* 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.
* Gradle: Xtext 2.16 builds against and uses Gradle 4.10.2 now.

## Testing

### Quickfix testing API

A new base class [`AbstractQuickfixTest`](https://github.com/eclipse/xtext-eclipse/blob/master/org.eclipse.xtext.ui.testing/src/org/eclipse/xtext/ui/testing/AbstractQuickfixTest.xtend) allows the definition of test cases for quickfixes. Quickfixes can be tested by using the method

```java
public void testQuickfixesOn(CharSequence model, String issueCode, Quickfix... quickfixes)
```

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 `Quickfix` testing instances. A testable Quickfix defines a label, a description and the expected resulting DSL text.

```xtend
@Data
protected static class Quickfix {
String label
String description
String result
}
```

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:

```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 {
}
''')
)
}
..
}}
```

## New Project Wizard

* The New Xtext Project wizard selects JUnit 5 as default now.
* _Maven_ build support: the `maven-clean-plugin` configuration in the parent `pom.xml` has been fixed.
* _Gradle_ build support: Upgrade to Gradle wrapper 4.10.2.

## Xbase Library

The Xbase library supports now accessors for two-dimensional arrays.

## Parallel Project Build Support

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.

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

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

This feature is _experimental_ for now.

## Language Server Support

### Upgrade to Eclipse LSP4J 0.6.0

Xtext 2.16 integrates Eclipse LSP4J version 0.6.0.

### Hierarchical Document Symbols

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

### Configurable Server Exit Behavior

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

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

## Minimal Target Platform

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).

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.

## Deprecation of GWT

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).

## Outlook for 2.17

Java 11 Support, a Maven BOM and a new MWE version are planned for 2.17

## A word on Tycho 1.3

Tycho 1.3 will be released a few days after the Xtext. So if you are keen on using it you can add `1.3.0-SNAPSHOT` as tycho version to your pom file and the tycho snapshot repository as well.

```xml
<pluginRepository>
<id>tycho-snapshots</id>
<url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
</pluginRepository>
```

## Fixed Issues

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:

* [Fixed GitHub issues](https://github.com/search?utf8=%E2%9C%93&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&type=Issues&ref=searchresults)

* [Closed Pull Requests](https://github.com/search?utf8=%E2%9C%93&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&type=Issues&ref=searchresults)

* [Fixed Eclipse Bugzilla tickets](https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Modeling&classification=Tools&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&f0=OP&f1=OP&f3=CP&f4=CP&known_name=Xtext%202.16&list_id=16618269&product=TMF&product=Xtend&query_based_on=Xtext%202.16&query_format=advanced&status_whiteboard=v2.16&status_whiteboard_type=allwordssubstr)

0 comments on commit 3c1d99f

Please sign in to comment.