Plugin Compatibility Issue Eclipse Oxygen (4.7) and Java 9 - eclipse-plugin

We upgraded one of our Eclipse 3.x plugins to work with Java 9.
But when we generated the plugin update site content, and used Eclipse Update functionality to install the new version of the plugin, we encountered the following error in Eclipse Oxygen.
Removing part descriptor with the 'pluginxxx.bla.bla' id and the 'bla bla' description. Points to the invalid 'bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView' class.
This error also appears due to some of the bundled plugins of Eclipse Oxygen itself.
After a hard week we had to
Uninstall our plugin
Remove the older versions of the plugin from the Eclipse/plugins folder
Export the plugin as a deployable plugin under the eclipse plugins directory. (Eclipse/plugins/blabla.jar)
Restart Eclipse and it worked.
Right click the eclipse plugin project and Run as "Eclipse Application" works fine, but installing the plugin from an "Update Site" causes the plugin to fail loading.
We could not find a solution yet, but it certainly effects our delivery of the plugin. The plugin is used by almost 500 CS students on their personal computers, and 200 lab computers. So the update should be installed using regular Eclipse Update functionality, not by copying the jar into the plugins directory.
Was there a better way to fix this, or something quicker we could've tried (in case this happens again)?
Update (7 days into the problem)
We have a workaround:
Export the feature project with the following settings in the Export Wizard
Destination/ Directory: Folder of your Plugin Update Site project
Options/ Package as individual JAR archieves (selected)
Options/ Generate p2 repository (selected)
Options/ Allow for binary cycles in target platform (selected)
Options/ Use class files compiled in the workspace (essentially selected)
Install (or update) the plugin from the local (or remote) plugin update site, and the CompatibilityView problem is solved.
In order to have the category listing displayed correctly during install/update new software operations, we added a category.xml file (File/New/Other/Plugin-in Development/Category Definition) in the update site project, defined the categories, and added the feature (versioned as "qualifier").
This is certainly not the way it should be, and we just hope it will be solved in the future Eclipse releases.
By the way current Eclipse Photon integration version has the same problem unfortunately.

Related

How to use my own plugin into an existing eclipse tool

I used to develope my own plugins to add some funcionalities to an existing eclipse tool. I just used to add my plugin (jar file) into the plugin folder's tool and it contributed fine adding my own menus into the tool but it's not working anymore since they migrated.
The eclipse tool migrated from 3.x version to some hibrid between 3.x and 4.x. My old plugin used extentions to contribute menus. I tried a test plugin with e4 but it seems like if the eclipse tool is not reading anymore the plugin folder when I drop my plugin there... I cannot modify the eclipse tool, just try to add my own plugins to contribute with the application. Could somebody give a hand with it?

Dukescript plugin not in Netbeans plugin manager

I am wanting to install DukeScript plugin to my NetBeans IDE and for some reason it doesn't show as an available plugin. I can find it just fine on the NetBeans plugin listing. It even has a symbol to show that it's certified and should be available in the IDE for installation.
Attempted Solution: I tried downloading manually from the site and I get a zip with a bunch of jar files and 2 .nbm files. I tried adding the .nbm files to the plugin manager manually I get the following errors.
The plugin javax.websocket_api is requested in version 1.0.
The following plugin is affected:       
DukeScript Project Wizard
Some plugins require plugin org.netbeans.html.ko_ws_tyrus to be installed.
The plugin org.netbeans.html.ko_ws_tyrus is requested in version 1.2.3.
The following plugin is affected:       
DukeScript Project Wizard
The plugin was temporarily not available from the update center. It should be there again now, after we removed some unneeded depenedencies. Please try to install it again via the plugin manager inside NetBeans.
To explain your problem with manual install: The plugin consists of NBMs and OSGi Bundles (the jar files). You need to install all of them.

How do I get a plugin with platform specific code to deploy to the correct platform using an eclipse p2 repository?

