Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Scout/NewAndNoteworthy/3.10"

(M4 (planned: Friday, December 20))
(Diagnostic Servlet)
(38 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{ScoutPage|cat=Release 3.10}}
 
{{ScoutPage|cat=Release 3.10}}
  
This page shows what you need to know about the new Eclipse [[Scout/Release/Luna | Scout 3.10]] release shipped with Eclipse [[Luna]].
+
{{warning|Scout 3.10 is not an official Eclipse release|Scout 3.10 represents an inofficial/intermediate release. For this Scout version, no corresponding Eclipse release review exists. see [[Scout/NewAndNoteworthy/4.0]] for the latest version of the news}}
 +
 
 +
This page shows what you need to know about the Eclipse Scout 3.10 release. This release corresponds to the development of the Luna release up to the M5 milestone.
  
 
== M1 (Friday, August 23, 2013) ==
 
== M1 (Friday, August 23, 2013) ==
Bug Lists:
 
[https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Technology&list_id=6473399&product=Scout&query_format=advanced&target_milestone=3.10.0%20Luna&target_milestone=3.10.0%20M1&order=bug_status%2Cbug_id&query_based_on= 3.10.0M1],
 
[https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology&query_format=advanced&target_milestone=3.9.1%20RC1&product=Scout 3.9.1]
 
  
 
=== Scout is using GIT flow ===
 
=== Scout is using GIT flow ===
 
{{Bug|411769}}
 
{{Bug|411769}}
  
Scout is using GIT flow with 3.10 as described [[Scout/Contribution_Guidelines | here]]. We also try to make contributions more efficient and update our [[Scout/Contributions_for_Scout_Committers | documentation for committers]]
+
Scout is now using GIT flow with 3.10 as described [[Scout/Contribution_Guidelines | here]]. We also try to make contributions more efficient and update our [[Scout/Contributions_for_Scout_Committers | documentation for committers]]
  
 
=== New french translations for ScoutTexts ===
 
=== New french translations for ScoutTexts ===
{{Bug|414392}} - New ScoutTexts entries were proposed for French language (fr and fr_BE).
+
{{Bug|414392}} - New translations were added for the French language (ScoutTexts entries for fr and fr_BE).
  
The only change is in the fr_BE language. Beside this one, 14 entries were added to the French language (e.g. missing translations until now). Theses translations will be used in all Scout applications deployed in French, unless the text entry is overridden in the project.
+
There is one minor correction for the fr_BE language. Additionally 14 translations were added to the French language (missing until now). These translations will be used in all Scout applications deployed in French, unless the text entry is overridden in the project.
  
 
=== Tree Box with support for auto check of child nodes  ===
 
=== Tree Box with support for auto check of child nodes  ===
Line 22: Line 21:
 
{{Bug|368107}}  
 
{{Bug|368107}}  
  
AbstractTreeBox provides a new configuration method getConfiguredAutoCheckChildNodes that will cause the auto check / uncheck of all childs nodes if their parent node is checked / unchecked.
+
A a new configuration method for the treebox was introduced to automatically check/uncheck all child nodes when the parent node is checked / unchecked: AbstractTreeBox now provides getConfiguredAutoCheckChildNodes.
  
=== Scout SDK: Eclipse 3.6 not supported anymore ===
+
[[File:ScoutTreeboxExample.png]]
Scout SDK does not run with Eclipse 3.6 anymore. Scout Runtime is still compatible to eclipse 3.6. Please upgrade your eclipse IDE!
+
  
 
=== Scout SDK: Tooling Functionality for F2 ===
 
=== Scout SDK: Tooling Functionality for F2 ===
Line 33: Line 31:
  
 
[[Image:addF2SupportToScoutApplication.jpg|400px]]
 
[[Image:addF2SupportToScoutApplication.jpg|400px]]
 +
 +
 +
=== Scout SDK: Eclipse 3.6 not supported anymore ===
 +
