On Tue, 23 Mar 2004, Martin Cooper wrote:

> On Tue, 23 Mar 2004, Craig R. McClanahan wrote:
>
> > Quoting Ted Husted <[EMAIL PROTECTED]>:
> >
> > > On Tue, 23 Mar 2004 11:53:55 +0100, Filippo Munafò wrote:
> > > > Perfect! What you did in JSF is exatcly what we need:
> > > >
> > > > "the controller servlet automatically recognize 'META-INF/struts-
> > > > config.xml' resources in any JAR files that were included in the
> > > > application."
> > > >
> > > > When in struts?
> > > >
> > > > Can I help?
> > >
> > > I think we do the same sort of thing in Commons Chain, n'est pas?
> > >
> >
> > This particular functionality was in relationship to automatically finding and
> > loading struts-config.xml files (contributed by JAR files dropped in to the
> > WAR) without having to explicitly note them in context init parameters.  It
> > doesn't really relate to per-request processing.
> >
> > I can't do this today, but anyone who wants to help on this need only submit an
> > enhancement request (with a patch) to ActionServlet.init() to scan the
> > configuration resources in addition to what it already does.  The secret sauce
> > is to use ClassLoader.findResources() to get the list of URLs to be processed.
>
> Before anyone does dash off and write this, I'd like to have a brief
> discussion about this in relation to multi-module applications, and
> removing any need to modify web.xml when adding or removing modules. This
> is something I did in a project about a year ago, very successfully, so I
> think it's worth adding to the Struts core.

So the earlier suggestion / idea was to automatically scan for a Struts
config file in a jar's META-INF. This is a nice idea, but by itself, it
doesn't work in a multi-module application. The problem is that each
module has its own config file, and that config file does not include the
name of the module (and neither should it, IMHO).

The approach I have used in the past is to create the following structure
within the web app:

  WEB-INF/
    modules/
      default/
        config/
          struts-config.xml
          ... other config files ...
        jsp/
          ...
      moduleX/
        ...
      moduleY/
        ...
      ...

I subclassed ActionServlet so that I could reimplement the config locating
code, but it actually wasn't much work at all.

The really cool thing about this approach is that adding or removing a
module is as simple as adding or removing files and directories. Not one
file needs to be edited. This is great for those of us who don't trust
installers to do the right thing. ;-)

> In a similar vein, I'd like to talk about separating out the config
> reading somewhat, to allow for alternative mechanisms.

The point here is that it should be possible to configure Struts in any of
the following ways:

* Just what we do today, reading the file names from web.xml.
* Auto-locating the config file from META-INF (for 1-module apps).
* The above-described mechanism for multi-module apps.
* Not using Digester at all, possibly not even using XML files.

What do people think?

--
Martin Cooper


> Unfortunately, I'm about to go off to a 4-hour meeting ;-( so I can't
> expound further right now. More later...
>
> --
> Martin Cooper
>
>
> >
> > > -Ted.
> >
> > Craig
> >
> >
> > ---------------------------------------------------------------------
> > 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]
>
>

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

Reply via email to