I have an RCP application that I'm trying to update to a newer version. Selecting the update-site zip and walking through the Install/ Update wizard works fine. Before the restart dialog show pops up, I do see the following:
enter image description here
After restarting, I see framework exceptions, some panels/ UI elements not being able to load, and CoreExceptions. It's almost as if the plugins that are updated cannot be found/ resolved in the application anymore. I've checked the install plugins/ and features/ directory and they are in fact present. A subsequent restart resolves the issues.
Why do the new bundles not resolve after the Update/Install restart wizard?
This is what my base RCP application .product looks like:
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="RCP Application" uid="com.ibm.rcp.product" id="my.rcp.ide" application="org.eclipse.ui.ide.workbench" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true" autoIncludeRequirements="true">
<aboutInfo>
<image path="about/rcp.gif"/>
<text>
%blurb
</text>
</aboutInfo>
<configIni use="default">
</configIni>
<launcherArgs>
<programArgs>-showlocation
-pluginCustomization plugin_customization.ini
--launcher.defaultAction
openFile
--launcher.appendVmargs
</programArgs>
<programArgsLin>-vm jdk/bin/java
--launcher.GTK_version 3
</programArgsLin>
<programArgsMac>-vm ../Eclipse/jdk/Contents/Home/bin/java
</programArgsMac>
<programArgsWin>-vm jdk/bin/javaw
</programArgsWin>
<vmArgs>-Dosgi.requiredJavaVersion=11
-Dsun.java.command=Eclipse
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=11
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=false
-Xms256m
-Xmx2048m
</vmArgs>
<vmArgsMac>-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
</vmArgsMac>
</launcherArgs>
<windowImages i16=" ... my ... rcp ... icons"/>
<splash
location="my.rcp.product"
startupProgressRect="0,260,574,8"
startupMessageRect="10,235,320,20"
startupForegroundColor="0F62FE" />
<launcher name="myapp">
<linux icon="/icons/rcp.xpm"/>
<macosx icon="/icons/rcp.icns"/>
<win useIco="true">
<ico path="/icons/rcp.ico"/>
<bmp/>
</win>
</launcher>
<intro introId="org.eclipse.ui.intro.universal"/>
<vm>
</vm>
<plugins>
</plugins>
<features>
<feature id="my.rcp.feature" installMode="root"/>
...some eclipse features...
</features>
<configurations>
<plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="4" />
<plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
<property name="osgi.instance.area.default" value="#user.home/.workspace" />
<property name="eclipse.p2.skipMigrationWizard" value="true" />
</configurations>
<preferencesInfo>
<targetfile overwrite="false"/>
</preferencesInfo>
<cssInfo>
</cssInfo>
</product>
Related
I have a feature-based RCP Product.
When I export the product checking option Generate P2 Repository, it is not exported right.
It generates logs zip file but it does not have any error information.
It just has some information about warning and info.
I can export the product right when I don't check option Generate P2 Repository.
I am using eclipse 2020-06 and jdk11.
And I have start level configuration like the below.
<configurations>
<plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
</configurations>
And .log in workspace .metadata says like the below.
!ENTRY org.eclipse.pde.core 2 0 2022-04-29 15:17:04.122
!MESSAGE Compilation errors occurred during the operation. A zip file containing the build logs has been generated and placed at C:\Users\Administrator\workspace-2022-P6\tesw
Hope anyone could help me with this problem.
Thanks.
I am developing Eclipse RCP Application on a custom target platform that contains plugins of EMF, Sphinx, Artop and other features.
I am using Eclipse 2021-09 and OpenJdk17.
There is a product file based on features which works fine when I launch it as Eclipse Application. But when I export the product, I get it all exported but it is not working well.
The tool should show AUTOSAR Perspective with checking a license, but it does not show me anything.
And There are some messages as the following in the .log file.
MESSAGE Unable to create class 'org.eclipse.ui.internal.StandardTrim' from bundle '485'
!STACK 0
org.eclipse.e4.core.di.InjectionException: org.eclipse.e4.core.di.InjectionException: java.lang.RuntimeException: org.eclipse.core.runtime.CoreException: Plug-in com.autron.odin.common.ui was unable to load class com.autron.odin.common.ui.perspectives.ArtopPerspectiveFactory.
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:995)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:140)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:403)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:344)
.
.
.
.
.
Caused by: org.eclipse.e4.core.di.InjectionException: java.lang.RuntimeException: org.eclipse.core.runtime.CoreException: Plug-in com.autron.odin.common.ui was unable to load class com.autron.odin.common.ui.perspectives.ArtopPerspectiveFactory.
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:995)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:140)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:96)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.inject(ContextInjectionFactory.java:83)
at org.eclipse.ui.internal.Workbench.createWorkbenchWindow(Workbench.java:1469)
.
.
.
.
Caused by: java.lang.RuntimeException: org.eclipse.core.runtime.CoreException: Plug-in com.autron.odin.common.ui was unable to load class com.autron.odin.common.ui.perspectives.ArtopPerspectiveFactory.
at org.eclipse.ui.internal.registry.PerspectiveDescriptor.createFactory(PerspectiveDescriptor.java:81)
at org.eclipse.ui.internal.WorkbenchPage.createPerspective(WorkbenchPage.java:4105)
at org.eclipse.ui.internal.WorkbenchPage.busySetPerspective(WorkbenchPage.java:4012)
at org.eclipse.ui.internal.WorkbenchPage.lambda$10(WorkbenchPage.java:3972)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
at org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:3972)
at org.eclipse.ui.internal.WorkbenchWindow.setup(WorkbenchWindow.java:898)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
I have my product file with the following settings.
<configurations>
<plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
<plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.update.configurator" autoStart="true" startLevel="3" />
</configurations>
I'd really appreciate for your support.
I've been struggling with this more than 3 days..
Thanks!
Goal:
I would like to make an Eclipse RCP product feature-based with existing Eclipse.org features and additional features of my own.
Introduction:
To start fresh, I've followed the Lars Vogel's Eclipse Tycho tutorial up to step 9.
I made just few adjustments:
I'm using the latest version of Eclips RCP platform (Oxygen)
I'm using the latest version of Eclipse Tycho (1.0.0)
I had to set the autostart-mode of the plugins part of the configuration of the product (c.f. com.vogella.tycho.rcp.product file)
I've added these two branding files
the "splash.bmp" image in the root folder of the com.vogella.tycho.rcp plugin, furthermore I've added the splash.bmp to binary build defined by the build.properties file
the "icons/product.ico" icon to com.vogella.tycho.product project
finally I've completed the definition of the product, defined by com.vogella.tycho.rcp.product file, with the icon and and the location of the splash image.
... I built the product with Maven 3, executing the following command from the root project folder:
mvn clean verify
And finally I made a smoke test:
run-product.bat
Outcome: the startup is as expected, the icon appears in the taskbar and the right splash screen show-up. alright !
The issue:
Now, I add to the production definition exactly one feature from Eclipse.org : org.eclipse.epp.package.java.feature
Then I redo the build and the smoke test ... and unfortunately it is the Eclipse "Oxygen" splash screen that shows-up ...
How could I prevent the Eclipse "Oxygen" splash screen to show up and to have my splash screen instead ?
Product definition file:
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="com.vogella.tycho.rcp" uid="foo" id="com.vogella.tycho.rcp.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default"></configIni>
<launcherArgs>
<programArgs>-clearPersistedState</programArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
</launcherArgs>
<windowImages/>
<splash location="com.vogella.tycho.rcp" />
<launcher name="foo">
<win useIco="true">
<ico path="icons/product.ico"/>
<bmp/>
</win>
</launcher>
<vm>
</vm>
<plugins>
</plugins>
<features>
<feature id="org.eclipse.e4.rcp" installMode="root"/>
<feature id="com.vogella.tycho.feature" version="1.0.0.qualifier"/>
<feature id="org.eclipse.emf.common"/>
<feature id="org.eclipse.emf.ecore"/>
<feature id="org.eclipse.epp.package.java.feature"/>
</features>
<configurations>
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="3" />
</configurations>
</product>
Attachement:
Eclipse Project achive
After hours of debugging the Maven build, I figured out that the feature "org.eclipse.epp.package.java.feature" seems to contain a configuration with touchpoints to modify the config.ini and therefore change values of osgi.splashPath, eclipse.product and eclipse.application.
So I decided to change the product definition file, and to use the "org.eclipse.jdt" feature (instead of "org.eclipse.epp.package.java.feature") and added its dependencies to the product definition file.
Now both the new icon and new splash screen appears as desired.
Here is the final product definition file:
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="com.vogella.tycho.rcp" uid="foo" id="com.hipperos.workbench.rcp.product" application="org.eclipse.ui.ide.workbench" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default">
</configIni>
<launcherArgs>
<programArgs>-clearPersistedState
</programArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
</vmArgsMac>
</launcherArgs>
<windowImages/>
<splash
location="com.vogella.tycho.rcp" />
<launcher name="foo">
<win useIco="true">
<ico path="icons/product.ico"/>
<bmp/>
</win>
</launcher>
<vm>
</vm>
<plugins>
</plugins>
<features>
<feature id="org.eclipse.e4.rcp" installMode="root"/>
<feature id="com.vogella.tycho.feature" version="1.0.0.qualifier"/>
<feature id="org.eclipse.emf.common"/>
<feature id="org.eclipse.emf.ecore"/>
<feature id="org.eclipse.rcp" version="4.7.0.v20170308-2000"/>
<feature id="org.eclipse.jdt" version="3.13.0.v20170308-2105"/>
<feature id="org.eclipse.platform" version="4.7.0.v20170308-2000"/>
<feature id="org.eclipse.equinox.p2.core.feature" version="1.4.0.v20170208-2010"/>
<feature id="org.eclipse.ecf.core.feature" version="1.3.0.v20170110-1317"/>
<feature id="org.eclipse.ecf.filetransfer.feature" version="3.13.5.v20170216-0456"/>
<feature id="org.eclipse.help" version="2.2.100.v20170308-2000"/>
</features>
<configurations>
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="3" />
</configurations>
</product>
I want to use Canvas2Image plugin for my iOS application to save the image. And i'm using PhoneGap 2.9 which is compatible with Xcode 5. I don't know how to declare plugin in PhoneGap 2.9 . Could anybody tell me how the bindings of Plugin take place in PhoneGap 2.9.
Link for the plugin
https://github.com/devgeeks/Canvas2ImagePlugin
Though i added both .h & .m to to project I copied the Canvas2ImagePlugin.js to my directory. Plugin is not getting called .
Any help will be really appreciable.
And my Config.xml has the following format
<plugins></plugins>
<plugin name="Accelerometer" value="CDVAccelerometer"/>
<plugin name="Battery" value="CDVBattery"/>
<plugin name="Camera" value="CDVCamera"/>
<plugin name="Capture" value="CDVCapture"/>
<plugin name="ChildBrowserCommand" value="ChildBrowserCommand"/>
<plugin name="InAppBrowser" value="CDVInAppBrowser" />
<plugin name="Compass" value="CDVLocation"/>
<plugin name="Contacts" value="CDVContacts"/>
<plugin name="Debug Console" value="CDVDebugConsole"/>
<plugin name="Device" value="CDVDevice"/>
<plugin name="File" value="CDVFile"/>
<plugin name="FileTransfer" value="CDVFileTransfer"/>
<plugin name="Geolocation" value="CDVLocation"/>
<plugin name="Logger" value="CDVLogger"/>
<plugin name="Media" value="CDVSound"/>
<plugin name="NetworkStatus" value="CDVConnection"/>
<plugin name="Notification" value="CDVNotification"/>
<plugin name="PushNotification" value="PushNotification"/>
<plugin name="org.apache.cordova.barcodeScanner" value="CDVBarcodeScanner"/>
<plugin name="com.tesitng.Canvas2ImagePlugin" value="Canvas2ImagePlugin"/>
</plugins>
<access origin="*"/>
And i added Canvas2ImagePlugin.h & Canvas2ImagePlugin.m to plugins folder of cordova project
OK, now I see you're using the old plugins format, I edited my answer based on your edited question :-) Try this:
<plugins>
<plugin name="Accelerometer" value="CDVAccelerometer"/>
<plugin name="Battery" value="CDVBattery"/>
<plugin name="Camera" value="CDVCamera"/>
<plugin name="Capture" value="CDVCapture"/>
<plugin name="ChildBrowserCommand" value="ChildBrowserCommand"/>
<plugin name="InAppBrowser" value="CDVInAppBrowser" />
<plugin name="Compass" value="CDVLocation"/>
<plugin name="Contacts" value="CDVContacts"/>
<plugin name="Debug Console" value="CDVDebugConsole"/>
<plugin name="Device" value="CDVDevice"/>
<plugin name="File" value="CDVFile"/>
<plugin name="FileTransfer" value="CDVFileTransfer"/>
<plugin name="Geolocation" value="CDVLocation"/>
<plugin name="Logger" value="CDVLogger"/>
<plugin name="Media" value="CDVSound"/>
<plugin name="NetworkStatus" value="CDVConnection"/>
<plugin name="Notification" value="CDVNotification"/>
<plugin name="PushNotification" value="PushNotification"/>
<plugin name="org.apache.cordova.barcodeScanner" value="CDVBarcodeScanner"/>
<plugin name="Canvas2ImagePlugin" value="Canvas2ImagePlugin"/>
</plugins>
<access origin="*"/>
I have been trying to sort this out for a while, and I have been trying to piece one together via google searches.. But I am recently noticing that most of the docs I come or have come across are for older versions of cordova/phonegap. I am using I 3.x or whatever the latest one is. Either way, my config.xml I feel is a mess. Another thing I noticed is I seem to have two config.xml's one is in the www folder, one is right at the same level as the www folder, the copy below is the one at the same level as the www folder which seems to be the one that listens to changes but Im not sure if there is a conflict there either.
I also found a copy of phonegap.js from the examples.. which I think is based on 1.7.0 and not my current version of phonegap/cordova. All in all I am trying to figure this all out so I can use things like the camera, so I can change things like the title of a alert box to go from a long path and file name then my message.
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.domain.coffee" version="2.0.0" xmlns="http://www.w3.org/ns/widgets">
<name>title of app (wont put here)</name>
<description>
my long lengthy description
</description>
<author email="team#domain.com" href="http://www.domain.com">
domain development team
</author>
<content src="index.html" />
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
<feature name="Notification">
<param name="ios-package" value="CDVNotification" />
</feature>
<access origin="*" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="UIWebViewBounce" value="true" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="EnableLocation" value="true" />
<preference name="EnableViewportScale" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="OpenAllWhitelistURLsInWebView" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<plugins>
<plugin name="Device" value="CDVDevice" />
<plugin name="Logger" value="CDVLogger" />
<plugin name="Compass" value="CDVLocation" />
<plugin name="Accelerometer" value="CDVAccelerometer" />
<plugin name="Camera" value="CDVCamera" />
<plugin name="NetworkStatus" value="CDVConnection" />
<plugin name="Contacts" value="CDVContacts" />
<plugin name="Debug Console" value="CDVDebugConsole" />
<plugin name="Echo" value="CDVEcho" />
<plugin name="File" value="CDVFile" />
<plugin name="FileTransfer" value="CDVFileTransfer" />
<plugin name="Geolocation" value="CDVLocation" />
<plugin name="Media" value="CDVSound" />
<plugin name="Capture" value="CDVCapture" />
<plugin name="SplashScreen" value="CDVSplashScreen" />
<plugin name="Battery" value="CDVBattery" />
<plugin name="Globalization" value="CDVGlobalization" />
<plugin name="InAppBrowser" value="CDVInAppBrowser" />
<plugin name="org.apache.cordova.facebook.Connect" value="FacebookConnectPlugin" />
</plugins>
</widget>
note I have followed this most recently:
http://docs.phonegap.com/en/3.0.0/cordova_notification_notification.md.html#notification.alert
also an example of my message attempts would be:
navigator.notification.alert("my fancy message", "my title", "OK");