openwebbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: Fwd: Support of Instance<> in OWB
Date Sun, 29 Dec 2013 11:18:25 GMT


Well, the explanation is not in the spec but in the JavaDoc. 

Compare 
http://docs.jboss.org/cdi/api/1.0/javax/enterprise/inject/spi/InjectionPoint.html

with the new wording in CDI-1.1

http://docs.oracle.com/javaee/7/api/javax/enterprise/inject/spi/InjectionPoint.html

I refer to the new sentence

"If the injection point is a dynamically selected reference obtained then the metadata obtain
reflects the injection point of the Instance, with the required type and any additional required
qualifers defined by Instance.select()." 


This theoretically should work in CDI-1.1 containers. Sadly there is no single implementation
which implements this right now.
Weld does provide a synthetic InjectionPoint though, but it only contains the qualifiers and
type of the select but misses all the information from the Instance<> injection. 


As this is only needed for the test it might be a minor problem for us. Still thinking how
we could improve this DeltaSpike test to not rely on this method.


Weld-folks, is there already a report on this in Weld, or should I create one?
I think the wording is clear, do we need to improve it in the CDI MR?


LieGrue,
strub


----- Original Message -----
> From: John D. Ament <john.d.ament@gmail.com>
> To: user@openwebbeans.apache.org; Mark Struberg <struberg@yahoo.de>
> Cc: 
> Sent: Saturday, 28 December 2013, 15:43
> Subject: Re: Fwd: Support of Instance<> in OWB
> 
> Mark,
> 
> Thanks for confirming.  I don't particularly see anything in 3.2 that
> clarifies this, but I'll take your word on it.
> 
> 
> On Fri, Dec 27, 2013 at 2:25 PM, Mark Struberg <struberg@yahoo.de> wrote:
>>  Looked at it and did a few tests. And also checked what we have in the 
> spec.
>> 
>>  For CDI-1.0 containers a producer bean with an InjectionPoint should not be 
> triggered manually. This is not required in CDI-1.0 (which OWB-1.2.x still is) 
> but only got changed in CDI-1.1.
>> 
>>  Please compare the JavaDocs of InjectionPoint for CDI-1.0 and 1.1 to see 
> the difference.
>> 
>>  I will nonetheless add it to OWB trunk as it is really useful feature.
>> 
>>  thanks for the report!
>>  I've created OWB-921 for it.
>> 
>>  LieGrue,
>>  strub
>> 
>> 
>> 
>> 
>> 
>>  ----- Original Message -----
>>>  From: Mark Struberg <struberg@yahoo.de>
>>>  To: "user@openwebbeans.apache.org" 
> <user@openwebbeans.apache.org>
>>>  Cc:
>>>  Sent: Friday, 27 December 2013, 17:45
>>>  Subject: Re: Fwd: Support of Instance<> in OWB
>>> 
>>> 
>>> 
>>>  Thanks John, we will investigate!
>>> 
>>>  LieGrue,
>>>  strub
>>> 
>>> 
>>> 
>>> 
>>>>  ________________________________
>>> 
>>>>   From: John D. Ament <john.d.ament@gmail.com>
>>>>  To: user@openwebbeans.apache.org
>>>>  Sent: Friday, 27 December 2013, 15:11
>>>>  Subject: Fwd: Support of Instance<> in OWB
>>>> 
>>>> 
>>>>  Hi all,
>>>> 
>>>>  I'm cross-posting this from dev@deltaspike to see if anyone has 
> any
>>>>  additional thoughts.
>>>> 
>>>> 
>>>> 
>>>>  ---------- Forwarded message ----------
>>>>  From: John D. Ament <john.d.ament@gmail.com>
>>>>  Date: Thu, Dec 26, 2013 at 10:36 PM
>>>>  Subject: Support of Instance<> in OWB
>>>>  To: dev@deltaspike.apache.org
>>>> 
>>>> 
>>>>  Hi all
>>>> 
>>>>  I added a new test, FileResourceTest.  It fails in OWB, but passes 
> in
>>>>  Weld.  AFAIK it's supposed to pass in both.
>>>> 
>>>>  The one catch I noticed, since it has a similar test
>>>>  ClasspathResourceTest, is that I'm using Instances/literals vs
>>>>  annotations.  I need to use Instance since the actual file name is
>>>>  dynamic at runtime.  In the test right now, I have this:
>>>> 
>>>>      @Inject
>>>>      @Any
>>>>      private Instance<InputStream> inputStreamInst;
>>>> 
>>>>      @Inject
>>>>      @Any
>>>>      private Instance<Properties> propsInst;
>>>> 
>>>>  and when I switch to this:
>>>> 
>>>>      @Inject
>>>>      @ExternalResource(storage =
>>>> 
> FileSystemStorage.class,location="/tmp/myconfig.properties")
>>>>      private InputStream inputStream;
>>>> 
>>>>      @Inject
>>>>      @ExternalResource(storage =
>>>> 
> FileSystemStorage.class,location="/tmp/myconfig.properties")
>>>>      private Properties props;
>>>> 
>>>>  The test works fine (assuming I create the file).  I don't 
> typically
>>>>  play with OWB that much, but this should be the right format for
>>>>  Instances, right?  Feedback is much appreciated.
>>>> 
>>>>  Thanks,
>>>> 
>>>>  John
>>>> 
>>>> 
>>>> 
>>> 
> 

Mime
View raw message