I've committed a new filter dispatcher strategy that aims to:
 * Make it crystal clear to users how to deploy Struts
 * Make it crystal clear to developers what filters are doing what processes
 * Better enable customizations and overrides by advanced users

This first cut is more about tackling the first two issues, and I'd
like to get some feedback on them.  There are a number of tickets that
are caused by buggy and confusing filter dispatchers and their
deployments, as well as I have a need to have our dispatch process be
more flexible to support things like native operation in OSGi or in a
plugin system.

You'll notice that there is certainly more code in this new design,
however, I'm hoping it is self-documenting, brain-dead code that is
easier to read and follow.  I've outlined how it would be used in the
package Javadocs:

Simple Dispatcher

 <filter>
     <filter-name>struts2</filter-name>
     
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>

 <filter-mapping>
     <filter-name>struts2</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>


Deployment with Sitemesh

 <filter>
     <filter-name>struts2-prepare</filter-name>
     
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>
 </filter>
 <filter>
     <filter-name>sitemesh</filter-name>
     
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
 </filter>
 <filter>
     <filter-name>struts2-execute</filter-name>
     
<filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>
 </filter>

 <filter-mapping>
     <filter-name>struts2-prepare</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>
 <filter-mapping>
     <filter-name>sitemesh</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>
 <filter-mapping>
     <filter-name>struts2-execute</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>

So basically, a one-to-one, filter to usecase mapping.  Please take a
look at the code as I'd like to get this finalized in the next few
days:

http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/filter/

Thanks,

Don

PS. We are 46% of the way to GA 2.1 release...

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

Reply via email to