You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Christian Schneider <ch...@die-schneider.net> on 2012/10/18 16:02:44 UTC

Pojo Support for EventAdmin

Hi all,

I really like the publish / subscribe concept of EventAdmin. It provides 
a great way to decouple senders and receivers. The downside is that the 
events are limited to a simple map and using anything else than simple 
types for the values is discouraged.

What I am missing is a simple and ideally non intrusive way of sending 
Pojos around. What I have in mind is something similar to the JEE 
eventing 
(http://www.adam-bien.com/roller/abien/entry/java_ee_6_observer_with) 
but with string topics rather than matching annoations.

So what I could imagine is something like:

public interface PojoEventAdmin <T> {
     void sendEvent(String topic, T event);
     void postEvent(String topic, T event);
}

public interface PojoEventHandler <T> {
     void handle(String topic, T event);
}

The event handlers could register using the whiteboard pattern like for 
EventAdmin. Internally the implementation could then even use the 
EventAdmin to transport the objects. This is of course not fully thought 
out. Especially I am not sure if the generics would cause problems.

Is there any initiative to do something like this? Perhaps even an 
extension of the EventAdmin spec? I have seen the Event framework in 
Eclipse 4 which seems similar but I doubt it works outside eclipse.

I would be glad about any hints.

Christian


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Pojo Support for EventAdmin

Posted by Christian Schneider <ch...@die-schneider.net>.
I understand that for system level events the map structure makes a lot 
of sense.

For application developers who want an internal event system I think 
this is different though. There it would be nice to have pojo 
structures. The restriction that the classes have to be shared would not 
be so problematic in this case I think. The immutability would be an 
issue though that is difficult to solve. Of course it could be "solved" 
by convention to just say please do not change the objects .. for inner 
application communication this might even be good enough.

Basically what I am ultimately looking for is a non intrusive way for 
publish / subscribe communication inside a container as well as across 
containers. This is why I also did a prototype for the EventAdmin -> jms 
bridge.
Of course EventAdmin is not the only way to solve this. I am also 
looking into dosgi combined with a jms transport which might have 
similar capabilities. The only downside to it is that there is no fast 
in container mechanism then as far as I know.

Christian


On 10/18/2012 04:59 PM, Neil Bartlett wrote:
> The main issue is that all the receiving bundles will need to understand
> (i.e., import) the types of the objects you put into the event. This, along
> with the immutability requirement, is the main reason why EventAdmin
> supports only primitive types + String.
>
> Neil
>
> On Thu, Oct 18, 2012 at 3:02 PM, Christian Schneider <
> chris@die-schneider.net> wrote:
>
>> Hi all,
>>
>> I really like the publish / subscribe concept of EventAdmin. It provides a
>> great way to decouple senders and receivers. The downside is that the
>> events are limited to a simple map and using anything else than simple
>> types for the values is discouraged.
>>
>> What I am missing is a simple and ideally non intrusive way of sending
>> Pojos around. What I have in mind is something similar to the JEE eventing (
>> http://www.adam-bien.com/**roller/abien/entry/java_ee_6_**observer_with<http://www.adam-bien.com/roller/abien/entry/java_ee_6_observer_with>)
>> but with string topics rather than matching annoations.
>>
>> So what I could imagine is something like:
>>
>> public interface PojoEventAdmin <T> {
>>      void sendEvent(String topic, T event);
>>      void postEvent(String topic, T event);
>> }
>>
>> public interface PojoEventHandler <T> {
>>      void handle(String topic, T event);
>> }
>>
>> The event handlers could register using the whiteboard pattern like for
>> EventAdmin. Internally the implementation could then even use the
>> EventAdmin to transport the objects. This is of course not fully thought
>> out. Especially I am not sure if the generics would cause problems.
>>
>> Is there any initiative to do something like this? Perhaps even an
>> extension of the EventAdmin spec? I have seen the Event framework in
>> Eclipse 4 which seems similar but I doubt it works outside eclipse.
>>
>> I would be glad about any hints.
>>
>> Christian
>>
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Pojo Support for EventAdmin

Posted by Neil Bartlett <nj...@gmail.com>.
The main issue is that all the receiving bundles will need to understand
(i.e., import) the types of the objects you put into the event. This, along
with the immutability requirement, is the main reason why EventAdmin
supports only primitive types + String.

Neil

On Thu, Oct 18, 2012 at 3:02 PM, Christian Schneider <
chris@die-schneider.net> wrote:

> Hi all,
>
> I really like the publish / subscribe concept of EventAdmin. It provides a
> great way to decouple senders and receivers. The downside is that the
> events are limited to a simple map and using anything else than simple
> types for the values is discouraged.
>
> What I am missing is a simple and ideally non intrusive way of sending
> Pojos around. What I have in mind is something similar to the JEE eventing (
> http://www.adam-bien.com/**roller/abien/entry/java_ee_6_**observer_with<http://www.adam-bien.com/roller/abien/entry/java_ee_6_observer_with>)
> but with string topics rather than matching annoations.
>
> So what I could imagine is something like:
>
> public interface PojoEventAdmin <T> {
>     void sendEvent(String topic, T event);
>     void postEvent(String topic, T event);
> }
>
> public interface PojoEventHandler <T> {
>     void handle(String topic, T event);
> }
>
> The event handlers could register using the whiteboard pattern like for
> EventAdmin. Internally the implementation could then even use the
> EventAdmin to transport the objects. This is of course not fully thought
> out. Especially I am not sure if the generics would cause problems.
>
> Is there any initiative to do something like this? Perhaps even an
> extension of the EventAdmin spec? I have seen the Event framework in
> Eclipse 4 which seems similar but I doubt it works outside eclipse.
>
> I would be glad about any hints.
>
> Christian
>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@felix.**apache.org<us...@felix.apache.org>
> For additional commands, e-mail: users-help@felix.apache.org
>
>