JUnitTestPlugin and 811; also plugin management in general

I can't get JUnitTestPlugin to work on 811. I haven't tried using it for a
while, so I don't know if it's me or if it's not supposed to work on 811.

Has anyone else had any problems?


Is there anything that can be done about plugin version compatability? For
example, perhaps plugin authors could submit a unit test suite to IntelliJ,
who could run it before releasing a new EAP version.

I'm not exactly sure what IntelliJ should do about failing tests; certainly
they shouldn't delay the EAP release. Maybe on the new version announcement
they could list the plugins whose test suite failed with the new version.


Or maybe a plugin could list in its XML file the versions of IDEA that it
has been tested against. If IDEA tries to load a plugin that's not listed as
compatible, it could give the user the option of disabling the plugin,
downloading a newer version of the plugin, or continuing and letting the
user take a chance at having problems.


I can think of some even better options, but they start to require lots of
work and I'd rather see IDEA improve in other ways.



Erik Hanson


- - - - -

Stacktrace of JUnitTestPlugin 0.10 with EAP 811:

JUnitTestPluginTest.projectOpened
ProjectManagerListener.projectOpened
ProjectManagerListener.projectOpened
ERROR - com.intellij.ide.IdeEventQueue - Error during dispatching
of
java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.intellij.util
.Lat
erInvokator$1@1231e7c,notifier=null,catchExceptions=false,when=1050087116239
] on
sun.awt.windows.WToolkit@a690b6
ERROR - com.intellij.ide.IdeEventQueue - IntelliJ IDEA (Aurora)
Bui
ld #811
ERROR - com.intellij.ide.IdeEventQueue - JDK: 1.4.1_02
ERROR - com.intellij.ide.IdeEventQueue - VM: Java HotSpot(TM)
Client
VM
ERROR - com.intellij.ide.IdeEventQueue - Vendor: Sun Microsystems
Inc
.
ERROR - com.intellij.ide.IdeEventQueue - OS: Windows 2000
ERROR - com.intellij.ide.IdeEventQueue - Last Action:
ERROR - com.intellij.ide.IdeEventQueue -
java.lang.NoClassDefFoundError:
com/intellij/openapi/editor/markup/IconLineMarke
rRenderer
at
org.intellij.plugins.junit.UntestedMethodHighlighter.markMethod(Untes
tedMethodHighlighter.java:161)
at
org.intellij.plugins.junit.UntestedMethodHighlighter.doMarkUntestedMe
thods(UntestedMethodHighlighter.java:110)
at
org.intellij.plugins.junit.UntestedMethodHighlighter.access$000(Untes
tedMethodHighlighter.java:27)
at
org.intellij.plugins.junit.UntestedMethodHighlighter$1.run(UntestedMe
thodHighlighter.java:95)
at org.intellij.plugins.util.CommandUtil$4.run(CommandUtil.java:80)
at com.intellij.openapi.application.a.e.runWriteAction(e.java:76)
at
org.intellij.plugins.util.CommandUtil.runAction(CommandUtil.java:87)
at
org.intellij.plugins.util.CommandUtil.runWriteAction(CommandUtil.java
:43)
at
org.intellij.plugins.junit.UntestedMethodHighlighter.markUntestedMeth
ods(UntestedMethodHighlighter.java:93)
at
org.intellij.plugins.junit.UntestedMethodHighlighter.markUntestedMeth
odsInEditor(UntestedMethodHighlighter.java:78)
at
org.intellij.plugins.junit.UntestedMethodHighlighter.selectedFileChan
ged(UntestedMethodHighlighter.java:63)
at com.intellij.openapi.fileEditor.b.p.a(p.java:14)
at com.intellij.openapi.fileEditor.b.p.a(p.java:430)
at com.intellij.openapi.fileEditor.b.p.a(p.java:225)
at com.intellij.openapi.fileEditor.b.w.run(w.java)
at com.intellij.openapi.command.b.b.executeCommand(b.java:81)
at com.intellij.openapi.fileEditor.b.p.openFile(p.java:73)
at com.intellij.openapi.fileEditor.b.p.f(p.java:186)
at com.intellij.openapi.fileEditor.b.p.a(p.java:72)
at com.intellij.openapi.fileEditor.b.v.run(v.java)
at com.intellij.util.LaterInvokator$1.run(LaterInvokator.java:7)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.intellij.ide.t.a(t.java:78)
at com.intellij.ide.t.dispatchEvent(t.java:106)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.Dialog.show(Unknown Source)
at
com.intellij.openapi.ui.DialogWrapper$MyDialog.show(DialogWrapper.jav
a:12)
at
com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:179)
at com.intellij.progress.a.i.run(i.java:2)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.intellij.ide.t.a(t.java:78)
at com.intellij.ide.t.dispatchEvent(t.java:106)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)



1 comment

811 changed the highlighting api (the little icons on the side).

Updated plugin version to come soon.

Little tip: if you get a NoClassDefFoundError on an IDEA class from a plugin code, it probably means that the plugin isn't compatible with the current version. In addition if the documentation tells you that the plugin has been built for an earlier version there are good chance that you should hold off and delete the plugin.

Maybe you should post a new thread on the Open API with a more general title like plugin/open api versioning.
However I am not sure that the amount of pain caused by a quick check after upgrading warrants the development of a versioning infrastructure. I would rather have JetBrains focus on opening up more IDEA apis instead. But then again, my level of pain is not yours so if you feel it needs a smoother transition maybe other users do.

Jacques

0

Please sign in to leave a comment.