jeeeyul / eclipse-themes

Full Featured Eclipse Theme Customizer!
827 stars 121 forks source link

Class conflict with efxclipse on luna #221

Closed gayanper closed 9 years ago

gayanper commented 9 years ago

When installing this plugin to gather with latest version of efxclipse (https://www.eclipse.org/efxclipse/index.html) and try to open a FXML file, the editor crash with a class conflict. This is due to the FXML editor uses latest xtext version and this plugin exports part of the xtext libraries which cause the class mixed up. But if i put this plugin artifacts inside the droppings folder in the eclipse extension layout (described in http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fp2_dropins_format.html) it will work without any class conflicts.

So will it be possible to either have the dependency on standard xtext library provided rather than bundling a custom version of old xtext lib and exporting it out ?

jeeeyul commented 9 years ago

Are you sure that you are using latest theme plugin?

The embedded xtend libraries are not exported to other plugins except plugins that belongs to this theme. You can see x-friends declaration in MENIFEST.MF

jeeeyul commented 9 years ago

By the way,

I used standard xtend library as plugin dependency before. There were so many complains about it:

gayanper commented 9 years ago

If i'm not mistaken, by making x-friends in your MANIFEST.MF is for encouraging and discouraging access (access restriction on jar content) which might have no effect on class loading. So still the library classes from your library is loaded into the parent class loader since they must be available to your other bundle.

But if we can keep these classes inside each bundles class loaders then we might have no problem, but that introduce a library duplication and probably a class conflict if two plugins try to pass a object which is a type of this internal library.

What if we can create bundle out of your libraries and use them on both of your bundles as a dependency. This might solve the problem. I got this idea after reading through a bug report https://bugs.eclipse.org/bugs/show_bug.cgi?id=427862.

jeeeyul commented 9 years ago

That sounds make sense. I will create a bundle plugin as you suggested.