Yup, they should have been in the patch.
Wait I'll commit them now, just pull your changes.

LieGrue,
strub


--- Gurkan Erdogdu <[email protected]> schrieb am Mi, 28.1.2009:

> Von: Gurkan Erdogdu <[email protected]>
> Betreff: Re: level of resource injection
> An: [email protected]
> Datum: Mittwoch, 28. Januar 2009, 21:21
> Mark, did you write test cases  for this?
> 
> Thanks;
> 
> /Gurkan
> 
> 
> 
> 
> ________________________________
> From: Mark Struberg <[email protected]>
> To: [email protected]
> Sent: Wednesday, January 28, 2009 3:36:06 PM
> Subject: Re: level of resource injection
> 
> it's done.
> 
> please review the patch in 
> https://issues.apache.org/jira/browse/OWB-71
> 
> Regarding JPAUtil#getPersistenceUnit
> 
> I'm in favour to implement those functions for the
> basic systems directly in our code for now and think about
> what to implement via an SPI later in a 2nd round. This will
> give us more time to learn what we really need first.
> 
> LieGrue,
> strub
> 
> 
> --- Gurkan Erdogdu <[email protected]> schrieb
> am Di, 27.1.2009:
> 
> > Von: Gurkan Erdogdu <[email protected]>
> > Betreff: Re: level of resource injection
> > An: [email protected]
> > Datum: Dienstag, 27. Januar 2009, 15:55
> > Ok, Mark.
> > 
> 
> > ________________________________
> > From: Mark Struberg <[email protected]>
> > To: [email protected]
> > Sent: Tuesday, January 27, 2009 4:04:26 PM
> > Subject: Re: level of resource injection
> > 
> > Hi Gurkan!
> > 
> > Thanks for the tips!
> > 
> > Currently I'm only looking at the injection of
> > resources which do not need any XML. So I started with
> > implementing @PersistenceUnit and looking forward to
> wrap
> > all the necessary PersistenceManagerFactory stuff in
> > JPAUtil.java (currently empty, but I think that's
> what
> > you've intended it for, isn't it?).
> > 
> > I'll post a patch for review in the afternoon
> > (hopefully) and commit it after you've checked it.
> > 
> > @PersistenceContext will be a bit trickier, since it
> is not
> > thread save and we have to do kind of
> 'scoping'
> > ourself.
> > 
> > The @CustomerDataservice with the whole XML stuff will
> be
> > the next step after we've solved this problem.
> > 
> > 
> > LieGrue,
> > strub
> > 
> > 
> > --- Gurkan Erdogdu <[email protected]>
> schrieb
> > am Di, 27.1.2009:
> > 
> > > Von: Gurkan Erdogdu
> <[email protected]>
> > > Betreff: Re: level of resource injection
> > > An: [email protected]
> > > Datum: Dienstag, 27. Januar 2009, 12:47
> > > Hi Mark;
> > > 
> > > Do you try to implement resource injections via
> XML
> > > definitions, right? Below sketch is the summary
> of how
> > you
> > > can proceed with the current implementation.
> > > 
> > > For XML defined webbeans, the main entry point is
> the
> > > *WebBeansXMLConfigurator* class. Java EE
> Resources are
> > only
> > > defined in the xml file, according to the *9.5.2
> > Type-Level
> > > metadata for a bean*. This part is handled in the
> > >
> *WebBeansXMLConfigurator#configureTypeLevelMetaData*
> > method.
> > > 
> > > 
> > > For injectable resources, you can create another
> class
> > like
> > > *XMLResourceInjectableField* in the *inject/xml*
> > package and
> > > add the *Map<Field,XMLInjectionPointModel> 
> > > injectedResources* instance variable into the
> > > *XMLComponentImpl.java* to hold the injectable
> > resource
> > > fields.
> > > 
> > > After that you will have to add the resource
> injection
> > > fields that are declared in the XML into the
> resource
> > > injection map in the *XMLComponentImpl* class.
> You can
> > > create another method for this in the
> > > *WebBeansXMLConfigurator* class, for example
> > > *configureInjectableResources()*, and call this
> method
> > from
> > > *configureTypeLevelMetaData()* method.
> > > 
> > > Skeletons of the codes may like the followings;
> > > 
> > > WebBeansXMLConfigurator.java
> > > ----------------------------------------------
> > > ........
> > > 
> > > //Update this method
> > >  public <T> void
> configureTypeLevelMetaData()
> > > {
> > >    //Add this method call
> > >    configureInjectableResources(); 
> > > 
> > > }
> > > //This is the new method that is responsible for
> > adding
> > > resource injection fields to the component
> > > public <T> void
> configureInjectableResources()
> > > {
> > >     //Find fields from resource decleration in
> XML
> > >     //Create XMLInjectionPointModel for each
> field
> > >     //Add field and related model into the
> > >
> >
> XMLComponentImpl#Map<Field,XMLInjectionPointModel> 
> > > }
> > > 
> > > XMLComponentImpl.java
> > > ---------------------------------
> > > After that in XMLComponentImpl class, update
> > injectFields
> > > method to inject resources,
> > >    
> > > //Update this method for adding resource
> injection
> > support
> > > 
> > >  protected void injectFields(T instance)
> > > {
> > >    ......
> > >    //For each resource injection map entry  
> > >    //Create new *XMLResourceInjectableField*
> instance
> > >    //Set field with calling the
> > > AbstractInjectable#inject(....)
> > > }
> > > AbstractInjectable class
> > > ---------------------------------
> > > public Object inject()
> > > {
> > >     //If resource, create injection object with
> method
> > > injectResource
> > >     if (isResource(annotations))
> > >             {
> > >                 return injectResource(type,
> > annotations);
> > >             }
> > > }
> > > 
> > > WDYT?
> > > 
> > > /Gurkan
> > > 
> > > 
> > > 
> > > ________________________________
> > > From: Mark Struberg <[email protected]>
> > > To: [email protected]
> > > Sent: Tuesday, January 27, 2009 12:35:02 PM
> > > Subject: level of resource injection
> > > 
> > > Gurkan,
> > > another question about resources: where should I
> > actually
> > > inject the resources finally?
> > > 
> > > This is the stack trace so far:
> > > 
> > >
> InjectionResolver.implResolveByType(Class<?>,
> > Type[],
> > > Annotation...) line: 94    
> > >
> >
> InjectableField(AbstractInjectable).inject(Class<T>,
> > > Type[], Annotation...) line: 83    
> > > InjectableField.doInjection() line: 92    
> > > 
> > > 
> > > My thoughts: 
> > > Resources can be handled in a very high layer,
> since
> > the
> > > 'accessors' already hide all the
> underlying
> > > complexity of having classloader hierarchies etc,
> > isn't?
> > > 
> > > So in the 
> > > AbstractInjectable#inject
> > > I'd like to add something like:
> > > 
> > >             if (isResource(annotations))
> > >             {
> > >                 return injectResource(type,
> > annotations);
> > >             }
> > > 
> > > LieGrü,
> > > strub



Reply via email to