commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From robert burrell donkin <robertdon...@mac.com>
Subject Re: Digester: user(ish) question: how to support plugin classes [dynamic rules]
Date Fri, 17 May 2002 17:00:22 GMT
hi simon

this kind of thing has been in the air before but nothing's been committed.

there are some subtle wrinkles but i don't have the time to go into them 
now.

i think that this is a need that digester should address but the reason i 
didn't commit the patch we've had already on this issue is that i wasn't 
really satisfied with the design. (of course, i can't speak for the other 
committers who may have had different reasons.)

as i said, i don't have time now but hang around and hopefully we'll all 
be able to put our head together a bit later and some up with a 
satisfactory design.

- robert

On Friday, May 17, 2002, at 07:09 AM, Simon Kitching wrote:

> Hi All,
>
> I would like to use digester in a framework where I have "plug-in"
> classes;  something like ant's optional tasks..
>
> Example:
>   <top-level>
>      <fixed-tag foo="foo">
>         <fixed-subtag bar="bar"/>
>      </fixed-tag>
>
>      <plugin class="com.acme.plugin1">
>        <tag-for-plugin1 baz="baz">
>      </plugin>
>
>      <plugin class="com.acme.plugin2">
>        <tag-for-plugin2 yah="yah">
>     </plugin>
>   </top-level>
>
> In this example, any value can be put in the "class" attribute of the
> <plugin> tag, and it is this
> class that determines the rules for processing any nested tags within
> the <plugin> tag. The
> first bit is just plain ObjectCreateRule or FactoryCreateRule stuff, but
> the second bit I can't
> see any obvious solutions for in digester..
>
> I would like plugins to be enabled just by installing one or more new
> files and modifying the
> configuration file to then *use* the new class.
>
> The xmlrules module is not enough, as the "installer" of the plugin
> would need to modify the
> master xmlrules config file; even the <include> feature doesn't remove
> this need (though it
> does make things more modular hence _easier_ to change).
>
> Some kind of xmlrules tag <include plugin-dir="dirname"> might do the
> trick; I have been
> working on this a bit. I have also been experimenting with requiring the
> plugin class to
> define a "void addRules(Digester digester)" method that gets invoked to
> add any necessary
> rules to the digester. I have this running, but it gets messy trying to
> avoid possible tag
> name collision.
>
> If anyone out there has done this, or tried to do this, I would
> appreciate hearing about it
> (on this list or directly, as you think appropriate).
>
> Thanks,
>
> Simon
>
> PS: DynaBean: is this implementing dynamically-typed language features
> (ruby, perl, etc) in java?
> [http://marc.theaimsgroup.com/?l=jakarta-commons-dev
> <http://marc.theaimsgroup.com/?l=jakarta-commons-dev&m=100847374827535&w
> =2> &m=100847374827535&w=2]


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message