Thanks Raymond, I forgot about that. Problem 1 solved. On Fri, Dec 9, 2011 at 10:37 AM, Raymond Feng <[email protected]> wrote:
> We already support the ranking attribute for all service provider > declarations. If one provider is expected, the highest one will be used. > > Raymond Feng > Sent from my iPhone > > On Dec 9, 2011, at 7:29 AM, Greg Dritschler <[email protected]> > wrote: > > > I'm trying to replace some of Tuscany's service provider files, or in > some cases remove them. I've been struggling with this for a while and > thought I'd toss it out for discussion. Here are examples. > > > > 1) I want to replace the RequestContextFactory provider. Tuscany finds > a provider file using ServiceDiscoverer.getServiceDeclaration(). As far as > I can tell, when there are multiple provider files, both > EquinoxServiceDiscoverer and ContextClassLoaderServiceDiscoverer pick the > first one found and there's no way to control which one that will be. I > think there needs to be some way to control order. Perhaps the service > declaration should have a weight attribute and getServiceDeclaration() > should pick the one with the highest weight. > > > > 2) I want to replace an implementation type in one of Tuscany's > definitions file. Tuscany finds Definitions providers using > ServiceDiscoverer.getServiceDeclarations(). Again, there's no way to > control order, so here too a weight attribute might be useful. > (PullTransformer already uses a "weight" attribute for a different purpose > so it might have to be called something else.) The other problem is that > Tuscany issues a warning when there are duplicate definitions. I think > there would need to be some way to suppress that but I'm not sure how. I > wouldn't want to lose the warning altogether because in some cases it might > be useful. Also I wouldn't want application definitions to be able to > replace system definitions, which could happen if we're not careful about > this. > > > > 3) I want to eliminate certain Tuscany policy providers, for example > JaasAuthenticationPolicyProviderFactory and > JMSTokenAuthenticationPolicyProviderFactory, either because I have > alternative providers or I don't want to support the function. However > these providers are bundled with other classes I do need. I think in this > case the simplest thing to do is to separate the policy functionality into > another Tuscany bundle. > > > > Greg >
