Hi,
In my own app I've had a need to allow higher layers to listen for
activate/passivate events from underlying layers. Specifically, if some
infrastructure service is activated I want a JMX service in a top layer
to know this, so that it can expose the service properly, and then
unexport it if the service is passivated.
There's tons of ways to do this, but I've opted for a simple model where
a listener can be registered on Application/Layer/Model/ServiceReference
levels, and then get notifications about activations. A listener on the
Application level gets all events published. A listener on a particular
ServiceReference only gets events from that service.
Example:
app.registerEventListener( new EventListener()
{
@Override
public void onEvent( Event event )
{
System.out.println(event.toString()):
}
});
assembler.application().activate();
---
This will simply output all activation/passivation events as they occur.
Events are ACTIVATING,ACTIVATED,PASSIVATING,PASSIVATED so listeners can
react accordingly, if necessary.
Does this seem like an ok way to do it? Any other requirements that you
have come across? To me, the main usecases are logging/debugging and
exporting services dynamically. Anything else?
/Rickard
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev