I am working on the demo applications (more precisely on the minifigcreator.exe generated by the tycho build).
I got some wired error message:
Error
The original message is:
Unexpected
org.eclipse.scout.commons.StringUtility.isNullOrEmpty(Ljava/lang/CharSequence;)Z (NoSuchMethodError)
ProcessingException[ProcessingStatus[ERROR code=0 DesktopForm / Unexpected java.lang.NoSuchMethodError: org.eclipse.scout.commons.StringUtility.isNullOrEmpty(Ljava/lang/CharSequence;)Z]]
at org.eclipse.scout.rt.client.ui.form.AbstractFormHandler.onLoad(AbstractFormHandler.java:184)
at org.eclipse.scout.rt.client.ui.form.AbstractForm.loadStateInternal(AbstractForm.java:1293)
at org.eclipse.scout.rt.client.ui.form.AbstractForm.startInternal(AbstractForm.java:756)
at org.eclipsescout.demo.minifigcreator.client.ui.forms.DesktopForm.startView(DesktopForm.java:424)
at org.eclipsescout.demo.minifigcreator.client.ui.desktop.Desktop.execOpened(Desktop.java:47)
at org.eclipse.scout.rt.client.ui.desktop.AbstractDesktop$P_LocalDesktopExtension.desktopOpenedDelegate(AbstractDesktop.java:1768)
at org.eclipse.scout.rt.client.ui.desktop.AbstractDesktop$P_UIFacade.fireDesktopOpenedFromUI(AbstractDesktop.java:1856)
at org.eclipse.scout.rt.ui.swing.AbstractSwingEnvironment$2.runVoid(AbstractSwingEnvironment.java:453)
at org.eclipse.scout.rt.client.ClientJob.runStatus(ClientJob.java:189)
at org.eclipse.scout.rt.client.ClientJob.runTransactionWrapper(ClientJob.java:172)
at org.eclipse.scout.rt.client.ClientJob.run(ClientJob.java:159)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.NoSuchMethodError: org.eclipse.scout.commons.StringUtility.isNullOrEmpty(Ljava/lang/CharSequence;)Z
at org.eclipsescout.demo.minifigcreator.shared.minifig.part.PartUtility.calculateSummary(PartUtility.java:19)
at org.eclipsescout.demo.minifigcreator.client.ui.forms.DesktopForm.updateSummary(DesktopForm.java:136)
at org.eclipsescout.demo.minifigcreator.client.ui.forms.DesktopForm.reloadForm(DesktopForm.java:412)
at org.eclipsescout.demo.minifigcreator.client.ui.forms.DesktopForm$ViewHandler.execLoad(DesktopForm.java:419)
at org.eclipse.scout.rt.client.ui.form.AbstractFormHandler.onLoad(AbstractFormHandler.java:178)
... 11 more
After some research it turns out that the StringUtility has changed in the version 4.1 from scout. (commit 4e8f7b9).
The signature of isNullOrEmpty has changed from:
public static boolean isNullOrEmpty(String s)
to:
public static boolean isNullOrEmpty(CharSequence s)
A closer look at the tycho build tells me that the plugin is compiled with the wrong org.eclipse.scout.commons version:
{path_to_git_repo}\minifigcreator\org.eclipsescout.demo.minifigcreator.client>mvn clean install
[INFO] Scanning for projects...
[INFO] Computing target platform for MavenProject: org.eclipsescout.demo.minifigcreator:org.eclipsescout.demo.minifigcreator.client:4.0.100-SNAPSHOT @ {path_to_git_repo}\minifigcreator\org.eclipsescout.demo.minifigcreator.client\pom.xml
[INFO] Resolving dependencies of MavenProject: org.eclipsescout.demo.minifigcreator:org.eclipsescout.demo.minifigcreator.client:4.0.100-SNAPSHOT @ {path_to_git_repo}\minifigcreator\org.eclipsescout.demo.minifigcreator.client\pom.xml
[WARNING] The following locally built units have been used to resolve project dependencies:
[WARNING] org.eclipse.scout.service/4.1.0.20140826-1122
[WARNING] org.eclipse.scout.commons/4.1.0.20140828-1103
[WARNING] org.eclipse.scout.rt.client/4.1.0.20140919-0940
[WARNING] org.eclipse.scout.rt.shared/4.1.0.20140912-1513
[WARNING] org.eclipsescout.demo.minifigcreator.shared/4.1.0.201410151241
[WARNING] org.eclipse.scout.rt.servicetunnel/4.1.0.20140828-1103
[INFO] Resolving class path of MavenProject: org.eclipsescout.demo.minifigcreator:org.eclipsescout.demo.minifigcreator.client:4.0.100-SNAPSHOT @ {path_to_git_repo}\minifigcreator\org.eclipsescout.demo.minifigcreator.client\pom.xml
I do not know why tycho takes the liberty of using a newer version of some of the plugins, those versions are not available on the update site defined in the target platform.
We need to understand why and to come up with a fix!
Some ideas:
* adding a version range in the MANIFEST:.
Like this on the 4.0 branch (in the Require-Bundle section of the MANIFEST.MF):
org.eclipse.scout.rt.client;bundle-version="[4.0.0,4.1.0)"
* fixing the version in the target platform:
(and generate it with a tool like the targetplatform DSL).
But for the moment the demo apps consume the nightly build update site. This means a lot of target platform updates. I am not sure we want this.