myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reto Weiss <Reto.We...@ivyteam.ch>
Subject ExtVal with multiple RenderKit's (Primeface + Primeface Mobile) does not work correctly
Date Tue, 29 Jan 2013 11:11:10 GMT
Hi

I'm using MyFaces (2.1.10) with ExtVal (2.0.6). As RenderKit's I use Primefaces and Primefaces
Mobile. This does not work because the class

org.apache.myfaces.extensions.validator.core.renderkit.DefaultRenderKitWrapperFactory

is not able to handle more than one RenderKit. This is because the method createWrapper caches
the first RenderKit it wrappes. After that it returns the cached RenderKit even if the RenderKit
to wrap is another one than the cached one.

I have fixed this in my project by providing my own RenderKitWrapperFactory:

class IvyExtValRenderKitWrapperFactory extends AbstractRenderKitWrapperFactory
{
  private HashMap<RenderKit, ExtValRenderKit> wrappers = new HashMap<RenderKit, ExtValRenderKit>();

  @Override
  protected synchronized RenderKit createWrapper(RenderKit renderKit)
  {
    ExtValRenderKit wrapper = wrappers.get(renderKit);
    if (wrapper == null)
    {
      wrapper = new ExtValRenderKit(renderKit);
      wrappers.put(renderKit, wrapper);
    }
    return wrapper;
  }

}

Do I make something wrong or is this a bug? Should I report an issue?

Regards

Reto Weiss
Product Owner / Developer Xpert.ivy

ivyTeam AG
Alpenstrasse 9
6300 Zug



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message