I noticed that Common’s caching is non-existent, and the cache taglibs seem to have been stopped in development. If I’m finishing up a generic caching framework that includes a filter and taglibs, would it be plausible to push it as a replacement for the other implementations?
Some of the things I’ve included: • Framework completely configurable via XML w/ Digester • Caches use the Composite pattern to allow developers to chain their own series of caches (ex: SoftReferenceCacheModule for speed followed by a DiskCacheModule for longevity). At the same time, you can setup N other caches for each particular case you may have, including a DatabaseCacheModule using Blobs. • Cached objects are stored under keys that are created via FactoryMethod which allow EL type syntax (ex: store /employee.do?id=54 via EMPLOYEE_${id} would create EMPLOYEE_54 as a key.) This allows for other application logic or Actions to intelligently flush cached objects that have complex keys. • The cache framework also allows for you to configure Refresh Policies which validate Objects before returned by the cache. This allows not only time limits to be set on the life of objects, but also allow for custom logic from your business layer to control caching in addition to the Key generation described above. • All logical components are initialized with the application’s servlet context to allow for business logic to be, again incorporated from other application components. • Currently implemented are a cache filter and a flush filter. This would allow POSTs from a form to be caught by a flush filter and consequently flush a cache pattern or cache key. The caching filter would allow complex page transformations or db calls that generate content to be only refreshed when absolutely needed—no need for repetitive server processing when the model hasn’t changed. • A cache controller (top of the framework) can be retrieved by a get instance method from the servlet context to also cache business objects with the same flexibility as page content. • More is being developed…. I originally planned to enhance OSCache, but I felt that you couldn’t really start from anywhere for enhancing or modifying the framework; it was too concrete in implementation and didn’t have the built in ability to generate useful keys on the fly without scriptlets in your JSPs. Anyways, if there's interest in starting up the cache libs again, not necessarily with my code, but do something similar to what the AXIS4STRUTS is doing, send me an email please. Best Regards, Jacob Hookom -----Original Message----- From: Sterin, Ilya [mailto:[EMAIL PROTECTED]] Sent: Tuesday, January 28, 2003 12:00 AM To: 'Jacob Hookom'; ''Struts Users Mailing List' ' Subject: RE: Filters and Struts Ok, thanks to allO Guess my only other option is to either define a filter for each servlet for now, until 2.4 is prod ready, or as Max mentioned, and put all actions in need of authentication, within the members namespace. Both are a hassle of course as compared to a simple filterc, but that’s what we’ll have to live with for now,( Any idea of when the 2.4 spec and tomcat will be production ready? Thanks. Ilya -----Original Message----- From: Jacob Hookom [mailto:[EMAIL PROTECTED]] Sent: Monday, January 27, 2003 1:32 PM To: 'Sterin, Ilya'; ''Struts Users Mailing List' ' Subject: RE: Filters and Struts I did some more checking on the 2.3 Spec and you are correct that it does not allow for specific include requests. I believe Craig had mentioned before in Tomcat-User that the Filter chain is created once a request, which would not accommodate dynamic includes. Servlet 2.4 Specs http://jcp.org/aboutJava/communityprocess/first/jsr154/ With 2.4, you can define lots more in your filter-mapping for includes, specific GET/POST requests etc. I’m finishing up a robust caching framework with the use of tags/filters, and the 2.4 features will really simplify filter functionality, even with Security Filters. -Jacob -----Original Message----- From: Sterin, Ilya [mailto:[EMAIL PROTECTED]] Sent: Monday, January 27, 2003 10:54 AM To: 'Jacob Hookom '; ''Struts Users Mailing List' ' Subject: RE: Filters and Struts Hmmm, I'm successfuly using it with 2.3 just filtering jsp pages in a dir, but the forwards are not filtered. I can of course filter each individual servlet, but that undermines the whole filter cause, IMO, that way I can just use a authentication function in each servlet. Ilya -----Original Message----- From: Jacob Hookom To: 'Struts Users Mailing List' Sent: 1/27/03 9:39 AM Subject: RE: Filters and Struts It is in the 2.4 Servlet Spec, but I'm not fully sure if it's included in 2.3, which is 4.1.x I believe. | -----Original Message----- | From: David Graham [mailto:[EMAIL PROTECTED]] | Sent: Monday, January 27, 2003 10:35 AM | To: [EMAIL PROTECTED] | Subject: Re: Filters and Struts | | I could be wrong but I believe filters apply to forwards. | | David | | | | | | | >From: "Sterin, Ilya" <[EMAIL PROTECTED]> | >Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> | >To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> | >Subject: Filters and Struts | >Date: Mon, 27 Jan 2003 09:13:26 -0700 | > | >I'd like to know if anyone has used and/or knows the best way to use a | >Login | >Filter with Struts. Before utilizing struts, I simply filtered say a | >"members" directory, which took care of all JSP pages there... | > | >Since struts relies on forwarding, forwarding to those pages does not | >utilize the filter, therefore, it allows anonymous access. | > | >If not filters, what are other good/best approaches. | > | >Thanks. | > | >Ilya | | | _________________________________________________________________ | Help STOP SPAM with the new MSN 8 and get 2 months FREE* | http://join.msn.com/?page=features/junkmail | | | -- | To unsubscribe, e-mail: <mailto:struts-user- | [EMAIL PROTECTED]> | For additional commands, e-mail: <mailto:struts-user- | [EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>