Eclipse plugin context menu modifications

Having trouble installing Oxygen? Got a bug to report? Post it all here.
bruynb
Posts: 3
Joined: Thu Feb 02, 2006 11:41 pm

Eclipse plugin context menu modifications

Post by bruynb »

I have an Eclipse (3.1.2) plug-in installed (Abator 0.5.1) that expects there to be an insertion point on the popup menu called "additions" (which I'm told is an Eclipse convention). When my oXygen 7.0.0.plugin is enabled, my Abator plugin is seemingly unable to put it's options on the context menu. When I disable it, everything goes back to normal.

What, if anything, has oXygen done to alter the popup menu for XML files? Does the "additions" insertion point still exist? Any other explanation for this behavior? Is this the desired method/forum for bug reports?

I doubt that it's related, but it might be worthwhile to note that I consistently find the following in my error log (following a lengthy delay whenever selecting / opening some xml file from my project):

!ENTRY org.eclipse.osgi 2006-02-02 13:58:16.171
!MESSAGE While loading class "ro.sync.exml.D.I", thread "Worker-1" timed out waiting (5000ms) for thread "main" to finish starting bundle "com.oxygenxml.editor". To avoid deadlock, thread "Worker-1" is proceeding but "ro.sync.exml.D.I" may not be fully initialized.
!STACK 0
java.lang.Exception: Generated exception.
at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:108)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at ro.sync.exml.D.E.E(Unknown Source)
at ro.sync.exml.D.E.B(Unknown Source)
at com.oxygenxml.editor.license.B.B(Unknown Source)
at com.oxygenxml.editor.license.C$1.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)

!ENTRY org.eclipse.osgi 2006-02-02 13:58:21.312
!MESSAGE While loading class "ro.sync.D.K", thread "Worker-1" timed out waiting (5000ms) for thread "main" to finish starting bundle "com.oxygenxml.editor". To avoid deadlock, thread "Worker-1" is proceeding but "ro.sync.D.K" may not be fully initialized.
!STACK 0
java.lang.Exception: Generated exception.
at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:108)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at ro.sync.exml.D.E.C(Unknown Source)
at ro.sync.exml.D.E.B(Unknown Source)
at com.oxygenxml.editor.license.B.B(Unknown Source)
at com.oxygenxml.editor.license.C$1.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)

!ENTRY org.eclipse.osgi 2006-02-02 13:58:26.453
!MESSAGE While loading class "ro.sync.D.D", thread "Worker-1" timed out waiting (5000ms) for thread "main" to finish starting bundle "com.oxygenxml.editor". To avoid deadlock, thread "Worker-1" is proceeding but "ro.sync.D.D" may not be fully initialized.
!STACK 0
java.lang.Exception: Generated exception.
at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:108)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at ro.sync.exml.D.E.C(Unknown Source)
at ro.sync.exml.D.E.B(Unknown Source)
at com.oxygenxml.editor.license.B.B(Unknown Source)
at com.oxygenxml.editor.license.C$1.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)

!ENTRY org.eclipse.osgi 2006-02-02 13:58:31.593
!MESSAGE While loading class "ro.sync.D.G", thread "Worker-1" timed out waiting (5000ms) for thread "main" to finish starting bundle "com.oxygenxml.editor". To avoid deadlock, thread "Worker-1" is proceeding but "ro.sync.D.G" may not be fully initialized.
!STACK 0
java.lang.Exception: Generated exception.
at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:108)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at ro.sync.D.K.A(Unknown Source)
at ro.sync.exml.D.E.A(Unknown Source)
at ro.sync.exml.D.E.C(Unknown Source)
at ro.sync.exml.D.E.B(Unknown Source)
at com.oxygenxml.editor.license.B.B(Unknown Source)
at com.oxygenxml.editor.license.C$1.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)
Mircea
Posts: 144
Joined: Tue Mar 25, 2003 11:21 am

Post by Mircea »

Hi,

After studying the plugin.xml file from the UI plugin of the "abator" bundle the problem seems to be related with their mode of associating the context menu actions.

So, on the "org.eclipse.ui.popupMenus" extension point you will see that the <visibility> element claims that the current object must have a certain conten type, i.e. the "org.apache.ibatis.abator.ui.abatorConfigurationFileByElement" content type.
But oXygen also has its own content type for xml documents with encoding and BOM handling which seems to be more general than the one that "abator" has, and Eclipse it taking the oXygen's one into account.

The solution for you is to edit by hand the "plugin.xml" file from the "org.apache.ibatis.abator.ui_0.5.1" directory and comment the <visibility> element, and then modify <action> as follows:

<action
enablesFor="1"
label="Generate iBATIS Artifacts"
icon="icons/iBatisLogo.gif"
class="org.apache.ibatis.abator.ui.actions.RunAbatorAction"
menubarPath="additions"
id="org.apache.ibatis.abator.ui.actions.RunAbatorAction">
<selection class="org.eclipse.core.resources.IFile" name="abatorConfig.xml"/>
</action>

The exceptions from the Error Log are now resolved on the current development stream and will be available in the next (7.1 ) release. In any case those exceptions are not critical. Eclipse is requiering that a plugin should be loaded in 5 seconds condition that is fulfilled now.

Best regards,
Mircea.
bruynb
Posts: 3
Joined: Thu Feb 02, 2006 11:41 pm

Post by bruynb »

Thanks, Mircea.

I tried the manual config with no change. Maybe some procedural thing I'm missing? Is the selection/name attribute perhaps a path that needs to be changed? Other ideas?


Bill
Mircea
Posts: 144
Joined: Tue Mar 25, 2003 11:21 am

Post by Mircea »

Hi Bill,

Eclipse is caching the plugins configurations, so the "Abator" plugin ID being unchaged, it is very probable that it did not read the new information from the plugin.xml files again, but it uses the one already cached.

The first option is to start the Eclipse with the -clean parameter on the command line. If you work on Win32, this can be done by editing the Eclipse shortcut's properties. The command line should be like:

D:\eclipse\eclipse.exe -clean

If this does not work either, try to manually remove the content of the "configuration" directory, excepting the "config.ini" file.

This should help.
Best regards,
Mircea
bruynb
Posts: 3
Joined: Thu Feb 02, 2006 11:41 pm

Post by bruynb »

That did the trick. Thanks!
Post Reply