IDEA 6.0 VCS OpenApi

Hi, i'm considering porting MKS plugin to 6.0 now that it's VCS OpenApi should be stabilized.

But I'm encountering a strange error, probably due to some ClassLoader related issue in the new plugin model.

When I start a IDEA Plugin Sandbox with my plugin, i get the following error
2006-10-24 16:11:19,720 ERROR - nSystem.impl.ActionManagerImpl - class with name "com.intellij.openapi.actionSystem.DefaultActionGroup" should be instance of com.intellij.openapi.actionSystem.ActionGroup

(this class is specified as the "class" attribute of one of the group elements in the plugin.xml)
I checked that com.intellij.openapi.actionSystem.DefaultActionGroup still exists and is indeed a subclass of ActionGroup.

The classpath for my plugin includes
- IDEA 6043 JDK (generated from IDEA JDK wizard)
- MKS open api
- the plugin source


Run configuration should be using the plugin module classpath.

Any idea ?

4 comments

Hello Thibaut,

T> Hi, i'm considering porting MKS plugin to 6.0 now that it's VCS
T> OpenApi should be stabilized.

In fact we're doing major VCS API cleanup in the 6.5 version. The API will
not be fully backward compatible, but it will be fairly straightforward to
port the VCS plugin from 6.0 to 6.5 as long as you're using "modern" APIs
(ChangeProvider in particular).

T> But I'm encountering a strange error, probably due to some
T> ClassLoader related issue in the new plugin model.
T>
T> When I start a IDEA Plugin Sandbox with my plugin, i get the
T> following error 2006-10-24 16:11:19,720 ERROR -
T> nSystem.impl.ActionManagerImpl - class with name
T> "com.intellij.openapi.actionSystem.DefaultActionGroup" should be
T> instance of com.intellij.openapi.actionSystem.ActionGroup
T>
T> (this class is specified as the "class" attribute of one of the group
T> elements in the plugin.xml)

Why do you need to specify the "class" at all? It's needed when you have
a custom class, but DefaultActionGroup will be substituted if you don't specify
any class.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

In fact there was a specific class (MksActionGroup), and i had the same error.
Thus i tried using a "standard" one and still get it.

But I just discovered 2 things
- IDEA 6.0 JDK wizard creates a sandbox in \.IntelliJIdea60\sandbox.
This is not bad !
- Looking in this directory, i have an "openapi.jar" file in my plugin /lib dir. Although i had removed it from the classpath of the module, and it not being present in the module source /lib dir

Manually suppressing the plugin (deleting the folder from the sandbox dir), and doing a full rebuild of the project results in the plugin /lib folder not containing this openapi.jar anymore, which solves the problem.

Question is thus : shouldn't modifying the classpath (remove the openapi.jar) should have resulted in it being removed from the sandbox ?

0

Hello Thibaut,

T> Question is thus : shouldn't modifying the classpath (remove the
T> openapi.jar) should have resulted in it being removed from the
T> sandbox ?

There was a bug related to it, and it will be fixed in the 6.0.2 release.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Thanks, every thing is nice then ! :)

0

Please sign in to leave a comment.