Can you please give a fairly detailed use case for this idea and indicate
why it is needed rather than a static division of metadata between that
which is tied to an interceptor stack (the same for every invocation going
through the stack) and that which is specific to a particular invocation
(and thus supplied by the client).
So far this idea strikes me as needless complexity that doesn't solve any
problems, so please enlighten me as to the point. I will understand much
better if you have a specific example that won't work with the division of
responsibility outlined above.
thanks
david jencks
On 2002.11.13 17:56:17 -0500 Dain Sundstrom wrote:
> This is based on some emails I have been trading with Scott. I'm going
> to start at the invoker and work my way out, because it is the way I
> know best.
>
> I'm going to add a new MetaDataLoaderInvoker. All this invoker does is
> populate the invocation object with meta data from the repository. Here
> is the code for the invoke method:
>
> public Object invoke(Invocation invocation) throw Exception
> {
> invocationMetaDataLoader.load(invocation, metaDataRepository);
> return getNext().invoke();
> }
>
> The invocation meta data loader is responsible for getting only the data
> needed for the interceptor stack from the repository and merging the
> data into the invocation object. The loader should not blindly
> overwrite data already in the invocation, so clients can have control
> over the invocation and the loader should fill in reasonable default if
> non is available in the repository.
>
> This design is a trade off between blindly stuffing all possible data
> for an invocation in to the hash table, which could take a very long
> time, and alternatively having an intelligent loader that "knows" what
> is needed for the invocation. It is just a trade off of speed for a
> more static (puggable and runtime replaceable) loader.
>
> Assuming I haven't already confused you, now where does the repository
> come from? I propose that it is just another service that the container
> depends on like caching and pooling (when these become real MBeans). I
> am thinking of an interface like this:
>
> public interface MetaDataRepository {
> MetaDataRepository getParent();
> void setParent(MetaDataRepository parent);
> Object get(Object attributeKey);
> void set(Object attributeKey, Object value);
> }
>
> Basically this is a plain old map with a possible parent. Exactly how
> this is implemented, I really don't care; it is a detail. I'm going to
> write one backed by a HashMap, and we can throw it away later. For
> attribute keys, I'm thinking of things like MethodTxAttribute that has a
> method object inside of it. Alternatively, we could lookup by method
> and get another map back. I don't like that one because it would be too
> hard to manage with any user interface. There are a million ways to skin
> this cat. Does anyone have any ideas on how to organize the keys?
>
> If you agree to this point, the next problem is how do we get data into
> the repository and how do we get updates out. I see two possibilities
> here: we could go the JCache route where you have a loader associated
> with the repository that is called when data is not in the cache or we
> could have an outboard loader that stuffs the cache on container
> startup. Either way is cool with me.
>
> The final problem is how do we keep this repository in sync with the
> physical store. For this I would guess we need some sort of listener or
> notification system. This isn't one of my current problems so I haven't
> thought about it too much.
>
> -dain
>
> --
> xxxxxxxxxxxxxxxxxxxxxxxx
> Dain Sundstrom
> Chief Architect JBossCMP
> JBoss Group, LLC
> xxxxxxxxxxxxxxxxxxxxxxxx
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by: Are you worried about
> your web server security? Click here for a FREE Thawte
> Apache SSL Guide and answer your Apache SSL security
> needs: http://www.gothawte.com/rd523.html
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development
>
>
-------------------------------------------------------
This sf.net email is sponsored by: Are you worried about
your web server security? Click here for a FREE Thawte
Apache SSL Guide and answer your Apache SSL security
needs: http://www.gothawte.com/rd523.html
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development