ICEfaces
  1. ICEfaces
  2. ICE-4552

Investigate RenderKit decoration strategies for standard components

    Details

    • Type: Task Task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-Alpha1
    • Fix Version/s: 2.0-Alpha2, 2.0.0
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      jsf 2.0

      Description

      Look at how RenderKit decoration is done and how we might apply it to overriding features in the standard components.

        Issue Links

          Activity

          Hide
          Deryk Sinotte added a comment -

          I find some problematic behaviour with RenderKit decoration that didn't match the spec. I submitted a bug to Sun and it looks as if it's been fixed.

          https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1112

          So we should be able to continue our investigation here.

          Show
          Deryk Sinotte added a comment - I find some problematic behaviour with RenderKit decoration that didn't match the spec. I submitted a bug to Sun and it looks as if it's been fixed. https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1112 So we should be able to continue our investigation here.
          Hide
          Ted Goddard added a comment -

          RenderKit decoration is confirmed to be working. The proposed feature is as follows:

          By default, the addition of icefaces.jar enables ICEfaces for all JSF pages in the application.
          A parameter: org.icefaces.render.auto = true (default behavior) = false (individual pages are configured for ICEfaces rendering).
          A tag/component: <ice:config render="true" /> configures ICEfaces rendering on specified pages.

          The configuration component is useful for general ICEfaces per-page configuration (fictitious attributes to start the discussion):

          <ice:config render="true" pushheartbeat="50s" profile="mobile" submitstrategy="delta" />

          Show
          Ted Goddard added a comment - RenderKit decoration is confirmed to be working. The proposed feature is as follows: By default, the addition of icefaces.jar enables ICEfaces for all JSF pages in the application. A parameter: org.icefaces.render.auto = true (default behavior) = false (individual pages are configured for ICEfaces rendering). A tag/component: <ice:config render="true" /> configures ICEfaces rendering on specified pages. The configuration component is useful for general ICEfaces per-page configuration (fictitious attributes to start the discussion): <ice:config render="true" pushheartbeat="50s" profile="mobile" submitstrategy="delta" />
          Hide
          Ted Goddard added a comment -

          The following cryptic Exception can be observed when the RenderKit is null, indicating that the page still contains <f:view renderKitId="xHTML_BASIC" contentType="text/html" >

          java.lang.NullPointerException
          at com.sun.faces.application.ApplicationImpl.applyAnnotations(ApplicationImpl.java:1870)
          at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1819)
          at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1090)
          at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:326)
          at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:145)
          at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
          at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
          at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
          at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
          at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:75)
          at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:145)
          at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:715)
          at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
          at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
          at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
          at java.lang.Thread.run(Thread.java:637)

          Show
          Ted Goddard added a comment - The following cryptic Exception can be observed when the RenderKit is null, indicating that the page still contains <f:view renderKitId="xHTML_BASIC" contentType="text/html" > java.lang.NullPointerException at com.sun.faces.application.ApplicationImpl.applyAnnotations(ApplicationImpl.java:1870) at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1819) at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1090) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:326) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:145) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91) at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91) at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:75) at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:145) at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:715) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:637)

            People

            • Assignee:
              Ted Goddard
              Reporter:
              Deryk Sinotte
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: