Eclipse Scout Migration Guide

About This Document

This document describes all relevant changes from Eclipse Scout 24.1 to Eclipse Scout 24.2. If existing code has to be migrated, instructions are provided here.

The here described functionality has not yet been released and is part of an upcoming release.

Obtaining the Latest Version

Scout Runtime for Java

Scout Runtime artifacts for Java are distributed using Maven Central:

Usage example in the parent POM of your Scout application:

<dependency>
    <groupId>org.eclipse.scout.rt</groupId>
    <artifactId>org.eclipse.scout.rt</artifactId>
    <version>24.2.0-beta.2</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Scout Runtime for JavaScript

Scout Runtime artifacts for JavaScript are distributed using npm:

Usage example in your package.json:

{
  "name": "my-module",
  "version": "1.0.0",
  "devDependencies": {
    "@eclipse-scout/cli": "24.2.0-beta.2",
    "@eclipse-scout/releng": "^24.1.0"
  },
  "dependencies": {
    "@eclipse-scout/core": "24.2.0-beta.2",
    "jquery": "3.7.1"
  }
}

The pre-built Scout JavaScript assets are also available using a CDN (e.g. to be directly included in a html document): https://www.jsdelivr.com/package/npm/@eclipse-scout/core?path=dist

IDE Tooling (Scout SDK)

Scout officially supports IntelliJ IDEA and Eclipse for Scout Developers.

IntelliJ IDEA

You can download the Scout plugin for IntelliJ IDEA from the JetBrains Plugin Repository or you can use the plugins client built into IntelliJ IDEA. Please refer to the IntelliJ Help on how to install and manage plugins.

Eclipse

You can download the complete Eclipse IDE with Scout SDK included here:
Eclipse for Scout Developers

To install the Scout SDK into your existing Eclipse IDE, use this P2 update site:
https://download.eclipse.org/scout/releases

New Build & Runtime Requirements

Scout 25.1 requires at least the following:

  • Build and runtime of Scout 25.1 require Java 21 (Java 17 support has been dropped).

New version for Jakarta Activation and Jakarta Mail

For these dependencies the versions have been updated to the Jakarta EE 10 version:

  • Jakarta Activation 2.1

  • Jakarta Mail 2.1

As the groupId has been changed for these dependencies, exclusions for the older version com.sun.activation:jakarta.activation (resp. mail) have been added for other dependencies which did depend on these (maven duplicate-finder should point them out). Existing exclusions for jakarta.activation:jakarta.activation-api and org.eclipse.angus:angus-activation (resp. mail) should be removed for other dependencies (two new dependencies instead of one to differ between API and implementation).

Modules including dependencies to com.sun.activation:jakarta.activation should instead use org.eclipse.angus:angus-activation (same for mail) as dependency (which includes the API and implementation). If your implementation references implementation classes the package name needs to be adjusted (implementation has been moved).

ClientCallback renamed to UiCallback

org.eclipse.scout.rt.client.ui.desktop.ClientCallback has been renamed to org.eclipse.scout.rt.client.ui.desktop.hybrid.uicallback.UiCallback.

Furthermore, invoking TypeScript code from the client Java code has been simplified using org.eclipse.scout.rt.client.ui.desktop.hybrid.uicallback.UiCallbacks. See the UI Callback technical guide for more details.

Scout JS

FormField: use _computeEmpty instead of _updateEmpty

If a widget implements _updateEmpty it should now implement _computeEmpty instead. This guarantees that a property change event is triggered and the render function called, if there is any.