hivemind-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johan Lindquist" <jo...@kawoo.co.uk>
Subject Re: Multiple implementations for service
Date Thu, 28 Apr 2005 15:19:12 GMT
That would be better - even better yet would be to return a hint defined  
by the implementation (in addition to the service id) ... But that would  
mean additions to the service schema definitions, which is a bigger job ...

Johan

On Thu, 28 Apr 2005 11:09:08 -0400, James Carman  
<james@carmanconsulting.com> wrote:

> Johan,
>
> I imagined that the return values would be serviceIds.  So, the method  
> name
> would be better as...
>
> public List getServiceIds( Class serviceInterface );
>
> That would be quite trivial to do.
>
> James
>
> -----Original Message-----
> From: Johan Lindquist [mailto:johan@kawoo.co.uk]
> Sent: Thursday, April 28, 2005 11:08 AM
> To: hivemind-user@jakarta.apache.org
> Subject: Re: Multiple implementations for service
>
>
> If you got a list of interfaces, which instance would you use in that
> case?  The criteria for the service that you are interested need to be
> specified somehow (as james mentions)
>
> You can solve this to an extent by defining a configuration point that
> collects all service instances and allow you to write a factory that
> provides the implementations that you need:
>
> FooFactory fooFactory = registry.getService(FooFactory.class);
> Foo foo = (Foo)fooFactory.getFoo(<some-criteria>)
>
> Johan
>
> On 28 Apr 2005 17:51:31 +0300, Igor Laberov <igorl@qlusters.com> wrote:
>
>> Now I see your point, it much more clear now :)
>>
>> The only issue that is still opened  - ability to get list of services
>> that implement the same interface, something like that:
>>     public List getServices(Class interfaceClass){
>>         List l = (List) _servicePointsByInterface.get(interfaceClass);
>>         return l;
>>     }
>>
>> Is it possible to add getServices(Class) to Registry interface?
>>
>> On Thu, 2005-04-28 at 17:19, James Carman wrote:
>>> So, you want to allow the users to choose which implementation type
>>> they want, right?  Then, define two different service points with the
>>> same interface, but give them different ids (of course) corresponding
>>> to the different implementations.  Another approach would involve  
>>> writing
> your
>>> own
>>> service model which chooses which implementation type to instantiate
>>> using
>>> some sort of thread-local parameter (which you'd have to set prior to
>>> invoking of course).
>>>
>>> -----Original Message-----
>>> From: Igor Laberov [mailto:igorl@qlusters.com]
>>> Sent: Thursday, April 28, 2005 10:11 AM
>>> To: hivemind-user@jakarta.apache.org
>>> Subject: Re: Multiple implementations for service
>>>
>>>
>>> These 2 options don't allow to have more than one service
>>> implementation in
>>> the same time. Current Registry interface doesn't allow this, because  
>>> it
>>> have only
>>> getService() that returns single implementation only.
>>>
>>> Is it possible to override Registry service?
>>>
>>> Thanks,
>>> Igor
>>>
>>> On Wed, 2005-04-27 at 14:35, Johan Lindquist wrote:
>>> > Two options - have two service points (same service interface is
>>> > allowed, just name the service point will be have to differ) or use
>>> > the
>>> override
>>> > functionality
>>> (http://jakarta.apache.org/hivemind/current/override.html)
>>> >
>>> > Cheers,
>>> >
>>> > Johan
>>> >
>>> > On 27 Apr 2005 14:33:46 +0300, Igor Laberov <igorl@qlusters.com>
>>> > wrote:
>>> >
>>> > > Hi again,
>>> > > In our application we want to have multiple implementation
>>> > > classes for one service. So .xml file will look like
>>> > > <service-point id="Part" />  <implementation service-id="Part">
>>> > >    <create-instance class="one.PartImpl"/> </implementation>
>>> > > <implementation service-id="Part">
>>> > >    <create-instance class="two.PartImpl"/>
>>> > > </implementation>
>>> > >
>>> > > At startup user will choose implementation that he want to work
>>> > > with (and its id will be stored), and later user operations will
>>> > > be associated with selected implementation.
>>> > >
>>> > > As I see from RegistryBuilder code, it is not allowed to have 2
>>> > > implementation. Can you point me to other way having several
>>> > > service implementation? Or may be I can override some system
>>> > > service?
>>> > >
>>> > > Thank you,
>>> > > Igor Laberov
>>> > > Qlusters, Inc.
>>> > >
>>> > >
>>> > >
>>> > > -----------------------------------------------------------------
>>> > > ---
>>> > > -
>>> > > To unsubscribe, e-mail:  
>>> hivemind-user-unsubscribe@jakarta.apache.org
>>> > > For additional commands, e-mail:
>>> hivemind-user-help@jakarta.apache.org
>>> > >
>>> > >
>>> >
>>> >
>>> >
>>> > --
>>> > you too?
>>> >
>>> > -------------------------------------------------------------------
>>> > --
>>> > To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
>>> > For additional commands, e-mail:  
>>> hivemind-user-help@jakarta.apache.org
>>> >
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail:
>>> hivemind-user-help@jakarta.apache.org
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail:
>>> hivemind-user-help@jakarta.apache.org
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: hivemind-user-help@jakarta.apache.org
>>
>>
>
>
>



-- 
you too?

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


Mime
View raw message