usually those jndi settings are set via the Admin console or xml. LG m
------------------------------ Rainer Schön schrieb am Di., 26. Nov 2013 21:31 MEZ: >HiMark > >Here the results of my further investigations. > >1. Setting ProjectStage for JSF: Here you have mistaken me. The solution in >the @Startup bean works as expected. The value is set in time and picked up by >JSF on startup. > >2. DS ProjectStage picked up from JNDI: This does obviously not work in >Glassfish 4. The name space java:comp/env is not available until the >application is deployed (name referenced in web.xml <resource-ref> or >ejb-jar.xml <resource-env-ref>). If DS would query JNDI with the global name >"deltaspike/org.apache.deltaspike.ProjectStage" then the value would be found >(I tested this from the debugger). But this seems not to be portable. Did you >test picking up ProjectStage from JNDI in Glassfish? If you got a green bar I >wonder, what I'm doing wrong. > >Regards, Rainer > >Am 26.11.2013 10:11, schrieb Mark Struberg: >> Hi Rainer! >> >> Well, if I understood your original post correctly, then you try to set the >> values into JNDI in a @Singleton @Startup EJBs @PostConstruct method? >> >> The problem is that this is _way_ too late! >> >> Please debug into the following locations to get more details about what's >> going on: >> >> ProjectStageProducer#resolveProjectStage() >> ConfigResolver#getPropertyValue(String key) >> >> You will see that those methods will get invoked long before you hit the >> @Startup breakpoint. >> The reason is that the ProjectStage already gets evaluated during the CDI >> Container boot (via the registered CDI Extensions) and thus any JNDI value >> you set later will simply not get picked up. >> >> You could e.g. even add an annotation >> @Exclude(ifProjectStage=ProjectStage.Production.class) to your @Startup bean >> - I hope this explains why we need to resolve the ProjectStage much earlier. >> >> Could you please try to take the 0.6-SNAPSHOT from >> https://repository.apache.org/content/groups/snapshots/ >> or you just simply compile DeltaSpike locally yourself. This is really easy, >> see [1][2]. >> We've added some pickup of a few known locations like faces.PROJECT_STAGE >> and javax.faces.PROJECT_STAGE. >> Will ask Ed if Mojarra does also pick up the ProjectStage from the >> environment. >> >> >> Please don't hesitate to ping back about your progress, txs! >> >> >> LieGrue, >> strub >> >> >> [1] http://deltaspike.apache.org/source.html >> [2] http://deltaspike.apache.org/build.html >> >> >> >> ________________________________ >> From: Rainer Schön <[email protected]> >> To: [email protected] >> Sent: Monday, 25 November 2013, 15:46 >> Subject: Re: Project Stage in JSF and DeltaSpike - 2nd >> >> >> I think, there is a missunderstanding. My problem is not the timing. As I >> wrote, the @Startup bean does the job for the JSF project stage. The problem >> is here, that DS does n o t pick up the ProjectStage at start up from JNDI >> (please see again my reply beneath). >> >> Regrads, Rainer >> >> >> Am 25.11.2013 15:33, schrieb Mark Struberg: >>> timing issue. >>> >>> At the time @Startup beans get triggered, all the CDI booting is long time >>> done already! >>> >>> LieGrue, >>> strub >>> >>> >>> >>> >>> ________________________________ >>> From: Rainer Schön <[email protected]> >>> To: [email protected] >>> Sent: Monday, 25 November 2013, 12:20 >>> Subject: Re: Project Stage in JSF and DeltaSpike - 2nd >>> >>> >>> Hi Mark >>> >>> Thanks for your reply. I fiddled a little bit about this problem. The best >>> way I think, is to set the values for ProjectStage (DS + JSF) into the JNDI >>> environment. There you have both at the same place. I tried to set then the >>> desired value programmatically before the JSF app is startet but in the web >>> tier (ConextListener or "StartupServlet" with priority 1 and JSF servlet >>> with priority 2) one is always to late to set the value in time. The >>> solution is to set up a @Singleton @Startup ejb and set the JNDI value for >>> the JSF ProjectStage in its @PostConstruct method (works in WAR and EAR >>> deployments to GF4). This solution has the advantage to have control which >>> DS stage should comply to which JSF stage. >>> >>> But Alas, the devil is in the details! DS does not pick up its ProjectStage >>> from JNDI (java:comp/env/deltaspike/ProjectStage). Where could be the >>> problem here? >>> >>> Regards, Rainer >>> >>> >>> Am 21.11.2013 13:09, schrieb Mark Struberg: >>> >>>> >>>> >>>> Hi! >>>> >>>> The JSF spec does not really define environment properties for defining >>>> the ProjectStage. As per the JSF spec (parts are only documented in the >>>> API!) there are only the following 2 ways to define the JSF ProjectStage: >>>> * JNDI java:comp/env/jsf/ProjectStage >>>> * web.xml servlet param javax.faces.PROJECT_STAGE >>>> >>>> Apache MyFaces does also pick up the ProjectStage from the environment via >>>> '-Dfaces.PROJECT_STAGE=..' and via JNDI. See [1] for more info. >>>> I'm not sure whether Mojarra picks up those settings as well. >>>> >>>> >>>> >>>> The configuration which gets picked up in DeltaSpike itself is: >>>> >>>> * all ConfigResolver locations (JNDI + env + system + deltaspike >>>> properties, + custom ConfigResolvers) >>>> >>>> >>>> Currently only the following configuration gets picked up >>>> * org.apache.deltaspike.ProjectStage >>>> >>>> I'm not sure if we already have a JIRA issue for it, but the plan is to >>>> 'extend' this behaviour within the ds-jsf-impl to also pick up the JSF >>>> locations (except web.xml I'd say). I bet there is some hacking needed on >>>> the core-impl to allow for this to happen. >>>> Any opinions? >>>> >>>> LieGrue, >>>> strub >>>> >>>> >>>> >>>> >>>> >>>> [1] https://issues.apache.org/jira/browse/MYFACES-2545 >>>> >>>> >>>> ________________________________ >>>> From: Rainer Schön <[email protected]> >>>> To: [email protected] >>>> Sent: Thursday, 21 November 2013, 11:42 >>>> Subject: Project Stage in JSF and DeltaSpike - 2nd >>>> >>>> >>>> As a follower of the DRY principle, I would like to support Harald >>>> Wellmann's post of October 10th, to which there was no answer: >>>> >>>>> >>>> Is there an easy way to propagate the JSF project stage into >>>> DeltaSpike, or vice versa? >>>> < >>>> >>>> Any idea is appreciated. >>>> >>>> Thanks and regards, Rainer >>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> >
