+1;

--Gurkan

----- Original Message ----
From: Gerhard <gerhard.petra...@gmail.com>
To: dev@openwebbeans.apache.org
Sent: Mon, January 10, 2011 2:43:34 PM
Subject: Re: Problem with serializing ResourceProxyHandler

hi,

@ResourceInjectionService:
the current trunk breaks backward compatibility with existing owb plugins.
instead of c&p the default implementation of the new methods we should
introduce an abstract class.

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2010/12/31 David Jencks <david_jen...@yahoo.com>

> I put an implementation of the delegation idea in
> https://issues.apache.org/jira/browse/OWB-511 along with a proposal for
> making WebBeansContext more useful (IMO).
>
> thanks
> david jencks
>
> On Dec 29, 2010, at 4:12 PM, David Jencks wrote:
>
> >
> > On Dec 29, 2010, at 12:24 AM, Mark Struberg wrote:
> >
> >>> My current idea is that we should assume that _all_
> >>> resource objects are stateless and _always_ deserialize
> >>> these ResourceProxyHandlers by obtaining the actual resource
> >>> from the ResourceInjectionService.
> >>
> >> Now I am confused ;) This means to _not_ deserialize those Resources at
> all, but instead always re-attach by getting it fro JNDI again?
> >
> > s/jndi/ResourceInjectionService
> > yes, that's what I'd like.
> >
> >>
> >> What I meant in my long flame: JNDI objects were supposed to be stored
> in serialised form, but that in the mean time JNDI got used as a big fat
> toilette where lots of objects got flushed down in the various EE specs
> without thinking about it. Take the QueueConnectionFactory [1] for JMS. The
> spec says that the impls _should_ be Serializable, but quite a few impls are
> not.
> >
> > I won't argue against the claim that JNDI is a garbage pit of
> underspecified bad ideas and bizarre implementations.  However, it's also an
> ee requirement at the moment.
> >
> >>
> >> In fact: a few resources we get from JNDI are Serializable, others are
> not.
> >>
> >> My opinion: The ones which implement Serializable should manage
> themself, the others should be re-attached from JNDI via a 'proxy'
> >>
> >> But maybe I still miss the 'one' important point ;)
> >
> > My experience is that EE stuff bound to jndi that implements serializable
> usually doesn't actually serialize/deserialize properly.  So I'm very
> reluctant to delegate to implementations that are likely to be broken.  In
> particular I'm having problems serializing/deserializing an openjpa EMF.
> >
> > AFAIK none of the ee objects you can specify as a @Resource and get from
> jndi are supposed to have user modifiable state.  Therefore getting a new
> one from jndi on deserialization should work fine.
> >
> > If you find this argument less than compelling, could we simply delegate
> _all_ of the serialization/deserialization of the actual resource to the
> ResourceInjectionService?  Then I can do the "always lookup in jndi"
> approach in geronimo and you can avoid it in OWB.
> >
> > thanks
> > david jencks
> >
> >>
> >> LieGrue,
> >> strub
> >>
> >>
> >>
> >> [1]
> >>
> >> --- On Tue, 12/28/10, David Jencks <david_jen...@yahoo.com> wrote:
> >>
> >>> From: David Jencks <david_jen...@yahoo.com>
> >>> Subject: Re: Problem with serializing ResourceProxyHandler
> >>> To: dev@openwebbeans.apache.org
> >>> Date: Tuesday, December 28, 2010, 11:31 PM
> >>> I'm afraid I don't understand your
> >>> response very well.
> >>>
> >>> On Dec 27, 2010, at 3:13 AM, Mark Struberg wrote:
> >>>
> >>>> Hi!
> >>>>
> >>>> I think this is really theoretical. Serializing /
> >>> Deserializing will most probably only happen in a cluster
> >>> between the same applications. If they have different
> >>> configurations activated on different cluster nodes, well
> >>> ... ;)
> >>>>
> >>>> Can you think of any other scenario?
> >>>>
> >>>
> >>> such scenarios might be unlikely but since they are easy to
> >>> guard against I don't really see why not to do so.  On
> >>> the other hand if we decide to delegate all the content
> >>> serialization (see below) then we can delegate this checking
> >>> as well.
> >>>
> >>>>
> >>>> For the general serialisation question:
> >>>> JNDI usage in EE servers is in general (and thus also
> >>> the EMF handling in this area also) pretty sick. Originally
> >>> EMFs have been Serializable because they are bound to JNDI.
> >>> JNDI is typically bound to directory services in serialized
> >>> form. But in EE they are now used completely different. They
> >>> should now all be javax.naming.Referencable and not
> >>> Serializable anymore...
> >>>>
> >>>> If we get other things from JNDI which are
> >>> Serializable, then we must serialize them to get back this
> >>> exact state because any intermediate JNDI rebind would
> >>> probably crash our application.
> >>>>
> >>>> I personally try to avoid JNDI wherever possible. They
> >>> are perfectly over-specced and still behave very different
> >>> on different EE servers when it comes to gory details ;)
> >>>
> >>> I don't understand any of your argument here, nor what
> >>> conclusion you have reached.  You are free to write a
> >>> ResourceInjectionService backed by something other than
> >>> jndi, although I don't see how it would relate to how
> >>> @Resource annotations are supposed to work in cdi.
> >>>
> >>> My current idea is that we should assume that _all_
> >>> resource objects are stateless and _always_ deserialize
> >>> these ResourceProxyHandlers by obtaining the actual resource
> >>> from the ResourceInjectionService.  This means leaving
> >>> out the FailoverService here.  We could have a
> >>> ResourceSerializationService which if supplied does the
> >>> serialization.  Or we could delegate all the
> >>> serialization to a ResourceSerializationService so I can
> >>> implement something that works for geronimo without
> >>> disturbing the current special-casing of corba stubs.
> >>>
> >>> Hoping you can clarify in a way I can understand :-)
> >>>
> >>> thanks
> >>> david jencks
> >>>
> >>>>
> >>>> LieGrue,
> >>>> strub
> >>>>
> >>>>
> >>>>
> >>>> --- On Mon, 12/27/10, David Jencks <david_jen...@yahoo.com>
> >>> wrote:
> >>>>
> >>>>> From: David Jencks <david_jen...@yahoo.com>
> >>>>> Subject: Re: Problem with serializing
> >>> ResourceProxyHandler
> >>>>> To: dev@openwebbeans.apache.org
> >>>>> Date: Monday, December 27, 2010, 7:43 AM
> >>>>> And another thing...
> >>>>>
> >>>>> ResourceProxyHandler will have problems if the
> >>> serializing
> >>>>> and deserializing OWB instances differ on whether
> >>>>> FailoverService is present.  We should write
> >>> a token to
> >>>>> indicate whether FailoverService was used to
> >>> serialize and
> >>>>> use it in deserialization.
> >>>>>
> >>>>> thanks
> >>>>> david jencks
> >>>>>
> >>>>> On Dec 26, 2010, at 11:21 PM, David Jencks wrote:
> >>>>>
> >>>>>> There's some asymetric logic in
> >>>>> serializing/deserializing ResourceProxyHandler.
> >>>>>>
> >>>>>> Serializing:  any serialized actual
> >>> resource is
> >>>>> written to the object output stream, whereas
> >>>>> non-serializable objects have a marker
> >>> serialized.
> >>>>>>
> >>>>>> Deserializing: The object is read from the
> >>> object
> >>>>> input stream, but only the marker object and CORBA
> >>> stubs
> >>>>> result in the actualResource field being set.
> >>>>>>
> >>>>>> Finding the marker object results in getting
> >>> the
> >>>>> resource again from the ResourceInjectionService,
> >>> typically
> >>>>> by looking something up in jndi.
> >>>>>>
> >>>>>> I would prefer to always get the actual
> >>> resource from
> >>>>> the ResourceInjectionService.  Is there a
> >>> strong reason
> >>>>> not to do this?
> >>>>>>
> >>>>>> If anyone wants to keep the current approach,
> >>> I think
> >>>>> the logic currently in place to reconnect a CORBA
> >>> stub uses
> >>>>> the wrong ORB, I think it needs to look up the orb
> >>> in jndi.
> >>>>>>
> >>>>>> I'm going to fix the current hole in the logic
> >>> (rev
> >>>>> 1053011) but IMO serializing random objects rather
> >>> than
> >>>>> getting them from the bean is a bad idea.
> >>> Even with
> >>>>> this I get a tck failure trying to deserialze an
> >>>>> EntityManagerFactory.
> >>>>>>
> >>>>>> thanks
> >>>>>> david jencks
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >>
> >
>
>



Reply via email to