[ANN] How to use "IntelliJPluginWebForm"

Hello,

Intro
Some days ago i proposed on TWiki site a web form to building list of all
IntelliJ plugins. This form called "WebForm",
http://www.intellij.org/twiki/bin/view/Main/WebForm
On this form i build dinamic search and format it as table of plugins. You
can see it in
http://www.intellij.org/twiki/bin/view/Main/IntelliJPluginPackage.

PluginManager integration
If you look at PluginManager plugin for IntelliJ you can see that this one
have an manual scripted XML registry. This is mean that all developers must
manualy edit this file to integrating with PluginManager.
I create web form IntelliJPluginWeb form extending for standard WebForm.
This form now in Twiki:
http://www.intellij.org/twiki/bin/view/Main/IntelliJPluginWebForm

You can use other plugins topics to look how fill this form. This form
successufly filed on plugins:

  • JythonPlugin

(http://www.intellij.org/twiki/bin/view/Main/JythonPlugin)

  • SmartGotoMethodDeclaration

(http://www.intellij.org/twiki/bin/view/Main/SmartGotoMethodDeclaration)

  • SystemProperties

(http://www.intellij.org/twiki/bin/view/Main/SystemProperties)

  • ToggleKeywordPlugin

(http://www.intellij.org/twiki/bin/view/Main/ToggleKeywordPlugin)

All other plugins having this form in topic are NOT right use this form:

of plugin, name must be equals to name in plugin.xml)

binary and source distributive must be full http://...)

binary distributive must be full http://...)

of plugin, name must be equals to name in plugin.xml)
Please fix using this form in your topics like an plugins above.

If you add this form to your topic then you can see your plugin in bottom
table of
http://www.intellij.org/twiki/bin/view/Main/IntelliJPluginPackage#Plugins_us
ed_IntelliJPluginWebFo .
Then author of PluginManager be avaible than we maybe start using this page
to authomatical generating XML registry:
http://www.intellij.org/twiki/bin/view/Main/IntelliJPluginPackageXML?skin=pl
ain

Thanks, i hope that this work will continue with your's help! :)

--
Alexey Efimov, Software Engineer
Sputnik Labs,
http://www.spklabs.com


5 comments
Comment actions Permalink

Good work on all this, Alexey!

First, my apologies for not responding sooner (to this message or to your
other one on Dec 2)--I've been really busy lately, and just haven't had time
to look at the plugins and/or follow the newsgroups as closely as I'd like.
Anyway, sorry.

More comments intermixed below...

"Alexey Efimov" <aefimov@spklabs.com> wrote in message
news:at51sl$59q$1@is.intellij.net...
>

>

PluginManager integration
If you look at PluginManager plugin for IntelliJ you can see that this one
have an manual scripted XML registry. This is mean that all developers

must

manualy edit this file to integrating with PluginManager.
I create web form IntelliJPluginWeb form extending for standard WebForm.
This form now in Twiki:
http://www.intellij.org/twiki/bin/view/Main/IntelliJPluginWebForm

>

>

Then author of PluginManager be avaible than we maybe start using this

page

to authomatical generating XML registry:

>
http://www.intellij.org/twiki/bin/view/Main/IntelliJPluginPackageXML?skin=pl

ain


Very cool! I had no idea that the Wiki could do stuff like that. The
generated XML doesn't quite match the idea-plugin-registry.dtd
( tag is different, tag doesn't allow ]]> tags,
etc.), but that's a pretty minor issue. I like your approach to solving the
problem of having to keep the idea-plugin-registry.xml file up to date all
the time--that's a real pain.

However, I've been working on a slightly different solution. I started to
implement a distributed approach (suggested by Gordon Tyler in the thread
titled "[Announcement] Plugin Manager v 0.1") where the registry would just
contain pointers to idea-plugin-info.xml files which are managed by
individual plugin developers. Here's an excerpt from Gordon's post:

I was thinking that having to update a central
plugin registry every time some detail about a
plugin changes is a tad cumbersome. What if the
Plugin Manager requires that an XML file with
the descriptive parts of your registry be
available in a known location for each plugin?
Probably the best place would be as an attachment
on the Wiki page for the plugin, for example:


http://www.intellij.org/twiki/pub/Main/PluginManager/idea-plugin-info.xml

That way, each plugin developer can individually
update their own plugin's description and the
central registry only has to be updated when
a new plugin is created.

Alternatively, the central plugin registry could
specify the URL to the plugin info xml if it's
not being hosted on the Wiki.

So, that's the scheme I've been working on for the next version. If we were
to go with that scheme, plugin developers could:

1) Attach their idea-plugin-info.xml file to their plugin's home page (so
the Plugin Manager could access it)

2) Include their idea-plugin-info.xml file in their plugin's jar file
(probably best to just put it along with plugin.xml in the META-INF
directory)--doing that would really help the plugin manager get info on
installed plugins (and really help in checking for updates).

There are pros and cons to this, of course, such as:

  • Pro: invalid XML in for one of the plugins only affects that one plugin

and doesn't prevent the updating of info for other plugins.

  • Pro: including the idea-plugin-info.xml file in the plugin jar will help

the plugin manager detect version differences

  • Pro: we'll still be able to take advantage of your auto-generation of the

central plugin registry (but it would just contain URLs to the each plugin's
idea-plugin-info.xml file)

  • Con: The plugin manager must make multiple HTTP requests instead of just

one.

Whatever we all end up deciding, we'll still need to get buy-in and
participation from the community, agreement on what should be included in
the idea-plugin-info.xml DTD, etc.

