But this _could_ be a problem, or at least result in weird behavior, so I
think it is the best solution just to remove the code from UIInput...

Regards,
Jakob

2010/5/21 Gerhard Petracek <gerhard.petra...@gmail.com>

> 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 <mmarinsc...@apache.org>
>
> 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 <jakob.korh...@gmail.com> 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 <lu4...@gmail.com>
>> >
>> >> Hi
>> >>
>> >> 2010/5/19 Jan-Kees van Andel <jankeesvanan...@gmail.com>
>> >>
>> >> 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 <gerhard.petra...@gmail.com>
>> >>>
>> >>>> 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 <lu4...@gmail.com>
>> >>>>
>> >>>> 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 <gerhard.petra...@gmail.com>
>> >>>>>
>> >>>>> 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 <jakob.korh...@gmail.com>
>> >>>>>>
>> >>>>>> 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 <mmarinsc...@apache.org>
>> >>>>>>>
>> >>>>>>> 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
>>
>
>


-- 
Jakob Korherr

blog: http://www.jakobk.com
twitter: http://twitter.com/jakobkorherr
work: http://www.irian.at

Reply via email to