deltaspike-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: Project Stage in JSF and DeltaSpike - 2nd
Date Tue, 26 Nov 2013 10:12:38 GMT


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 <struberg@yahoo.de>
>To: "users@deltaspike.apache.org" <users@deltaspike.apache.org> 
>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 <rainer.schoen.dev@gmail.com>
>>To: users@deltaspike.apache.org 
>>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 <rainer.schoen.dev@gmail.com>
>>>> To: users@deltaspike.apache.org
>>>> 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 <rainer.schoen.dev@gmail.com>
>>>>>> To: users@deltaspike.apache.org
>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>
>>
>>
>
>

Mime
View raw message