I like the concept. Best regards,
Pierre Smits ORRTIZ.COM <http://www.orrtiz.com> OFBiz based solutions & services OFBiz Extensions Marketplace http://oem.ofbizci.net/oci-2/ On Fri, Sep 9, 2016 at 10:07 AM, Jacopo Cappellato < jacopo.cappell...@hotwaxsystems.com> wrote: > A web application, in order to leverage the OFBiz framework, requires that > a series of objects are in its contexts (servlet context, session and > request) such as "delegator", "delegatorName", "dispatcher", "security" > etc. etc... > This setup is performed by the logic contained in the servlet filter > implemented by the following class: > > org.apache.ofbiz.webapp.control.ContextFilter > > The execution of this logic is required for the application to run > properly. > However, this filter is deployed in most but not all the web application in > the OFBiz codebase: there are few exceptions due to the fact that a few web > applications require the execution of other filters (e.g. CatalogUrlFilter, > etc...). > > Unfortunately the way these filters have been implemented have issues > including: > * some of them extend the ContextFilter and override its behavior by > copying some logic and adding new one; in these cases the ContextFilter is > also deployed but after the execution of the extended filter > * some of them have been copied from ContextFilter and then adapted, > introducing a lot of redundant code difficult to maintain; in these cases > the ContextFilter is not deployed > > There is now a chance for the community to help cleaning up these classes > and I am proposing the following guidelines: > > 1) servlet filters should be chained (rather than extended or replaced) > 2) ContextFilter should always be used and should always be the first > (OFBiz) filter in the chain > 3) if some of the behavior/logic of ContextFilter conflicts with the ones > of other filters, then ContextFilter should be enhanced to prevent that > (e.g. we can improve the code, move some of its logic in a separate filter > that can be executed after etc...) > 4) the other filters should work well after the ContextFilter and add > behavior rather than overriding behavior or duplicating behavior > > As a beneficial side effect of this effort, we will get a cleaner picture > (documented by the logic of ContextFilter) of all the context objects > required by OFBiz web applications. > > I hope it helps > > Jacopo >