It's possible to delegate to a previously defined chain (or command)
already, if you do two things:

* (Optional) you don't need <chains> any more ... that was there
  in the original examples solely to satisfy XML's requirement for
  a single root element.

* Use the existing lookup command to delegate execution to the
  foobar chain:

  <command catalog="..." name="foobar.chain"
    className="org.apache.commons.chain.generic.LookupCommand"/>

  which causes foobar.chain to be looked up and executed.

Looking at this, though, we'll probably want to clean up some of the
existing command definitions that currently assume a catalog is
present in the context ... thanks to CatalogFactory that is no longer
necessary, so we can change that to optionally specify a catalog name
(with a default to the standard one).

In struts-chain there's an example of this sort of thing in the
'servlet-complete' chain.

Craig

On Thu, 21 Oct 2004 10:31:24 -0400, Sean Schofield
<[EMAIL PROTECTED]> wrote:
> I had an idea about how we could improve the default configuration of
> commons-chain.  It would be nice if we could have the following
> catalog.xml:
> 
> <catalog>
>   <chains>
>     <chain name="foobar.chain">
>       <command name="foo" className="Foo"/>
>       <command name="bar" className="Bar"/>
>     </chain>
>     <chain name="biz.chain">
>       <chain name="foobar.chain">
>       <command name="biz" className="Biz"/>
>     </chain>
>   </chains>
> </catalog>
> 
> The idea is that once a chain has been created through the Digester it
> is available for subsequent chains that need to be created.  Thus you
> could reference an existing chain (as is done in the "biz.chain").
> 
> This way you could reuse chains as you see fit.  This could come in
> handy eventually in the struts-chain project.  You could group several
> related commands together and then offer different chain combinations
> to the user depending on what they need.
> 
> Any thoughts on that?
> 
> sean
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to