In the end, I'm open to whatever works best. I'm perhaps a bit hesitant to
go too far with things, though, until we find out better what the JetBrains
folks have planned (or, perhaps, already implemented).
Thoughts/suggestions?

Thanks for your help and participation with all this (and for making it all
the way to the end of this really long post! :)

chris


0
Comment actions Permalink

Hello Chris,
Thank you too.

I guess the idea with XML per each plugin is difficult too much. We can use
TWiki Web Form instead of XML per plugin.

I explain a little the TWiki web form:
The target of web form - is assign to topic some meta variables. If you
assign form to topic, then you add hidden record "%META:FORM("FormName")%"
to topic. From this form copied all form fields to topic as hidden records:
%META:FIELD{name="TopicClassification" value="IntelliJPluginPackage"}%
%META:FIELD{name="IntelliJPluginName" value="TestPlugin"}%
etc
After this addition you can search topic by meta values. For example, see:
http://www.intellij.org/twiki/bin/view/Main/IntelliJPluginPackageXML?raw=on

You can read for more information here:
http://www.intellij.org/twiki/bin/view/TWiki/TWikiForms
http://www.intellij.org/twiki/bin/view/TWiki/TWikiMetaData
http://www.intellij.org/twiki/bin/view/TWiki/FormattedSearch

So, we can use XML an define info in this XML, but best way of using TWiki
Forms, becose it most useful, you just enter into form all nessary values.
More that all, you can authomatical generate whole XML.

But if JetBrains want to left TWiki on side for future, then we must use no
TWiki in authomatical plugin coverage.

Thanks!

--
Alexey Efimov, Software Engineer
Sputnik Labs,
http://www.spklabs.com
"Chris Bartley" <spam@feynman.org> wrote in message
news:at6d66$9he$1@is.intellij.net...

Good work on all this, Alexey!

>

First, my apologies for not responding sooner (to this message or to your
other one on Dec 2)--I've been really busy lately, and just haven't had

time

to look at the plugins and/or follow the newsgroups as closely as I'd

like.

Anyway, sorry.

>

More comments intermixed below...




0
Comment actions Permalink

Alexey Efimov wrote:

So, we can use XML an define info in this XML, but best way of using TWiki
Forms, becose it most useful, you just enter into form all nessary values.
More that all, you can authomatical generate whole XML.


I would say editing a TWikiForm and editing an XML file are equally
easy. However...

But if JetBrains want to left TWiki on side for future, then we must use no
TWiki in authomatical plugin coverage.


... as you point out, if we use the TWiki forms then we are dependent on
the TWiki. If we use XML for the individual plugin descriptions then we
can easily switch to some other hosting solution if the TWiki is no
longer viable for whatever reason.

Using the TWiki to automatically gather a list of URLs to the
idea-plugin-info.xml files for each plugin is not a particularly bad
dependency. The list of plugins doesn't change that often and thus could
be easily replaced with a static XML file that lists the URLs to each
plugin's idea-plugin-info.xml file. It wouldn't be as much of a
maintenance nightmare to manually update it when a plugin is added or
removed, or a plugin's xml URL has to be updated (if it moved to a
different host).

Ciao,
Gordon

--
Gordon Tyler
Software Developer, R&D
Sitraka (now part of Quest Software)
"Performance is Mission Critical"


0
Comment actions Permalink


"Gordon Tyler" <gordon.tyler@sitraka.com> wrote in message
news:at7qm1$kpa$1@is.intellij.net...

Alexey Efimov wrote:

So, we can use XML an define info in this XML, but best way of using

TWiki

Forms, becose it most useful, you just enter into form all nessary

values.

More that all, you can authomatical generate whole XML.

>

I would say editing a TWikiForm and editing an XML file are equally
easy. However...


I agree, plus, as I said in my previous post, it would be helpful if the
idea-plugin-info.xml would be included inside the plugin's jar. If you're
gonna create it for the jar, it doesn't seem too big of a deal to also post
it online with the plugin (on the Wiki or wherever the plugin is hosted).
The other benefit of individual XML files is that the plugin authors can
ensure that their plugin's idea-plugin-info.xml file is valid and conforms
to the DTD. I'm not sure if autogenerating the XML can do that.

But if JetBrains want to left TWiki on side for future, then we must use

no

TWiki in authomatical plugin coverage.

>

... as you point out, if we use the TWiki forms then we are dependent on
the TWiki. If we use XML for the individual plugin descriptions then we
can easily switch to some other hosting solution if the TWiki is no
longer viable for whatever reason.

>

Using the TWiki to automatically gather a list of URLs to the
idea-plugin-info.xml files for each plugin is not a particularly bad
dependency. The list of plugins doesn't change that often and thus could
be easily replaced with a static XML file that lists the URLs to each
plugin's idea-plugin-info.xml file. It wouldn't be as much of a
maintenance nightmare to manually update it when a plugin is added or
removed, or a plugin's xml URL has to be updated (if it moved to a
different host).


I'm leaning towards not auto-generating the plugin registry since there are
already a handful of plugins that aren't hosted on the wiki, and thus won't
be included by an auto-generating scheme.

chris


0
Comment actions Permalink

Hello,
I agree with you and with Gordon. So, then i ask that must be in IntelliJPluginWebForm? Any fields may be removed? Any fields must be added?

BTW, sounds like come to Web Services specification with XML included into JAR.

Thanks!

0

Please sign in to leave a comment.