that means we can't keep it that way (due to this issue). regards, gerhard
2013/12/29 John D. Ament <john.d.am...@gmail.com> > The NPE in TomEE appears to be a TomEE bug, not injecting test method > arguments. > > On Sun, Dec 29, 2013 at 10:23 AM, Gerhard Petracek > <gerhard.petra...@gmail.com> wrote: > > @john: > > your change also causes a NullPointerException in > > ClasspathWebProfileTest#testSuccessfulAmbiguousLookup > > (with tomee) > > > > regards, > > gerhard > > > > > > > > 2013/12/29 Gerhard Petracek <gerhard.petra...@gmail.com> > > > >> @john: > >> > >> you changed it to: > >> > >> @Test > >> public void > >> > testAmbiguousFileLookup(@ExternalResource(storage=ClasspathStorage.class, > >> location="META-INF/beans.xml") InputStream inputStream) {/*...*/} > >> > >> -> the exception still occurs, but junit can't handle it any longer > >> (because it occurs too early). > >> > >> regards, > >> gerhard > >> > >> > >> > >> 2013/12/29 John D. Ament <john.d.am...@gmail.com> > >> > >> That's no big deal (& fixed). I had to add a separate SE & WebProfile > >>> test since now we're checking for duplicates and the embedded/SE > >>> containers are picking up the target folders are bean archives (I hope > >>> TomEE embedded doesn't do this... >_< ). Using method injection > >>> delays the injection, however we have a catch that /tmp must be your > >>> tmpdir (I haven't checked on windows yet, but I'm assuming c:/tmp > >>> should be fine..) > >>> > >>> @gerhard for some reason now your test doesn't throw a > >>> RuntimeException, but instead the injected instance is null. > >>> > >>> On Sun, Dec 29, 2013 at 6:18 AM, Mark Struberg <strub...@yahoo.de> > wrote: > >>> > > >>> > > >>> > 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.am...@gmail.com> > >>> >> To: u...@openwebbeans.apache.org; Mark Struberg <strub...@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 <strub...@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 <strub...@yahoo.de> > >>> >>>> To: "u...@openwebbeans.apache.org" > >>> >> <u...@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.am...@gmail.com> > >>> >>>>> To: u...@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.am...@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 > >>> >>>>> > >>> >>>>> > >>> >>>>> > >>> >>>> > >>> >> > >>> > >> > >> >