[ANN] PLUS 0.1.0 (new live with Pallada)

Hello,

Since Pallada have valid dedicated classloader for plugin jars, old version of PLUS architecture (sharable services) will come to unworking (plugins will not see classes of other plugin, until it not depends).

Now PLUS is a library. You must add to lib plus_rt.jar, as far as you now must also add forms_rt.jar into plugin lib (otherwise, your plugin will not see properties file for localization your form).

PLUS as plugin is used only for customizing some PLUS functionaliti - for example, if you install PLUS you can control Locale for Localizer, etc. But it not required to have installed PLUS - you can use it separetelly.

YourPluginhome/
lib/
plus_rt.jar
forms_rt.jar
...

Developer can get plus_rt.jar from PLUS installation, also with src.zip of PLUS API.

Now complited:
Access to plugin.xml as PluginDescriptor:


Universal Localizer:


Easy "About Box" helper:


Helper for read options of IDEA from $IDEA_CONFIG_HOME/options/*.xml:


PLUS is available from PluginManager. It will work only with Pallada builds (becouse classloaders are now work by valid way).

Changes:

  • Options reader utility

  • Services architecture of API has gone

  • Full refactoring (library supporting)


TWiki documentation will be updated soon.

Thanks and hope that this make a little help for plugin deevlopers :)!

10 comments
Comment actions Permalink

On Wed, 24 Mar 2004 12:24:47 +0000, Alexey Efimov wrote:

Since Pallada have valid dedicated classloader for plugin jars, old
version of PLUS architecture (sharable services) will come to unworking
(plugins will not see classes of other plugin, until it not depends).


I've noticed my JIRA plugin no longer works with Pallada, I was assuming
something had changed with the class loader.

It seems my plugin is no longer seeing jars in my OWN ./lib directory. Do
I need to mention these jars in my plugin.xml or something?

Mark

0
Comment actions Permalink

No, plugin classloader is work fine. It loads jars from plugin lib folder. Plugin can see thier classes and classes of IDEA. IDEA can see only IDEA's classes. PluginManager just find classes (maybe by URLClassLoader) for Application and Project component and init through plugin classloader. I think classloaders architecture now in Palada - is like Tomcat classloaders.

Have you used UIDesigner with ResourceBundle strings in JIRA plugin? It it tru, then you must put forms_rt.jar into lib of plugins, becouse UIDesigner try find string located in your plugin from IDEA classloader - it impossible now i guess.

Thanks!

0
Comment actions Permalink

Alexey Efimov wrote:

Have you used UIDesigner with ResourceBundle strings in JIRA plugin? It it tru, then you must put forms_rt.jar into lib of plugins, becouse UIDesigner try find string located in your plugin from IDEA

classloader - it impossible now i guess.

I'm using the UI designer but not with Resorucebundles, but will add it.
I'm getting class not found exceptions for JDom stuff so may need to
install my own copy ( instead of relying on the copy in idea/lib

0
Comment actions Permalink

I'm only get:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

at java.util.ArrayList.RangeCheck(ArrayList.java:507)

at java.util.ArrayList.get(ArrayList.java:324)

at com.talios.jira.browser.JiraIssuesTableModel$2.run(JiraIssuesTableModel.java:67)

:)

Can you please get a look at stacktrace?

0
Comment actions Permalink

You use as XPath parser:
org/saxpath/SAXPathException

So, there is jar have it class?

0
Comment actions Permalink

Becouse of IDEA can't see into plugin classloader, you can't use JDOM from IDEA with parsers in plugin lib.

Distribute JDOM with your plugin, this will load JDOM classes throught your classloader, and your plugin will use it, instead of IDEA's JDOM.

Thanks!

0
Comment actions Permalink

On Thu, 25 Mar 2004 11:03:32 +0000, Alexey Efimov wrote:

You use as XPath parser:
org/saxpath/SAXPathException

So, there is jar have it class?


Its in the saxpath.jar which -should- be in the ./jirabrowser/lib
directory.

0
Comment actions Permalink

On Thu, 25 Mar 2004 11:08:16 +0000, Alexey Efimov wrote:

Distribute JDOM with your plugin, this will load JDOM classes throught
your classloader, and your plugin will use it, instead of IDEA's JDOM.


I just added the JDOM jar from pallada's lib directory but that gave me
odd errors. just in the middle of something at the moment but will look
into this. thanks for the tip...

0
Comment actions Permalink

Mark, it is a problem in classloader, i guess.
So to make your plugin working, temporary puth in your plugin jar, class org/jdom/xpath/*.class.

You can't put whole jdom.jar in plugin lib directory, becouse JDOMExternalizable have signature with org.jdom.Element. If you will put jdom.jar - you must remove org.jdom.element class from it. Otherwize plugin will not work.

Thanks!

0
Comment actions Permalink

On Thu, 25 Mar 2004 12:09:06 +0000, Alexey Efimov wrote:

Mark, it is a problem in classloader, i guess. So to make your plugin
working, temporary puth in your plugin jar, class org/jdom/xpath/*.class.


Cool. Off to I go again ;)

0

Please sign in to leave a comment.