--- [EMAIL PROTECTED] wrote:
> The "toolkit" idea is perfect for what we need,
> and preferably with as little coupling/dependencies
> as possible between components.
>
That's the goal!
> For a "cooperating" container only the Jsp parser
> and generator ( and the runtime ) are relevant, all
> other packages are services to be used in JspServlet
> or to change the behavior.
>
> Having a "jaser.core" that acts as a repository for
> jasper modules ( or JasperToolkit if it's only a
> class)
> is a good idea too.
>
> One important thing is to make sure the "runtime"
> services are clearly separated from the "compile"
> services.
The way I want it to work is for the base
JasperToolkit to only provide services common or
potentially used by all adapter implementations.
Then, an adapter implementation can use a specific
subclass that provides any additional services
specific to that implementation. Since this would be
an adapter-savvy toolkit, it can use runtime smarts
apropriate for that adapter.
Now, it is possible that the core toolkit will include
factory methods for services not used by a particular
implementation. That's okay. The penalty for
class-loading is only the interface classes used as
return types by the factory methods since the
implementation classes are only loaded when the
factory methods actually get invoked. That keeps the
toolkit pretty lightweight even if it has a few extra
unneeded factories.
That said, as soon as I get this posted, I'll be wide
open to suggestions on better partitioning of services
or adding ones I've missed. Maybe multiple base
toolkits will be appropriate instead of one. For
example, the one I'm designing is concerned with
supporting the runtime adapter implementations. It
might make sense to have a separate factory for
generating the many classes used by the JSP parser
itself. If so, maybe my current 'JasperToolkit'
should instead be named 'AdapterToolkit', reserving
the former name for the parser/compiler toolkit? This
will be a good discussion to have.
Well, I'm going to get back to work on it.
Cheers,
Mel
__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.com/