I have an Eclipse Feature that I'm building that contains a few plugins. One of the plugins uses the import package statement to declare a dependency on another plugin.
The other plugin has platform specific code and exists in another feature that I'm building. I have two plugins in this feature that have the platform specific code. One for os=win32 arch=x86 and the other for os=win32 arch=x86_64
Both features are being built and using Tycho and they both have p2 repositories that are successfully available.
So, I made a composite repository that points to both of these repositories, and then I use the "Install New Software..." command in my RCP app and point to the composite repository to install the first feature I mentioned.
The issue is that when the installation is done, the plugin that has the platform specific code has failed to install correctly. Specifically, the plugin for the x86 system shows up on my 64bit machine.
In your feature.xml, choose the plugin with platform specific code and add a platform filter. the filters are available on the right side (once you select the plugin). You can choose filters such as:
OS
WS
Language
Architecture
When your feature is published, p2 will generate the appropriate filters.
I found the answer.
I needed a p2.inf file sitting next to my feature.xml file in the first feature I mentioned in the question.
And in that p2.inf file, I needed this text...
requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=com.myplatform.specfic.bundle.win32.x86
requires.1.filter=(&(osgi.os=win32) (osgi.arch=x86))
requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=com.myplatform.specfic.bundle.win32.x86_64
requires.1.filter=(&(osgi.os=win32) (osgi.arch=x86_64))
I added this file to the build.properties as well to make sure it was included in the deployed feature
Then when I deployed the p2 repository and performed the install into my RCP application, the correct plugin was placed onto my 64 bit machine.
UPDATE: I was wrong here. This is NOT the correct answer. The incorrect plugin still gets installed on some machines.

FindBugs Plugin In NetBeans.

I get the following error when I try to install FindBugs plugin in Netbeans. Can anyone help me how to resolve -
The plugin org.apache.commons.lang is requested in version 2.4.0.
The following plugin is affected:       FindBugs
Some plugins require plugin Settings API to be installed.
The plugin Settings API is requested in version >= 1.33.1 but only 1.31.1 was found. The following plugin is affected:       FindBugs
Some plugins require plugin UI Utilities API to be installed.
The plugin UI Utilities API is requested in version >= 7.39.1 but only 7.31.2 was found.
The following plugin is affected:       FindBugs
Some plugins not installed to avoid potential installation problems.
As it is answered here, you might be using an old ScanOnDemand plugin, you can add the latest Development Plugins to your Plugins: Plugins > Settings Tab > Add and use the following URL to add a new NB Plugins source:
http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/updates.xml.gz
I have tried this solvation, added the source above with name 'Plugin Resource' and checked available plugins. There, Findbugs Integration plugin appeared and installed successfully. When i restarted the ide to finish the installation, it generated an error and never started again.
Thus, i have downloaded netbeans 7.3 from this link and replaced with the old one (7.0.1) on my computer. Now Findbugs plugin is availabe in the list of available plugins without any additional configuration and works flawless. I recommend you to upgrade your ide to 7.3 and solve your problem. This will fix the problems that may occure in the future because of the lack of version of your current netbeans ide.
In addition, after updating the ide, you can use the findbugs plugin installing from this source. This plugin provides to use findbugs explicitly from the inspector.

Eclipse plugin view does not show up after install

I created a sample plugin which includes a simple view in eclipse and ran the plugin from inside the workbench, my plugin is installed and I get my view showing up in Window/Show View/Other... . I packaged the plugin as a jar file and installed it under the plugins directory of eclipse and restarted my eclipse workbench. I am not able to find my plugin view. I dont know whats is wrong
I am using eclipse RCP SR2 (3.6) for developing plugins and my packaged jar file includes the code, META-INF/MANIFEST.MF and plugin.xml files.
I created the plugin from the book 'Eclipse Plug-ins, 3rd Edition'. I followed the steps outright and am not able to set up the plugin as a jar file.
I got it to work somehow? The plug-in project was created using Execution Environment JavaSE-1.6. 'It was given in the book I referred'. Now the manifest editor had the entry 'Bundle-RequiredExecutionEnvironment: JavaSE-1.6'. Now I ran the application with-in eclipse, it was working. But when I bundled the plugin as jar and copied the plug-in jar under plugins folder and restarted eclipse the plugin was not working, I dont know why, I thought my eclipse is not running under JRE1.6, but I checked my Windows->Preferences->Java->Installed JREs-> I have only jdk1.6.0_27 checked (So I assume that the eclipse is running under JavaSE1.6). This is bit confusing for me! I removed the Execution Environment entry in the Manifest editor Overview tab. Now there is no 'Bundle-RequiredExecutionEnvironment' entry in my Manifest, I created the bundle jar again and installed in eclipse plugins folder and restarted eclipse using -clean option. It started working in my eclipse. I got it to work somehow but with no understanding! I am still looking for answers from some one who can help me figure out what went wrong?
Open an OSGI console and type 'ss'. It should list all of the plugins. Can you see it? What is the state of it.
You can use Preferences/plug-in development/target platform edit running 'running platform' content tab to list and check/uncheck plugins. I hope it helps.
You could try copying your jar file to the eclipse/dropins folder.