Is there a way in Eclipse to find out plugins that are not used? - eclipse

I am struggling with this!
While trying to install some features - eclipse keeps complaining about some dependency not met and about old version of some dependencies. The messages are rather not straigtforward.
Is there a way to clean the eclipse installation of the unused plugins? Does eclipse tell you on its own as to which features/plugins have not been used (for a while)?

What would be the definition of an unused plugin? All plugins that Eclipse update manager is referencing are currently in use because they were installed directly or are referenced by plugins that were installed directly.
I am not aware of anything that would actively track which features you are utilizing while using Eclipse and then report on unneeded plugins.
The error that you are running into typically happens because plugin A that you have depends on plugin X v1 and you are trying to install plugin B that requires X v2. Since both v1 and v2 of X cannot be simultaneously installed, installation of B aborts.
Here are the two most common causes of users finding themselves in this situation:
You haven't run "search for updates" recently, so many of your plugins are on older service levels. The plugin you are installing, however, requires a newer service level of a particular plugin. Resolve by updating your installation prior to trying to install the new plugin.
The plugin you are trying to install was not designed to be compatible with the major version of Eclipse that you are running. For instance, you might be running Eclipse "Galileo" 3.5 platform while the plugin you are trying to install was designed to work with Eclipse "Helios" 3.6 platform. You cannot use the update manager to move between major releases. Pay attention to what yearly release the plugin advertises support for. If it needs a newer version and you are willing to upgrade, you will need to download a new package.
Outside of that, post a new question with specific failure message you are getting along with details about your current installation and what you are trying to install. Someone here ought to be able to translate the installation failure into resolution options for you.

Related

Prevent incompatible Eclipse IDE plugin updates

I have an Oomph setup for installing Eclipse 2018-12 with a few specific plugins.
In the setup I had to restrict some plugins to older versions, because all later versions of these plugins are incompatible with our build environment.
Eclipse automatically detects new plugin versions periodically and suggest to update these plugin. These new versions are certainly compatible with Eclipse. Technically no other plugin depends on these older plugin versions so I understand why Eclipse sees them as outdated and suggest to update. But since that would break our builds, I would like to prevent Eclipse from trying to update them.
Is there any configuration I can set during the installer to prevent certain plugin updates? Or do I have to completely disable automatic updates?

How to upgrade from Eclipse Mars to Eclipse Neon?

