Christian Eugster
2018-06-29 08:02:34 UTC
Hi
I am following the tycho tutorial at http://www.vogella.com/tutorials/EclipseTycho/article.html. Up to chapter 12, everything went fine. Now I struggle with chapter 13. Exercise: Tycho build for SWTBot tests. With exception to the different names I followed exactly the steps described. I added the swtbot features as in 13.1, created a new plugin project and defined its dependencies as in 13.2, created a unit test according to 13.3, added the pom.xml as in 13.4, added the extraRequirement as in 13.5 and added the test module to the tests pom.xml.
Running the test gives me the following message on the command line:
...
Launching application org.eclipse.e4.ui.workbench.swt.E4Application...
***WARNING: Display must be created on main thread due to Cocoa restrictions.
An error has occurred. See the log file
/Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/work/data/.metadata/.log.
...
The respective log output in target/work/data/.metadata/.log is:
!SESSION 2018-06-29 09:44:53.250 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_172
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=de_CH
Framework arguments: -application org.eclipse.tycho.surefire.osgibooter.uitest -testproperties /Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/surefire.properties -testApplication org.eclipse.e4.ui.workbench.swt.E4Application -product herakles.rcp.product -nouithread
Command-line arguments: -data /Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/work/data -application org.eclipse.tycho.surefire.osgibooter.uitest -testproperties /Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/surefire.properties -testApplication org.eclipse.e4.ui.workbench.swt.E4Application -product herakles.rcp.product -nouithread
!ENTRY org.eclipse.equinox.app 0 0 2018-06-29 09:44:54.588
!MESSAGE Product herakles.rcp.product could not be found.
!ENTRY org.eclipse.swt.win32.win32.x86 2 0 2018-06-29 09:44:54.829
!MESSAGE Could not resolve module: org.eclipse.swt.win32.win32.x86 [97]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))"
!ENTRY org.eclipse.swt.gtk.linux.x86_64 2 0 2018-06-29 09:44:54.830
!MESSAGE Could not resolve module: org.eclipse.swt.gtk.linux.x86_64 [96]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86_64))"
!ENTRY org.eclipse.swt.win32.win32.x86_64 2 0 2018-06-29 09:44:54.830
!MESSAGE Could not resolve module: org.eclipse.swt.win32.win32.x86_64 [98]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86_64))"
!ENTRY org.eclipse.swt.gtk.linux.x86 2 0 2018-06-29 09:44:54.830
!MESSAGE Could not resolve module: org.eclipse.swt.gtk.linux.x86 [85]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86))"
!ENTRY org.eclipse.osgi 4 0 2018-06-29 09:44:54.830
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4533)
at org.eclipse.swt.SWT.error(SWT.java:4448)
at org.eclipse.swt.SWT.error(SWT.java:4419)
at org.eclipse.swt.widgets.Display.error(Display.java:1090)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:840)
at org.eclipse.swt.widgets.Display.create(Display.java:823)
at org.eclipse.swt.graphics.Device.<init>(Device.java:129)
at org.eclipse.swt.widgets.Display.<init>(Display.java:722)
at org.eclipse.swt.widgets.Display.<init>(Display.java:713)
at org.eclipse.swt.widgets.Display.getDefault(Display.java:1420)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.getApplicationDisplay(E4Application.java:131)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:146)
at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31)
at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:120)
at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
I must admit, that I added Eclipse SDK to the target due to an error before, that the dependency org.eclipse.ui.ide.application 0.0.0 could not be found.
Has anyone an idea, what's the problem here?
Thank you!
Christian
I am following the tycho tutorial at http://www.vogella.com/tutorials/EclipseTycho/article.html. Up to chapter 12, everything went fine. Now I struggle with chapter 13. Exercise: Tycho build for SWTBot tests. With exception to the different names I followed exactly the steps described. I added the swtbot features as in 13.1, created a new plugin project and defined its dependencies as in 13.2, created a unit test according to 13.3, added the pom.xml as in 13.4, added the extraRequirement as in 13.5 and added the test module to the tests pom.xml.
Running the test gives me the following message on the command line:
...
Launching application org.eclipse.e4.ui.workbench.swt.E4Application...
***WARNING: Display must be created on main thread due to Cocoa restrictions.
An error has occurred. See the log file
/Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/work/data/.metadata/.log.
...
The respective log output in target/work/data/.metadata/.log is:
!SESSION 2018-06-29 09:44:53.250 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_172
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=de_CH
Framework arguments: -application org.eclipse.tycho.surefire.osgibooter.uitest -testproperties /Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/surefire.properties -testApplication org.eclipse.e4.ui.workbench.swt.E4Application -product herakles.rcp.product -nouithread
Command-line arguments: -data /Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/work/data -application org.eclipse.tycho.surefire.osgibooter.uitest -testproperties /Users/christian/Projekte/Herakles/workspace-tycho/herakles/tests/herakles-rcp-it.tests/target/surefire.properties -testApplication org.eclipse.e4.ui.workbench.swt.E4Application -product herakles.rcp.product -nouithread
!ENTRY org.eclipse.equinox.app 0 0 2018-06-29 09:44:54.588
!MESSAGE Product herakles.rcp.product could not be found.
!ENTRY org.eclipse.swt.win32.win32.x86 2 0 2018-06-29 09:44:54.829
!MESSAGE Could not resolve module: org.eclipse.swt.win32.win32.x86 [97]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))"
!ENTRY org.eclipse.swt.gtk.linux.x86_64 2 0 2018-06-29 09:44:54.830
!MESSAGE Could not resolve module: org.eclipse.swt.gtk.linux.x86_64 [96]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86_64))"
!ENTRY org.eclipse.swt.win32.win32.x86_64 2 0 2018-06-29 09:44:54.830
!MESSAGE Could not resolve module: org.eclipse.swt.win32.win32.x86_64 [98]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86_64))"
!ENTRY org.eclipse.swt.gtk.linux.x86 2 0 2018-06-29 09:44:54.830
!MESSAGE Could not resolve module: org.eclipse.swt.gtk.linux.x86 [85]
Unresolved requirement: Require-Capability: eclipse.platform; filter:="(& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86))"
!ENTRY org.eclipse.osgi 4 0 2018-06-29 09:44:54.830
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4533)
at org.eclipse.swt.SWT.error(SWT.java:4448)
at org.eclipse.swt.SWT.error(SWT.java:4419)
at org.eclipse.swt.widgets.Display.error(Display.java:1090)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:840)
at org.eclipse.swt.widgets.Display.create(Display.java:823)
at org.eclipse.swt.graphics.Device.<init>(Device.java:129)
at org.eclipse.swt.widgets.Display.<init>(Display.java:722)
at org.eclipse.swt.widgets.Display.<init>(Display.java:713)
at org.eclipse.swt.widgets.Display.getDefault(Display.java:1420)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.getApplicationDisplay(E4Application.java:131)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:146)
at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31)
at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:120)
at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
I must admit, that I added Eclipse SDK to the target due to an error before, that the dependency org.eclipse.ui.ide.application 0.0.0 could not be found.
Has anyone an idea, what's the problem here?
Thank you!
Christian