Scout SDK does not run with Eclipse 3.6 anymore. Scout Runtime is still compatible to eclipse 3.6. Please upgrade your eclipse IDE! See [[Scout/Release/Luna#Target_Environment | here]] for supported eclipse versions.
  
 
== M2 (Friday, October 04) ==
 
== M2 (Friday, October 04) ==
  
=== Rayo Look and Feel: custom XML ===
+
=== Swing: Custom XML for Rayo Look and Feel ===
 
{{Bug|417579}} and {{Bug|408611}}:
 
{{Bug|417579}} and {{Bug|408611}}:
There is an addition in the Scout RT Swing API allowing to provide a custom configurations for Look and Feels. This new extension point is used by Rayo: it is now possible to exchange the XML. See {{ScoutLink|Concepts|Rayo#Use_a_custom_XML|Use a custom XML with the Rayo Look and Feel}}.
+
There is an addition in the Scout RT Swing API allowing to provide a custom configuration for Look and Feels. This new extension point is used by Rayo: it is now possible to exchange the XML (e.g. to use different colors). See {{ScoutLink|Concepts|Rayo#Use_a_custom_XML|Use a custom XML with the Rayo Look and Feel}}.
 
+
=== Minor API Enhancements ===
+
{{Bug|416848}} ServiceTunnelServlet
+
  
{{Bug|416862}} Scheduler
+
=== Enhancement of SWT Look and Feel Extension Point ===
 
+
=== Enhancement of SWT look and feel extension point ===
+
 
{{Bug|407261}} The Look and Feel extension point for SWT now has a new property for setting the background color of disabled fields (color.background.disabled). Setting the foreground color of disabled fields (color.forground.disabled) has already been available.
 
{{Bug|407261}} The Look and Feel extension point for SWT now has a new property for setting the background color of disabled fields (color.background.disabled). Setting the foreground color of disabled fields (color.forground.disabled) has already been available.
 +
  
 
[[Image:Swtlookandfeelextensionpoint.PNG|600px]]
 
[[Image:Swtlookandfeelextensionpoint.PNG|600px]]
 
  
 
=== SDK: Test Suite and CBI ===
 
=== SDK: Test Suite and CBI ===
Line 56: Line 53:
 
   mvn clean install -Pinclude-sdktest
 
   mvn clean install -Pinclude-sdktest
  
Sidenote: for the moment we have some tests failing. This is probably due to a discrepancy between running tests from eclipse and running test from maven. We will work on this.
+
=== Minor API Enhancements ===
 +
With {{Bug|416848}} and {{Bug|416862}} we introduce some minor API changes to make ServiceTunnelServlet and Scheduler more extensible.
  
 
== M3 (Friday, November 15) ==
 
== M3 (Friday, November 15) ==
  
=== Service tunnel plugin ===
+
=== Service Tunnel Plugin ===
With bug {{Bug|405353}}, we have introduced a new plugin: <tt>org.eclipse.scout.rt.servicetunnel</tt>
+
  
This plugin contains the classes handling the service tunnel (client-server {{ScoutLink|Concepts|Communication|communication}}) that were previously contained in the <tt>org.eclipse.scout.rt.client plugin</tt>. As a result the client plugin has a dependency on the new servicetunnel plugin. If you work with plugin based product file (every project created by the Scout SDK does) you should add the new plugin as new dependency in your client product files. The [https://bugs.eclipse.org/bugs/show_bug.cgi?id=405353#c5 migration notes] in bugzilla contained additional information that will help you to fix the depreciation warnings.
+
[[Image:Scout_Servicetunnel_Class_Diagram.png|thumb|right|500px|Scout service tunnel classes.]]
  
The service tunnel classes are now independent from the client. This allows, for example to reuse this bundle in the server application to do server-server instead of client-server communication.
+
With bug {{Bug|405353}}, we have introduced a new plugin: <tt>org.eclipse.scout.rt.servicetunnel</tt> to allow server-server communication in the same way as the existing client-server communication.
  
[[Image:Scout_Servicetunnel_Class_Diagram.png|thumb|right|200px|Scout service tunnel classes.]]
+
This new plugin contains now the classes handling the service tunnel (client-server {{ScoutLink|Concepts|Communication|communication}}) that were previously contained in the <tt>org.eclipse.scout.rt.client</tt> plugin. The service tunnel classes are now completly independent from the scout client and can therefore be reused for server-server communication.
 +
 
 +
As a result the client plugin has a new dependency on the new servicetunnel plugin. If you work with plugin based product file (every project created by the Scout SDK does) you will have to add the new plugin as new dependency in your client product files. The [https://bugs.eclipse.org/bugs/show_bug.cgi?id=405353#c5 migration notes] in bugzilla contained additional information that will help you to fix the depreciation warnings.
  
 
In the client plugin you should now consider {{ScoutJavadoc|IClientServiceTunnel|I}} and {{ScoutJavadoc|ClientServiceTunnel|C}} when you want to extend the service tunnel mechanism.
 
In the client plugin you should now consider {{ScoutJavadoc|IClientServiceTunnel|I}} and {{ScoutJavadoc|ClientServiceTunnel|C}} when you want to extend the service tunnel mechanism.
  
 
In the service tunnel plugin, the architecture has also evolved: <tt>HttpBackgroundJob</tt> does not exist anymore. Instead there are {{ScoutJavadoc|HttpBackgroundExecutable|C}} (runnable which is executed by a Job) and {{ScoutJavadoc|HttpBackgroundExecutor|C}} (composite which holds a Job and an HttpBackgroundExecutable together). In the service tunnel plugin, you will also find the abstract classes you can extend for you own use case (for example {{ScoutJavadoc|AbstractHttpServiceTunnel<T extends ISession>|C}} can be used as parent class for a <tt>ServerHttpServiceTunnel</tt>).
 
In the service tunnel plugin, the architecture has also evolved: <tt>HttpBackgroundJob</tt> does not exist anymore. Instead there are {{ScoutJavadoc|HttpBackgroundExecutable|C}} (runnable which is executed by a Job) and {{ScoutJavadoc|HttpBackgroundExecutor|C}} (composite which holds a Job and an HttpBackgroundExecutable together). In the service tunnel plugin, you will also find the abstract classes you can extend for you own use case (for example {{ScoutJavadoc|AbstractHttpServiceTunnel<T extends ISession>|C}} can be used as parent class for a <tt>ServerHttpServiceTunnel</tt>).
 
  
 
=== TablePageData Dto ===
 
=== TablePageData Dto ===
Line 115: Line 113:
 
With {{Bug|421217}} scout upgrades org.apache.batik from 1.6 to 1.7. This is because batik was upgraded in the platform (see [[http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M3-201310302000/news/#Platform]]. The dependencies in the scout plugins remain the same (still compatible with batik 1.6), however the default installed version when creating a new project is batik 1.7.
 
With {{Bug|421217}} scout upgrades org.apache.batik from 1.6 to 1.7. This is because batik was upgraded in the platform (see [[http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M3-201310302000/news/#Platform]]. The dependencies in the scout plugins remain the same (still compatible with batik 1.6), however the default installed version when creating a new project is batik 1.7.
  
== M4 (planned: Friday, December 20) ==
+
== M4 (Friday, December 20) ==
  
 
=== Removal of Legacy Functionality ===
 
=== Removal of Legacy Functionality ===
Line 121: Line 119:
 
* With {{Bug|421586}} Deprecated Code for 3.10 will be removed
 
* With {{Bug|421586}} Deprecated Code for 3.10 will be removed
 
* With {{Bug|422055}} The Legacy Text Fragment is removed
 
* With {{Bug|422055}} The Legacy Text Fragment is removed
* With {{Bug|422052}} Legacy SQL Support in Scout Client will be removed in the next release
+
* With {{Bug|403310}} Scout Client Testing Framework will be removed (To be replaced with junit based integration tests)
* With {{Bug|403310}} Scout Client Testing Framework will be removed (?)
+
* With {{Bug|422052}} Legacy SQL Support in Scout Client will be removed in the next release (Scout 3.11)
 +
 
 +
=== Generics in ICodeType, ICode, ILookupRow, ILookupService, ICodeRow ===
 +
 
 +
With {{Bug|420491}} several JRE 1.3 relevant code will be replaced with JRE 1.6+ implementations.
 +
 
 +
ICodeType, ICode, ILookupRow, ILookupService, ICodeRow and all its implementations become generic.
 +
Several (return-) parameters will be changed from array to typed lists.
 +
SmartFields allowing custom text become its own field ‘ProposalField’. So the ‘allowCustomText’ member will be removed from ISmartField. The lookupCall and codeType members on IContentAssistField (common super class of ISmartField and IProposalField) will be typed.
  
 
=== Multiline Support for RadioButton and CheckBox ===
 
=== Multiline Support for RadioButton and CheckBox ===
With {{Bug|419011}} and {{Bug|419015}} RadioButton and CheckBox now support multiline labels. Try it via
+
With {{Bug|419011}} and {{Bug|419015}} RadioButton and CheckBox now support multiline labels.  
 +
 
 +
 
 +
 
 +
Try it via
 
<source lang="java">
 
<source lang="java">
 
public class MultilineCheckboxField extends AbstractCheckBox {
 
public class MultilineCheckboxField extends AbstractCheckBox {
Line 141: Line 151:
 
</source>
 
</source>
  
=== Number Fields ===
+
=== Number Fields and Columns ===
 +
With {{Bug|422120}}, {{Bug|422160}}, {{Bug|422163}}, {{Bug|423163}} issues with number fields and columns were solved. In addition to the reported problems with integer number fields, similar issues were fixed for the decimal number fields. Further problems with these number fields were fixed and the API for number fields and columns was consolidated.
 +
 
 +
Consider these changes for migration:
 +
 
 +
''Consistent Rounding''
 +
* There is a new property '''roundingMode''' for all number fields and columns which is used for formatting and parsing. When set to ROUND_UNNECESSARY the parsing of GUI-text-input accepts only values that can be assigned without rounding to the field's generic type and respect the maxFractionDigits property for decimal number fields. (Old parsing behavior was: truncating for AbstractIntegerField and AbstractLongField; rounding for decimal number fields; exception for AbstractBigIntegerField for fraction digits.) Default is ROUND_UNNECESSARY for integer number fields and columns and ROUND_HALF_UP for decimal number fields and columns. (Before the rounding behavior for decimal fields and columns was ROUND_HALF_EVEN.)
 +
 
 +
''Consistent API''
 +
* IDecimalField now extends INumberField. The UI Interfaces ISwingScoutDecimalField, ISWTScoutDecimalField and IRwtScoutDecimalField together with their implementations were removed.
 +
* IDecimalColumn now extends INumberColumn.
 +
* AbstractDecimalField is now a Subclass of AbstractNumberField, hence all changes mentioned below for AbstractNumberField apply as well for AbstractDecimalField.
 +
* AbstractDecimalColumn is now a Subclass of AbstractNumberColumn, hence all changes mentioned below for AbstractNumberColumn apply as well for AbstractDecimalColumn.
 +
* INumberField.setFormat(DecimalFormat): parameter's type changed from String to DecimalFormat
 +
* INumberField.getFormat(): return type changed from String to DecimalFormat
 +
* AbstractNumberField.getConfiguredFormat() is deprecated, for setting the format override initConfig() and call setFormat(DecimalFormat)
 +
* AbstractNumberField.createNumberFormat() is deprecated, use getFormat() instead
 +
* AbstractDoubleField.getConfiguredMinimumValue() is deprecated, use getConfiguredMinValue() instead
 +
* AbstractDoubleField.getConfiguredMaximumValue() is deprecated, use getConfiguredMaxValue() instead
 +
* AbstractIntegerField.getConfiguredMinimumValue() is deprecated, use getConfiguredMinValue() instead
 +
* AbstractIntegerField.getConfiguredMaximumValue() is deprecated, use getConfiguredMaxValue() instead
 +
* AbstractLongField.getConfiguredMinimumValue() is deprecated, use getConfiguredMinValue() instead
 +
* AbstractLongField.getConfiguredMaximumValue() is deprecated, use getConfiguredMaxValue() instead
 +
* Return value of AbstractBigDecimalField.getConfiguredMinValue() changed from Double to BigDecimal (For overrides it is recommended to use BigDecimal's String-constructor.)
 +
* Return value of AbstractBigDecimalField.getConfiguredMaxValue() changed from Double to BigDecimal (For overrides it is recommended to use BigDecimal's String constructor.)
 +
* Return value of AbstractBigIntegerField.getConfiguredMinValue() changed from Long to BigInteger (For overrides it is recommended to use BigInteger's String constructor.)
 +
* Return value of AbstractBigIntegerField.getConfiguredMaxValue() changed from Long to BigInteger (For overrides it is recommended to use BigInteger's String constructor.)
 +
* INumberColumn.setNumberFormat(NumberFormat) is deprecated, use setFormat(DecimalFormat) instead
 +
* INumberColumn.setFormat(DecimalFormat): parameter's type changed from String to DecimalFormat
 +
* INumberColumn.getFormat(): return type changed from String to DecimalFormat
 +
* AbstractNumberColumn.getConfiguredFormat() is deprecated, for setting the format override initConfig() and call setFormat(DecimalFormat)
 +
 
 +
''Consistent semantics for format setters''
 +
* New: Number fields and columns hold an internal DecimalFormat instance. All convenience setters and getters for DecimalFormat's properties (e.g. setGroupingUsed(boolean), isGroupingUsed() delegate to the internal instance. (Old behavior for the columns was: If a format was set, this would have priority over the convenience properties.)
 +
 
 +
''Character limit in UI''
 +
* The fix character limit (60 chars swing, 32 chars SWT and RAP) for all number fields was replaced by a default for AbstractNumberField.getConfiguredMaxValue() and AbstractNumberField.getConfiguredMinValue(). These defaults are set to the limits of the generic type where such a limit exists and +-999999999999999999999999999999999999999999999999999999999999 for AbstractBigIntegerField and AbstractBigDecimalField.
 +
 
 +
=== Diagnostic Servlet ===
 +
With {{Bug|423598}} Eclipse Scout has now a {{ScoutLink|Concepts|Servlets#Diagnostic_Servlet|diagnostic servlet}}. This creates an html page with diagnostic information like JVM Memory allocation and cpu architecture. Its also possible to add diagnostic information from any class entity. If an Entity want to provide diagnostic status info it has to implement org.eclipse.scout.rt.server.admin.diagnostic.IDiagnostic and has to register itself at the DiagnosticFactory:
 +
 
 +
org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticFactory.addDiagnosticStatusProvider()
 +
org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticFactory.removeDiagnosticStatusProvider()
 +
 
 +
Here a preview how it looks like:
 +
[[File:Eclipse_Scout-LunaM4-Diagnostics.png]]
 +
 
 +
== M5 (Friday, January 31, 2014) ==
 +
 
 +
=== SDK: Support for more Property Types ===
 +
{{Bug|422163}}
 +
 
 +
The [[Scout/SDK/Object_Properties_View | Object Property View]] provides support for more property types that exist in the Scout Runtime:
 +
* Drag & Drop Types
 +
* Composer Attribute Types
 +
* Rounding Mode for NumberFields
 +
* Min- & Max-Values for BigDecimal- and BigInteger-Fields
 +
 
 +
=== SDK: Product Launchers improved ===
 +
{{Bug|414535}}
 +
 
 +
The Scout SDK now finds all .product files in the workspace which gives you more flexibility on how to organize your projects. You can therefore configure each product file as a product launcher. Furthermore links to the web pages are provided for RAP and Server products (when the products are running).
 +
 
 +
[[Image:ScoutProductLauncherNews.png|400px]]
 +
 
 +
 
 +
=== SDK: Create Elements without Scout Explorer ===
 +
 
 +
For some Elements it is no longer required to switch to the Scout Explorer and then drill down to the correct nodes. You can create them directly by using a key stroke:
 +
* By typing Ctrl+Space within a [[Scout/Concepts/CodeType | CodeType]] you can directly create a new nested [[Scout/Concepts/Code | Code]].
 +
* By typing Ctrl+Space in an NLS context you can create new translations.
 +
* Typing Ctrl+N and then searching for "Scout" provides access to the wizard for creating [[Scout/Concepts/CodeType | CodeTypes]], [[Scout/Concepts/LookupCall | LookupCalls]], [[Scout/Concepts/Page | Pages]], [[Scout/Concepts/Form | Forms]], [[Scout/Concepts/SearchForm | SearchForms]] and Services.
  
== M5 (planned: Friday, February 07, 2014) ==
+
[[Image:ScoutNlsNewEntry.png|400px]]  [[Image:ScoutNewWizards.png|400px]]
  
== M6 (planned: Friday, March 22) ==
+
=== SDK: Choose ServerSessions for Services ===
 +
{{Bug|421985}}
  
== M7 (planned: Friday, May 10) ==
+
When creating Services it is possible to choose which ServerSession that should be used in the registration of the service.
  
== RC1 (planned: Friday, May 24) ==
+
[[Image:ScoutChooseServerSession.png|400px]]
  
== RC2 (planned: Friday, May 31) ==
+
=== SDK: Support for @ClassId Annotation ===
 +
{{Bug|422960}}
  
== RC3 (planned: Friday, June 07) ==
+
For classes that implement the new ITypeWithClassId interface a @ClassId annotation can be added. This can be done for a specific class only by using the Quick Assist (Ctrl+1) or for an entire bundle by using the corresponding context menu on a Client-, Shared- or Server node in the Scout Explorer.
  
== RC4 (planned: Friday, June 14) ==
+
There also exists an option (Window->Preferences->Scout) to automatically create this annotation when an element is created with the Scout SDK.
  
 
== Bugfixes and Change Request Overview ==
 
== Bugfixes and Change Request Overview ==

Revision as of 15:13, 9 October 2014

The Scout documentation has been moved to https://eclipsescout.github.io/.

Warning2.png
Scout 3.10 is not an official Eclipse release
Scout 3.10 represents an inofficial/intermediate release. For this Scout version, no corresponding Eclipse release review exists. see Scout/NewAndNoteworthy/4.0 for the latest version of the news


This page shows what you need to know about the Eclipse Scout 3.10 release. This release corresponds to the development of the Luna release up to the M5 milestone.

M1 (Friday, August 23, 2013)

Scout is using GIT flow

bug 411769

Scout is now using GIT flow with 3.10 as described here. We also try to make contributions more efficient and update our documentation for committers

New french translations for ScoutTexts

bug 414392 - New translations were added for the French language (ScoutTexts entries for fr and fr_BE).

There is one minor correction for the fr_BE language. Additionally 14 translations were added to the French language (missing until now). These translations will be used in all Scout applications deployed in French, unless the text entry is overridden in the project.

Tree Box with support for auto check of child nodes

bug 368107

A a new configuration method for the treebox was introduced to automatically check/uncheck all child nodes when the parent node is checked / unchecked: AbstractTreeBox now provides getConfiguredAutoCheckChildNodes.

ScoutTreeboxExample.png

Scout SDK: Tooling Functionality for F2

bug 409468

F2 is a simple update manager for Eclipse or Java based applications that can be downloaded from the eclipse marketplace. Scout SDK provides a new technology checkbox to help integrating F2 into your Scout application. A tutorial is provided here.

AddF2SupportToScoutApplication.jpg


Scout SDK: Eclipse 3.6 not supported anymore

Scout SDK does not run with Eclipse 3.6 anymore. Scout Runtime is still compatible to eclipse 3.6. Please upgrade your eclipse IDE! See here for supported eclipse versions.

M2 (Friday, October 04)

Swing: Custom XML for Rayo Look and Feel

bug 417579 and bug 408611: There is an addition in the Scout RT Swing API allowing to provide a custom configuration for Look and Feels. This new extension point is used by Rayo: it is now possible to exchange the XML (e.g. to use different colors). See The Scout documentation has been moved to https://eclipsescout.github.io/..

Enhancement of SWT Look and Feel Extension Point

bug 407261 The Look and Feel extension point for SWT now has a new property for setting the background color of disabled fields (color.background.disabled). Setting the foreground color of disabled fields (color.forground.disabled) has already been available.


Swtlookandfeelextensionpoint.PNG

SDK: Test Suite and CBI

bug 397542 We have added the possibility to run the SDK Test suite from our maven Build. Because these tests require an UI Layer, they are not activated by default (analog to our UiTests in the RT). To activate them, run the build with the profile include-sdktest.

 mvn clean install -Pinclude-sdktest

Minor API Enhancements

With bug 416848 and bug 416862 we introduce some minor API changes to make ServiceTunnelServlet and Scheduler more extensible.

M3 (Friday, November 15)

Service Tunnel Plugin

Scout service tunnel classes.

With bug bug 405353, we have introduced a new plugin: org.eclipse.scout.rt.servicetunnel to allow server-server communication in the same way as the existing client-server communication.

This new plugin contains now the classes handling the service tunnel (client-server The Scout documentation has been moved to https://eclipsescout.github.io/.) that were previously contained in the org.eclipse.scout.rt.client plugin. The service tunnel classes are now completly independent from the scout client and can therefore be reused for server-server communication.

As a result the client plugin has a new dependency on the new servicetunnel plugin. If you work with plugin based product file (every project created by the Scout SDK does) you will have to add the new plugin as new dependency in your client product files. The migration notes in bugzilla contained additional information that will help you to fix the depreciation warnings.

In the client plugin you should now consider The Scout documentation has been moved to https://eclipsescout.github.io/. and The Scout documentation has been moved to https://eclipsescout.github.io/. when you want to extend the service tunnel mechanism.

In the service tunnel plugin, the architecture has also evolved: HttpBackgroundJob does not exist anymore. Instead there are The Scout documentation has been moved to https://eclipsescout.github.io/. (runnable which is executed by a Job) and The Scout documentation has been moved to https://eclipsescout.github.io/. (composite which holds a Job and an HttpBackgroundExecutable together). In the service tunnel plugin, you will also find the abstract classes you can extend for you own use case (for example The Scout documentation has been moved to https://eclipsescout.github.io/. can be used as parent class for a ServerHttpServiceTunnel).

TablePageData Dto

bug 412752 introduced a new type of transfert object for The Scout documentation has been moved to https://eclipsescout.github.io/.: the The Scout documentation has been moved to https://eclipsescout.github.io/. objects. Similar to The Scout documentation has been moved to https://eclipsescout.github.io/. it contains the content of the page that comes from the server to the client. Like for the FormData the PageData is linked with the The Scout documentation has been moved to https://eclipsescout.github.io/. annotation:

@PageData(PersonTablePageData.class)
public class PersonTablePage extends AbstractPageWithTable<Table> {
  //... content of the page
}

bug 419138: in the client plugin-in, in the The Scout documentation has been moved to https://eclipsescout.github.io/. event (new event that replace The Scout documentation has been moved to https://eclipsescout.github.io/.) it is possible to import the pageData:

@Override
protected void execLoadData(SearchFilter filter) throws ProcessingException {
  PersonSearchFormData formData = (PersonSearchFormData) filter.getFormData();
  if (formData == null) {
    formData = new PersonSearchFormData();
  }
 
  PersonTablePageData pageData = SERVICES.getService(IStandardOutlineService.class).getPersonTableData(formData);
  importPageData(pageData);
}

bug 419140: the The Scout documentation has been moved to https://eclipsescout.github.io/. of Scout also offer support to select into TablePage data. For example:

SQL.selectInto("SELECT person_nr, last_name, first_name FROM person INTO :{personNr}, :{lastName}, :{firstName}", pageData);

For your table field, if you decide to switch your The Scout documentation has been moved to https://eclipsescout.github.io/. from array based table data to bean based table data, the SQL support provides you the same possibilites (holder, input bind, output bind, filter...).

bug 418997: the SDK was modified to take care of this modification. When a new Table page is generated, the SDK can also generate the corresponding TablePageData.

ClientNotification - SingleUserFilter

With bug 408551, the default value of SingleUserFilter's isMulticast was changed from false to true.

Menu Mnemonics for SWT

With bug 419831, mnemonics for menus are working with SWT. When declaring a menu with an ampersand (e.g. "&File") the "F" character gets underlined. When pressing "alt+F", the menu will be selected.

Upgrade to org.apache.batik 1.7 in Scout RT Feature

With bug 421217 scout upgrades org.apache.batik from 1.6 to 1.7. This is because batik was upgraded in the platform (see [[1]]. The dependencies in the scout plugins remain the same (still compatible with batik 1.6), however the default installed version when creating a new project is batik 1.7.

M4 (Friday, December 20)

Removal of Legacy Functionality

  • With bug 421586 Deprecated Code for 3.10 will be removed
  • With bug 422055 The Legacy Text Fragment is removed
  • With bug 403310 Scout Client Testing Framework will be removed (To be replaced with junit based integration tests)
  • With bug 422052 Legacy SQL Support in Scout Client will be removed in the next release (Scout 3.11)

Generics in ICodeType, ICode, ILookupRow, ILookupService, ICodeRow

With bug 420491 several JRE 1.3 relevant code will be replaced with JRE 1.6+ implementations.

ICodeType, ICode, ILookupRow, ILookupService, ICodeRow and all its implementations become generic. Several (return-) parameters will be changed from array to typed lists. SmartFields allowing custom text become its own field ‘ProposalField’. So the ‘allowCustomText’ member will be removed from ISmartField. The lookupCall and codeType members on IContentAssistField (common super class of ISmartField and IProposalField) will be typed.

Multiline Support for RadioButton and CheckBox

With bug 419011 and bug 419015 RadioButton and CheckBox now support multiline labels.


Try it via

public class MultilineCheckboxField extends AbstractCheckBox {
 
 @Override
 protected String getConfiguredLabel() {
  return "This is a \n multiline \n checkbox";
 }
 
 @Override
  protected int getConfiguredGridH() {
   return 2;
 }
}

Number Fields and Columns

With bug 422120, bug 422160, bug 422163, bug 423163 issues with number fields and columns were solved. In addition to the reported problems with integer number fields, similar issues were fixed for the decimal number fields. Further problems with these number fields were fixed and the API for number fields and columns was consolidated.

Consider these changes for migration:

Consistent Rounding

  • There is a new property roundingMode for all number fields and columns which is used for formatting and parsing. When set to ROUND_UNNECESSARY the parsing of GUI-text-input accepts only values that can be assigned without rounding to the field's generic type and respect the maxFractionDigits property for decimal number fields. (Old parsing behavior was: truncating for AbstractIntegerField and AbstractLongField; rounding for decimal number fields; exception for AbstractBigIntegerField for fraction digits.) Default is ROUND_UNNECESSARY for integer number fields and columns and ROUND_HALF_UP for decimal number fields and columns. (Before the rounding behavior for decimal fields and columns was ROUND_HALF_EVEN.)

Consistent API

  • IDecimalField now extends INumberField. The UI Interfaces ISwingScoutDecimalField, ISWTScoutDecimalField and IRwtScoutDecimalField together with their implementations were removed.
  • IDecimalColumn now extends INumberColumn.
  • AbstractDecimalField is now a Subclass of AbstractNumberField, hence all changes mentioned below for AbstractNumberField apply as well for AbstractDecimalField.
  • AbstractDecimalColumn is now a Subclass of AbstractNumberColumn, hence all changes mentioned below for AbstractNumberColumn apply as well for AbstractDecimalColumn.
  • INumberField.setFormat(DecimalFormat): parameter's type changed from String to DecimalFormat
  • INumberField.getFormat(): return type changed from String to DecimalFormat
  • AbstractNumberField.getConfiguredFormat() is deprecated, for setting the format override initConfig() and call setFormat(DecimalFormat)
  • AbstractNumberField.createNumberFormat() is deprecated, use getFormat() instead
  • AbstractDoubleField.getConfiguredMinimumValue() is deprecated, use getConfiguredMinValue() instead
  • AbstractDoubleField.getConfiguredMaximumValue() is deprecated, use getConfiguredMaxValue() instead
  • AbstractIntegerField.getConfiguredMinimumValue() is deprecated, use getConfiguredMinValue() instead
  • AbstractIntegerField.getConfiguredMaximumValue() is deprecated, use getConfiguredMaxValue() instead
  • AbstractLongField.getConfiguredMinimumValue() is deprecated, use getConfiguredMinValue() instead
  • AbstractLongField.getConfiguredMaximumValue() is deprecated, use getConfiguredMaxValue() instead
  • Return value of AbstractBigDecimalField.getConfiguredMinValue() changed from Double to BigDecimal (For overrides it is recommended to use BigDecimal's String-constructor.)
  • Return value of AbstractBigDecimalField.getConfiguredMaxValue() changed from Double to BigDecimal (For overrides it is recommended to use BigDecimal's String constructor.)
  • Return value of AbstractBigIntegerField.getConfiguredMinValue() changed from Long to BigInteger (For overrides it is recommended to use BigInteger's String constructor.)
  • Return value of AbstractBigIntegerField.getConfiguredMaxValue() changed from Long to BigInteger (For overrides it is recommended to use BigInteger's String constructor.)
  • INumberColumn.setNumberFormat(NumberFormat) is deprecated, use setFormat(DecimalFormat) instead
  • INumberColumn.setFormat(DecimalFormat): parameter's type changed from String to DecimalFormat
  • INumberColumn.getFormat(): return type changed from String to DecimalFormat
  • AbstractNumberColumn.getConfiguredFormat() is deprecated, for setting the format override initConfig() and call setFormat(DecimalFormat)

Consistent semantics for format setters

  • New: Number fields and columns hold an internal DecimalFormat instance. All convenience setters and getters for DecimalFormat's properties (e.g. setGroupingUsed(boolean), isGroupingUsed() delegate to the internal instance. (Old behavior for the columns was: If a format was set, this would have priority over the convenience properties.)

Character limit in UI

  • The fix character limit (60 chars swing, 32 chars SWT and RAP) for all number fields was replaced by a default for AbstractNumberField.getConfiguredMaxValue() and AbstractNumberField.getConfiguredMinValue(). These defaults are set to the limits of the generic type where such a limit exists and +-999999999999999999999999999999999999999999999999999999999999 for AbstractBigIntegerField and AbstractBigDecimalField.

Diagnostic Servlet

With bug 423598 Eclipse Scout has now a The Scout documentation has been moved to https://eclipsescout.github.io/.. This creates an html page with diagnostic information like JVM Memory allocation and cpu architecture. Its also possible to add diagnostic information from any class entity. If an Entity want to provide diagnostic status info it has to implement org.eclipse.scout.rt.server.admin.diagnostic.IDiagnostic and has to register itself at the DiagnosticFactory:

org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticFactory.addDiagnosticStatusProvider() org.eclipse.scout.rt.server.admin.diagnostic.DiagnosticFactory.removeDiagnosticStatusProvider()

Here a preview how it looks like: Eclipse Scout-LunaM4-Diagnostics.png

M5 (Friday, January 31, 2014)

SDK: Support for more Property Types

bug 422163

The Object Property View provides support for more property types that exist in the Scout Runtime:

  • Drag & Drop Types
  • Composer Attribute Types
  • Rounding Mode for NumberFields
  • Min- & Max-Values for BigDecimal- and BigInteger-Fields

SDK: Product Launchers improved

bug 414535

The Scout SDK now finds all .product files in the workspace which gives you more flexibility on how to organize your projects. You can therefore configure each product file as a product launcher. Furthermore links to the web pages are provided for RAP and Server products (when the products are running).

ScoutProductLauncherNews.png


SDK: Create Elements without Scout Explorer

For some Elements it is no longer required to switch to the Scout Explorer and then drill down to the correct nodes. You can create them directly by using a key stroke:

  • By typing Ctrl+Space within a CodeType you can directly create a new nested Code.
  • By typing Ctrl+Space in an NLS context you can create new translations.
  • Typing Ctrl+N and then searching for "Scout" provides access to the wizard for creating CodeTypes, LookupCalls, Pages, Forms, SearchForms and Services.

ScoutNlsNewEntry.png ScoutNewWizards.png

SDK: Choose ServerSessions for Services

bug 421985

When creating Services it is possible to choose which ServerSession that should be used in the registration of the service.

ScoutChooseServerSession.png

SDK: Support for @ClassId Annotation

bug 422960

For classes that implement the new ITypeWithClassId interface a @ClassId annotation can be added. This can be done for a specific class only by using the Quick Assist (Ctrl+1) or for an entire bundle by using the corresponding context menu on a Client-, Shared- or Server node in the Scout Explorer.

There also exists an option (Window->Preferences->Scout) to automatically create this annotation when an element is created with the Scout SDK.

Bugfixes and Change Request Overview

The following list shows all Bugzilla Tickets which have been fixed for this release. The list also contains all new enhancements.

Migration Guidelines

Some features and bugfixes sometimes require a change of the API. If this has been the case for the new release then you'll find behind the link below a guideline how to migrate your scout application to the newest release.

The Scout documentation has been moved to https://eclipsescout.github.io/.

Back to the top