6 Replies Latest reply on Jun 22, 2007 2:53 PM by Phil Brown

    Custom JSF component w/ a4j suport

    Phil Brown Newbie

      Hello all I have been tasked with creating a custom jsf table for my organization, and have decided to extend the h:dataTable component and add AJAX support through A4J components. The list of features I ned to support is long to say the least and I haven't seen a custom component able to do that.

      My PLatform: a4j 1.0, jsf1.2_3, facelets 1.14 (i believe) and tomcat 6.0.6

      As a proof of concept my first revision will be a simple HtmlDataTable that adds a couple of features filtering of the dataset (easy enough) and pagination via AJAX (not so easy). I have both technical and design questions.

      First the design question: I do not want to have to keep my state in a backing bean, i feel that the component should work on its own. Yet I can't think of a way for the A4J:CommandLinks to work directly on the control (the action attribute is a method binding to a backing bean).

      The Second Question is implementation: When I click on the command link it sends the ajax request but dosn't rerender anything... I am throughly confused as to why.

      my class UITable (extends HtmlDataTable) exposes a method getCmdLnkLast which is defined as:

      public HtmlAjaxCommandLink getCmdLnkLast(FacesContext facesCtx) {
      
       HtmlAjaxCommandLink cmdLnkLast = (HtmlAjaxCommandLink)getComponent(facesCtx, HtmlAjaxCommandLink.COMPONENT_TYPE) ;
      
       cmdLnkLast.setParent(this) ;
       cmdLnkLast.setId(this.getId() + "_LAST");
       cmdLnkLast.setReRender(this.getId()) ;
       cmdLnkLast.setRequestDelay(this.requestDelay) ;
       cmdLnkLast.setEventsQueue(this.eventsQueue) ;
      
       HtmlOutputText text = (HtmlOutputText)getComponent(facesCtx, HtmlOutputText.COMPONENT_TYPE) ;
       text.setValue(this.lastTxt) ;
      
       cmdLnkLast.getChildren().add(text) ;
      
       return cmdLnkLast;
      
       }


      which is referenced by my renderer (extends TableRenderer):
      public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
       UITable table = (UITable)component ;
      
       render(context, table.getCmdLnkLast(context)) ;
      
       super.encodeBegin(context, component) ;
       }
       private void render(FacesContext context, UIComponent component) throws IOException {
       Renderer renderer = getRendererFor(context, component) ;
       renderer.encodeBegin(context, component) ;
       renderer.encodeChildren(context, component) ;
       renderer.encodeEnd(context, component) ;
       }


      It Yields the following HTML:
      <form id="test" name="test" method="post" action="/ExecutionMonitor/queries/test.xhtml" border="0" enctype="application/x-www-form-urlencoded">
      <input type="hidden" name="test" value="test" />
      <input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id1:j_id2" />
      
      <script id="test:j_id2" type="text/javascript">//<![CDATA[
      LOG.registerPopup('l','logg',800,600,LOG.ALL);
      //]]>
      </script>
      
      <a href="#"
       id="test:testTable:testTable_LAST"
       name="test:testTable:testTable_LAST"
       onclick="A4J.AJAX.Submit(
       'test:lilTable',
       'test',
       event,
       {'eventsQueue':'dummy',
       'parameters':{'test:testTable:testTable_LAST':'test:testTable:testTable_LAST'},
       'actionUrl':'/ExecutionMonitor/queries/test.xhtml',
       'requestDelay':10});return false;">Last</a>
      
      <table id="test:testTable" border="1" cellpadding="3" cellspacing="3" width="100%"><thead><tr><th scope="col">Ticker</th></tr></thead><tbody><tr><td>MSFT</td></tr><tr><td>GOOG</td></tr></tbody></table>
      
      </form>



      My JSF Page which ties averything together is simple:
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      
      <html
       xmlns="http://www.w3.org/1999/xhtml"
       xmlns:jsp="http://java.sun.com/JSP/Page"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
       xmlns:emCore="http://www.em.com/tags/core"
       xmlns:em="http://www.em.com/tags"
       xmlns:emC="http://www.em.com/components">
      
       <ui:composition template="../layout/blank.xhtml">
       <ui:define name="content">
      
       <h:form id="test" border="0">
       <a4j:region id="lilTable">
       <a4j:log level="ALL" name="logg" hotkey="l" />
       <emC:table
       paginate="true"
       pageSize="7"
       id="testTable"
       var="row"
       value="#{dailySummary.results}"
       border="1" cellspacing="3" cellpadding="3" width="100%">
      
       <h:column>
       <f:facet name="header">Ticker</f:facet>
       <h:outputText value="${row.ticker}" />
       </h:column>
       </emC:table>
      
       </a4j:region>
       </h:form>
       </ui:define>
       </ui:composition>
      </html>


      THE DEBUG Log (from the ajax request) is as follows:
      debug[16:13:39,923]: Have Event [object Object] with properties: target: undefined, srcElement: http://localhost:8080/ExecutionMonitor/queries/test.xhtml#, type: click
      debug[16:13:39,923]: Event occurs, create waiting for request in queue dummy
      debug[16:13:39,939]: End delay waiting, make request in queue dummy
      debug[16:13:39,939]: NEW AJAX REQUEST !!! with form :test
      debug[16:13:39,939]: parameter test:testTable:testTable_LAST with value test:testTable:testTable_LAST
      debug[16:13:39,954]: Start XmlHttpRequest
      debug[16:13:39,954]: Reqest state : 1
      debug[16:13:39,954]: QueryString: AJAXREQUEST=test%3AlilTable&test=test&javax.faces.ViewState=j_id1%3Aj_id2&test%3AtestTable%3AtestTable_LAST=test%3AtestTable%3AtestTable_LAST&
      debug[16:13:39,970]: Reqest state : 1
      debug[16:13:46,361]: Reqest state : 2
      debug[16:13:46,376]: Reqest state : 3
      debug[16:13:46,376]: Reqest state : 4
      debug[16:13:46,376]: Reqest end with state 4
      debug[16:13:46,392]: Response with content-type: text/xml;charset=UTF-8
      debug[16:13:46,392]: Full response content: <?xml version="1.0"?>
      <html xmlns="http://www.w3.org/1999/xhtml"><head><script type="text/javascript" src="/ExecutionMonitor/a4j.res/org.ajax4jsf.framework.ajax.AjaxScript.xhtml">
      </script><meta name="Ajax-Update-Ids" content="" /><title></title><meta id="Ajax-Response" name="Ajax-Response" content="true" /></head><body><span id="ajax-update-ids"><input type="hidden" name="jsf_sequence" value="1" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id1:j_id3" /></span></body></html>
      debug[16:13:46,392]: Header Ajax-Update-Ids not found, search in <meta>
      debug[16:13:46,392]: search for elements by name 'meta' in element #document
      debug[16:13:46,407]: selectNodes found 2
      debug[16:13:46,407]: Find <meta name='Ajax-Update-Ids' content=''>
      warn[16:13:46,407]: No information in response about elements to replace
      debug[16:13:46,423]: call selectSingleNode for id= ajax-update-ids
      debug[16:13:46,423]: Hidden JSF state fields:
      debug[16:13:46,423]: search for elements by name 'input' in element span
      debug[16:13:46,439]: selectNodes found 2
      debug[16:13:46,439]: Replace value for inputs: 2 by new values: 2
      debug[16:13:46,439]: Input in response: jsf_sequence
      debug[16:13:46,439]: Input in response: javax.faces.ViewState
      debug[16:13:46,454]: Found same input on page with type: hidden
      debug[16:13:46,454]: search for elements by name 'INPUT' in element span
      debug[16:13:46,454]: selectNodes found 0
      debug[16:13:46,470]: Replace value for inputs: 2 by new values: 0


      and the HTML Response view of the ajax request is:
      POST /em/queries/test.xhtml HTTP/1.1
      Accept: */*
      Accept-Language: en-us
      Referer: http://localhost:8080/em/queries/test.xhtml
      Content-Type: application/x-www-form-urlencoded; charset=UTF-8
      Accept-Encoding: gzip, deflate
      User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
      Host: localhost:8080
      Content-Length: 142
      Proxy-Connection: Keep-Alive
      Pragma: no-cache
      Cookie: JSESSIONID=A5541DA9E71D758DE52839851103DA0C; credentialsBean=joe@aol.com~joe~~~demo~emdemo~true~4
      
      AJAXREQUEST=test%3AlilTable&test=test&javax.faces.ViewState=j_id1%3Aj_id3&test%3AtestTable%3AtestTable_LAST=test%3AtestTable%3AtestTable_LAST&
      
      HTTP/1.1 200 OK
      Server: Apache-Coyote/1.1
      X-Powered-By: JSF/1.2
      Set-Cookie: credentialsBean=joe@aol.com~joe~~~demo~emdemo~true~4; Expires=Wed, 20-Jun-2007 20:45:34 GMT; Path=/
      Ajax-Update-Ids:
      Ajax-Response: true
      Cache-Control: no-cache, must-revalidate, max_age=0, no-store
      Expires: 0
      Pragma: no-cache
      Content-Type: text/xml;charset=UTF-8
      Content-Length: 524
      Date: Wed, 20 Jun 2007 20:15:34 GMT
      
      <?xml version="1.0"?>
      <html xmlns="http://www.w3.org/1999/xhtml"><head><script type="text/javascript" src="/em/a4j.res/org.ajax4jsf.framework.ajax.AjaxScript.xhtml">
      </script><meta name="Ajax-Update-Ids" content="" /><title></title><meta id="Ajax-Response" name="Ajax-Response" content="true" /></head><body><span id="ajax-update-ids"><input type="hidden" name="jsf_sequence" value="1" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id1:j_id4" /></span></body></html>



      Obviously it doesn't think it needs to render anything... when I set a break point in my UITable control on the restoreState method I actually break... I just can't figure out why we never reach the render phase OR if we do why the output isn't gatherered and sent back to the client.

      HELP PLease.... ...Thank you for taking the time to read my post.







        • 1. Re: Custom JSF component w/ a4j suport
          Ilya Shaikovsky Master

          Please make sure that you didn't use facelets 1.0.14 but use 1.1.12 instead. Lot of problems was in oldest versions. And you may also update your a4j to 1.1.2 to make sure all latest problems solved. If the problems will not solved - we'll continue investigations.

          P.S. JSF 1.2_04 also available.

          • 2. Re: Custom JSF component w/ a4j suport
            Phil Brown Newbie

            My bad, we upgraded to 1.1.12 months ago... My memory seems to have disappeared.

            We can apply the new a4j - but we are typically not allowed to apply upgrades to try to fix problems unless we know what and why the upgrade fixes. Senior engineer is a stickler for controling the production environment (leaving me to figure out on my own). Thanks for the suggestion - I will post as soon as I have results.

            Has anybody actually done anything like this in the past?

            • 3. Re: Custom JSF component w/ a4j suport
              Phil Brown Newbie

              Here si the web.xml file for the component project:

              <?xml version="1.0" encoding="UTF-8"?>
              <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
               <context-param>
               <param-name>facelets.LIBRARIES</param-name>
               <param-value>/WEB-INF/facelet/em.components.taglib.xml</param-value>
               </context-param>
              </web-app>



              And here is the web.xml for the web project using the component:

              <?xml version="1.0" encoding="UTF-8"?>
              <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
               <context-param>
               <param-name>com.sun.faces.expressionFactory</param-name>
               <param-value>org.apache.el.ExpressionFactoryImpl</param-value>
               </context-param>
               <context-param>
               <param-name>facelets.LIBRARIES</param-name>
               <param-value>
               /WEB-INF/facelet-tags/bp.ui.5.taglib.xml;
               /WEB-INF/facelet-tags/em.taglib.xml;
               /WEB-INF/facelet-tags/em.taglib.java.xml;
               </param-value>
               </context-param>
               <context-param>
               <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
               <param-value>com.sun.facelets.FaceletViewHandler</param-value>
               </context-param>
               <context-param>
               <param-name>facelets.BUILD_BEFORE_RESTORE</param-name>
               <param-value>false</param-value>
               </context-param>
               <context-param>
               <param-name>facelets.DEVELOPMENT</param-name>
               <param-value>true</param-value>
               </context-param>
               <context-param>
               <param-name>org.ajax4jsf.SKIN</param-name>
               <param-value>DEFAULT</param-value>
               </context-param>
               <context-param>
               <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
               <param-value>.xhtml</param-value>
               </context-param>
               <context-param>
               <param-name>com.sun.faces.verifyObjects</param-name>
               <param-value>false</param-value>
               </context-param>
               <context-param>
               <param-name>com.sun.faces.validateXml</param-name>
               <param-value>true</param-value>
               </context-param>
               <context-param>
               <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
               <param-value>server</param-value>
               </context-param>
               <servlet>
               <servlet-name>Faces Servlet</servlet-name>
               <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
               <load-on-startup>1</load-on-startup>
               </servlet>
               <servlet-mapping>
               <servlet-name>Faces Servlet</servlet-name>
               <url-pattern>*.xhtml</url-pattern>
               </servlet-mapping>
               <listener>
               <listener-class>
               com.sun.faces.config.ConfigureListener
               </listener-class>
               </listener>
              
               <filter>
               <display-name>Ajax4jsf Filter</display-name>
               <filter-name>ajax4jsf</filter-name>
               <filter-class>org.ajax4jsf.Filter</filter-class>
               </filter>
               <filter-mapping>
               <filter-name>ajax4jsf</filter-name>
               <servlet-name>Faces Servlet</servlet-name>
               <dispatcher>REQUEST</dispatcher>
               <dispatcher>FORWARD</dispatcher>
               <dispatcher>INCLUDE</dispatcher>
               </filter-mapping>
              
               <!--filter>
               <filter-name>CacheControlFilter</filter-name>
               <filter-class>org.jboss.web.tomcat.filters.ReplyHeaderFilter</filter-class>
               <init-param>
               <param-name>Cache-Control</param-name>
               <param-value>max-age=3600</param-value>
               </init-param>
               </filter>
              
               <filter-mapping>
               <filter-name>CacheControlFilter</filter-name>
               <url-pattern>/css/*</url-pattern>
               </filter-mapping>
               <filter-mapping>
               <filter-name>CacheControlFilter</filter-name>
               <url-pattern>/js/*</url-pattern>
               </filter-mapping>
               <filter-mapping>
               <filter-name>CacheControlFilter</filter-name>
               <url-pattern>/ico/*</url-pattern>
               </filter-mapping>
               <filter-mapping>
               <filter-name>CacheControlFilter</filter-name>
               <url-pattern>/img/*</url-pattern>
               </filter-mapping>
               <filter-mapping>
               <filter-name>CacheControlFilter</filter-name>
               <url-pattern>/images/*</url-pattern>
               </filter-mapping>
               <filter-mapping>
               <filter-name>CacheControlFilter</filter-name>
               <url-pattern>/static/*</url-pattern>
               </filter-mapping -->
              
               <session-config>
               <session-timeout>30</session-timeout>
               </session-config>
               <welcome-file-list>
               <welcome-file>
               index.jsp
               </welcome-file>
               </welcome-file-list>
              </web-app>
              


              • 4. Re: Custom JSF component w/ a4j suport
                Phil Brown Newbie

                The project fails to deploy. Here is the Tomcat log and debug log:

                Jun 21, 2007 11:38:46 AM org.apache.catalina.core.StandardContext filterStart
                SEVERE: Exception starting filter ajax4jsf
                java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap
                 at java.lang.ClassLoader.defineClass1(Native Method)
                 at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
                 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
                 at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1814)
                 at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:868)
                 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1321)
                 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1200)
                 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
                 at org.ajax4jsf.cache.LRUMapCacheFactory.createCache(LRUMapCacheFactory.java:49)
                 at org.ajax4jsf.framework.resource.InternetResourceService.init(InternetResourceService.java:106)
                 at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.init(BaseFilter.java:149)
                 at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:273)
                 at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:395)
                 at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:106)
                 at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3692)
                 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4341)
                 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
                 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
                 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
                 at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:625)
                 at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:552)
                 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:487)
                 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1137)
                 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
                 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
                 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
                 at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
                 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
                 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
                 at org.apache.catalina.core.StandardService.start(StandardService.java:450)
                 at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
                 at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                 at java.lang.reflect.Method.invoke(Method.java:585)
                 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
                 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
                Jun 21, 2007 11:38:47 AM org.apache.catalina.core.StandardContext listenerStart
                SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
                javax.faces.FacesException: java.lang.ClassCastException: com.sun.facelets.component.RepeatRenderer
                 at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:334)
                 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3826)
                 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4335)
                 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
                 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
                 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
                 at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:625)
                 at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:552)
                 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:487)
                 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1137)
                 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
                 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
                 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
                 at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
                 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
                 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
                 at org.apache.catalina.core.StandardService.start(StandardService.java:450)
                 at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
                 at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                 at java.lang.reflect.Method.invoke(Method.java:585)
                 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
                 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
                Caused by: java.lang.ClassCastException: com.sun.facelets.component.RepeatRenderer
                 at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:876)
                 at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:925)
                 at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:406)
                 at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:328)
                 ... 24 more
                Jun 21, 2007 11:38:47 AM org.apache.catalina.core.StandardContext listenerStop
                SEVERE: Exception sending context destroyed event to listener instance of class com.sun.faces.application.WebappLifecycleListener
                java.lang.ClassCastException: com.sun.faces.application.ApplicationAssociate
                 at com.sun.faces.application.ApplicationAssociate.getInstance(ApplicationAssociate.java:171)
                 at com.sun.faces.application.WebappLifecycleListener.handleAttributeEvent(WebappLifecycleListener.java:221)
                 at com.sun.faces.application.WebappLifecycleListener.contextDestroyed(WebappLifecycleListener.java:272)
                 at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3865)
                 at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4501)
                 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4365)
                 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
                 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
                 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
                 at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:625)
                 at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:552)
                 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:487)
                 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1137)
                 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
                 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
                 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
                 at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
                 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
                 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
                 at org.apache.catalina.core.StandardService.start(StandardService.java:450)
                 at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
                 at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                 at java.lang.reflect.Method.invoke(Method.java:585)
                 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
                 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
                



                Using CATALINA_BASE: C:\Program Files\Apache Software Foundation\Tomcat 6.0
                Using CATALINA_HOME: C:\Program Files\Apache Software Foundation\Tomcat 6.0
                Using CATALINA_TMPDIR: C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp
                Using JRE_HOME: C:\Program Files\Java\jdk1.5.0_11
                Jun 21, 2007 11:38:39 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
                INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.5.0_11\bin;.;C:\WINDOWS\System32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;"C:\program Files\tortoiseCVS\";"C:\Program Files\Hummingbird\Connectivity\7.00\Accessories\";C:\python24\;"C:\Program Files\Internet Explorer\";C:\Java\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;C:\ant\apache-ant-1.7.0\bin;C:\Java\bin;C:\cygwin\bin
                Jun 21, 2007 11:38:40 AM org.apache.coyote.http11.Http11Protocol init
                INFO: Initializing Coyote HTTP/1.1 on http-8080
                Jun 21, 2007 11:38:40 AM org.apache.catalina.startup.Catalina load
                INFO: Initialization processed in 922 ms
                Jun 21, 2007 11:38:40 AM org.apache.catalina.core.StandardService start
                INFO: Starting service Catalina
                Jun 21, 2007 11:38:40 AM org.apache.catalina.core.StandardEngine start
                INFO: Starting Servlet Engine: Apache Tomcat/6.0.0
                Jun 21, 2007 11:38:40 AM org.apache.catalina.core.StandardHost start
                INFO: XML validation disabled
                Jun 21, 2007 11:38:41 AM com.sun.faces.config.ConfigureListener contextInitialized
                INFO: Initializing Sun's JavaServer Faces implementation (1.2_03-b09-FCS) for context '/ExecutionMonitor'
                [DEBUG] DebugLifecycleFactory - Created Lifecycle instance
                [DEBUG] AjaxViewHandler - Create instance of Ajax ViewHandler
                Jun 21, 2007 11:38:42 AM com.sun.faces.spi.InjectionProviderFactory createInstance
                WARNING: JSF1033: Resource injection is DISABLED.
                [DEBUG] ChameleonRenderKitFactory - ChameleonRenderKitFactory(RenderKitFactory) - Chameleon RenderKit factory instantiated
                [DEBUG] InternetResourceBuilder - Create default implementation instance of InternetBuilder
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - Process resources configuration file jar:file:/C:/workspace/EMEM_related/CustComponent/ExecutionMonitor/build/web/WEB-INF/lib/ajax4jsf.jar!/META-INF/resources-config.xml
                [DEBUG] sax - setDocumentLocator(com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$LocatorProxy@10ffb38)
                [DEBUG] sax - startDocument()
                [DEBUG] sax - startElement(,,resource-config)
                [DEBUG] Digester - Pushing body text ''
                [DEBUG] Digester - New match='resource-config'
                [DEBUG] Digester - No rules found matching 'resource-config'.
                [DEBUG] sax - characters(
                )
                [DEBUG] sax - characters(
                
                 )
                [DEBUG] sax - startElement(,,resource)
                [DEBUG] Digester - Pushing body text '
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource}New org.ajax4jsf.framework.ajax.AjaxScript
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,name)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='resource-config/resource/name'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(org.ajax4jsf.framework.ajax.AjaxScript)
                [DEBUG] sax - endElement(,,name)
                [DEBUG] Digester - match='resource-config/resource/name'
                [DEBUG] Digester - bodyText='org.ajax4jsf.framework.ajax.AjaxScript'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/name} Call org.ajax4jsf.framework.ajax.AjaxScript.setKey(org.ajax4jsf.framework.ajax.AjaxScript/java.lang.String)
                [TRACE] MethodUtils - Matching name=setKey on class org.ajax4jsf.framework.ajax.AjaxScript
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.InternetResourceBase.setKey(java.lang.String)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - endElement(,,resource)
                [DEBUG] Digester - match='resource-config/resource'
                [DEBUG] Digester - bodyText='
                
                 '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - Popping body text '
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource} Call org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.framework.ajax.AjaxScript@1963b3e)
                [TRACE] MethodUtils - Matching name=addResource on class org.ajax4jsf.framework.resource.ResourceBuilderImpl
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.framework.resource.InternetResource)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource} Pop org.ajax4jsf.framework.ajax.AjaxScript
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,resource)
                [DEBUG] Digester - Pushing body text '
                
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource}New org.ajax4jsf.framework.ajax.AjaxScript
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,name)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='resource-config/resource/name'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(ajax.js)
                [DEBUG] sax - endElement(,,name)
                [DEBUG] Digester - match='resource-config/resource/name'
                [DEBUG] Digester - bodyText='ajax.js'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/name} Call org.ajax4jsf.framework.ajax.AjaxScript.setKey(ajax.js/java.lang.String)
                [TRACE] MethodUtils - Matching name=setKey on class org.ajax4jsf.framework.ajax.AjaxScript
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.InternetResourceBase.setKey(java.lang.String)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - endElement(,,resource)
                [DEBUG] Digester - match='resource-config/resource'
                [DEBUG] Digester - bodyText='
                
                 '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - Popping body text '
                
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource} Call org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.framework.ajax.AjaxScript@269997)
                [TRACE] MethodUtils - Matching name=addResource on class org.ajax4jsf.framework.resource.ResourceBuilderImpl
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource} Pop org.ajax4jsf.framework.ajax.AjaxScript
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,resource)
                [DEBUG] Digester - Pushing body text '
                
                
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource}New org.ajax4jsf.framework.resource.PrototypeScript
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,name)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='resource-config/resource/name'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(prototype.js)
                [DEBUG] sax - endElement(,,name)
                [DEBUG] Digester - match='resource-config/resource/name'
                [DEBUG] Digester - bodyText='prototype.js'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/name} Call org.ajax4jsf.framework.resource.PrototypeScript.setKey(prototype.js/java.lang.String)
                [TRACE] MethodUtils - Matching name=setKey on class org.ajax4jsf.framework.resource.PrototypeScript
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.InternetResourceBase.setKey(java.lang.String)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - endElement(,,resource)
                [DEBUG] Digester - match='resource-config/resource'
                [DEBUG] Digester - bodyText='
                
                 '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - Popping body text '
                
                
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource} Call org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.framework.resource.PrototypeScript@1e7c5cb)
                [TRACE] MethodUtils - Matching name=addResource on class org.ajax4jsf.framework.resource.ResourceBuilderImpl
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource} Pop org.ajax4jsf.framework.resource.PrototypeScript
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,resource)
                [DEBUG] Digester - Pushing body text '
                
                
                
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource}New org.ajax4jsf.dnd.DnDScript
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,name)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='resource-config/resource/name'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(dnd.js)
                [DEBUG] sax - endElement(,,name)
                [DEBUG] Digester - match='resource-config/resource/name'
                [DEBUG] Digester - bodyText='dnd.js'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/name} Call org.ajax4jsf.dnd.DnDScript.setKey(dnd.js/java.lang.String)
                [TRACE] MethodUtils - Matching name=setKey on class org.ajax4jsf.dnd.DnDScript
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.InternetResourceBase.setKey(java.lang.String)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - endElement(,,resource)
                [DEBUG] Digester - match='resource-config/resource'
                [DEBUG] Digester - bodyText='
                
                 '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - Popping body text '
                
                
                
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource} Call org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.dnd.DnDScript@e2291)
                [TRACE] MethodUtils - Matching name=addResource on class org.ajax4jsf.framework.resource.ResourceBuilderImpl
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource} Pop org.ajax4jsf.dnd.DnDScript
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,resource)
                [DEBUG] Digester - Pushing body text '
                
                
                
                
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource}New org.ajax4jsf.framework.resource.JarResource
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,name)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='resource-config/resource/name'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(form.js)
                [DEBUG] sax - endElement(,,name)
                [DEBUG] Digester - match='resource-config/resource/name'
                [DEBUG] Digester - bodyText='form.js'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/name} Call org.ajax4jsf.framework.resource.JarResource.setKey(form.js/java.lang.String)
                [TRACE] MethodUtils - Matching name=setKey on class org.ajax4jsf.framework.resource.JarResource
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.InternetResourceBase.setKey(java.lang.String)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,path)
                [DEBUG] Digester - Pushing body text '
                
                 '
                [DEBUG] Digester - New match='resource-config/resource/path'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setPath, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(/org/ajax4jsf/renderkit/html/scripts/form.js)
                [DEBUG] sax - endElement(,,path)
                [DEBUG] Digester - match='resource-config/resource/path'
                [DEBUG] Digester - bodyText='/org/ajax4jsf/renderkit/html/scripts/form.js'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setPath, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setPath, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/path} Call org.ajax4jsf.framework.resource.JarResource.setPath(/org/ajax4jsf/renderkit/html/scripts/form.js/java.lang.String)
                [TRACE] MethodUtils - Matching name=setPath on class org.ajax4jsf.framework.resource.JarResource
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.JarResource.setPath(java.lang.String)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,renderer)
                [DEBUG] Digester - Pushing body text '
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource/renderer'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.HTMLRenderer, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource/renderer}New org.ajax4jsf.framework.resource.ScriptRenderer
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=setRenderer, paramType=org.ajax4jsf.framework.resource.ResourceRenderer]
                [DEBUG] sax - endElement(,,renderer)
                [DEBUG] Digester - match='resource-config/resource/renderer'
                [DEBUG] Digester - bodyText=''
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.HTMLRenderer, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=setRenderer, paramType=org.ajax4jsf.framework.resource.ResourceRenderer]
                [DEBUG] Digester - Popping body text '
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=setRenderer, paramType=org.ajax4jsf.framework.resource.ResourceRenderer]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource/renderer} Call org.ajax4jsf.framework.resource.JarResource.setRenderer(org.ajax4jsf.framework.resource.ScriptRenderer@1ff92f5)
                [TRACE] MethodUtils - Matching name=setRenderer on class org.ajax4jsf.framework.resource.JarResource
                [TRACE] MethodUtils - Found straight match: public void org.ajax4jsf.framework.resource.InternetResourceBase.setRenderer(org.ajax4jsf.framework.resource.ResourceRenderer)
                [TRACE] MethodUtils - isPublic:true
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.HTMLRenderer, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource/renderer} Pop org.ajax4jsf.framework.resource.ScriptRenderer
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - endElement(,,resource)
                [DEBUG] Digester - match='resource-config/resource'
                [DEBUG] Digester - bodyText='
                
                
                
                 '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - Popping body text '
                
                
                
                
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource} Call org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.framework.resource.JarResource@9505f)
                [TRACE] MethodUtils - Matching name=addResource on class org.ajax4jsf.framework.resource.ResourceBuilderImpl
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource} Pop org.ajax4jsf.framework.resource.JarResource
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,resource)
                [DEBUG] Digester - Pushing body text '
                
                
                
                
                
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource}New org.ajax4jsf.framework.resource.JarResource
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,name)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='resource-config/resource/name'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(org/ajax4jsf/renderers/ajax/scripts/form.js)
                [DEBUG] sax - endElement(,,name)
                [DEBUG] Digester - match='resource-config/resource/name'
                [DEBUG] Digester - bodyText='org/ajax4jsf/renderers/ajax/scripts/form.js'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/name} Call org.ajax4jsf.framework.resource.JarResource.setKey(org/ajax4jsf/renderers/ajax/scripts/form.js/java.lang.String)
                [TRACE] MethodUtils - Matching name=setKey on class org.ajax4jsf.framework.resource.JarResource
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,path)
                [DEBUG] Digester - Pushing body text '
                
                 '
                [DEBUG] Digester - New match='resource-config/resource/path'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setPath, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(/org/ajax4jsf/renderkit/html/scripts/form.js)
                [DEBUG] sax - endElement(,,path)
                [DEBUG] Digester - match='resource-config/resource/path'
                [DEBUG] Digester - bodyText='/org/ajax4jsf/renderkit/html/scripts/form.js'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setPath, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setPath, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/path} Call org.ajax4jsf.framework.resource.JarResource.setPath(/org/ajax4jsf/renderkit/html/scripts/form.js/java.lang.String)
                [TRACE] MethodUtils - Matching name=setPath on class org.ajax4jsf.framework.resource.JarResource
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,renderer)
                [DEBUG] Digester - Pushing body text '
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource/renderer'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.HTMLRenderer, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource/renderer}New org.ajax4jsf.framework.resource.ScriptRenderer
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=setRenderer, paramType=org.ajax4jsf.framework.resource.ResourceRenderer]
                [DEBUG] sax - endElement(,,renderer)
                [DEBUG] Digester - match='resource-config/resource/renderer'
                [DEBUG] Digester - bodyText=''
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.HTMLRenderer, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=setRenderer, paramType=org.ajax4jsf.framework.resource.ResourceRenderer]
                [DEBUG] Digester - Popping body text '
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=setRenderer, paramType=org.ajax4jsf.framework.resource.ResourceRenderer]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource/renderer} Call org.ajax4jsf.framework.resource.JarResource.setRenderer(org.ajax4jsf.framework.resource.ScriptRenderer@17ba38f)
                [TRACE] MethodUtils - Matching name=setRenderer on class org.ajax4jsf.framework.resource.JarResource
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.HTMLRenderer, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource/renderer} Pop org.ajax4jsf.framework.resource.ScriptRenderer
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - endElement(,,resource)
                [DEBUG] Digester - match='resource-config/resource'
                [DEBUG] Digester - bodyText='
                
                
                
                 '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - Popping body text '
                
                
                
                
                
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource} Call org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.framework.resource.JarResource@2f0d54)
                [TRACE] MethodUtils - Matching name=addResource on class org.ajax4jsf.framework.resource.ResourceBuilderImpl
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource} Pop org.ajax4jsf.framework.resource.JarResource
                [DEBUG] sax - characters(
                
                
                 )
                [DEBUG] sax - startElement(,,resource)
                [DEBUG] Digester - Pushing body text '
                
                
                
                
                
                
                
                
                
                
                 '
                [DEBUG] Digester - New match='resource-config/resource'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource}New org.ajax4jsf.framework.ajax.AjaxScript
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,name)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='resource-config/resource/name'
                [DEBUG] Digester - Fire begin() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] sax - characters(org.ajax4jsf.framework.ajax.AjaxScript)
                [DEBUG] sax - endElement(,,name)
                [DEBUG] Digester - match='resource-config/resource/name'
                [DEBUG] Digester - bodyText='org.ajax4jsf.framework.ajax.AjaxScript'
                [DEBUG] Digester - Fire body() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for CallMethodRule[methodName=setKey, paramCount=0, paramTypes={java.lang.String}]
                [DEBUG] Digester - [CallMethodRule]{resource-config/resource/name} Call org.ajax4jsf.framework.ajax.AjaxScript.setKey(org.ajax4jsf.framework.ajax.AjaxScript/java.lang.String)
                [TRACE] MethodUtils - Matching name=setKey on class org.ajax4jsf.framework.ajax.AjaxScript
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - endElement(,,resource)
                [DEBUG] Digester - match='resource-config/resource'
                [DEBUG] Digester - bodyText='
                
                 '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - Popping body text '
                
                
                
                
                
                
                
                
                
                
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addResource, paramType=org.ajax4jsf.framework.resource.InternetResource]
                [DEBUG] Digester - [SetNextRule]{resource-config/resource} Call org.ajax4jsf.framework.resource.ResourceBuilderImpl.addResource(org.ajax4jsf.framework.ajax.AjaxScript@1142196)
                [TRACE] MethodUtils - Matching name=addResource on class org.ajax4jsf.framework.resource.ResourceBuilderImpl
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.resource.JarResource, attributeName=class]
                [DEBUG] Digester - [ObjectCreateRule]{resource-config/resource} Pop org.ajax4jsf.framework.ajax.AjaxScript
                [DEBUG] sax - characters(
                
                )
                [DEBUG] sax - endElement(,,resource-config)
                [DEBUG] Digester - match='resource-config'
                [DEBUG] Digester - bodyText='
                
                
                
                
                
                
                
                
                
                
                
                
                '
                [DEBUG] Digester - No rules found matching 'resource-config'.
                [DEBUG] Digester - Popping body text ''
                [DEBUG] sax - endDocument()
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path scripts/form.js
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path css/toggleControl.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] ResourceBuilderImpl - build new resource for path scripts/togglePanel.js
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path css/dataFilterSlider.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path scripts/scriptaculous-js-1.6.5/src/slider.js
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path css/table.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path css/datascroller.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path scripts/drag-indicator.js
                [DEBUG] ResourceBuilderImpl - build new resource for path css/dragIndicator.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path css/gmap.xcss
                [DEBUG] ResourceBuilderImpl - build new resource for path script/gmap.js
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path /org/richfaces/renderkit/html/css/modalPanel.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path /org/richfaces/renderkit/html/scripts/utils.js
                [DEBUG] ResourceBuilderImpl - build new resource for path /org/richfaces/renderkit/html/scripts/modalPanel.js
                [DEBUG] ResourceBuilderImpl - build new resource for path /org/richfaces/renderkit/html/scripts/modalPanelBorders.js
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path /org/richfaces/renderkit/html/scripts/browser_info.js
                [DEBUG] ResourceBuilderImpl - build new resource for path scripts/panelbar.js
                [DEBUG] ResourceBuilderImpl - build new resource for path css/panelbar.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path css/simpleTogglePanel.xcss
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] AjaxScript - AjaxScript() - Created instance of AjaxScript resource
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path scripts/simpleTogglePanel.js
                [DEBUG] InternetResourceBuilder - Return instance of internet resource builder org.ajax4jsf.framework.resource.ResourceBuilderImpl@d56b37
                [DEBUG] ResourceBuilderImpl - build new resource for path org/richfaces/renderkit/html/css/suggestionbox.xcss
                [DEBUG] sax - setDocumentLocator(org.xml.sax.helpers.LocatorImpl@c5e9c)
                [DEBUG] HtmlCompiler - Start compile template from org/richfaces/renderkit/html/css/suggestionbox.xcss
                [DEBUG] sax - setDocumentLocator(com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$LocatorProxy@13f136e)
                [DEBUG] sax - startDocument()
                [DEBUG] sax - startElement(,,f:template)
                [DEBUG] Digester - Pushing body text ''
                [DEBUG] Digester - New match='f:template'
                [DEBUG] Digester - Fire begin() for SetPropertiesRule[]
                [DEBUG] Digester - [SetPropertiesRule]{f:template} Setting property 'xmlns:f' to 'http://jsf.exadel.com/template'
                [DEBUG] Digester - [SetPropertiesRule]{f:template} Setting property 'xmlns:u' to 'http://jsf.exadel.com/template/util'
                [DEBUG] Digester - [SetPropertiesRule]{f:template} Setting property 'xmlns' to 'http://www.w3.org/1999/xhtml'
                [DEBUG] Digester - [SetPropertiesRule]{f:template} Set org.ajax4jsf.framework.renderer.compiler.RootElement properties
                [DEBUG] BeanUtils - BeanUtils.populate(org.ajax4jsf.framework.renderer.compiler.RootElement [
                ]
                , {xmlns:u=http://jsf.exadel.com/template/util, xmlns:f=http://jsf.exadel.com/template, xmlns=http://www.w3.org/1999/xhtml})
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.RootElement [
                ]
                , xmlns:u, http://jsf.exadel.com/template/util)
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.RootElement [
                ]
                , xmlns:f, http://jsf.exadel.com/template)
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.RootElement [
                ]
                , xmlns, http://www.w3.org/1999/xhtml)
                [DEBUG] sax - characters(
                
                )
                [DEBUG] sax - startElement(,,f:verbatim)
                [DEBUG] Digester - Pushing body text '
                
                '
                [DEBUG] Digester - New match='f:template/f:verbatim'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.TextElement, attributeName=null]
                [DEBUG] Digester - [ObjectCreateRule]{f:template/f:verbatim}New org.ajax4jsf.framework.renderer.compiler.TextElement
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addChild, paramType=null]
                [DEBUG] Digester - Fire begin() for SetPropertiesRule[]
                [DEBUG] Digester - [SetPropertiesRule]{f:template/f:verbatim} Set org.ajax4jsf.framework.renderer.compiler.TextElement properties
                [DEBUG] BeanUtils - BeanUtils.populate(org.ajax4jsf.framework.renderer.compiler.TextElement [
                ]
                , {})
                [DEBUG] Digester - Fire begin() for BeanPropertySetterRule[propertyName=text]
                [DEBUG] sax - characters(
                
                .dr-sb-common-container {)
                [DEBUG] sax - characters(
                 position: absolute;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-ext-decor-1 {)
                [DEBUG] sax - characters(
                 position: absolute;)
                [DEBUG] sax - characters(
                 height: 100%;)
                [DEBUG] sax - characters(
                 width: 100%;)
                [DEBUG] sax - characters(
                 z-index: 2;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-ext-decor-2 {)
                [DEBUG] sax - characters(
                 border: 1px solid;)
                [DEBUG] sax - characters(
                 height: 100%;)
                [DEBUG] sax - characters(
                 width: 100%;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-ext-decor-3 {)
                [DEBUG] sax - characters(
                 height: 100%;)
                [DEBUG] sax - characters(
                 width: 100%;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-overflow {)
                [DEBUG] sax - characters(
                 overflow : auto;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-int-decor-table {)
                [DEBUG] sax - characters(
                 width: 100%;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-shadow {)
                [DEBUG] sax - characters(
                 position: absolute;)
                [DEBUG] sax - characters(
                 height: 100%;)
                [DEBUG] sax - characters(
                 width: 100%;)
                [DEBUG] sax - characters(
                 border : 1px solid;)
                [DEBUG] sax - characters(
                 z-index: 1;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-int-sel {)
                [DEBUG] sax - characters(
                 cursor: default;)
                [DEBUG] sax - characters(
                 background-position: left top;)
                [DEBUG] sax - characters(
                 background-repeat: repeat-x;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                .dr-sb-cell-padding {)
                [DEBUG] sax - characters(
                 padding: 1px 3px 1px 5px;)
                [DEBUG] sax - characters(
                })
                [DEBUG] sax - characters(
                
                )
                [DEBUG] sax - endElement(,,f:verbatim)
                [DEBUG] Digester - match='f:template/f:verbatim'
                [DEBUG] Digester - bodyText='
                
                .dr-sb-common-container {
                 position: absolute;
                }
                
                .dr-sb-ext-decor-1 {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 z-index: 2;
                }
                
                .dr-sb-ext-decor-2 {
                 border: 1px solid;
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-ext-decor-3 {
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-overflow {
                 overflow : auto;
                }
                
                .dr-sb-int-decor-table {
                 width: 100%;
                }
                
                .dr-sb-shadow {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 border : 1px solid;
                 z-index: 1;
                }
                
                .dr-sb-int-sel {
                 cursor: default;
                 background-position: left top;
                 background-repeat: repeat-x;
                }
                
                .dr-sb-cell-padding {
                 padding: 1px 3px 1px 5px;
                }
                
                '
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.TextElement, attributeName=null]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addChild, paramType=null]
                [DEBUG] Digester - Fire body() for SetPropertiesRule[]
                [DEBUG] Digester - Fire body() for BeanPropertySetterRule[propertyName=text]
                [DEBUG] Digester - [BeanPropertySetterRule]{f:template/f:verbatim} Called with text '
                
                .dr-sb-common-container {
                 position: absolute;
                }
                
                .dr-sb-ext-decor-1 {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 z-index: 2;
                }
                
                .dr-sb-ext-decor-2 {
                 border: 1px solid;
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-ext-decor-3 {
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-overflow {
                 overflow : auto;
                }
                
                .dr-sb-int-decor-table {
                 width: 100%;
                }
                
                .dr-sb-shadow {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 border : 1px solid;
                 z-index: 1;
                }
                
                .dr-sb-int-sel {
                 cursor: default;
                 background-position: left top;
                 background-repeat: repeat-x;
                }
                
                .dr-sb-cell-padding {
                 padding: 1px 3px 1px 5px;
                }
                
                '
                [DEBUG] Digester - Popping body text '
                
                '
                [DEBUG] Digester - Fire end() for BeanPropertySetterRule[propertyName=text]
                [DEBUG] Digester - [BeanPropertySetterRule]{f:template/f:verbatim} Set org.ajax4jsf.framework.renderer.compiler.TextElement property text with text .dr-sb-common-container {
                 position: absolute;
                }
                
                .dr-sb-ext-decor-1 {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 z-index: 2;
                }
                
                .dr-sb-ext-decor-2 {
                 border: 1px solid;
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-ext-decor-3 {
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-overflow {
                 overflow : auto;
                }
                
                .dr-sb-int-decor-table {
                 width: 100%;
                }
                
                .dr-sb-shadow {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 border : 1px solid;
                 z-index: 1;
                }
                
                .dr-sb-int-sel {
                 cursor: default;
                 background-position: left top;
                 background-repeat: repeat-x;
                }
                
                .dr-sb-cell-padding {
                 padding: 1px 3px 1px 5px;
                }
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.TextElement [
                ]
                , text, .dr-sb-common-container {
                 position: absolute;
                }
                
                .dr-sb-ext-decor-1 {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 z-index: 2;
                }
                
                .dr-sb-ext-decor-2 {
                 border: 1px solid;
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-ext-decor-3 {
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-overflow {
                 overflow : auto;
                }
                
                .dr-sb-int-decor-table {
                 width: 100%;
                }
                
                .dr-sb-shadow {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 border : 1px solid;
                 z-index: 1;
                }
                
                .dr-sb-int-sel {
                 cursor: default;
                 background-position: left top;
                 background-repeat: repeat-x;
                }
                
                .dr-sb-cell-padding {
                 padding: 1px 3px 1px 5px;
                })
                [DEBUG] ConvertUtils - Convert string '.dr-sb-common-container {
                 position: absolute;
                }
                
                .dr-sb-ext-decor-1 {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 z-index: 2;
                }
                
                .dr-sb-ext-decor-2 {
                 border: 1px solid;
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-ext-decor-3 {
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-overflow {
                 overflow : auto;
                }
                
                .dr-sb-int-decor-table {
                 width: 100%;
                }
                
                .dr-sb-shadow {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 border : 1px solid;
                 z-index: 1;
                }
                
                .dr-sb-int-sel {
                 cursor: default;
                 background-position: left top;
                 background-repeat: repeat-x;
                }
                
                .dr-sb-cell-padding {
                 padding: 1px 3px 1px 5px;
                }' to class 'java.lang.String'
                [TRACE] ConvertUtils - Using converter org.apache.commons.beanutils.converters.StringConverter@19ba640
                [TRACE] PropertyUtils - setSimpleProperty: Invoking method public void org.ajax4jsf.framework.renderer.compiler.TextElement.setText(java.lang.String) with value .dr-sb-common-container {
                 position: absolute;
                }
                
                .dr-sb-ext-decor-1 {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 z-index: 2;
                }
                
                .dr-sb-ext-decor-2 {
                 border: 1px solid;
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-ext-decor-3 {
                 height: 100%;
                 width: 100%;
                }
                
                .dr-sb-overflow {
                 overflow : auto;
                }
                
                .dr-sb-int-decor-table {
                 width: 100%;
                }
                
                .dr-sb-shadow {
                 position: absolute;
                 height: 100%;
                 width: 100%;
                 border : 1px solid;
                 z-index: 1;
                }
                
                .dr-sb-int-sel {
                 cursor: default;
                 background-position: left top;
                 background-repeat: repeat-x;
                }
                
                .dr-sb-cell-padding {
                 padding: 1px 3px 1px 5px;
                } (class java.lang.String)
                [DEBUG] Digester - Fire end() for SetPropertiesRule[]
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addChild, paramType=null]
                [DEBUG] Digester - [SetNextRule]{f:template/f:verbatim} Call org.ajax4jsf.framework.renderer.compiler.RootElement.addChild(org.ajax4jsf.framework.renderer.compiler.TextElement [
                ]
                )
                [TRACE] MethodUtils - Matching name=addChild on class org.ajax4jsf.framework.renderer.compiler.RootElement
                [TRACE] MethodUtils - Found matching name:
                [TRACE] MethodUtils - public void org.ajax4jsf.framework.renderer.compiler.ElementBase.addChild(org.ajax4jsf.framework.renderer.compiler.PreparedTemplate) throws org.xml.sax.SAXException
                [TRACE] MethodUtils - Param=org.ajax4jsf.framework.renderer.compiler.TextElement
                [TRACE] MethodUtils - Method=org.ajax4jsf.framework.renderer.compiler.PreparedTemplate
                [TRACE] MethodUtils - public void org.ajax4jsf.framework.renderer.compiler.ElementBase.addChild(org.ajax4jsf.framework.renderer.compiler.PreparedTemplate) throws org.xml.sax.SAXException accessible version of public void org.ajax4jsf.framework.renderer.compiler.ElementBase.addChild(org.ajax4jsf.framework.renderer.compiler.PreparedTemplate) throws org.xml.sax.SAXException
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.TextElement, attributeName=null]
                [DEBUG] Digester - [ObjectCreateRule]{f:template/f:verbatim} Pop org.ajax4jsf.framework.renderer.compiler.TextElement
                [DEBUG] sax - characters(
                
                )
                [DEBUG] sax - startElement(,,u:selector)
                [DEBUG] Digester - Pushing body text '
                
                
                
                '
                [DEBUG] Digester - New match='f:template/u:selector'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.SelectorElement, attributeName=null]
                [DEBUG] Digester - [ObjectCreateRule]{f:template/u:selector}New org.ajax4jsf.framework.renderer.compiler.SelectorElement
                [DEBUG] Digester - Fire begin() for SetPropertiesRule[]
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector} Setting property 'name' to '.dr-sb-ext-decor-2'
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector} Set org.ajax4jsf.framework.renderer.compiler.SelectorElement properties
                [DEBUG] BeanUtils - BeanUtils.populate(org.ajax4jsf.framework.renderer.compiler.SelectorElement [
                ]
                , {name=.dr-sb-ext-decor-2})
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.SelectorElement [
                ]
                , name, .dr-sb-ext-decor-2)
                [DEBUG] ConvertUtils - Convert string '.dr-sb-ext-decor-2' to class 'java.lang.String'
                [TRACE] ConvertUtils - Using converter org.apache.commons.beanutils.converters.StringConverter@19ba640
                [TRACE] PropertyUtils - setSimpleProperty: Invoking method public void org.ajax4jsf.framework.renderer.compiler.SelectorElement.setName(java.lang.String) with value .dr-sb-ext-decor-2 (class java.lang.String)
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addChild, paramType=null]
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,u:style)
                [DEBUG] Digester - Pushing body text '
                 '
                [DEBUG] Digester - New match='f:template/u:selector/u:style'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.ClassElement, attributeName=null]
                [DEBUG] Digester - [ObjectCreateRule]{f:template/u:selector/u:style}New org.ajax4jsf.framework.renderer.compiler.ClassElement
                [DEBUG] Digester - Fire begin() for SetPropertiesRule[]
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector/u:style} Setting property 'name' to 'border-color'
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector/u:style} Setting property 'skin' to 'panelBorderColor'
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector/u:style} Set org.ajax4jsf.framework.renderer.compiler.ClassElement properties
                [DEBUG] BeanUtils - BeanUtils.populate(org.ajax4jsf.framework.renderer.compiler.ClassElement [
                ]
                , {skin=panelBorderColor, name=border-color})
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.ClassElement [
                ]
                , skin, panelBorderColor)
                [DEBUG] ConvertUtils - Convert string 'panelBorderColor' to class 'java.lang.String'
                [TRACE] ConvertUtils - Using converter org.apache.commons.beanutils.converters.StringConverter@19ba640
                [TRACE] PropertyUtils - setSimpleProperty: Invoking method public void org.ajax4jsf.framework.renderer.compiler.ElementBase.setSkin(java.lang.String) with value panelBorderColor (class java.lang.String)
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.ClassElement [
                ]
                , name, border-color)
                [DEBUG] ConvertUtils - Convert string 'border-color' to class 'java.lang.String'
                [TRACE] ConvertUtils - Using converter org.apache.commons.beanutils.converters.StringConverter@19ba640
                [TRACE] PropertyUtils - setSimpleProperty: Invoking method public void org.ajax4jsf.framework.renderer.compiler.ClassElement.setName(java.lang.String) with value border-color (class java.lang.String)
                [DEBUG] Digester - Fire begin() for SetNextRule[methodName=addChild, paramType=null]
                [DEBUG] sax - endElement(,,u:style)
                [DEBUG] Digester - match='f:template/u:selector/u:style'
                [DEBUG] Digester - bodyText=''
                [DEBUG] Digester - Fire body() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.ClassElement, attributeName=null]
                [DEBUG] Digester - Fire body() for SetPropertiesRule[]
                [DEBUG] Digester - Fire body() for SetNextRule[methodName=addChild, paramType=null]
                [DEBUG] Digester - Popping body text '
                 '
                [DEBUG] Digester - Fire end() for SetNextRule[methodName=addChild, paramType=null]
                [DEBUG] Digester - [SetNextRule]{f:template/u:selector/u:style} Call org.ajax4jsf.framework.renderer.compiler.SelectorElement.addChild(org.ajax4jsf.framework.renderer.compiler.ClassElement [
                ]
                )
                [TRACE] MethodUtils - Matching name=addChild on class org.ajax4jsf.framework.renderer.compiler.SelectorElement
                [TRACE] MethodUtils - Found matching name:
                [TRACE] MethodUtils - public void org.ajax4jsf.framework.renderer.compiler.ElementBase.addChild(org.ajax4jsf.framework.renderer.compiler.PreparedTemplate) throws org.xml.sax.SAXException
                [TRACE] MethodUtils - Param=org.ajax4jsf.framework.renderer.compiler.ClassElement
                [TRACE] MethodUtils - Method=org.ajax4jsf.framework.renderer.compiler.PreparedTemplate
                [TRACE] MethodUtils - public void org.ajax4jsf.framework.renderer.compiler.ElementBase.addChild(org.ajax4jsf.framework.renderer.compiler.PreparedTemplate) throws org.xml.sax.SAXException accessible version of public void org.ajax4jsf.framework.renderer.compiler.ElementBase.addChild(org.ajax4jsf.framework.renderer.compiler.PreparedTemplate) throws org.xml.sax.SAXException
                [DEBUG] Digester - Fire end() for SetPropertiesRule[]
                [DEBUG] Digester - Fire end() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.ClassElement, attributeName=null]
                [DEBUG] Digester - [ObjectCreateRule]{f:template/u:selector/u:style} Pop org.ajax4jsf.framework.renderer.compiler.ClassElement
                [DEBUG] sax - characters(
                 )
                [DEBUG] sax - startElement(,,u:style)
                [DEBUG] Digester - Pushing body text '
                
                 '
                [DEBUG] Digester - New match='f:template/u:selector/u:style'
                [DEBUG] Digester - Fire begin() for ObjectCreateRule[className=org.ajax4jsf.framework.renderer.compiler.ClassElement, attributeName=null]
                [DEBUG] Digester - [ObjectCreateRule]{f:template/u:selector/u:style}New org.ajax4jsf.framework.renderer.compiler.ClassElement
                [DEBUG] Digester - Fire begin() for SetPropertiesRule[]
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector/u:style} Setting property 'name' to 'background-color'
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector/u:style} Setting property 'skin' to 'additionalBackgroundColor'
                [DEBUG] Digester - [SetPropertiesRule]{f:template/u:selector/u:style} Set org.ajax4jsf.framework.renderer.compiler.ClassElement properties
                [DEBUG] BeanUtils - BeanUtils.populate(org.ajax4jsf.framework.renderer.compiler.ClassElement [
                ]
                , {skin=additionalBackgroundColor, name=background-color})
                [TRACE] BeanUtils - setProperty(org.ajax4jsf.framework.renderer.compiler.ClassElement [
                ]
                , skin, additionalBackgroundColor)
                [DEBUG] ConvertUtils - Convert string 'additionalBackgroundColor' to class 'java.lang.String'
                [TRACE] ConvertUtils - Using converter org.apache.commons.beanutils.converters.StringConverter@19ba640
                [TRACE] PropertyUtils - setSimpleProperty: Invoking method public void org.ajax4jsf.framework.renderer.compiler.ElementBase.setSkin(java.lang.String) with value additionalBackgroundColor (class java.lang.String)
                [TRACE] BeanUtils - setPr


                • 5. Re: Custom JSF component w/ a4j suport
                  Phil Brown Newbie

                  Here is the html that is being generated. The first Command liknk that is generated was inserted at the page level and it triggers the rerender htat we want. The second CommandLink generated is inserted at the component level and does not trigger any rerender. Any ideas?


                  <a
                   href="#"
                   id="test:me"
                   name="test:me"
                   onclick="A4J.AJAX.Submit(
                   '_viewRoot',
                   'test',
                   event,
                   {
                   'parameters':{'test:me':'test:me'} ,
                   'actionUrl':'/ExecutionMonitor/queries/test.xhtml'
                   } );return false;">
                   Outer CmdLink</a>
                  
                  <!-- Start emC:table component -->
                  <a
                   href="#"
                   id="test:testTable:testTable_LAST"
                   name="test:testTable:testTable_LAST"
                   onclick="A4J.AJAX.Submit(
                   '_viewRoot',
                   'test',
                   event,
                   {
                   'parameters':{'test:testTable:testTable_LAST':'test:testTable:testTable_LAST'},
                   'actionUrl':'/ExecutionMonitor/queries/test.xhtml'
                   } );return false;">
                   Inner CmdLink</a>
                  
                  <!-- End emC:table component -->