Excellent! we should definitely get this into the impl as well ;)
regards,
Martin
On Jan 29, 2008 8:08 PM, Gabrielle Crawford <[EMAIL PROTECTED]>
wrote:
> Oops, and _getClassLoader
>
> private ClassLoader _getClassLoader()
> {
> return Thread.currentThread().getContextClassLoader();
> }
>
> Gabrielle Crawford wrote:
> > Here's the implementation I have so far in
> > org.apache.myfaces.trinidadinternal.context.RequestContextImpl
> >
> > @Override
> > public ConcurrentMap<String, Object>
> getApplicationScopedConcurrentMap()
> > {
> > ClassLoader cl = _getClassLoader();
> >
> > ConcurrentMap<String, Object> classMap = _applicationMaps.get(cl);
> >
> > if (classMap == null)
> > {
> > ConcurrentMap<String, Object> newClassMap = new
> > ConcurrentHashMap<String, Object>();
> > ConcurrentMap<String, Object> oldClassMap =
> > _applicationMaps.putIfAbsent(cl, newClassMap);
> >
> > classMap = ((oldClassMap != null)? oldClassMap : newClassMap);
> >
> > assert(classMap != null);
> > }
> >
> > return classMap;
> > }
> >
> >
> > @SuppressWarnings({"CollectionWithoutInitialCapacity"})
> > private static final ConcurrentMap<ClassLoader,
> > ConcurrentMap<String, Object>> _applicationMaps =
> > new ConcurrentHashMap<ClassLoader, ConcurrentMap<String,
> > Object>>();
> >
> > Martin Marinschek wrote:
> >> where will this map be stored?
> >>
> >> regards,
> >>
> >> Martin
> >>
> >> On Jan 29, 2008 6:38 AM, Matthias Wessendorf <[EMAIL PROTECTED]
> >> <mailto:[EMAIL PROTECTED]>> wrote:
> >>
> >> +1
> >>
> >> On Jan 29, 2008 2:48 AM, Blake Sullivan
> >> <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
> wrote:
> >> > I'm, of course, in favor.
> >> >
> >> > -- Blake Sullivan
> >> >
> >> >
> >> > Gabrielle Crawford wrote:
> >> > > Hi,
> >> > >
> >> > > In case anyone filtered away the [jira] message.....
> >> > >
> >> > > I'd like to add the method described below to the
> requestContext.
> >> > >
> >> > > Comments? Objections?
> >> > >
> >> > > Thanks,
> >> > >
> >> > > Gab
> >> > >
> >> > > -------- Original Message --------
> >> > >
> >> > > add method to get an application scoped concurrentMap to
> >> RequestContext
> >> > >
> >>
> -----------------------------------------------------------------------
> >> > >
> >> > > Key: TRINIDAD-926
> >> > > URL:
> >> https://issues.apache.org/jira/browse/TRINIDAD-926
> >> > > Project: MyFaces Trinidad
> >> > > Issue Type: Improvement
> >> > > Affects Versions: 1.2.5-core, 1.0.5-core
> >> > > Reporter: Gabrielle Crawford
> >> > > Assignee: Gabrielle Crawford
> >> > > Priority: Minor
> >> > >
> >> > >
> >> > > This started with Trin Issue 891
> >> > > https://issues.apache.org/jira/browse/TRINIDAD-891
> >> > >
> >> > > To avoid the locking in the class loader we'd like to store a
> >> map of
> >> > > name->class per app. However the external context app map calls
> >> > > through to the ServletContext. The Servlet specification
> doesn't
> >> > > specify whether the ServletContext performs any locking on the
> >> > > ServletContext attributes and the ServletContext doesn't
> >> expose the
> >> > > necessary methods for efficient concurrent access
> >> (essentially the
> >> > > operations exposed on ConcurrentMap) necessary to work
> >> efficiently in
> >> > > many cases even if the ServletContext didn't need to perform
> >> locking
> >> > > on reads. The result is that the ExternalContext's
> >> ApplicationMap
> >> > > can't implement ConcurrentMap.
> >> > > We'd like to add a method to the RequestContext to get an
> >> application
> >> > > scoped concurrent map. This would not call through to the
> servlet
> >> > > context. The api proposed is this:
> >> > >
> >> > >
> >> > > /**
> >> > > * Gets a per application concurrent map. There is no
> >> synchronization
> >> > > * with ServletContext attributes.
> >> > > */
> >> > > public abstract ConcurrentMap<String, Object>
> >> > > getApplicationScopedConcurrentMap();
> >> > >
> >> > >
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Matthias Wessendorf
> >>
> >> further stuff:
> >> blog: http://matthiaswessendorf.wordpress.com/
> >> sessions: http://www.slideshare.net/mwessendorf
> >> mail: matzew-at-apache-dot-org
> >>
> >>
> >>
> >>
> >> --
> >>
> >> http://www.irian.at
> >>
> >> Your JSF powerhouse -
> >> JSF Consulting, Development and
> >> Courses in English and German
> >>
> >> Professional Support for Apache MyFaces
>
--
http://www.irian.at
Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces