At 05:02 PM 6/21/2002 -0700, you wrote:
>Peter Donald wrote:
>
> > >but I also was wondering if there is any container extension mechanism
> > >that is shared by the Avalon containers - or if there are plans for
> > >anything like that?
> >
> > It would be neat to have a generic interceptor architecture. For a
> > buisness-esque type layer you could have interceptor interface such as
> >
> > interface Interceptor
> > {
> > Object invoke( InterceptorContext ctx, Object[] args ) throws Exception;
> > }
> >
> > interface InterceptorContext
> > {
> > ComponentMetaData getCaller();
> > ComponentMetaData getCallee();
> > DependencyMetaData getCalledInterface();
> > String getMethodSignature();
> >
> > Object invokeNext( Object[] args ) throws Exception;
> > }
>
>this is actually closer to what I was originally thinking -- I was
>thinking about a generic mechanism to allow for dynamic proxies -- my
>original idea was to have a component implement a subclass of
>InvocationHandler, then have the container create a proxy from the
>InvocationHandler each lookup... but then I thought that allowing the
>component to implement a lookup() method might be more flexible... but
>then I wondered if this might be too flexible since it would step on the
>toes of the component manager.... but I digress :)
:)
>I have a couple questions about this Interceptor...
>
>1. would it be a component? i.e. do you imagine it being looked up like
>other components? This seems like it would be a good idea, e.g. in the
>case of the AuthorizingInterceptor you described, it might be handy if
>another component could look it up and set some security settings.
It could be (up to the container) but I would probably not make it
accessible that way. The Interceptor may be able to lookup another
component and read security settings or have a component create it and the
creator lookup another component. At least that is how I would do it.
2. Does this Interceptor interface have any benefits over dynamic proxies?
>[the container will need to generate a dynamic proxy to intercept the
>calls in order to pass them onto the interceptor].
I would have a single dynamic proxy reference multiple Interceptors as
dynamic proxies instantiation are likely to be more expensive than
Interceptor instantiation.
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>