yes - that's true! i also told leonardo about it.
in his e-mail he just skipped it...

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2010/5/21 Martin Marinschek <[email protected]>

> Hi guys,
>
> if MyFaces is deployed with the web-app, the static var will reside in
> a class which is loaded by the context class-loader - so once per app.
> Problems might only arise if MyFaces is deployed only once for all
> web-apps - which will seldom be the case, I guess.
>
> best regards,
>
> Martin
>
> On 5/21/10, Jakob Korherr <[email protected]> wrote:
> > So the conclusion is to use a private static boolean on UIInput that
> tells
> > us if we are in Development stage or not.
> >
> > Any objections to that?
> >
> > Regards,
> > Jakob
> >
> > 2010/5/20 Leonardo Uribe <[email protected]>
> >
> >> Hi
> >>
> >> 2010/5/19 Jan-Kees van Andel <[email protected]>
> >>
> >> Sounds plausible, we already do the same thing with the ExternalContexts
> >>> class.
> >>>
> >>> It's blazing fast, but the question is: Are we allowed to and do we
> want
> >>> to cache the instance?
> >>>
> >>>
> >> In theory yes, because it does not change the behavior expected by the
> >> spec.
> >>
> >>
> >>>  If the spec doesn't dictate otherwise, I'm in favor of caching it.
> >>>
> >>> Another idea is to cache it in the ServletContext. It's not as fast as
> a
> >>> static final field, but still pretty fast and can be inspected and
> >>> modified
> >>> through appserver tooling.
> >>>
> >>>
> >> The problem is from UIInput.setValue() or UIInput.setSubmittedValue() we
> >> don't have access to ServletContext (the only way is through
> >> FacesContext.getCurrentInstance().getExternalContext(), and we want to
> >> avoid
> >> the call to FacesContext.getCurrentInstance() ).
> >>
> >> Talking with Gerhard, the conclusion was a static var could do the job.
> Is
> >> just unrealistic assume someone has a production environment with some
> >> applications with project stage "production" and others "development"
> >> (note
> >> shared variables are "shared" by all applications hosted in a web
> server).
> >> In the worst case, the applications will continue working.
> >>
> >> regards,
> >>
> >> Leonardo
> >>
> >>
> >>> Regards,
> >>> Jan-Kees
> >>>
> >>>
> >>> 2010/5/19 Gerhard Petracek <[email protected]>
> >>>
> >>>> we don't have to cache the faces-context.
> >>>> we can use e.g. an interface with a static final field.
> >>>>
> >>>> usage (example):
> >>>> if(Boolean.TRUE.equals(InternalProjectStage.IS_DEV_MODE))
> >>>> {
> >>>> //...
> >>>> }
> >>>>
> >>>> -> there is just one evaluation.
> >>>>
> >>>> regards,
> >>>> gerhard
> >>>>
> >>>> http://www.irian.at
> >>>>
> >>>> Your JSF powerhouse -
> >>>> JSF Consulting, Development and
> >>>> Courses in English and German
> >>>>
> >>>> Professional Support for Apache MyFaces
> >>>>
> >>>>
> >>>> 2010/5/19 Leonardo Uribe <[email protected]>
> >>>>
> >>>> Hi
> >>>>>
> >>>>> The problem in this case is the only place we can store this
> >>>>> information
> >>>>> is the component instance itself. So, at least there is one lookup
> per
> >>>>> component.
> >>>>>
> >>>>> If we try to cache facesContext, unfortunately there is not safe way
> to
> >>>>> clean this reference (portlet case), so there is a risk of use old
> >>>>> instances
> >>>>> of this object in this case.
> >>>>>
> >>>>> regards,
> >>>>>
> >>>>> Leonardo Uribe
> >>>>>
> >>>>> 2010/5/19 Gerhard Petracek <[email protected]>
> >>>>>
> >>>>> hi,
> >>>>>>
> >>>>>> as long as we don't want to change the project stage dynamically, we
> >>>>>> can just store e.g. a marker as static information.
> >>>>>>
> >>>>>> regards,
> >>>>>> gerhard
> >>>>>>
> >>>>>>
> >>>>>> http://www.irian.at
> >>>>>>
> >>>>>> Your JSF powerhouse -
> >>>>>> JSF Consulting, Development and
> >>>>>> Courses in English and German
> >>>>>>
> >>>>>> Professional Support for Apache MyFaces
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> 2010/5/19 Jakob Korherr <[email protected]>
> >>>>>>
> >>>>>> Hi Martin,
> >>>>>>>
> >>>>>>> Indeed, we have to call FacesContext.getCurrentInstance()
> everytime.
> >>>>>>>
> >>>>>>> So I guess it will be better to remove the code from UIInput!
> >>>>>>>
> >>>>>>> Regards,
> >>>>>>> Jakob
> >>>>>>>
> >>>>>>> 2010/5/19 Martin Marinschek <[email protected]>
> >>>>>>>
> >>>>>>> Hi Jakob,
> >>>>>>>>
> >>>>>>>> > The problem with this is that the code on UIInput checks the
> >>>>>>>> ProjectStage
> >>>>>>>> > everytime setSubmittedValue() or setValue() are called, which is
> >>>>>>>> very often
> >>>>>>>> > and could make MyFaces a bit slower, I guess. If we remove this
> >>>>>>>> code on
> >>>>>>>> > UIInput, the debug output will stay mostly the same except for
> the
> >>>>>>>> call
> >>>>>>>> > stack, because this will be gone.
> >>>>>>>> >
> >>>>>>>> > The question now is if we should leave it the way it currently
> is
> >>>>>>>> (with the
> >>>>>>>> > code on UIInput and the possibility to display the call stack)
> or
> >>>>>>>> if we
> >>>>>>>> > should remove the code from UIInput (which means no slowdown on
> >>>>>>>> > setSubmittedValue() and setValue() but loosing the call stack).
> >>>>>>>> What do you
> >>>>>>>> > guys think? Any opinions/objections?
> >>>>>>>>
> >>>>>>>> for me it is a question how fast this getProjectStage() derivation
> >>>>>>>> is.
> >>>>>>>> If that means to call FacesContext.getCurrentInstance() all the
> >>>>>>>> time,
> >>>>>>>> the impact is considerable (thread-local resolution). In this case
> >>>>>>>> it
> >>>>>>>> might be better to not have this information...
> >>>>>>>>
> >>>>>>>> Martin
> >>>>>>>>
> >>>>>>>> > Regards,
> >>>>>>>> > Jakob
> >>>>>>>> >
> >>>>>>>> > --
> >>>>>>>> > Jakob Korherr
> >>>>>>>> >
> >>>>>>>> > blog: http://www.jakobk.com
> >>>>>>>> > twitter: http://twitter.com/jakobkorherr
> >>>>>>>> > work: http://www.irian.at
> >>>>>>>> >
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>>
> >>>>>>>> http://www.irian.at
> >>>>>>>>
> >>>>>>>> Your JSF powerhouse -
> >>>>>>>> JSF Consulting, Development and
> >>>>>>>> Courses in English and German
> >>>>>>>>
> >>>>>>>> Professional Support for Apache MyFaces
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Jakob Korherr
> >>>>>>>
> >>>>>>> blog: http://www.jakobk.com
> >>>>>>> twitter: http://twitter.com/jakobkorherr
> >>>>>>> work: http://www.irian.at
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
> >
> > --
> > Jakob Korherr
> >
> > blog: http://www.jakobk.com
> > twitter: http://twitter.com/jakobkorherr
> > work: http://www.irian.at
> >
>
>
> --
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>

Reply via email to