Hey, I'm going through all the models to clean up the visibility rules, and there are some important things to consider that I'd like to mention/check.
For example, let's say that a Module has registered CompositeA with Module visibility and "CompositeA2 extends CompositeA" with Layer visibility. If you then ask the Module for "find" CompositeA you will want different things depending on who's asking: if the resolution is coming from within the Module then it should return CompositeA, whereas if the request is coming from outside, then CompositeA is not visible but CompositeA2 is, so that should be returned as a valid type. For "get" requests of CompositeA it should return CompositeA if it is requested from within the Module, and null if it is requested from outside of the Module, since "get" style requests should not try to take extends into consideration. The current resolution mechanisms do not take the visibility concerns of the request into consideration, so the above doesn't really work right now. So, I'll be going through all similar scenarios and ensure that these kinds of things are dealt with properly. This should ensure that the semantics between "get" and "find" is handled cleanly, and I will be naming the methods accordingly to make sure there is no confusion between the two. All "find" methods will have visibility as a parameter, except for "find" methods in the method which will be the API that client code uses, and which will do the delegation between Modules through Layers appropriately. I hope this will make it much easier to figure what is going on. Makes sense? /Rickard _______________________________________________ qi4j-dev mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/qi4j-dev

