Ryan,

Using a configuration point would probably be the most natural way to
do this. But if you prefer there are other possibilities. But these
would require you to write some Java code.

One alternative would be to implement an object provider. With that
(let's call it service-list) you'd set the property as follows:

<set-object property="myCustomServices"
value="service-list:service.MyCustomServiceX,service.MyCustomServiceY,service.MyCustomServiceZ"/>

You contribute this object provider as a service to the configuration
hivemind.ObjectProviders:

 <service-point id="ServiceListObjectProvider"
interface="org.apache.hivemind.service.ObjectProvider"
visibility="private">
   <create-instance class="service.impl.ServiceListObjectProvider"/>
 </service-point>

 <contribution configuration-id="hivemind.ObjectProviders">
   <provider prefix="service" service-id="ServiceListObjectProvider"/>
 </contribution>

Now it's just a matter of implementing the ServiceListObjectProvider
class which should be straight forward.

This is all of course more work than a simple configuration. But if
it's a common pattern in your code it might make sense.

HTH,

--knut

BTW Don't worry about the gift certificate :-)

On 10/31/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
I have a service that has method like "setMyCustomServices(List
services)" but I can't figure out how to set this in the hivemind module
descriptor. This is what I tried:

<service-point id="SomeService" interface="SomeServiceInterface">
        <invoke-factory>
            <construct class="SomeServiceImpl" >
                <set-service property="myCustomServices">
                    <list>
                        <service-id>service.MyCustomServiceX</service-id>
                        <service-id>service.MyCustomServiceY</service-id>
                        <service-id>service.MyCustomServiceZ</service-id>
                    </list>
                </set-service>
            </construct>
        </invoke-factory>
    </service-point>

I looked at using configuration points, but that seems like more
complexity than is necessary.

Anyone know the best way to do this?

Thanks

Reply via email to