Another idea might be to provide an ApplicationWrapper which overwrites 
getProjectStage() and returns the DeltaSpike ProjectStage mapped to JSF.
Any opinions on this?

LieGrue,
strub





>________________________________
> From: Mark Struberg <[email protected]>
>To: "[email protected]" <[email protected]> 
>Sent: Tuesday, 26 November 2013, 10:11
>Subject: Re: Project Stage in JSF and DeltaSpike - 2nd
> 
>
>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