james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Noel J. Bergman" <n...@devtech.com>
Subject RE: JNDI Mailet Configuration
Date Tue, 04 Feb 2003 17:52:57 GMT
> To tell the truth, the whole idea of using JNDI for standard resource
> doesn't sit all that well with me. The JNDI Context interface just seems
> broad and too general for what we want to achieve.

I appreciate this view.  A lot of people have been scared away from JNDI
because they view it as a complicated thing.  But it need not be, and isn't.
As noted, it has become an integral part of J2EE programming, included in
the Servlet Specification, as well as other places.  If you look at its use
in those contexts, it is simple and straightfoward.

> 1) Is there a close match between the javax.naming.Context interface, and
>    we want to provide to mailets? Do we want to provide a mutable context
>    Mailets?

I don't see this as an issue.  It has already been resolved for J2EE.  There
are constraints over mutability.

> 2) Will using JNDI be easier for a Mailet author than, say, something like
>    Avalon Context?

A consensus was to not adopt non-standard interfaces into the Mailet
Specification.  JNDI, JAAS, JDBC, JavaMail, etc., are all standard

> 3) Will using JNDI make it harder to provide a controlled, constrained
     environment for running Mailets. I'm a fan of IoC, and I think we need
     keep control over what each Mailet can access.

I believe that it is unnecessary to do it per-matcher/mailet.  We could do
it the same way that the Servlet Specification does it: per-"webapp", i.e.,
per-classloader.  There are a variety of choices for how we might define
what gets a unique classloader.  Packages, sets of packages, processors, ...
*if* we need to do it.

A lot less overhead than per-class classloaders, and provides administrative
control over JNDI context(s).  It would also relieve Aaron of having to hack
around JNDI usage patterns.  If something like this becomes desirable, we
can easily address it when we discover the need, and we'll adjust how we
define resources.

> 4) Are we better off adding explicit lookup (and bind) methods to the
     API? Will this be clearer for Mailet authors than a simple, "for
     else you use JNDI"?

Not in my view.  We'd be just another ad hoc API that had to keep changing
each time we had a new justifiable feature request.  Plus, we would lose the
benefits of people using a standard API.  We may very well have some
convenience methods.

> 5) The hard part of resource provision is allowing Mailets to "declare"
>    they need, and for containers to set up their environment accordingly.

The funny thing is that both you and Aaron talk about this, but the simple
fact is that James doesn't do that at all.  The MailetContext is shared
across all matchers and mailets, with no separation or security.  If you
look at config.xml, and then attempt to add to each matcher and mailet a
list of all resources that each needs, I think you'll rapidly become sick of

> The Servlet API just avoids this, it seems, by assuming everything is
> there in JNDI under well-known names.

The well-defined names issue exists either way.

	--- Noel

To unsubscribe, e-mail: james-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: james-dev-help@jakarta.apache.org

View raw message