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
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>

Reply via email to