struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig R. McClanahan" <craig...@apache.org>
Subject RE: Local/Global Exception Handling: How do you specify ContextRe lati ve path(action's input) in the Sub-Apps' struts-config.xml
Date Wed, 14 Aug 2002 17:15:22 GMT
There's an existing bug report against the <exception> element, asking
that a contextRelative switch be added to it.  I expressed my concerns
about doing this in a message a couple of days ago, but am sympathetic to
the reasoning behind the request.

My personal (perhaps idealistic) view is that modules should be as
self-contained as possible, and the only linkages between them would be
through links that use something like SwitchAction from a menu item.  If
that means mechanically copying common resources into the subdirectory for
different modules as part of your build process (so that you still
maintain only one copy of the sources), I think that is a small price to
pay for a module that is a completely independent unit.

Consider a very large scale application with tens of modules in it.
Inevitably, you are going to want to install a revision of one of the
modules, while keeping all the rest of them intact.  The more independent
each module is, the easier such a task becomes.  On the other hand, the
more interdependent the modules are (because you've used contextRelative
links for lots of things) this task can become almost impossible without
upreving all of the modules.

Bottom line -- I'll probably add contextRelative to <exception>, but I
wish people would think about the supportability implications of using it
simply to share a little bit of common behavior that could be easily
dupliated into each module's subdirectory.

Craig


On Wed, 14 Aug 2002, Trieu, Danny wrote:

> Date: Wed, 14 Aug 2002 09:34:45 -0700
> From: "Trieu, Danny" <DTrieu@downeysavings.com>
> Reply-To: Struts Users Mailing List <struts-user@jakarta.apache.org>
> To: 'Struts Users Mailing List' <struts-user@jakarta.apache.org>
> Subject: RE: Local/Global Exception Handling: How do you specify
>     ContextRe  lati ve path(action's input) in the Sub-Apps' struts-config.xml
>
> Craig,
>
> Thanks for your help.  It has been valuable.  Craig, Sub-Module are very
> useful.  However, it seems to
> Only allow you to modulize the controller components and not the View
> components.  Let says we are using tiles, or some others technique, for our
> View Composition Strategy (VCS).  VCS and Sub-Module doesn't works right out
> of the box.  Under VCS, resource available in one common source.  Where as,
> with Sub-Module, resource available in differen logic source depend on which
> logical sub-module a request belong to.  This introduce problem when control
> is hand over to the VCS, where its assumsion of resouce(e.g. links,
> images...) that comes from a comon place is now impratical.
>
> Sure, we can overcome this with some modification like modify the
> <html:link/> tag to have attribute that can render its links to be context
> relative.  Or in the config.xml of the current sub-module, we can set global
> <forward....contextRelative="true"> and have all the view's link tag to used
> this.  But this can be a problem when diff sub-module use common view will
> have to copy the <forward...> declaration every sub-module config.xml file.
>
> If we already allow <forward ... > to be context relative.  Why not allow
> <exception  path=".." contextRelative="true" ...> to be context relative as
> well?  And also, can all of the common declaration be declare in the the
> default sub-model, and lookup will start at the current sub-module and
> traverse upward to the default sub-module?
>
> I might not have a good understanding of the current design of sub-module,
> so please explain so we all can learn.
>
> Thanks Craig,
>
> danny
>
> -----Original Message-----
> From: Craig R. McClanahan [mailto:craigmcc@apache.org]
> Sent: Tuesday, August 13, 2002 5:21 PM
> To: Struts Users Mailing List
> Subject: RE: Local/Global Exception Handling: How do you specify ContextRe
> lati ve path(action's input) in the Sub-Apps' struts-config.xml
>
>
>
>
> On Tue, 13 Aug 2002, Trieu, Danny wrote:
>
> > Date: Tue, 13 Aug 2002 16:31:27 -0700
> > From: "Trieu, Danny" <DTrieu@downeysavings.com>
> > Reply-To: Struts Users Mailing List <struts-user@jakarta.apache.org>
> > To: 'Struts Users Mailing List' <struts-user@jakarta.apache.org>
> > Subject: RE: Local/Global Exception Handling: How do you specify
> >     ContextRe lati ve path(action's input) in the Sub-Apps'
> > struts-config.xml
> >
> > Can you give me an example of how path one <exception/> can be set to
> > a module-relative resource? This can be a JSP, Tiles' definition, or
> > an Action relative to the module's config file right?
> >
>
> The path on an exception is defined as a "module-relative URI to the
> resource that will complete the request/response if an exception occurs". In
> other words, Struts will tack create the complete URI by tacking the module
> prefix on the front (that's what would *not* happen if a
> contextRelative="true" attribute were added).
>
> So, if you had a JSP page at the module-relative path "/showException.jsp"
> that you wanted you use, you'd just say:
>
>   <exception ... path="/showException.jsp" ... />
>
> You'll have to ask Cedric about whether Tiles treats this kind of a path the
> same as the path on a <forward> so that you can reference a Tile.  I don't
> know the answer to that one.
>
> > Thanks,
> >
> > danny
>
> Craig
>
>
> >
> > -----Original Message-----
> > From: Craig R. McClanahan [mailto:craigmcc@apache.org]
> > Sent: Tuesday, August 13, 2002 4:13 PM
> > To: Struts Users Mailing List
> > Subject: Re: Local/Global Exception Handling: How do you specify
> > ContextRelati ve path(action's input) in the Sub-Apps'
> > struts-config.xml
> >
> >
> >
> >
> > On Tue, 13 Aug 2002, Trieu, Danny wrote:
> >
> > > Date: Tue, 13 Aug 2002 14:43:48 -0700
> > > From: "Trieu, Danny" <DTrieu@downeysavings.com>
> > > Reply-To: Struts Users Mailing List <struts-user@jakarta.apache.org>
> > > To: Struts Users Mailing List <struts-user@jakarta.apache.org>
> > > Subject: Local/Global Exception Handling: How do you specify
> > >     ContextRelati ve path(action's input) in the Sub-Apps'
> > > struts-config.xml
> > >
> > > Craig,
> > >
> > > Do you know how this can be done?
> > >
> > > Thanks,
> > >
> >
> > Currently, paths on <exception> declarations are all considered to be
> > module-relative.  Doing this would require the addition of a
> > "contextRelative" attribute on the <exception> element, and making
> > sure that the code in ExceptionHandler respected it.  Filing an
> > enhancement request in the bug tracking system would be appropriate:
> >
> >   http://nagoya.apache.org/bugzilla/
> >
> > if it's not there already.
> >
> > Personally, I have a concern about implementing this.  One of the nice
> > things about application modules today is that they are pretty much
> > self contained and independent of each other.  Starting to depend on
> > external things like common exception handlers increases the fragility
> > and complexity of installing a module -- no longer can you just "add a
> > new struts-config.xml file and restart the webapp.  You've got to make
> > sure that all the shared dependencies are satisfied.
> >
> > Of course, the same philosophy was behind the idea that WAR files
> > *should* be indepdendent and self contained, but no, everyone wants
> > shared JAR files in Tomcat's common/lib directory (or the equivalent
> > on other
> > servers) ...
> >
> > > Danny
> > >
> > >
> >
> > Craig
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
> > <mailto:struts-user-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
> > <mailto:struts-user-help@jakarta.apache.org>
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:struts-user-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
> > <mailto:struts-user-help@jakarta.apache.org>
> >
> >
>
>
> --
> To unsubscribe, e-mail:
> <mailto:struts-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:struts-user-help@jakarta.apache.org>
>
> --
> To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>
>
>


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


Mime
View raw message