To upgrade to a new version, the eclipse FAQ suggests to add a new repository and then install available updates. Upgrading to Neon, the corresponding repository is http://download.eclipse.org/releases/neon/.
On this page, it says:
NOTE: Due to structural changes you cannot update from a Mars (or prior) all-in-one package to a Neon version. If interested in the technical details, see bug 332989 and bug 490515.
I still tried to above procedure, but no updates were found. What is the best way to upgrade from Mars to Neon? A complete new installation? How do I preserve my settings?
The note on the repository page is right. Thanks to your report, I edited the FAQ to make it clear that upgrading packages from Mars to Neon is not supported.
Instead you need to to a fresh install for Neon (or later).
I tried to upgrade in the recommended way, by adding the repository links and doing an update, but then I got a lot of conflict messages. I foolishly tried to remove the conflicting software components, until it told me that Eclipse itself was the conflict! I posted my problem to the Eclipse Forums, and was told by a regular with tens of thousands of posts that Neon was so different that I should not even try to upgrade, just create a new installation. When I tried to do that however, I got lots of warnings "That the artifact download is progressing very slowly from ..."
It is not possible to upgrade from Mars (or earlier versions), so a new install is needed.
This can be in parallel with the old install. From the FAQ:
Fresh install
If you prefer not performing an update (for example
because some 3rd-party content isn't ready for the current release of
Eclipse IDE so the update reports conflicts), you can still download a
fresh install of the Eclipse IDE and install it in another location on
your filesystem, and use it together with the previous version.
To do so, download a new build from the Eclipse download Web site
(https://www.eclipse.org/downloads/eclipse-packages/) and run the
installer or unzip the archive in a new directory. We strongly
recommend against installing/unzipping over your existing version of
Eclipse IDE as it may corrupt your installation.
When you start a new version of Eclipse IDE, you can use the same
existing workspace folder that you were using with older version. The
workspace will be migrated to newer version and Eclipse IDE will to
reuse all configuration. The workspace is forward compatible

How to express that a feature requires a certain JRE

I use Tycho (currently v0.24) to build a p2 repository, containing a feature which in turn contains a plug-in.
The manifest of the plug-in states that it requres Java 1.8
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
If I use the Install New Software wizard of the Eclipse IDE to install this feature, it allows to install it even though the JRE that Eclipse is running on does not meet the required execution environment.
After restarting Eclipse, the just installed plug-ins are simply not picked up - quite rightfully so because of the unresolved requirement. But unaware users will wonder why the hell the installed feature doesn't show up.
Therefore I think there should be at least a warning in this case. I've opened also this bug but didn't get a respoonse so far.
In the meanwhile, is it possible to do something so that an attempt to install the feature on an unsupported JRE will fail?

Eclipse bundle version tolerances

I'm trying to install an Eclipse Product into an existing Eclipse installation using a third-party-tool (namely the IBM Installation Manager) but it fails with several errors of the kind
CRIMA1054E: Installing bundle "org.eclipse.equinox.p2.repository.tools_2.0.1.R36x_v20100823" into this existing Eclipse installation does not meet the version tolerance of "[2.0.100,3.0.0)" for the existing bundle "org.eclipse.pde.ui"
Unfortunately, I can't disclose any specifics on the affected product, so I'd like to turn this into a more general question.
Following some research on the Eclipse platform, my understanding is that it is one of the key features of the OSGi Specification, that one should be able install multiple versions of the same bundle (≘ plugin?) into the same environment. If the bundle org.eclipse.pde.ui is already present, I assume that also its required version of the [...].p2.repository.tools is already available.
My question: Why should it be a problem to just add another version of that plugin to the environment? Am I getting something terribly wrong about Eclipse and OSGi?
Side question: Shouldn't version 2.0.1.R36[...] be inside [2.0.100,3.0.0) anyway? Doesn't really affect my main question though, because I have other examples that are clearly out of tolerance.
Some initial thoughts and theories
Even though Eclipse allows parallel versions of a plugin, some plugins still conflict with other versions of themselves. Still, then I would expect more of an error like "[...].repository.tools_x is incompatible with [...].repository.tools_y which is required by existing bundle org.eclipse.pde.ui"
The installation is not blocked by Eclipse but by the IBM Installation Manager. It probably does some internal dependency checking but is too lazy to consider parallel bundle version installs.
Again regarding that specific product: Unfortunately the product is not available through the regular Eclipse software installation mechanism. I also would like to avoid dropping it into my Eclipse manually because I'm dependent on regular updates and those are only delivered through the IBM Installation Manager.
Any Eclipse plug-ins that contribute UI must have the singleton directive set to true. This means that only one bundle with that symbolic name can be in the framework, see http://wiki.osgi.org/wiki/Bundle-SymbolicName for more info.
I went and inspected the org.eclipse.equinox.p2.repository.tools bundle in my version of Eclipse (3.8), and I can see that it does indeed have singleton=true.
You said: "2.0.1.R36[...] be inside [2.0.100,3.0.0)"
That's not the case, as 2.0.1 is < 2.0.100.

Eclipse - how to install older ICU4j plugin

Hey all, running into the 'cannot satisfy dependency' for several different plugins, and rather tackle all those different plugins just wondering if there is a way to simply install an older version of ICU4j (com.ibm.icu) as an eclipse plugin (preferably via update site).
thanks!
ICU4J is delivered through the Orbit project. Check which build has the version you want at http://download.eclipse.org/tools/orbit/downloads/ then use http://download.eclipse.org/tools/orbit/downloads/drops/RELEASE/repository as update site. I believe that for the archived builds the update site will be http://archive.eclipse.org/tools/orbit/downloads/drops/RELEASE/repository.