umm, you are right, thank you for the information.

Miguel


On Tue, Mar 16, 2010 at 1:20 PM, Neil Bartlett <njbartl...@gmail.com> wrote:

> Miguel, read the rest of that paragraph, and the following one:
>
> "Although any Java object can be used as a property value, only String
> objects and the eight primitive types (plus their wrappers) should be
> used. Other types cannot be passed to handlers that reside external
> from the Java VM."
>
> "Another reason that arbitrary classes should not be used is the
> mutability of objects. If the values are not immutable, then any
> handler that receives the event could change the value. Any handlers
> that received the event subsequently would see the altered value and
> not the value as it was when the event was sent."
>
> IMHO it's unfortunate that the specification uses the word SHOULD
> instead of MUST; nevertheless it is irresponsible to advise people to
> use arbitrary object types in Events.
>
> Neil
>
> On Tue, Mar 16, 2010 at 12:12 PM, Miguel <migue...@gmail.com> wrote:
> > You can read in the specification about the properties:
> > "Information about the actual event is provided as properties. The
> property
> > name is a case-sensitive string and the value can be any object"
> > (compendium osgi specification)
> > So, you can use not only prinitive types...
> > is it the object visible to other bundles? send the whole stacktrace to
> see
> > where the problem is.
> >
> >
> > Miguel
> >
> >
> > On Tue, Mar 16, 2010 at 12:55 PM, Neil Bartlett <njbartl...@gmail.com>
> > wrote:
> >>
> >> Eva,
> >>
> >> You haven't given the stack trace of the error or much other context,
> >> e.g. it looks like it should be coming from the dispatching thread
> >> rather than from the consumer.
> >>
> >> HOWEVER, to reinforce what Andrea said, you should not be putting an
> >> object of any proprietary type into an Event. There are all sorts of
> >> issues, for example the visibility of the class for that type, along
> >> with the possibility that the event will be serialized and sent over
> >> the network. Also events must be immutable because they are copied to
> >> many consumers.
> >>
> >> If you want to send structured information such as is contained in
> >> your Measure object, then please deconstruct it into a combination of
> >> String and primitive fields.
> >>
> >> Regards,
> >> Neil
> >>
> >> On Tue, Mar 16, 2010 at 11:45 AM, Eva Madrazo
> >> <eva.madr...@grpss.ssr.upm.es> wrote:
> >> > Hi Miguel,
> >> > thanks for the quick answer.  In my org.osgi.service.event.Event
> >> > implementation there isn't a constructor (String, Map) for the event
> >> > object,
> >> > there is a constructor that uses a Dictionary object instead
> >> > .Nevertheless
> >> > the rest is equivalent to my code.
> >> > The events are posted, but it seems that it fails the conversion of
> the
> >> > object included in the properties object.  When I construct the
> >> > properties I
> >> > have:
> >> >
> >> >                props.put("measure", (Measure)measure);
> >> >
> >> > But, when I retrieve this property from the event:
> >> >
> >> >                Measure measure = (Measure)
> event.getProperty("measure");
> >> >
> >> > The error is launched   ERROR - Exception while dispatching event
> >> > org.osgi.service.event.Event [topic=topicName] to handler
> >> > mypackage.simpleeventhand...@3e953e95
> >> >
> >> >
> >> > .... any ideas?
> >> > thanks!
> >> >
> >> >
> >> > Date: Tue, 16 Mar 2010 11:31:05 +0100
> >> > From: Miguel <migue...@gmail.com>
> >> > Subject: Re: [osgi-dev] problem while receiving an Event
> >> > To: OSGi Developer Mail List <osgi-dev@mail.osgi.org>
> >> > Message-ID:
> >> >        <6ed2320c1003160331n73f54f20gc53935ade58a4...@mail.gmail.com>
> >> > Content-Type: text/plain; charset="iso-8859-1"
> >> >
> >> > try to use event admin this way:
> >> >
> >> > String topic = "here_my_topic_to_be_filtered";
> >> >          Map properties = new Properties();
> >> >
> >> > [...]
> >> >
> >> >          Event ev = new Event(topic, properties);
> >> >
> >> > and post the event this way:
> >> >
> >> > _eventAdmin.postEvent ( ev );
> >> >
> >> >
> >> > where _eventAdmin is the service reference ...
> >> >
> >> >
> >> >
> >> > Miguel
> >> >
> >> >
> >> > On Tue, Mar 16, 2010 at 11:20 AM, Eva Madrazo
> >> > <eva.madr...@grpss.ssr.upm.es>wrote:
> >> >
> >> >
> >> >> > Hi,
> >> >> > maybe this is a very simple problem but I do not achieve to resolve
> >> >> > it
> >> >> > and
> >> >> > I found difficult to find information about it, so sorry if this is
> >> >> > being
> >> >> > answered before.  First of all I'm executing an equinox eRCP
> platform
> >> >> > on
> >> >> > a
> >> >> > Windows Mobile 6.1 using J9.
> >> >> >
> >> >> > I have a very strange problem while receiving an Event.  When
> posting
> >> >> > the
> >> >> > event I add a propietary object (Measure) to the hashtable props:
> >> >> >
> >> >> >         Hashtable props = new Hashtable();
> >> >> >         props.put("measure", measure);
> >> >> >         eventAdmin.postEvent(new Event(measure.getName(), props));
> >> >> >
> >> >> > When receiving the event I want to extract this Measure object. If
> I
> >> >> > do
> >> >> >   Object measure = (Object) event.getProperty("measure");
> >> >> >
> >> >> > no problem occur, but when I try to do:
> >> >> >
> >> >> >   Measure measure = (Measure) event.getProperty("measure");
> >> >> >
> >> >> > I have this error in logs:
> >> >> > ERROR - Exception while dispatching event
> >> >> > org.osgi.service.event.Event
> >> >> > [topic=topicName] to handler mypackage.simpleeventhand...@3e953e95
> >> >> >
> >> >> >
> >> >> > I have check that the bundle imports the bundle with the definition
> >> >> > of
> >> >> > Measure object.
> >> >> >
> >> >> > I cannot imagine anything to change, please help me  :) >
> >> >> > Thank you very much,
> >> >> >  Eva
> >> >> >
> >> >
> >> > _______________________________________________
> >> > OSGi Developer Mail List
> >> > osgi-dev@mail.osgi.org
> >> > https://mail.osgi.org/mailman/listinfo/osgi-dev
> >> >
> >>
> >> _______________________________________________
> >> OSGi Developer Mail List
> >> osgi-dev@mail.osgi.org
> >> https://mail.osgi.org/mailman/listinfo/osgi-dev
> >
> >
> > _______________________________________________
> > OSGi Developer Mail List
> > osgi-dev@mail.osgi.org
> > https://mail.osgi.org/mailman/listinfo/osgi-dev
> >
>
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev
>
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to