It is much easier to build a proxy object off a single interface than off multiple interfaces.
Unfortunately, your example is easily solvable in HiveMind - startup and shutdown are events that your service can register for. I have been thinking about the case where you expose different parts of a class as different services though - to use HiveMind as an integration/middleware tool. This would require a different service model, I believe, as you want 2 sets of proxies pointing to one instance or pool of instances. For example, in a small project, you have one class that does authentication and authorization, but you decide these are two interfaces, as in the future you may want to factor them out into two classes. You could just have one interface and a facade class...but that can make configuration and interception messy. Steve Gibson -----Original Message----- From: Nelson, Randy [mailto:[EMAIL PROTECTED] Sent: Thursday, June 10, 2004 9:16 AM To: [email protected] Subject: [SPAM] - multiple interfaces for a service-point question - Email has different SMTP TO: and MIME TO: fields in the email addresses The service-points only allow a service to implement 1 interface. However, there are times when it seems like it would be useful to specify that your service implements more than one inteface as in the description below. Hivemind hasn't been implemented that way, so I am sure there are keys reason why not so I was just wondering what was the thought process behind it? Example: interface Add { public void add(int arg0, int arg1); } interface Startable { public void startup() throws Exception; } interface Stopable { public void shutdown() throws Exception; } ===== <service-point id="Adder" interface="hivemind.examples.Addable"> <create-instance class="hivemind.examples.impl.AdderImpl"/> </service-point> ... <contribution configuration-id="Startup"> <task title="Adder" order="100" > <invoke-startup service-id="hivemind.examples.Adder" /> </task> </contribution> <contribution configuration-id="Startup"> <task title="Adder" order="1000" > <invoke-shutdown service-id="hivemind.examples.Adder" /> </task> </contribution> ===== You have an Adder service that implements Addable. You'd like to be able to contribute this to a "Startup" service or a "Shutdown". However, you don't want to make all Addable services have to implement either/both of the Startable or Stopable interfaces. (In this case I am expanding "Panorama Startup" example). Are there ways to do this without the Adder service implementing multiple interfaces and without combining all the methods into 1 interface?) -Randy --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
