From ajax4jsf-svn-commits at lists.jboss.org Wed Jul 4 09:35:55 2007 Content-Type: multipart/mixed; boundary="===============3689282626447147889==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r295 - trunk/docs/userguide/en/src/main/docbook/modules. Date: Wed, 04 Jul 2007 09:35:55 -0400 Message-ID: --===============3689282626447147889== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: afedosik Date: 2007-07-04 09:35:55 -0400 (Wed, 04 Jul 2007) New Revision: 295 Added: trunk/docs/userguide/en/src/main/docbook/modules/a4jRelevantRsc.xml Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.xml Log: "Other relevant resources" section with link to http://jsf.javabeat.net/art= icles/2007/06/introduction-to-ajax4jsf/ article added in 4,5,6 chapters. Added: trunk/docs/userguide/en/src/main/docbook/modules/a4jRelevantRsc.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jRelevantRsc.xml = (rev 0) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jRelevantRsc.xml 200= 7-07-04 13:35:55 UTC (rev 295) @@ -0,0 +1,5 @@ + +
+ Other Relevant Resources + Introduction to Ajax4Jsf - Exploring the Ajax4Jsf Library<= /ulink> by Shunmuga Raja +
Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml 2007-06= -29 16:03:59 UTC (rev 294) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml 2007-07= -04 13:35:55 UTC (rev 295) @@ -251,4 +251,8 @@ +
+ Other Relevant Resources + Introduction to Ajax4Jsf - Sample Application by= Shunmuga Raja +
Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.x= ml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.xml 200= 7-06-29 16:03:59 UTC (rev 294) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.xml 200= 7-07-04 13:35:55 UTC (rev 295) @@ -313,4 +313,10 @@ -&FAQ; +&FAQ; +
+ Other Relevant Resources + Introduction to Ajax4Jsf by Shunmuga Raja + = +
+ --===============3689282626447147889==-- From ajax4jsf-svn-commits at lists.jboss.org Wed Jul 4 09:36:13 2007 Content-Type: multipart/mixed; boundary="===============7742925611825780432==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r296 - trunk/docs/userguide/en/src/main/docbook. Date: Wed, 04 Jul 2007 09:36:12 -0400 Message-ID: --===============7742925611825780432== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: afedosik Date: 2007-07-04 09:36:12 -0400 (Wed, 04 Jul 2007) New Revision: 296 Modified: trunk/docs/userguide/en/src/main/docbook/master.xml Log: "Other relevant resources" section with link to http://jsf.javabeat.net/art= icles/2007/06/introduction-to-ajax4jsf/ article added in 4,5,6 chapters. Modified: trunk/docs/userguide/en/src/main/docbook/master.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/master.xml 2007-07-04 13:35:55= UTC (rev 295) +++ trunk/docs/userguide/en/src/main/docbook/master.xml 2007-07-04 13:36:12= UTC (rev 296) @@ -7,6 +7,7 @@ + @@ -30,10 +31,11 @@ &envSettings; &getttingStarted; &usingAJAX; - - = - Ajax4jsf components - &componentDetails; + + = + Ajax4jsf components + &componentDetails; + &a4jRelevantRsc; &skinnability; &IDEintegration; --===============7742925611825780432==-- From ajax4jsf-svn-commits at lists.jboss.org Wed Jul 4 15:04:50 2007 Content-Type: multipart/mixed; boundary="===============5025976509561976009==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r297 - in trunk/cdk/generator/src/main/resources/META-INF: templates12 and 1 other directory. Date: Wed, 04 Jul 2007 15:04:50 -0400 Message-ID: --===============5025976509561976009== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: nbelaevski Date: 2007-07-04 15:04:49 -0400 (Wed, 04 Jul 2007) New Revision: 297 Modified: trunk/cdk/generator/src/main/resources/META-INF/templates/componentTag.vm trunk/cdk/generator/src/main/resources/META-INF/templates12/componentTag= .vm Log: elonly invalid case fixed Modified: trunk/cdk/generator/src/main/resources/META-INF/templates/compone= ntTag.vm =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/cdk/generator/src/main/resources/META-INF/templates/componentTag.= vm 2007-07-04 13:36:12 UTC (rev 296) +++ trunk/cdk/generator/src/main/resources/META-INF/templates/componentTag.= vm 2007-07-04 19:04:49 UTC (rev 297) @@ -94,7 +94,7 @@ setValueChangedListenerProperty(component, this._${prop.name}); #elseif($prop.name =3D=3D "value") setValueProperty(component, this._${prop.name}); - #elseif($prop.elOnly || $prop.isInstanceof("javax.faces.el.ValueBinding= ") ) + #elseif($prop.elonly || $prop.isInstanceof("javax.faces.el.ValueBinding= ") ) setValueBinding(component, "${prop.name}",this._${prop.name}); #elseif(${prop.simpleType}) // Simple type - ${prop.simpleClassName} Modified: trunk/cdk/generator/src/main/resources/META-INF/templates12/compo= nentTag.vm =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/cdk/generator/src/main/resources/META-INF/templates12/componentTa= g.vm 2007-07-04 13:36:12 UTC (rev 296) +++ trunk/cdk/generator/src/main/resources/META-INF/templates12/componentTa= g.vm 2007-07-04 19:04:49 UTC (rev 297) @@ -94,7 +94,7 @@ setValueChangedListenerProperty(component, this._${prop.name}); #elseif($prop.name =3D=3D "value") setValueProperty(component, this._${prop.name}); - #elseif($prop.elOnly || $prop.isInstanceof("javax.faces.el.ValueBinding= ") ) + #elseif($prop.elonly || $prop.isInstanceof("javax.faces.el.ValueBinding= ") ) setValueBinding(component, "${prop.name}",this._${prop.name}); #elseif(${prop.simpleType}) // Simple type - ${prop.simpleClassName} --===============5025976509561976009==-- From ajax4jsf-svn-commits at lists.jboss.org Thu Jul 5 04:23:02 2007 Content-Type: multipart/mixed; boundary="===============6850818095387559889==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r298 - trunk/docs/userguide/en/src/main/docbook/modules. Date: Thu, 05 Jul 2007 04:23:01 -0400 Message-ID: --===============6850818095387559889== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: smukhina Date: 2007-07-05 04:23:01 -0400 (Thu, 05 Jul 2007) New Revision: 298 Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.xml Log: http://jira.jboss.com/jira/browse/EXIN-373 some words are marked with italic font style = Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.x= ml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.xml 200= 7-07-04 19:04:49 UTC (rev 297) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGusingAJAX.xml 200= 7-07-05 08:23:01 UTC (rev 298) @@ -112,7 +112,7 @@ In order to create AJAX4JSF applications properly, keep the fol= lowing points in mind: - The AJAX framework should not append or delete, but only replace e= lements on the page. For successful updates, an element with the same ID as= in the response must exist on the page. If you'd like to append any c= ode to a page, put in a placeholder for it (any empty element). For the sam= e reason, it's recommended to place messages in the + The AJAX framework should not append or delete, but only replace e= lements on the page. For successful updates, an element with the same ID as= in the response must exist on the page. If you'd like to append any c= ode to a page, put in a placeholder for it (any empty element). For the sam= e reason, it's recommended to place messages in the "AjaxOutput" component (as no messages is also a message). @@ -167,14 +167,14 @@ Most important attributes of components that provide AJAX requ= est calling features are: - + "reRender" attribute as it was mentioned before specifies components to be reRendered = after AJAX response. The attribute can be specified using EL= expression and formed dynamicaly on the server side (see FAQ chapter). - + "RequestDelay" attribute is used for a requests frequency regulat= ion. @@ -187,18 +187,18 @@ - + "EventsQueue" is a queue that stores the next request. = - + "LimitToList" attribute is used to regulate updatable regions. S= etting = it to true limits the updatable areas only to ones specified= in a reRender list, in other case all Output Panels of the region= are updated. - + "ajaxSingle" attributes specify regions to be sent with a reque= st, = if "false" it is a full region, in other case it&a= pos;s is only a control caused = @@ -288,9 +288,9 @@
Session Expired Handling - Beginning with Ajax4jsf version 1.0.5 it's possible to rede= fine also the + Beginning with Ajax4jsf version 1.0.5 it's possible to rede= fine also the "onExpired" - framework method that is called on the + framework method that is called on the "Session Expiration" event. Here the function receives in params: loc - URL of the current page (on demand can be updated) <= /listitem> - expiredMsg - a default message on + expiredMsg - a default message on "Session Expiration" event. = Note: -Until the version 1.0.5 the method can't be redefined on +Until the version 1.0.5 the method can't be redefined on "Session Expiration", a confirmation dialog with a request for view reloading w= as always called. --===============6850818095387559889==-- From ajax4jsf-svn-commits at lists.jboss.org Thu Jul 5 04:31:10 2007 Content-Type: multipart/mixed; boundary="===============4712593996936511784==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r299 - trunk/docs/userguide/en/src/main/docbook/included. Date: Thu, 05 Jul 2007 04:31:09 -0400 Message-ID: --===============4712593996936511784== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: smukhina Date: 2007-07-05 04:31:09 -0400 (Thu, 05 Jul 2007) New Revision: 299 Modified: trunk/docs/userguide/en/src/main/docbook/included/form.xml trunk/docs/userguide/en/src/main/docbook/included/log.xml trunk/docs/userguide/en/src/main/docbook/included/mediaOutput.xml trunk/docs/userguide/en/src/main/docbook/included/outputPanel.xml trunk/docs/userguide/en/src/main/docbook/included/page.xml trunk/docs/userguide/en/src/main/docbook/included/poll.xml trunk/docs/userguide/en/src/main/docbook/included/region.xml trunk/docs/userguide/en/src/main/docbook/included/repeat.xml trunk/docs/userguide/en/src/main/docbook/included/status.xml trunk/docs/userguide/en/src/main/docbook/included/support.xml Log: http://jira.jboss.com/jira/browse/EXIN-373 italic font style is added Modified: trunk/docs/userguide/en/src/main/docbook/included/form.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/form.xml 2007-07-05 0= 8:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/form.xml 2007-07-05 0= 8:31:09 UTC (rev 299) @@ -50,9 +50,9 @@
Key attributes and ways of usage The difference with the original component is that all hidden fi= elds required for command links are always rendered and it doesn't depend o= n links rendering on the initial page. It solves the problem with invalid l= inks that weren't rendered on a page immediately, but after some AJAX reque= st. - Beginning with release 1.0.5 additional attributes that make thi= s form variant universal have appeared. With a new attribute definition as = ajax=3D + Beginning with release 1.0.5 additional attributes that make thi= s form variant universal have appeared. With a new attribute definition as = ajax=3D "true" - , it becomes possible to set AJAX submission way for any = components inside, i.e. not a page URL is used as an + , it becomes possible to set AJAX submission way for any = components inside, i.e. not a page URL is used as an "action" attribute, but the javascript:A4J.AJAX.Submit(...) call.= In this case, rendering is defined as reRender=3Dlist of Ids for the form = element itself. Example Modified: trunk/docs/userguide/en/src/main/docbook/included/log.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/log.xml 2007-07-05 08= :23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/log.xml 2007-07-05 08= :31:09 UTC (rev 299) @@ -46,15 +46,15 @@
Key attributes and ways of usage Usage of the appropriate component attributes could change a rep= resentation level of debug information as well as the hot key for a window= opening. - The hot key could be changed with the + The hot key could be changed with the "hotkey" = attribute, where it's necessary to define one letter that together wi= th "CTRL+SHIFT" opens a window. - The + The "level" = attribute with several possible values (FATAL, ERROR, WARN, INFO, ALL) cou= ld change a logging level. - The log could be generated not only in a new window, but also on= the current page in a separate <div&g= t;, this is also controlled with the + The log could be generated not only in a new window, but also on= the current page in a separate <div&g= t;, this is also controlled with the "popup" = attribute on the component. Modified: trunk/docs/userguide/en/src/main/docbook/included/mediaOutput.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/mediaOutput.xml 2007-= 07-05 08:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/mediaOutput.xml 2007-= 07-05 08:31:09 UTC (rev 299) @@ -68,7 +68,7 @@ As it was shown in the example above there are two main componen= ts: - createContent specifies a method accepting 2 parameters. The fir= st (of java.io.OutputStream type) defines a stream, where any binary data i= s output. The second (of java.lang.Object type) contains deserialized objec= t with data specified in the + createContent specifies a method accepting 2 parameters. The fir= st (of java.io.OutputStream type) defines a stream, where any binary data i= s output. The second (of java.lang.Object type) contains deserialized objec= t with data specified in the "value" attribute. Modified: trunk/docs/userguide/en/src/main/docbook/included/outputPanel.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/outputPanel.xml 2007-= 07-05 08:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/outputPanel.xml 2007-= 07-05 08:31:09 UTC (rev 299) @@ -106,13 +106,13 @@ ]]> - As you see, the code is very similar to the one shown above, but= "reRender " attribute refers directly to the updating panelGrid and not to the fr= aming outputPanel, and it's more semantically correct. + As you see, the code is very similar to the one shown above, but= "reRender " attribute= refers directly to the updating panelGrid and not to the framing outputPan= el, and it's more semantically correct. <a4j:outPanel> should be used for non-JSF component part framing, which is to= be updated on Ajax response, as Ajax4jsf specifies the list of updating ar= eas as a list of an existing JSF component. On default non-JSF context isn't saved in a component tree,= but is rendered anew every time. To accelerate the processing speed and Aj= ax response input speed, Ajax4jsf saves non-JSF context in a component tree= on default. This option could be canceled by keepTransient attribute that = cancels transient flag forced setting for child components. This flag setti= ng keeps the current value set by child components. Note: In JSF 1.1 implementation and lower, where non-JSF context= should be framed with the "f:verbatim" attribute, <a4j:outputPanel> doesn't improve this JSF implementation option in a= ny way, so you still have to use this tag where it's necessary without= Ajax4jsf usage. - Ajax4jsf allows setting Ajax responses rendering directly basing= on component tree nodes without referring to the JSP (XHTML) page code. It= could be defined by selfRendered attribute setting to + Ajax4jsf allows setting Ajax responses rendering directly basing= on component tree nodes without referring to the JSP (XHTML) page code. It= could be defined by selfRendered attribute setting to "true" = on Modified: trunk/docs/userguide/en/src/main/docbook/included/page.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/page.xml 2007-07-05 0= 8:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/page.xml 2007-07-05 0= 8:31:09 UTC (rev 299) @@ -67,12 +67,12 @@ Key attributes and ways of usage The component is mostly used to solve the following problem with= MyFaces for erlier Ajax4gsf versions: in MyFaces <f:view> - doesn't get control over the " + doesn't get control over the " RENDER_RESPONSE " phase, thus AJAX can't get control and make a= response also. To avoid this problem it was necessary to use <a4j:page> on the page round the AJAX updatable area. In the last v= ersions of both frameworks the problem is successfully fixed and no <a4j:page> usage is= required. - The component is rendered as a full HTML page template (it was s= hown in the example). The " + The component is rendered as a full HTML page template (it was s= hown in the example). The " head " section is defined with the help of the correspond= ing facet with the name=3D"head" and also there is an attribute w= ith the same name for contentType definition. All other component functionality is the same as of Modified: trunk/docs/userguide/en/src/main/docbook/included/poll.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/poll.xml 2007-07-05 0= 8:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/poll.xml 2007-07-05 0= 8:31:09 UTC (rev 299) @@ -38,7 +38,7 @@ ]]> The <a4j:poll> - component defined this way every second submits AJAX for= m onto the server, performs the corresponding action and renders a componen= ts with the + component defined this way every second submits AJAX for= m onto the server, performs the corresponding action and renders a componen= ts with the "someDataTable" id after a response comes back.
@@ -55,7 +55,7 @@ The component decodes all necessary JavaScript for time count an= d on the expiry of some interval for calling of a Ajax4jsf utility method = for Ajax request sending (A4J.AJAX.Submit (Some request parameters)). - The timer could be stopped or started in any time. The current state is = controlled on the component with the + The timer could be stopped or started in any time. The current state is = controlled on the component with the "enabled" attribute: Modified: trunk/docs/userguide/en/src/main/docbook/included/region.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/region.xml 2007-07-05= 08:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/region.xml 2007-07-05= 08:31:09 UTC (rev 299) @@ -93,7 +93,7 @@ ]]> In this case, the processing is quicker and going on without ref= erring to a page code, but the HTML code that isn't saved in a compone= nt tree could be lost. Thus, this optimization should be very carefully per= formed and a usage of the additional components ajax4jsf (<a4j:outputPanel>) is required= . - The processing could be also accelerated if a region decoded for= the processing passes straight away into Encode. But to update some data o= ut of the region or on another region, use the + The processing could be also accelerated if a region decoded for= the processing passes straight away into Encode. But to update some data o= ut of the region or on another region, use the "renderRegionOnly" = attribute set to "false" ("true on default") to change= this behaviour. Modified: trunk/docs/userguide/en/src/main/docbook/included/repeat.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/repeat.xml 2007-07-05= 08:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/repeat.xml 2007-07-05= 08:31:09 UTC (rev 299) @@ -33,13 +33,13 @@ =
Creating on a page - The component definition on a page is the same as for the + The component definition on a page is the same as for the "facelets" component: ]]> - The output is generated according to a collection contai= ned in + The output is generated according to a collection contai= ned in "bean.props" with the "detail" key passed to child compone= nts.
@@ -53,7 +53,7 @@
Key attributes and ways of usage - The main difference of this component from iterative component= s of other libraries is a special + The main difference of this component from iterative component= s of other libraries is a special "ajaxKeys" attribute. This attribute defines strings that are upda= ted after an AJAX request. As a result it becomes easier to update several = child components separately without updating the whole page. @@ -71,14 +71,14 @@ ]]> - Thus, a list with a table structure from + Thus, a list with a table structure from "bean.props" is output. In the above-mentioned example the component <a4j:poll> - sends AJAX requests every second, calling the + sends AJAX requests every second, calling the "action" - method of the + method of the "repeater" bean. = @@ -86,12 +86,12 @@ Note:The <a4j:repeater> - component is defined as fully updated, but really updat= ed there are only the strings which rowKeys are included into the set + component is defined as fully updated, but really updat= ed there are only the strings which rowKeys are included into the set "ajaxRowSet" - defined in the + defined in the "ajaxKeys" attribute - The set could be defined during the action method processing usi= ng data on a model from the property + The set could be defined during the action method processing usi= ng data on a model from the property "repeater.myRepeat" Modified: trunk/docs/userguide/en/src/main/docbook/included/status.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/status.xml 2007-07-05= 08:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/status.xml 2007-07-05= 08:31:09 UTC (rev 299) @@ -36,7 +36,7 @@ There are two ways to define elements indicating a request sta= tus : - With + With "StartText"/"StopText" atributes: ]]> @@ -69,19 +69,19 @@ Key attributes and ways of usage There are two ways for components or containers definition, w= hich AJAX requests status is tracked by a component. - Definition with the + Definition with the "for" = attribute on the <a4j:status> - component. Here + component. Here "for" = attribute should point at an AJAX container (<a4j:region>) "id", which reques= ts are tracked by a component. - Definition with the + Definition with the "status" = attribute obtained by any Ajax4jsf library action component. The attribute= should point at the @@ -107,7 +107,7 @@ Stopped ]]> - There is a possibility to group a <a4j:status> elements content into <div> elements, ins= tead of <span>. To use it, just redefine the + There is a possibility to group a <a4j:status> elements content into <div> elements, ins= tead of <span>. To use it, just redefine the "layout" = attribute from "incline"(default) to "block". Modified: trunk/docs/userguide/en/src/main/docbook/included/support.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/support.xml 2007-07-0= 5 08:23:01 UTC (rev 298) +++ trunk/docs/userguide/en/src/main/docbook/included/support.xml 2007-07-0= 5 08:31:09 UTC (rev 299) @@ -75,8 +75,8 @@ <a4j:support> functionality and there is no necessity to add the sup= port to them. - With the help of - "onsubmit" and + With the help of + "onsubmit" and "oncomplete" attributes = the component allows using JavaScript before (for request sending condition= s checking) and after an AJAX response processing termination (for performa= nce of user-defined activities on the client) Example: @@ -91,10 +91,10 @@ Limitation of the submit area and updati= ng area for the request. - "ajaxSingle"= is an attribute that allows submission on the server= only component sending a request, as if the component presented on a separ= ate form. = + "ajaxSingle" is an attribute that allows submission on the server only component= sending a request, as if the component presented on a separate form. = = - "limitToList"= ; is an attribute that allows to limit areas, which = are updated after the responses. Only these components defined in the reRe= nder attribute are updated. + "limitToList" is an attribute that allows to limit areas, which are updated aft= er the responses. Only these components defined in the reRender attribute = are updated. Example 1: @@ -119,15 +119,15 @@ Limitation of requests frequency and upd= ates quantity after the responses. - "requestDelay&quo= t; is an attribute that defines a time interval in se= conds minimally permissible between responses. = + "requestDelay" is an attribute that defines a time interval in seconds minimally= permissible between responses. = = - "eventQueue"= is an attribute for naming of the queue where the ne= xt response is kept in till its processing, but if the next event comes in = till this time is over, the waiting event is taken away, replacing with a n= ew one. = + "eventQueue" is an attribute for naming of the queue where the next response is = kept in till its processing, but if the next event comes in till this time = is over, the waiting event is taken away, replacing with a new one. = = - "ignoreDupResponc= es" is an attribute that allows to disable any u= pdates on the client after an AJAX request if another AJAX request is alrea= dy sent. = + "ignoreDupResponces" is an attribute that allows to disable any updates on the c= lient after an AJAX request if another AJAX request is already sent. = - "timeout" is an attribute that allows to set a time interval in m= illisecond to define a maximum time period of response wait time. In case o= f the interval interaction, a new request is sent and the previous one is c= anceled. Postprocessing of a response isn't performed. + "timeout" is an attribute that allows to set a time interval in millisecond to d= efine a maximum time period of response wait time. In case of the interval = interaction, a new request is sent and the previous one is canceled. Postpr= ocessing of a response isn't performed. Example: --===============4712593996936511784==-- From ajax4jsf-svn-commits at lists.jboss.org Thu Jul 5 04:35:28 2007 Content-Type: multipart/mixed; boundary="===============0049665752467956888==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r300 - trunk/docs/userguide/en/src/main/docbook/modules. Date: Thu, 05 Jul 2007 04:35:28 -0400 Message-ID: --===============0049665752467956888== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: smukhina Date: 2007-07-05 04:35:27 -0400 (Thu, 05 Jul 2007) New Revision: 300 Modified: trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml trunk/docs/userguide/en/src/main/docbook/modules/a4jUGfaq.xml trunk/docs/userguide/en/src/main/docbook/modules/a4jUGintro.xml trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml Log: http://jira.jboss.org/jira/browse/EXIN-373 italic font style is added Modified: trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml 2007-= 07-05 08:31:09 UTC (rev 299) +++ trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml 2007-= 07-05 08:35:27 UTC (rev 300) @@ -30,14 +30,14 @@ org.ajax4jsf.LOGFILE none - The is an URL to an application or a container log = file (if possible). If this parameter is set, a content from the given URL = will be shown on a Debug error page in the iframe window = + The is an URL to an application or a container log = file (if possible). If this parameter is set, a content from the given URL = will be shown on a Debug error p= age in the iframe window = org.ajax4jsf.VIEW_HANDLERS none - Is a comma-separated list of custom "ViewHandler" instances = + Is a comma-separated list of custom "ViewHandler" instances = for inserting in chain. Handlers are inserte= d in the given order. So must be used if the order of them is important. = No need to define ajax4jsf handler there, as= it will be always the first. = @@ -46,14 +46,14 @@ org.ajax4jsf.CONTROL_COMPONENTS none - Is a comma-separated list of names for a comp= onent as a special control case, such as messages bundle loader, alias bean= components, etc. Is a type of component got by a reflection from the stati= c field COMPONENT_TYPE. For components with such types encode methods always are called in r= endering AJAX responses, even if a component isn't in an updated part = + Is a comma-separated list of names for a comp= onent as a special control case, such as messages bundle loader, alias bean= components, etc. Is a type of component got by a reflection from the stati= c field COMPONENT_TYPE. For comp= onents with such types encode methods always are called in rendering AJAX r= esponses, even if a component isn't in an updated part = org.ajax4jsf.ENCRYPT_RESOURCE_DATA false - For generated resources, such as encrypt gen= eration data, it's encoded in the resource URL. For example, URL for a= n image generated from the mediaOutput<= /property> component contains a name of a generation method, sin= ce for a hacker attack, it is possible to create a request for any JSF bake= d beans or other attributes. To prevent such attacks, set this parameter to= true in critical applications (works with JRE > 1.4) + For generated resources, such as encrypt gen= eration data, it's encoded in the resource URL. For example, URL for a= n image generated from the mediaOutput component contains a name of a generation method, since for a hacker= attack, it is possible to create a request for any JSF baked beans or othe= r attributes. To prevent such attacks, set this parameter to true in critic= al applications (works with JRE > 1.4) @@ -66,7 +66,7 @@ org.ajax4jsf.SKIN DEFAULT - Is a name of a skin used in an applicatio= n. It can be a literal string with a skin name, or the EL expression (#{...}) pointed to a <= emphasis role=3D"italic">String property (s= kin name) or a property with the type org.ajax4jsf.framework.skin. Skin in = last case, this instance will be used as a current skin + Is a name of a skin used in an applicatio= n. It can be a literal string with a skin name, or the EL expression (#{...}) pointed to a String property (skin name) or a property with t= he type org.ajax4jsf.framework.skin. Skin in last case, this instance will = be used as a current skin @@ -107,7 +107,7 @@ forceparser true - Forces parsing by a filter HTML syntax checker on any JSF pag= e. If false, only AJAX responses are parsed to syntax check and conversion = to well-formed XML. Setting to false improve performance, but can provide v= isual effects on AJAX updates + Forces parsing by a filter HTML syntax checker on any JSF page. If false, on= ly AJAX responses are parsed to syntax check and conversion to well-formed = XML. Setting to false improve performance, but can provide visual effects o= n AJAX updates Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGfaq.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGfaq.xml 2007-07-0= 5 08:31:09 UTC (rev 299) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGfaq.xml 2007-07-0= 5 08:35:27 UTC (rev 300) @@ -28,7 +28,7 @@ = How to check sending request conditions? Custom JavaScript = before request "OnSubmit" attribute. - To check on the client some terms of request sending, the <= emphasis role=3D"italic"> + To check on the client some terms of request sending, the <= emphasis > "onSubmit " attribute is added to all components, which = may cause the request. @@ -37,17 +37,17 @@ ]]> - So in this case " So in this case "doSomething()" funct= ion is executed before the AJAX request. Besides, if this function returns "false", AJAX r= equest isn't fired. Note: - Behavior of our + Behavior of our "onsubmit" slightly differs from the standard one. Do not = return + > "true" if you want to fire the request - because <xxx><a4j:support @@ -56,7 +56,7 @@ is transformed into <xxx onclick=3D"re= turn true; A4J.Submit(.... );" > and the request isn't f= ired also in this case (but the standard event processing fired). You m= ust only return + > "false" if your conditions weren't completed or p= erform some actions (if needed) without any returns in case you need to fire i= t. @@ -70,15 +70,15 @@ (..oncomplete :anotherFunction(this)..), it places (oncomplete: function(){anotherFunction(this);}..) in anonymous function, t= o allow put "chain" of statements in attribute. - Since, + Since, "this" keyword will point to a parameters map instead of = a control element as it - was before. You may use + was before. You may use document.findElementById() to get references to this object after a request is= processed as when a page is updated in AJAX you will have reference to a control, remov= ed from a DOM tree. Or, if you are sure that your element is not updated, you c= an add + > "onsubmit" in <a4j:support> @@ -103,13 +103,13 @@
Is it possible to use InvokeOnComponent with JSF 1.2?</titl= e> - <para> Ajax4jsf currently does not use <emphasis role=3D"italic">i= nvokeOnComponent</emphasis> + <para> Ajax4jsf currently does not use <emphasis >invokeOnComponen= t</emphasis> because of the 2 reasons: </para> <itemizedlist> <listitem> Compatibility with JSF 1.1 and MyFaces applications= is kept, due to a big amount of code used in corporate applications. </listitem> <listitem> - <emphasis role=3D"italic"> InvokeOnComponent</emphasis> wo= rks with already known + <emphasis > InvokeOnComponent</emphasis> works with alread= y known clientId, and works fine for communication between widget = and backed component, or updates content of already rendered component. But there a= re some troubles to use this method for more complex use-cases implemented in Ajax= 4jsf, as there is a choice @@ -216,14 +216,14 @@ <?dbhtml filename=3D"IgnoreDupResponsesAndRequestDelay.html"?> = <title>How to use IgnoreDupResponses and requestDelay? - The + The "IgnoreDupResponses" attribute appeared from 1.0.4 RC1 version and is u= sed on the client for response ignoring after an AJAX request if a newer request has= been already sent. The additional information could be found here. - + "RequestDelay" attribute also defines the client behavior. It set= s the time delay, after which another request could be sent, all other requests are ta= ken away from a queue @@ -245,7 +245,7 @@
How to use "EventQueue" attribute? - The + The "EventQueue" attribute defines the query name where the request= s are saved before their sending to the server. The queue is created for redundant requ= ests deleting during Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGintro.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGintro.xml 2007-07= -05 08:31:09 UTC (rev 299) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGintro.xml 2007-07= -05 08:35:27 UTC (rev 300) @@ -52,7 +52,7 @@ Easily generate images on-the-fly Resource framework can generate images on-the-fly so that it bec= omes possible to = create images using the familiar approach of the = - "Java Graphics2D" library. + "Java Graphics2D" library.= Create a modern rich user interface look-and-feel with skins-ba= sed technology Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml 2007-07= -05 08:31:09 UTC (rev 299) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGstart.xml 2007-07= -05 08:35:27 UTC (rev 300) @@ -35,14 +35,14 @@ = - Unzip + Unzip "ajax4jsf.zip" file to the chosen folder. = = - Copy "ajax4jsf.jar"= ; and "oscac= he-2.3.2.jar" files into the + Copy "ajax4jsf.jar" and "oscache-2.3.2.jar"<= /emphasis> files into the "WEB-INF/lib" folder of your application. = @@ -53,7 +53,7 @@ - Add the following content into the + Add the following content into the "WEB-INF/web.xml" file of your application: = @@ -71,7 +71,7 @@ ]]> Note: - You can copy and paste the above text from the + You can copy and paste the above text from the "README.txt" file. @@ -135,15 +135,15 @@ text field pointed to our managed bean property contains up-to-dat= e value of our input. - The value of "reRender&qu= ot; attribute of the + The value of "reRender"<= /emphasis> attribute of the <a4j:support> tag defines which part(s) of our = page is (are) to be updated. In this case, the only part of the pa= ge to update is the <h:outputText> - tag because its ID value matches to the value of "reRender" = + tag because its ID value matches to the value of "reRender" = attribute. As you see, it's not difficult to update multiple= elements on the page, only list their IDs = - as the value of "reRender= ". + as the value of "reRender".
--===============0049665752467956888==-- From ajax4jsf-svn-commits at lists.jboss.org Fri Jul 6 10:48:03 2007 Content-Type: multipart/mixed; boundary="===============3356547918709493813==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r301 - trunk/docs/userguide/en/src/main/docbook/included. Date: Fri, 06 Jul 2007 10:48:03 -0400 Message-ID: --===============3356547918709493813== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: vkorluzhenko Date: 2007-07-06 10:48:03 -0400 (Fri, 06 Jul 2007) New Revision: 301 Modified: trunk/docs/userguide/en/src/main/docbook/included/log.xml Log: http://jira.jboss.org/jira/browse/RF-414 Modified: trunk/docs/userguide/en/src/main/docbook/included/log.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/log.xml 2007-07-05 08= :35:27 UTC (rev 300) +++ trunk/docs/userguide/en/src/main/docbook/included/log.xml 2007-07-06 14= :48:03 UTC (rev 301) @@ -60,5 +60,9 @@ attribute on the component. Example:]]> The component defined this way is decoded on a page as <div> inside a page, w= here all the information beginning with informational message is generated.= + + Note: + <a4j:log> is getting = renewed automatically after execution of ajax requests. Don't renew <a4j:log> by using reRender! +
--===============3356547918709493813==-- From ajax4jsf-svn-commits at lists.jboss.org Fri Jul 6 21:16:16 2007 Content-Type: multipart/mixed; boundary="===============2954303046427883610==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r302 - in trunk: framework/src/main/java/org/ajax4jsf/framework/ajax and 13 other directories. Date: Fri, 06 Jul 2007 21:16:16 -0400 Message-ID: --===============2954303046427883610== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: alexsmirnov Date: 2007-07-06 21:16:15 -0400 (Fri, 06 Jul 2007) New Revision: 302 Added: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Conf= igurableFilter.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Conf= igurableXMLFilter.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Pars= erConfig.java trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/Conf= igurableXMLFilterTestCase.java trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/Part= erConfigTestCase.java trunk/samples/useCases/src/main/java/beans/ trunk/samples/useCases/src/main/java/beans/performance/ trunk/samples/useCases/src/main/java/beans/performance/Data.java trunk/samples/useCases/src/main/webapp/META-INF/ trunk/samples/useCases/src/main/webapp/META-INF/MANIFEST.MF trunk/samples/useCases/src/main/webapp/pages/performance.xhtml Modified: trunk/framework/src/main/java/org/ajax4jsf/Filter.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxContext.ja= va trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxViewHandle= r.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Base= Filter.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Base= XMLFilter.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Html= Parser.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nekk= o/NekkoParser.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nekk= o/NekkoXMLFilter.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/tidy= /TidyParser.java trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/tidy= /TidyXMLFilter.java trunk/framework/src/main/java/org/ajax4jsf/framework/resource/InternetRe= sourceService.java trunk/framework/src/main/java/org/ajax4jsf/io/parser/FastHtmlParser.java trunk/samples/useCases/src/main/webapp/WEB-INF/faces-config.xml trunk/samples/useCases/src/main/webapp/WEB-INF/web.xml Log: Create configurable XML filter, can use different parsers for a different U= RL. Modified: trunk/framework/src/main/java/org/ajax4jsf/Filter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/Filter.java 2007-07-06 14:48= :03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/Filter.java 2007-07-07 01:16= :15 UTC (rev 302) @@ -21,6 +21,7 @@ = package org.ajax4jsf; = +import org.ajax4jsf.framework.ajax.xmlfilter.ConfigurableFilter; import org.ajax4jsf.framework.ajax.xmlfilter.TidyFilter; = /** @@ -29,6 +30,6 @@ * @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:58:29 $ * */ -public class Filter extends TidyFilter { +public class Filter extends ConfigurableFilter { = } Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxCon= text.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxContext.j= ava 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxContext.j= ava 2007-07-07 01:16:15 UTC (rev 302) @@ -431,6 +431,9 @@ } // Mark as processed. requestMap.put(RESOURCES_PROCESSED, Boolean.TRUE); + // Save viewId for a parser selection + requestMap.put( + AjaxViewHandler.VIEW_ID_KEY,root.getViewId()); } = } @@ -499,15 +502,16 @@ public void saveViewState(FacesContext context) throws IOException { // TODO - for facelets environment, we need to remove transient // components. - try { - Application.class.getMethod("getExpressionFactory", null); - } catch (NoSuchMethodException e) { - // JSF 1.1 ! - } +// try { +// Application.class.getMethod("getExpressionFactory", null); +// } catch (NoSuchMethodException e) { +// // JSF 1.1 ! +// } ResponseWriter writer =3D context.getResponseWriter(); StateManager stateManager =3D context.getApplication().getStateManager(); SerializedView serializedView =3D stateManager .saveSerializedView(context); + Map requestMap =3D context.getExternalContext().getRequestMap(); if (null !=3D serializedView) { StringWriter bufWriter =3D new StringWriter(); ResponseWriter cloneWithWriter =3D writer.cloneWithWriter(bufWriter); @@ -515,7 +519,7 @@ stateManager.writeState(context, serializedView); cloneWithWriter.flush(); if (bufWriter.getBuffer().length() > 0) { - context.getExternalContext().getRequestMap().put( + requestMap.put( AjaxViewHandler.SERIALIZED_STATE_KEY, bufWriter.toString()); } Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxVie= wHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxViewHandl= er.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/AjaxViewHandl= er.java 2007-07-07 01:16:15 UTC (rev 302) @@ -58,6 +58,8 @@ = private static final String REDIRECTED =3D "org.ajax4jsf.view.REDIRECTED"; = + public static final String VIEW_ID_KEY =3D "org.ajax4jsf.view.ID"; + /** * @param parent */ Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/BaseFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Bas= eFilter.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Bas= eFilter.java 2007-07-07 01:16:15 UTC (rev 302) @@ -39,7 +39,6 @@ import javax.servlet.http.HttpSession; = import org.ajax4jsf.ajax.PushEventsCounter; -import org.ajax4jsf.cache.Cache; import org.ajax4jsf.framework.renderer.AjaxContainerRenderer; import org.ajax4jsf.framework.resource.InternetResourceService; import org.ajax4jsf.framework.util.message.Messages; Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/BaseXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Bas= eXMLFilter.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Bas= eXMLFilter.java 2007-07-07 01:16:15 UTC (rev 302) @@ -67,9 +67,12 @@ private static final String NAMESPACE_PARAMETER =3D "namespace"; = private boolean forcexml =3D false; + = = private static final String FORCEXML_PARAMETER =3D "forceparser"; = + private static final String INIT_PARAMETER_PREFIX =3D "org.ajax4jsf.xm= lfilter."; + public BaseFilter filter; = public void setFilter(BaseFilter filter) { @@ -81,14 +84,10 @@ log.debug("init XML filter service with class " + this.getClass().getName()); } - if ("false".equalsIgnoreCase(config - .getInitParameter(FORCEXML_PARAMETER))) { - this.forcexml =3D false; - } - if ("true" - .equalsIgnoreCase(config.getInitParameter(FORCEXML_PARAMETER))) { - this.forcexml =3D true; - } + String forceXmlParameter =3D config + .getInitParameter(FORCEXML_PARAMETER); + setupForceXml(forceXmlParameter); + forceXmlParameter =3D config.getServletContext().getInitParameter(INIT_PA= RAMETER_PREFIX+FORCEXML_PARAMETER); setMimetype((String) nz(config.getInitParameter(MIME_TYPE_PARAMETER), "text/xml")); setPublicid((String) nz(config.getInitParameter(PUBLICID_PARAMETER), @@ -100,6 +99,19 @@ } = /** + * @param forceXmlParameter + */ + private void setupForceXml(String forceXmlParameter) { + if ("false".equalsIgnoreCase(forceXmlParameter)) { + this.forcexml =3D false; + } + if ("true" + .equalsIgnoreCase(forceXmlParameter)) { + this.forcexml =3D true; + } + } + + /** * Perform filter chain with xml parsing and transformation. Subcl= asses * must implement concrete HTML to XML parsing, nesseasary * transformations and serialization. @@ -125,6 +137,7 @@ .setAttribute(RESPONSE_WRAPPER_ATTRIBUTE, servletResponseWrapper); chain.doFilter(request, servletResponseWrapper); + String viewId =3D (String) request.getAttribute(AjaxViewHandler.VIEW_ID_K= EY); HtmlParser parser =3D null; // setup response // Redirect in AJAX request - convert to special response recognized by @@ -203,7 +216,7 @@ String outputEncoding =3D "UTF-8"; String contentType =3D getMimetype() + ";charset=3D" + outputEncoding; response.setContentType(contentType); - parser =3D getParser(getMimetype(), true); + parser =3D getParser(getMimetype(), true, viewId); if (null =3D=3D parser) { throw new ServletException(Messages.getMessage( Messages.PARSER_NOT_INSTANTIATED_ERROR, contentType)); @@ -231,7 +244,7 @@ && null !=3D characterEncoding) { contentType +=3D ";charset=3D" + characterEncoding; } - parser =3D getParser(contentType, false); + parser =3D getParser(contentType, false, viewId); response.setContentType(contentType); } // null or unsupported content type @@ -332,7 +345,7 @@ = protected abstract void reuseParser(HtmlParser parser); = - protected abstract HtmlParser getParser(String mimetype, boolean isAja= x); + protected abstract HtmlParser getParser(String mimetype, boolean isAja= x, String viewId); = /** * @param publicid Added: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/= ConfigurableFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Con= figurableFilter.java (rev 0) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Con= figurableFilter.java 2007-07-07 01:16:15 UTC (rev 302) @@ -0,0 +1,20 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +/** + * @author asmirnov + * + */ +public class ConfigurableFilter extends BaseFilter { + + /** + * = + */ + public ConfigurableFilter() { + xmlFilter =3D new ConfigurableXMLFilter(); + xmlFilter.setFilter(this); + } + +} Added: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/= ConfigurableXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Con= figurableXMLFilter.java (rev 0) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Con= figurableXMLFilter.java 2007-07-07 01:16:15 UTC (rev 302) @@ -0,0 +1,238 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +import java.io.IOException; +import java.io.InputStream; +import java.util.EmptyStackException; +import java.util.Properties; +import java.util.regex.PatternSyntaxException; + +import javax.servlet.FilterConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; + +import org.ajax4jsf.framework.ajax.xmlfilter.nekko.NekkoParser; +import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser; +import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyXMLFilter; +import org.ajax4jsf.framework.util.message.Messages; +import org.ajax4jsf.io.parser.FastHtmlParser; +import org.apache.commons.collections.ArrayStack; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * @author asmirnov + * = + */ +public class ConfigurableXMLFilter extends BaseXMLFilter { + + private static final Log log =3D LogFactory + .getLog(ConfigurableXMLFilter.class); + + private static final String PARSERS_LIST_PARAMETER =3D "org.ajax4jsf.x= mlparsers"; + + private static final String VIEW_ID_PATTERN_PARAMETER =3D "org.ajax4js= f.xmlparser."; + + /** + * map of the parsers names and viewId patterns for all parser type. + */ + private ParserConfig parsers =3D new TidyParserConfig(); + + // private ParserConfig passParserConfig =3D new PassParserConfig(); + + public void init(FilterConfig config) throws ServletException { + super.init(config); + ServletContext servletContext =3D config.getServletContext(); + String parsersParameter =3D servletContext + .getInitParameter(PARSERS_LIST_PARAMETER); + if (null !=3D parsersParameter) { + configureParsers(servletContext, parsersParameter); + } + } + + /** + * @param servletContext + * @param parsersParameter + * @throws ServletException + */ + public void configureParsers(ServletContext servletContext, + String parsersParameter) throws ServletException { + String[] parsersNames =3D parsersParameter.split("\\s*,\\s*"); + for (int i =3D parsersNames.length - 1; i >=3D 0; i--) { + String parserName =3D parsersNames[i]; + ParserConfig parserConfig; + if ("TIDY".equals(parserName)) { + parserConfig =3D new TidyParserConfig(); + } else if ("NEKO".equals(parserName)) { + parserConfig =3D new NekoParserConfig(); + } else if ("PASS".equals(parserName)) { + parserConfig =3D new PassParserConfig(); + } else { + throw new ServletException( + "Unknown XML parser type in config parameter " + + parserName); + } + parserConfig.setNext(parsers); + if (null !=3D servletContext) { + try { + String parserViewPattern =3D servletContext + .getInitParameter(VIEW_ID_PATTERN_PARAMETER + + parserName); + parserConfig.setPatterns(parserViewPattern); + + } catch (PatternSyntaxException e) { + throw new ServletException("Invalid pattern for a parser " + + parserName + " :" + e.getMessage()); + } + } + parsers =3D parserConfig; + } + } + + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter#getParser(= java.lang.String, + * boolean, java.lang.String) + */ + protected HtmlParser getParser(String mimetype, boolean isAjax, + String viewId) { + HtmlParser parser =3D null; + if (isAjax || isForcexml()) { + parser =3D parsers.getParser(viewId, mimetype); + } else if (mimetype.startsWith("text/html") + || mimetype.startsWith("application/xhtml+xml")) { + parser =3D new FastHtmlParser(); + } + return parser; + } + + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter#reuseParse= r(org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser) + */ + protected void reuseParser(HtmlParser parser) { + parsers.reuseParser(parser); + + } + + private static final int STACK_SIZE =3D 100; + + private ArrayStack _xhtmlParsersPool =3D new ArrayStack(STACK_SIZE); + + private class NekoParserConfig extends ParserConfig { + + protected HtmlParser createParser(String mime) { + NekkoParser parser; + try { + synchronized (_xhtmlParsersPool) { + parser =3D (NekkoParser) _xhtmlParsersPool.pop(); + } + } catch (EmptyStackException e) { + parser =3D new NekkoParser(); + parser.setPublicId(getPublicid()); + parser.setSystemid(getSystemid()); + parser.setNamespace(getNamespace()); + // If tidy not handle all requests, disable reorganising + // of html + // parser.setMoveElements(isForcexml()); + } + // TODO - set header scripts/styles filter. + return parser; + } + + boolean storeParser(HtmlParser parser) { + if (null !=3D parser && parser instanceof NekkoParser) { + synchronized (_xhtmlParsersPool) { + if (_xhtmlParsersPool.size() < STACK_SIZE) { + ((NekkoParser) parser).reset(); + _xhtmlParsersPool.push(parser); + } + + } + return true; + } + return false; + } + } + + private class TidyParserConfig extends ParserConfig { + + protected HtmlParser createParser(String mime) { + // TODO Auto-generated method stub + TidyParser tidyParser =3D new TidyParser(getTidyProperties()); + tidyParser.setMoveElements(isForcexml()); + tidyParser.setMime(mime); + return tidyParser; + } + + } + + private class PassParserConfig extends ParserConfig { + + protected HtmlParser createParser(String mime) { + return new FastHtmlParser(); + } + + } + + private Properties _tidyProperties; + + private Properties getTidyProperties() { + if (null =3D=3D _tidyProperties) { + _tidyProperties =3D new Properties(); + InputStream defaultprops =3D null; + InputStream props =3D null; + try { + defaultprops =3D TidyParser.class + .getResourceAsStream("tidy.properties"); + if (null !=3D defaultprops) { + _tidyProperties.load(defaultprops); + if (log.isDebugEnabled()) { + log.debug("default tidy parser properties loaded"); + } + } else if (log.isDebugEnabled()) { + log.debug("No default tidy parser properties found"); + } + + // Second part - user-defined properties. + props =3D Thread.currentThread().getContextClassLoader() + .getResourceAsStream("tidy.properties"); + if (null !=3D props) { + _tidyProperties.load(props); + if (log.isDebugEnabled()) { + log.debug("application-specific tidy parser properties loaded"); + } + } + } catch (IOException e) { + // TODO Auto-generated catch block + log.warn(Messages + .getMessage(Messages.READING_TIDY_PROPERTIES_ERROR), e); + } finally { + if (null !=3D props) { + try { + props.close(); + } catch (IOException e) { + // can be ignored + } + } + if (null !=3D defaultprops) { + try { + defaultprops.close(); + } catch (IOException e) { + // can be ignored + } + } + } + } + return _tidyProperties; + } + + public ParserConfig getParsers() { + return parsers; + } + +} Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/HtmlParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Htm= lParser.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Htm= lParser.java 2007-07-07 01:16:15 UTC (rev 302) @@ -66,4 +66,6 @@ */ public abstract void setViewState(String viewState); = + public abstract boolean setMime(String mimeType); + } \ No newline at end of file Added: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/= ParserConfig.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Par= serConfig.java (rev 0) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/Par= serConfig.java 2007-07-07 01:16:15 UTC (rev 302) @@ -0,0 +1,67 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +abstract class ParserConfig { + + private static final Pattern[] ALL_VIEWS_PATTERN =3D { Pattern.compile= (".*") }; + = + private static final Pattern SEPARATOR_PATTERN =3D Pattern.compile("\\= s*,\\s*"); = + + private Pattern[] patterns =3D ALL_VIEWS_PATTERN; + + private ParserConfig next; + + protected abstract HtmlParser createParser(String mimetype); + + boolean storeParser(HtmlParser parser) { + return false; + } + + HtmlParser getParser(String viewId, String mimetype) { + HtmlParser result =3D null; + for (int i =3D 0; i < patterns.length && null =3D=3D result; i++) { + Matcher matcher =3D patterns[i].matcher(viewId); + if (matcher.matches()) { + result =3D createParser(mimetype); + } + } + if (null =3D=3D result && null !=3D next) { + result =3D next.getParser(viewId, mimetype); + } + return result; + } + + public void reuseParser(HtmlParser parser) { + if (!storeParser(parser) && null !=3D next) { + next.reuseParser(parser); + } + } + + public ParserConfig getNext() { + return next; + } + + public void setNext(ParserConfig next) { + this.next =3D next; + } + + public void setPatterns(String patternsString) { + if (null !=3D patternsString) { + String[] split =3D SEPARATOR_PATTERN.split(patternsString); + patterns =3D new Pattern[split.length]; + for (int i =3D 0; i < split.length; i++) { + patterns[i]=3DPattern.compile(split[i].trim()); + } + } = + } + + public Pattern[] getPatterns() { + return patterns; + } + +} \ No newline at end of file Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/nekko/NekkoParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekkoParser.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekkoParser.java 2007-07-07 01:16:15 UTC (rev 302) @@ -108,7 +108,8 @@ */ public NekkoParser() { _parser=3Dnew HtmlSAXParser(getHtmlConfig()); - Properties properties =3D OutputPropertiesFactory.getDefaultMethodProper= ties(Method.XHTML); +// Properties properties =3D OutputPropertiesFactory.getDefaultMethodProp= erties(Method.XHTML); + Properties properties =3D OutputPropertiesFactory.getDefaultMethodProper= ties(Method.XML); // properties.put("encoding",_encoding); _serializer =3D SerializerFactory.getSerializer(properties); // serializer.setOutputStream(output); @@ -641,4 +642,8 @@ _systemid =3D systemid; } = + public boolean setMime(String mimeType) { + return false; + } + } Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/nekko/NekkoXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekkoXMLFilter.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekkoXMLFilter.java 2007-07-07 01:16:15 UTC (rev 302) @@ -36,7 +36,7 @@ = public NekkoXMLFilter() {} = - protected HtmlParser getParser(String mimetype, boolean isAjax) { + protected HtmlParser getParser(String mimetype, boolean isAjax, String vi= ewId) { HtmlParser parser =3D null; if( isAjax ){ parser =3D getXmlParser(); Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/tidy/TidyParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/tid= y/TidyParser.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/tid= y/TidyParser.java 2007-07-07 01:16:15 UTC (rev 302) @@ -322,7 +322,9 @@ // setup html output tidy.setXHTML(false); tidy.setXmlOut(false); - // TODO - auto doctype ? + if (log.isDebugEnabled()) { + log.debug("Print output as ordinary HTML"); + } return true; } } @@ -332,6 +334,9 @@ // setup xhtml output tidy.setXHTML(true); tidy.setXmlOut(false); + if (log.isDebugEnabled()) { + log.debug("Print output as XHTML"); + } return true; } } @@ -344,6 +349,9 @@ tidy.setXmlPi(true); tidy.setEscapeCdata(false); tidy.setNumEntities(true); + if (log.isDebugEnabled()) { + log.debug("Print output as XML"); + } return true; } } @@ -384,7 +392,7 @@ * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setDoctype(java.= lang.String) */ public void setDoctype(String doctype) { - tidy.setDocType(doctype); + tidy.setDocType("omit");//doctype); } = /* Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/tidy/TidyXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/tid= y/TidyXMLFilter.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/tid= y/TidyXMLFilter.java 2007-07-07 01:16:15 UTC (rev 302) @@ -66,7 +66,7 @@ * @param string Encodings for parser * @return */ - protected HtmlParser getParser(String mime, boolean isAjax) { + protected HtmlParser getParser(String mime, boolean isAjax, String viewId= ) { // For non-ajax, parse only html types ! if (isAjax || mime.startsWith("text/html") || mime.startsWith("applicat= ion/xhtml+xml")) { if(isAjax || isForcexml()){ Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/resource/Int= ernetResourceService.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/resource/InternetR= esourceService.java 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/resource/InternetR= esourceService.java 2007-07-07 01:16:15 UTC (rev 302) @@ -53,8 +53,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; = - -public class InternetResourceService implements CacheLoader, CacheConfigur= ationLoader { +public class InternetResourceService implements CacheLoader, + CacheConfigurationLoader { private static final Log log =3D LogFactory .getLog(InternetResourceService.class); = @@ -67,9 +67,9 @@ private boolean cacheEnabled =3D true; = private Cache cache =3D null; - = - //private ServletCacheAdministrator cacheAdmin; = + // private ServletCacheAdministrator cacheAdmin; + private FacesContextFactory contextFactory; = // private RenderKitFactory renderKitFactory; @@ -78,7 +78,7 @@ private ResourceLifecycle lifecycle; = private InternetResourceBuilder resourceBuilder; - = + private WebXml webXml; = public InternetResourceService() { @@ -95,18 +95,18 @@ .getInitParameter(ENABLE_CACHING_PARAMETER))) { setCacheEnabled(false); // this.cacheEnabled =3D false; - //this.cacheAdmin =3D null; + // this.cacheAdmin =3D null; } else { - //this.cacheAdmin =3D ServletCacheAdministrator.getInstance( - // servletContext, cacheProperties); + // this.cacheAdmin =3D ServletCacheAdministrator.getInstance( + // servletContext, cacheProperties); try { - CacheManager cacheManager =3D CacheManager.getInstance(); - Map env =3D new ServletContextInitMap(servletContext); - CacheFactory cacheFactory =3D cacheManager.getCacheFactory(env); - this.cache =3D cacheFactory.createCache(env, this, this); - } catch (CacheException e) { - throw new FacesException(e.getMessage(), e); - } + CacheManager cacheManager =3D CacheManager.getInstance(); + Map env =3D new ServletContextInitMap(servletContext); + CacheFactory cacheFactory =3D cacheManager.getCacheFactory(env); + this.cache =3D cacheFactory.createCache(env, this, this); + } catch (CacheException e) { + throw new FacesException(e.getMessage(), e); + } } // Create Resource-specific Faces Lifecycle instance. lifecycleClass =3D servletContext @@ -125,18 +125,22 @@ } else { lifecycle =3D new ResourceLifecycle(); } - webXml =3D new WebXml(); - webXml.init(servletContext,filterConfig.getFilterName()); - if (log.isDebugEnabled()) { - log.debug("Resources service initialized"); + // Check for existing configuration. + webXml =3D (WebXml) servletContext.getAttribute(WebXml.CONTEXT_ATTRIBUTE); + if (null =3D=3D webXml) { + webXml =3D new WebXml(); + webXml.init(servletContext, filterConfig.getFilterName()); + if (log.isDebugEnabled()) { + log.debug("Resources service initialized"); + } + } } = public boolean serviceResource(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { - String resourceKey =3D webXml - .getFacesResourceKey(httpServletRequest); + String resourceKey =3D webXml.getFacesResourceKey(httpServletRequest); if (null !=3D resourceKey) { serviceResource(resourceKey, httpServletRequest, httpServletResponse); @@ -153,8 +157,8 @@ } catch (ResourceNotFoundException e) { throw new ServletException(e); } - Object resourceDataForKey =3D getResourceBuilder() - .getResourceDataForKey(resourceKey); + Object resourceDataForKey =3D getResourceBuilder().getResourceDataForKey( + resourceKey); if (resource.isCacheable(null) && this.cacheEnabled) { // Test for client request modification time. try { @@ -162,7 +166,7 @@ .getDateHeader("If-Modified-Since"); if (ifModifiedSince >=3D 0) { // Test for modification. 1000 ms due to round - // modification + // modification // time to seconds. long lastModified =3D resource.getLastModified(null) .getTime() - 1000; @@ -179,74 +183,64 @@ e); } String cacheKey =3D resourceKey;// + "?" + - // request.getQueryString(= ); + // request.getQueryString(); // TODO - select session/application scope. - //Cache cache =3D cacheAdmin.getAppScopeCache(getServletContext()); -// try { - // TODO - use last modified/expires time - = - CacheKey key =3D new CacheKey(resourceDataForKey, request, response, = resource); - = + // Cache cache =3D cacheAdmin.getAppScopeCache(getServletContext()); + // try { + // TODO - use last modified/expires time + + CacheKey key =3D new CacheKey(resourceDataForKey, request, response, + resource); + CacheContent content; - try { - content =3D (CacheContent) cache - .get(cacheKey, key); - if (log.isDebugEnabled()) { - log.debug(Messages.getMessage( - Messages.GET_CONTENT_FROM_CACHE_INFO, cacheKey)); - } - content.sendHeaders(response); - // Correct expires date for resource. - Date expired =3D resource.getExpired(null); - if (expired !=3D null) { - response.setDateHeader("Expires", expired.getTime()); - } else { - response.setDateHeader("Expires", System - .currentTimeMillis() - + InternetResource.DEFAULT_EXPIRE); - } - if (!request.getMethod().equals("HEAD")) { - content.send(response); - }/* - } catch (NeedsRefreshException e) { - try { - if (log.isDebugEnabled()) { - log.debug(Messages.getMessage( - Messages.CONTENT_NOT_FOUND_ERROR, cacheKey)); - } - CachedResourceContext context =3D (CachedResourceContext) sendResou= rce( - resource, request, response, resourceDataForKey); - // TODO - set refresh interval ? - cache.put(cacheKey, context.getContent()); - } catch (Exception ex) { - //cache.cancelUpdate(cacheKey); - log.error( - Messages.getMessage(Messages.SEND_RESOURCE_ERROR), - ex); - throw new ServletException(Messages.getMessage( - Messages.SEND_RESOURCE_ERROR_2, ex.getMessage()), - ex); - } - }*/ - } catch (CacheException e) { - log.error( - Messages.getMessage(Messages.SEND_RESOURCE_ERROR), - e); - throw new ServletException(Messages.getMessage( - Messages.SEND_RESOURCE_ERROR_2, e.getMessage()), - e); + try { + content =3D (CacheContent) cache.get(cacheKey, key); + if (log.isDebugEnabled()) { + log.debug(Messages.getMessage( + Messages.GET_CONTENT_FROM_CACHE_INFO, cacheKey)); } + content.sendHeaders(response); + // Correct expires date for resource. + Date expired =3D resource.getExpired(null); + if (expired !=3D null) { + response.setDateHeader("Expires", expired.getTime()); + } else { + response.setDateHeader("Expires", System + .currentTimeMillis() + + InternetResource.DEFAULT_EXPIRE); + } + if (!request.getMethod().equals("HEAD")) { + content.send(response); + }/* + * } catch (NeedsRefreshException e) { try { if + * (log.isDebugEnabled()) { log.debug(Messages.getMessage( + * Messages.CONTENT_NOT_FOUND_ERROR, cacheKey)); } + * CachedResourceContext context =3D (CachedResourceContext) + * sendResource( resource, request, response, + * resourceDataForKey); // TODO - set refresh interval ? + * cache.put(cacheKey, context.getContent()); } catch + * (Exception ex) { //cache.cancelUpdate(cacheKey); + * log.error( + * Messages.getMessage(Messages.SEND_RESOURCE_ERROR), ex); + * throw new ServletException(Messages.getMessage( + * Messages.SEND_RESOURCE_ERROR_2, ex.getMessage()), ex); } } + */ + } catch (CacheException e) { + log.error(Messages.getMessage(Messages.SEND_RESOURCE_ERROR), e); + throw new ServletException(Messages.getMessage( + Messages.SEND_RESOURCE_ERROR_2, e.getMessage()), e); + } } else { sendResource(resource, request, response, resourceDataForKey); } } = /** - * @param resource - * @param request - * @param response - * @throws IOException - */ + * @param resource + * @param request + * @param response + * @throws IOException + */ protected ResourceContext sendResource(InternetResource resource, HttpServletRequest request, HttpServletResponse response, Object data) throws IOException { @@ -259,13 +253,13 @@ } = /** - * @param resource - * @param request - * @param response - * @return - * @throws ServletException - * @throws FacesException - */ + * @param resource + * @param request + * @param response + * @return + * @throws ServletException + * @throws FacesException + */ protected ResourceContext getResourceContext(InternetResource resource, HttpServletRequest request, HttpServletResponse response) throws FacesException { @@ -285,11 +279,11 @@ } = /** - * Get properties file from classpath - * = - * @param name - * @return - */ + * Get properties file from classpath + * = + * @param name + * @return + */ protected Properties getProperties(String name) { Properties properties =3D new Properties(); InputStream props =3D BaseFilter.class.getResourceAsStream(name); @@ -313,27 +307,27 @@ } = /** - * @return Returns the servletContext. - */ + * @return Returns the servletContext. + */ protected ServletContext getServletContext() { return filterConfig.getServletContext(); } = /** - * @return the lifecycle - * @throws ServletException - */ + * @return the lifecycle + * @throws ServletException + */ protected ResourceLifecycle getLifecycle() throws FacesException { return lifecycle; } = /** - * @return the contextFactory - */ + * @return the contextFactory + */ protected synchronized FacesContextFactory getContextFactory() { if (contextFactory =3D=3D null) { - contextFactory =3D (FacesContextFactory) FactoryFinder - .getFactory(FactoryFinder.FACES_CONTEXT_FACTORY); + contextFactory =3D (FacesContextFactory) FactoryFinder + .getFactory(FactoryFinder.FACES_CONTEXT_FACTORY); } = return contextFactory; @@ -346,36 +340,37 @@ } = /** - * @return the resourceBuilder - */ + * @return the resourceBuilder + */ protected InternetResourceBuilder getResourceBuilder() { if (resourceBuilder =3D=3D null) { - // Create resource builder for this filter. - resourceBuilder =3D InternetResourceBuilder.getInstance(); + // Create resource builder for this filter. + resourceBuilder =3D InternetResourceBuilder.getInstance(); } return resourceBuilder; } = - public Object load(Object key, Object context) throws CacheException { - CacheKey cacheKey =3D (CacheKey) context; - = - CachedResourceContext resourceContext =3D (CachedResourceContext) getRes= ourceContext(cacheKey.getResource(), cacheKey.getRequest(), - cacheKey.getResponse()); - resourceContext.setResourceData(cacheKey.getResourceData()); - try { - getLifecycle().send(resourceContext, cacheKey.getResource()); - } catch (IOException e) { - throw new CacheException(e.getMessage(), e); - } - resourceContext.release(); + public Object load(Object key, Object context) throws CacheException { + CacheKey cacheKey =3D (CacheKey) context; = - // TODO - set refresh interval ? - //cache.put(cacheKey, resourceContext.getContent()); - return resourceContext.getContent(); + CachedResourceContext resourceContext =3D (CachedResourceContext) getReso= urceContext( + cacheKey.getResource(), cacheKey.getRequest(), cacheKey + .getResponse()); + resourceContext.setResourceData(cacheKey.getResourceData()); + try { + getLifecycle().send(resourceContext, cacheKey.getResource()); + } catch (IOException e) { + throw new CacheException(e.getMessage(), e); } + resourceContext.release(); = - public Properties loadProperties(String name) { - return getProperties(name); - } + // TODO - set refresh interval ? + // cache.put(cacheKey, resourceContext.getContent()); + return resourceContext.getContent(); + } = + public Properties loadProperties(String name) { + return getProperties(name); + } + } Modified: trunk/framework/src/main/java/org/ajax4jsf/io/parser/FastHtmlPars= er.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/io/parser/FastHtmlParser.jav= a 2007-07-06 14:48:03 UTC (rev 301) +++ trunk/framework/src/main/java/org/ajax4jsf/io/parser/FastHtmlParser.jav= a 2007-07-07 01:16:15 UTC (rev 302) @@ -56,6 +56,8 @@ = private String viewState; = + private String mimeType; + public void parse(Reader in, Writer out) throws IOException { boolean haveHtml =3D false; boolean haveHead =3D false; @@ -163,7 +165,7 @@ private void writeToHead(Writer out, boolean haveHtml, boolean haveHead) throws IOException { if (!haveHead && !haveHtml) { - out.write(""); + out.write(""); } if (!haveHead) { out.write(""); @@ -252,4 +254,9 @@ this.viewState =3D viewState; = } + + public boolean setMime(String mimeType) { + this.mimeType=3DmimeType; + return true; + } } Added: trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/= ConfigurableXMLFilterTestCase.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/Con= figurableXMLFilterTestCase.java (rev 0) +++ trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/Con= figurableXMLFilterTestCase.java 2007-07-07 01:16:15 UTC (rev 302) @@ -0,0 +1,97 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +import javax.servlet.FilterConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; + +import org.ajax4jsf.framework.ajax.xmlfilter.nekko.NekkoParser; +import org.ajax4jsf.io.parser.FastHtmlParser; + +import junit.framework.TestCase; + +/** + * @author asmirnov + * + */ +public class ConfigurableXMLFilterTestCase extends TestCase { + = + ServletContext servletContext; + = + FilterConfig filterConfig; + + /* (non-Javadoc) + * @see junit.framework.TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + } + + /* (non-Javadoc) + * @see junit.framework.TestCase#tearDown() + */ + protected void tearDown() throws Exception { + super.tearDown(); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Config= urableXMLFilter#reuseParser(org.ajax4jsf.framework.ajax.xmlfilter.HtmlParse= r)}. + * @throws ServletException = + */ + public void testReuseParser() throws ServletException { + ConfigurableXMLFilter filter =3D createFilter(); + HtmlParser parser =3D filter.getParser("text/html", true, "/index.jsp"); + assertNotNull(parser); + filter.reuseParser(parser); + HtmlParser reusedParser =3D filter.getParser("text/html", true, "/index.j= sp"); + assertSame(parser, reusedParser); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Config= urableXMLFilter#getParser(java.lang.String, boolean, java.lang.String)}. + * @throws ServletException = + */ + public void testGetParser() throws ServletException { + ConfigurableXMLFilter filter =3D createFilter(); + HtmlParser parser =3D filter.getParser("text/html", true, "/index.jsp"); + assertNotNull(parser); + assertTrue(parser instanceof NekkoParser); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Config= urableXMLFilter#getParser(java.lang.String, boolean, java.lang.String)}. + * @throws ServletException = + */ + public void testGetFastParser() throws ServletException { + ConfigurableXMLFilter filter =3D createFilter(); + HtmlParser parser =3D filter.getParser("text/html", true, "/index.xhtml"); + assertNotNull(parser); + assertTrue(parser instanceof FastHtmlParser); + } + /** + * @return + * @throws ServletException + */ + private ConfigurableXMLFilter createFilter() throws ServletException { + ConfigurableXMLFilter filter =3D new ConfigurableXMLFilter(); + filter.configureParsers(servletContext, "PASS,NEKO"); + filter.getParsers().setPatterns(".*\\.xhtml"); + return filter; + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Config= urableXMLFilter#configureParsers(javax.servlet.ServletContext, java.lang.St= ring)}. + * @throws ServletException = + */ + public void testConfigureParsers() throws ServletException { + ConfigurableXMLFilter filter =3D new ConfigurableXMLFilter(); + filter.configureParsers(servletContext, "PASS"); + ParserConfig parsers =3D filter.getParsers(); + HtmlParser createParser =3D parsers.createParser(null); + assertNotNull(createParser); + assertTrue(createParser instanceof FastHtmlParser); + } + +} Added: trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/= ParterConfigTestCase.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/Par= terConfigTestCase.java (rev 0) +++ trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/Par= terConfigTestCase.java 2007-07-07 01:16:15 UTC (rev 302) @@ -0,0 +1,156 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +import java.util.regex.Pattern; + +import org.ajax4jsf.io.parser.FastHtmlParser; + +import junit.framework.TestCase; + +/** + * @author asmirnov + * + */ +public class ParterConfigTestCase extends TestCase { + = + private ParserConfig testConfig; + = + private boolean parserCreated; + = + private boolean parserReused; + + private String mimetype; + + /* (non-Javadoc) + * @see junit.framework.TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + parserCreated =3D false; + parserReused =3D false; + testConfig =3D new ParserConfig(){ + + protected HtmlParser createParser(String mime) { + parserCreated =3D true; + return new FastHtmlParser(); + } + = + boolean storeParser(HtmlParser parser) { + parserReused =3D true; + return super.storeParser(parser); + } + = + }; + } + + /* (non-Javadoc) + * @see junit.framework.TestCase#tearDown() + */ + protected void tearDown() throws Exception { + testConfig =3D null; + super.tearDown(); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#getParser(java.lang.String, String)}. + */ + public void testGetParser() { + HtmlParser parser =3D testConfig.getParser("/default.jsp", mimetype); + assertNotNull(parser); + assertTrue(parserCreated); + } + = + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#getParser(java.lang.String, String)}. + */ + public void testGetParserWithPattern() { + testConfig.setPatterns(".*\\.jsp"); + HtmlParser parser =3D testConfig.getParser("/default.jsp", mimetype); + assertNotNull(parser); + assertTrue(parserCreated); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#getParser(java.lang.String, String)}. + */ + public void testGetParserWithPattern1() { + testConfig.setPatterns(".*\\.xhtml"); + HtmlParser parser =3D testConfig.getParser("/default.jsp", mimetype); + assertNull(parser); + assertFalse(parserCreated); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#getParser(java.lang.String, String)}. + */ + public void testGetParserWithPatternAndChain() { + ParserConfig firstConfig =3D new ParserConfig(){ + + protected HtmlParser createParser(String mime) { + return null; + } + = + }; + firstConfig.setPatterns("^.*\\.jspx$"); + firstConfig.setNext(testConfig); + testConfig.setPatterns(".*\\.xhtml,.*\\.jsp"); + HtmlParser parser =3D firstConfig.getParser("/default.jsp", mimetype); + assertNotNull(parser); + assertTrue(parserCreated); + } + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#reuseParser(org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser)}. + */ + public void testReuseParserChain() { + ParserConfig firstConfig =3D new ParserConfig(){ + + protected HtmlParser createParser(String mime) { + return null; + } + = + }; + firstConfig.setNext(testConfig); + HtmlParser parser =3D testConfig.getParser("/default.jsp", mimetype); + firstConfig.reuseParser(parser); + assertTrue(parserReused); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#setPatterns(java.lang.String)}. + */ + public void testSetPatterns() { + testConfig.setPatterns("a.*"); + Pattern[] patterns =3D testConfig.getPatterns(); + assertEquals(1, patterns.length); + assertTrue(patterns[0].matcher("abb").matches()); + assertFalse(patterns[0].matcher("bbb").matches()); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#setPatterns(java.lang.String)}. + */ + public void testSetPatterns2() { + testConfig.setPatterns("a.*,b.*"); + Pattern[] patterns =3D testConfig.getPatterns(); + assertEquals(2, patterns.length); + assertTrue(patterns[0].matcher("abb").matches()); + assertFalse(patterns[0].matcher("bbb").matches()); + assertTrue(patterns[1].matcher("bbb").matches()); + assertFalse(patterns[1].matcher("abb").matches()); + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.Parser= Config#setPatterns(java.lang.String)}. + */ + public void testSetPatterns3() { + testConfig.setPatterns(" a.*\t, b.* "); + Pattern[] patterns =3D testConfig.getPatterns(); + assertEquals(2, patterns.length); + assertTrue(patterns[0].matcher("abb").matches()); + assertFalse(patterns[0].matcher("bbb").matches()); + assertTrue(patterns[1].matcher("bbb").matches()); + assertFalse(patterns[1].matcher("abb").matches()); + } +} Added: trunk/samples/useCases/src/main/java/beans/performance/Data.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/samples/useCases/src/main/java/beans/performance/Data.java = (rev 0) +++ trunk/samples/useCases/src/main/java/beans/performance/Data.java 2007-0= 7-07 01:16:15 UTC (rev 302) @@ -0,0 +1,40 @@ +package beans.performance; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Data { + private Collection> buffer =3D null; + public Collection> getData() { + if (buffer=3D=3Dnull) { + List> ret =3D new ArrayList>(); + for (int row =3D 0;row<500;row++) { + Map rowData =3D new HashMap(); + for (int col=3D0; col<5; col++) { + String key =3D "col"+col; + String data =3D "column data ["+row+"]["+col+"]"; + rowData.put(key,data); + ret.add(rowData); + } + } + buffer =3D ret; + return ret; + } else { + return buffer; + } + } + private String param; + public String getParam() { + return param; + } + public void setParam(String param) { + this.param =3D param; + } + public String action() { + System.out.println("param=3D"+param); + return null; + } +} Added: trunk/samples/useCases/src/main/webapp/META-INF/MANIFEST.MF =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/samples/useCases/src/main/webapp/META-INF/MANIFEST.MF = (rev 0) +++ trunk/samples/useCases/src/main/webapp/META-INF/MANIFEST.MF 2007-07-07 = 01:16:15 UTC (rev 302) @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + Modified: trunk/samples/useCases/src/main/webapp/WEB-INF/faces-config.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/samples/useCases/src/main/webapp/WEB-INF/faces-config.xml 2007-07= -06 14:48:03 UTC (rev 301) +++ trunk/samples/useCases/src/main/webapp/WEB-INF/faces-config.xml 2007-07= -07 01:16:15 UTC (rev 302) @@ -32,6 +32,11 @@ control.test.ControlBackingBean request + + performance + beans.performance.Data + request + = Modified: trunk/samples/useCases/src/main/webapp/WEB-INF/web.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/samples/useCases/src/main/webapp/WEB-INF/web.xml 2007-07-06 14:48= :03 UTC (rev 301) +++ trunk/samples/useCases/src/main/webapp/WEB-INF/web.xml 2007-07-07 01:16= :15 UTC (rev 302) @@ -34,12 +34,24 @@ org.ajax4jsf.COMPRESS_SCRIPT false + + org.ajax4jsf.xmlparsers + PASS,NEKO,TIDY + + + org.ajax4jsf.xmlparser.PASS + /pages/performance.xhtml + + + org.ajax4jsf.xmlparser.NEKO + /pages/repeat.xhtml + = Ajax4jsf Filter ajax4jsf - org.ajax4jsf.FastFilter + org.ajax4jsf.Filter ajax4jsf Added: trunk/samples/useCases/src/main/webapp/pages/performance.xhtml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/samples/useCases/src/main/webapp/pages/performance.xhtml = (rev 0) +++ trunk/samples/useCases/src/main/webapp/pages/performance.xhtml 2007-07-= 07 01:16:15 UTC (rev 302) @@ -0,0 +1,55 @@ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = + + + = \ No newline at end of file --===============2954303046427883610==-- From ajax4jsf-svn-commits at lists.jboss.org Mon Jul 9 09:37:49 2007 Content-Type: multipart/mixed; boundary="===============3567618487161637482==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r303 - trunk/docs/userguide/en/src/main/docbook/included. Date: Mon, 09 Jul 2007 09:37:48 -0400 Message-ID: --===============3567618487161637482== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: vkorluzhenko Date: 2007-07-09 09:37:48 -0400 (Mon, 09 Jul 2007) New Revision: 303 Modified: trunk/docs/userguide/en/src/main/docbook/included/jsFunction.xml Log: http://jira.jboss.com/jira/browse/RF-421 Improved discription for jsFunction. Added ways of usage and link to exampl= e. Modified: trunk/docs/userguide/en/src/main/docbook/included/jsFunction.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/included/jsFunction.xml 2007-0= 7-07 01:16:15 UTC (rev 302) +++ trunk/docs/userguide/en/src/main/docbook/included/jsFunction.xml 2007-0= 7-09 13:37:48 UTC (rev 303) @@ -1,36 +1,36 @@ - = -
- Component identification parameters - - - - Name - Value - - - - - component-type - org.ajax4jsf.ajax.Function - - - component-family - org.ajax4jsf.components.AjaxFunction - - - component-class - org.ajax4jsf.ajax.html.HtmlAjaxFunction - - - renderer-type - org.ajax4jsf.components.AjaxFunctionRenderer - - - -
- = + + + Component identification parameters + + + + Name + Value + + + + + component-type + org.ajax4jsf.ajax.Function + + + component-family + org.ajax4jsf.components.AjaxFunction + + + component-class + org.ajax4jsf.ajax.html.HtmlAjaxFunction + + + renderer-type + org.ajax4jsf.components.AjaxFunctionRenderer + + + +
+
Creating on a page Simple component definition example: @@ -45,10 +45,9 @@ ...]]> - - The script "myScript" will be called after bean.some= Property data = - will be returned from server(e.g. It'll be object with two subprope= rties). = - + The script "myScript" will be called after + bean.someProperty data will be returned from se= rver(e.g. It'll + be object with two subproperties).
Dynamical creation of a component from Java code @@ -60,11 +59,55 @@
Key attributes and ways of usage - - As the component uses Ajax request to get data from server - it has = all = - common Ajax Action attributes. So, action and actionListener can be = - invoked, and reRendering some parts of the page fired after calling = - function. - -
- = \ No newline at end of file + As the component uses Ajax request to get data from server - it= has all common Ajax + Action attributes. So, action and actionListener can be invoked, and= reRendering some parts of + the page fired after calling function. + When using the + <a4j:jsFunction> + it's possible to initiate the AJAX request from the= JavaScript and + perform partial update of a page and/or invoke the JavaScript functi= on with data returned by + AJAX response. + + ... + + ... + + + + + ... + + ... + +...]]> + The + <a4j:jsFunction> + allows to use + <a4j:actionparam> + or pure + <f:param> + for passing any number of parameters of the JavaScript f= unction into AJAX request. + + <a4j:jsFunction> + is similar to + <a4j:commandButton> + , but it could be activated from the JavaScript code. It = allows to invoke some + server side functionality and use the returned data in the JavaScrip= t function invoked from + "oncomplete" attribute. So it's possible to use + <a4j:jsFunction> +
instead of + <a4j:commandButton> + . You can put it anywhere, just don't forget to use + <h:form> =E2=80=A6 </h:form> around it.
+
+
+ Relevant resources links + To see how + <a4j:jsFunction> + works on practice, look at a4j-jsFunction example from <= ulink + url=3D"http://labs.jboss.com/jbossajax4jsf/demo/index.html">here. +
+ --===============3567618487161637482==-- From ajax4jsf-svn-commits at lists.jboss.org Mon Jul 9 09:55:23 2007 Content-Type: multipart/mixed; boundary="===============3212278056055789616==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r304 - trunk/docs/userguide/en/src/main/docbook/modules. Date: Mon, 09 Jul 2007 09:55:22 -0400 Message-ID: --===============3212278056055789616== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: vkorluzhenko Date: 2007-07-09 09:55:22 -0400 (Mon, 09 Jul 2007) New Revision: 304 Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGlinks.xml Log: http://jira.jboss.com/jira/browse/RF-429 Modified: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGlinks.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGlinks.xml 2007-07= -09 13:37:48 UTC (rev 303) +++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGlinks.xml 2007-07= -09 13:55:22 UTC (rev 304) @@ -58,7 +58,7 @@ Ajax4jsf/RichFaces Blog - http://jroller.co= m/page/a4j + Ajax4jsf/RichFace= s Blog --===============3212278056055789616==-- From ajax4jsf-svn-commits at lists.jboss.org Mon Jul 9 14:34:58 2007 Content-Type: multipart/mixed; boundary="===============7740389288439455899==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r305 - in branches/version_1_0_7/src/framework/java/org/ajax4jsf: framework/ajax and 6 other directories. Date: Mon, 09 Jul 2007 14:34:57 -0400 Message-ID: --===============7740389288439455899== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: alexsmirnov Date: 2007-07-09 14:34:57 -0400 (Mon, 09 Jul 2007) New Revision: 305 Added: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/ConfigurableFilter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/ConfigurableXMLFilter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/ParserConfig.java Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/Filter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/Aj= axContext.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/Aj= axViewHandler.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/BaseXMLFilter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/FilterServletResponseWrapper.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/HtmlParser.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/Log4JConfigurator.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/NekkoFilter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/ServletStreamWriter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/TidyFilter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/XMLResponseWriterState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/nekko/NekkoParser.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/nekko/NekkoXMLFilter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/tidy/TidyParser.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/xm= lfilter/tidy/TidyXMLFilter.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/ByteBuffer.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/CharBuffer.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferInpu= tStream.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferOutp= utStream.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferRead= er.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferWrit= er.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/Test.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/AnyChar= State.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/BlankSt= ate.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffere= dAnyCharState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffere= dBlankState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffere= dSingleCharState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffere= dStringState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/FastHtm= lParser.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Keyword= CharState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Keyword= State.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/ParserS= tate.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parsing= Context.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parsing= StateManager.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/SingleC= harState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/StringS= tate.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/XmlIden= tifierState.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Anch= or.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/AttV= al.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Attr= Check.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Attr= CheckImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Attr= ibute.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Attr= ibuteTable.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Clea= n.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Conf= iguration.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMA= ttrImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMA= ttrMapImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMC= DATASectionImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMC= haracterDataImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMC= ommentImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMD= ocumentImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMD= ocumentTypeImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOME= lementImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMN= odeImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMN= odeListByTagNameImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMN= odeListImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMP= rocessingInstructionImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOMT= extImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Dict= .java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enco= dingNameMapper.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enco= dingUtils.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enti= ty.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enti= tyTable.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/ISta= ck.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Lexe= r.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Node= .java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out.= java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/OutF= actory.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/OutI= mpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/OutJ= avaImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/PPri= nt.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Pars= eProperty.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Pars= ePropertyImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Pars= er.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Pars= erImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Repo= rt.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Stre= amIn.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Stre= amInFactory.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Stre= amInImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Stre= amInJavaImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Styl= e.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Styl= eProp.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/TagC= heck.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/TagC= heckImpl.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/TagT= able.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tidy= .java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tidy= BeanInfo.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tidy= LexerListener.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tidy= Message.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tidy= MessageListener.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tidy= Utils.java branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Vali= dUTF8Sequence.java Log: append configurable XML filter from 1.1.2-SNAPSHOT branch Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/Filter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/Filter.java 2007= -07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/Filter.java 2007= -07-09 18:34:57 UTC (rev 305) @@ -21,6 +21,7 @@ = package org.ajax4jsf; = +import org.ajax4jsf.framework.ajax.xmlfilter.ConfigurableFilter; import org.ajax4jsf.framework.ajax.xmlfilter.TidyFilter; = /** @@ -29,6 +30,6 @@ * @version $Revision: 1.1 $ $Date: 2006/04/28 02:05:59 $ * */ -public class Filter extends TidyFilter { +public class Filter extends ConfigurableFilter { = } Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/AjaxContext.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/A= jaxContext.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/A= jaxContext.java 2007-07-09 18:34:57 UTC (rev 305) @@ -416,6 +416,9 @@ } // Mark as processed. requestMap.put(RESOURCES_PROCESSED, Boolean.TRUE); + // Save viewId for a parser selection + requestMap.put( + AjaxViewHandler.VIEW_ID_KEY,root.getViewId()); } = } Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/AjaxViewHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/A= jaxViewHandler.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/A= jaxViewHandler.java 2007-07-09 18:34:57 UTC (rev 305) @@ -57,6 +57,8 @@ = private static final String REDIRECTED =3D "org.ajax4jsf.view.REDIRECTED"; = + public static final String VIEW_ID_KEY =3D "org.ajax4jsf.VIEW_ID"; + /** * @param parent */ Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/BaseXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/BaseXMLFilter.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/BaseXMLFilter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -34,6 +34,7 @@ import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.ServletRequest; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; = @@ -45,304 +46,384 @@ import org.apache.commons.logging.LogFactory; = public abstract class BaseXMLFilter { - private static final Log log =3D LogFactory.getLog(BaseXMLFilter.class); - public static final String RESPONSE_WRAPPER_ATTRIBUTE =3D "com.exade.vcp.= Filter.ResponseWrapper"; + private static final Log log =3D LogFactory.getLog(BaseXMLFilter.class= ); = - private String mimetype =3D "text/xml"; - private String publicid =3D "-//W3C//DTD XHTML 1.0 Transitional//EN"; - private String systemid =3D "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans= itional.dtd"; - private String namespace =3D "http://www.w3.org/1999/xhtml"; + public static final String RESPONSE_WRAPPER_ATTRIBUTE =3D "com.exade.v= cp.Filter.ResponseWrapper"; = - private static final String MIME_TYPE_PARAMETER =3D "mime-type"; - private static final String PUBLICID_PARAMETER =3D "publicid"; - private static final String SYSTEMID_PARAMETER =3D "systemid"; - private static final String NAMESPACE_PARAMETER =3D "namespace"; - = - private boolean forcexml =3D true; - private static final String FORCEXML_PARAMETER =3D "forceparser"; - public BaseFilter filter; - = - public void setFilter(BaseFilter filter) { - this.filter =3D filter; - } + private String mimetype =3D "text/xml"; = - public void init(FilterConfig config) throws ServletException { - if("false".equalsIgnoreCase(config.getInitParameter(FORCEXML_PARAM= ETER))){ - this.forcexml =3D false; - } - if("true".equalsIgnoreCase(config.getInitParameter(FORCEXML_PARAME= TER))){ - this.forcexml =3D true; - } - setMimetype((String) nz(config.getInitParameter(MIME_TYPE_PARAMETE= R),"text/xml")); - setPublicid((String) nz(config.getInitParameter(PUBLICID_PARAMETER= ),getPublicid())); - setSystemid((String) nz(config.getInitParameter(SYSTEMID_PARAMETER= ),getSystemid())); - setNamespace((String) nz(config.getInitParameter(NAMESPACE_PARAMET= ER),getNamespace())); - } + private String publicid =3D "-//W3C//DTD XHTML 1.0 Transitional//EN"; = - /** - * Perform filter chain with xml parsing and transformation. Subclasses m= ust implement - * concrete HTML to XML parsing, nesseasary transformations and serializa= tion. - * @param chain - * @param httpServletRequest - * @param httpServletResponse - * @throws ServletException = - * @throws IOException = - */ - protected void doXmlFilter(FilterChain chain, HttpServletRequest request,= final HttpServletResponse response) throws IOException, ServletException { - FilterServletResponseWrapper servletResponseWrapper =3D getWrapper(resp= onse); - // HACK - to avoid MyFaces incompabilites and bypass intermedi= aty filters - // in chain, self-rendered region write directly to wrapper stored in r= equest-scope attribute. - request.setAttribute(RESPONSE_WRAPPER_ATTRIBUTE,servletResponseWrapper); - chain.doFilter(request, servletResponseWrapper); - // TidyParser parser =3D getParser(servletResponseWrapper.getCharacterEn= coding()); - HtmlParser parser =3D null; = - // setup response - // Redirect in AJAX request - convert to special response recognized by= client. - String redirectLocation =3D servletResponseWrapper.getRedirectLocation(= ); - String characterEncoding =3D servletResponseWrapper.getCharacterEncodin= g(); - Writer output; - if(null !=3D redirectLocation){ - if (isAjaxRequest(request)) { - // Special handling of redirect - client-side script must - // Check for response and perform redirect by window.location - if(log.isDebugEnabled()){ - log.debug("Create AJAX redirect response to url: "+redirectLocation); - } - response.reset(); - // Copy response headers - Map headers =3D servletResponseWrapper.getHeaders(); - for (Iterator iter =3D headers.entrySet().iterator(); iter.hasNext();= ) { - Map.Entry header =3D (Map.Entry) iter.next(); - response.setHeader((String)header.getKey(), (String)header.getValue(= )); - } - response.setHeader(AjaxContainerRenderer.AJAX_FLAG_HEADER,"redirect"); - // Not caching AJAX request - response.setHeader("Cache-Control", - "no-cache, must-revalidate, max_age=3D0, no-store"); - response.setHeader("Expires", "0"); - response.setHeader("Pragma", "no-cache"); - response.setContentType(getMimetype() + ";charset=3DUTF-8"); - response.setHeader(AjaxContainerRenderer.AJAX_LOCATION_HEADER,redirec= tLocation); - output =3D createResponseWriter(response, "UTF-8"); - // For buggy XmlHttpRequest realisations repeat headers in - output.write("\n" + = - ""+ - ""+ - ""+ - "" - ); - output.flush(); - response.flushBuffer(); - } else { - response.sendRedirect(redirectLocation); - } - return; - } else if ("true".equals(servletResponseWrapper.getHeaders().get(AjaxCo= ntainerRenderer.AJAX_FLAG_HEADER))) { - if(log.isDebugEnabled()){ - log.debug("Process response to well-formed XML for AJAX XMLHttpReques= t parser"); - } - // Not caching AJAX request - response.setHeader("Cache-Control", - "no-cache, must-revalidate, max_age=3D0, no-store"); - response.setHeader("Expires", "0"); - response.setHeader("Pragma", "no-cache"); - //response.setCharacterEncoding(servletResponseWrapper - //.getCharacterEncoding()); // JSContentHandler.DEFAULT_ENCODING); - // Set the content-type. For AJAX responses default encoding - UTF8. - // TODO - for null encoding, setup only Output encoding for filter ? - String outputEncoding =3D "UTF-8"; - String contentType =3D getMimetype() + ";charset=3D" + outputEncoding; - response.setContentType(contentType); - parser =3D getParser(getMimetype(),true); - if(null =3D=3D parser){ - throw new ServletException(Messages.getMessage(Messages.PARSER_NOT_IN= STANTIATED_ERROR, contentType)); - } - output =3D createResponseWriter(response, outputEncoding); - parser.setDoctype(getPublicid()); - parser.setInputEncoding(characterEncoding); - parser.setOutputEncoding(outputEncoding); - parser.setViewState((String) request.getAttribute(AjaxViewHandler.SERI= ALIZED_STATE_KEY)); - } else { - // setup conversion reules for output contentType, send directly if co= ntent not - // supported by tidy. - String contentType =3D servletResponseWrapper.getContentType(); - if(log.isDebugEnabled()){ - log.debug("create HTML/XML parser for content type: "+contentType); - } -// if(contentType =3D=3D null){ -// contentType =3D request.getContentType(); -// } - if(contentType !=3D null){ - if (contentType.indexOf("charset")<0 && null !=3D characterEncoding) { - contentType +=3D ";charset=3D" + characterEncoding; - } - parser =3D getParser(contentType,false); = - response.setContentType(contentType); - } - // null or unsupported content type - if(null =3D=3D parser) { - if(log.isDebugEnabled()){ - log.debug("Parser not have support for the such content type, send r= esponse as-is"); - } - try { - if (servletResponseWrapper.isUseWriter()) { - output =3D createResponseWriter(response, characterEncoding); - servletResponseWrapper.sendContent(output); - } else if (servletResponseWrapper.isUseStream()) { - ServletOutputStream out =3D response.getOutputStream(); - servletResponseWrapper.sendContent(out); - } - } finally { - // reuseWrapper(servletResponseWrapper); - } - return; - } - output =3D createResponseWriter(response, characterEncoding); + private String systemid =3D "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tr= ansitional.dtd"; = - parser.setInputEncoding(characterEncoding); - parser.setOutputEncoding(characterEncoding); - } - = - try { - // Setup scripts and styles - parser.setScripts((Set) request.getAttribute(AjaxContext.SCRIPTS_PARAM= ETER)); - parser.setStyles((Set) request.getAttribute(AjaxContext.STYLES_PARAMET= ER)); - // Process parsing. - long startTimeMills =3DSystem.currentTimeMillis(); - servletResponseWrapper.parseContent(output,parser); - if (log.isDebugEnabled()) { - startTimeMills =3D System.currentTimeMillis()-startTimeMills; - log.debug(Messages.getMessage(Messages.PARSING_TIME_INFO, "" + startT= imeMills)); - } - } catch (Exception e) { - throw new ServletException(Messages.getMessage(Messages.JTIDY_PARSING_= ERROR), e); - } finally { - reuseParser(parser); - } - } + private String namespace =3D "http://www.w3.org/1999/xhtml"; = - /** - * @param response - * @return - * @throws ServletException - */ - protected FilterServletResponseWrapper getWrapper(HttpServletResponse re= sponse) throws ServletException{ - return new FilterServletResponseWrapper(response); - } - = - /** - * @param request - * @return - */ - protected boolean isAjaxRequest(ServletRequest request) { - try { - return null !=3D request - .getParameter(AjaxContainerRenderer.AJAX_PARAMETER_NAME); - } catch (Exception e) { - // OCJ 10 - throw exception for static resources. - return false; - } - } + private static final String MIME_TYPE_PARAMETER =3D "mime-type"; = - /** - * @param response - * @param characterEncoding - * @return - * @throws IOException - * @throws UnsupportedEncodingException - */ - private Writer createResponseWriter(final HttpServletResponse response, S= tring characterEncoding) throws IOException, UnsupportedEncodingException { - Writer output; - try { - output =3D response.getWriter(); - } catch (IllegalStateException e) { - if (null !=3D characterEncoding) { - output =3D new OutputStreamWriter(response.getOutputStream(), - characterEncoding); - } else { - output =3D new OutputStreamWriter(response.getOutputStream()); = - } - } - return output; - } + private static final String PUBLICID_PARAMETER =3D "publicid"; = - protected abstract void reuseParser(HtmlParser parser); + private static final String SYSTEMID_PARAMETER =3D "systemid"; = - protected abstract HtmlParser getParser(String mimetype, boolean isAjax); + private static final String NAMESPACE_PARAMETER =3D "namespace"; = - /** - * @param publicid The publicid to set. - */ - protected void setPublicid(String publicid) { - this.publicid =3D publicid; - } + private boolean forcexml =3D false; + = = - /** - * @return Returns the publicid. - */ - public String getPublicid() { - return publicid; - } + private static final String FORCEXML_PARAMETER =3D "forceparser"; = - /** - * @param systemid The systemid to set. - */ - protected void setSystemid(String systemid) { - this.systemid =3D systemid; - } + private static final String INIT_PARAMETER_PREFIX =3D "org.ajax4jsf.xm= lfilter."; = - /** - * @return Returns the systemid. - */ - public String getSystemid() { - return systemid; + public BaseFilter filter; + + public void setFilter(BaseFilter filter) { + this.filter =3D filter; + } + + public void init(FilterConfig config) throws ServletException { + if (log.isDebugEnabled()) { + log.debug("init XML filter service with class " + + this.getClass().getName()); } + String forceXmlParameter =3D config + .getInitParameter(FORCEXML_PARAMETER); + setupForceXml(forceXmlParameter); + forceXmlParameter =3D config.getServletContext().getInitParameter(INIT_PA= RAMETER_PREFIX+FORCEXML_PARAMETER); + setMimetype((String) nz(config.getInitParameter(MIME_TYPE_PARAMETER), + "text/xml")); + setPublicid((String) nz(config.getInitParameter(PUBLICID_PARAMETER), + getPublicid())); + setSystemid((String) nz(config.getInitParameter(SYSTEMID_PARAMETER), + getSystemid())); + setNamespace((String) nz(config.getInitParameter(NAMESPACE_PARAMETER), + getNamespace())); + } = - /** - * @param namespace The namespace to set. - */ - protected void setNamespace(String namespace) { - this.namespace =3D namespace; + /** + * @param forceXmlParameter + */ + private void setupForceXml(String forceXmlParameter) { + if ("false".equalsIgnoreCase(forceXmlParameter)) { + this.forcexml =3D false; } + if ("true" + .equalsIgnoreCase(forceXmlParameter)) { + this.forcexml =3D true; + } + } = - /** - * @return Returns the namespace. - */ - public String getNamespace() { - return namespace; + /** + * Perform filter chain with xml parsing and transformation. Subcl= asses + * must implement concrete HTML to XML parsing, nesseasary + * transformations and serialization. + * = + * @param chain + * @param httpServletRequest + * @param httpServletResponse + * @throws ServletException + * @throws IOException + */ + protected void doXmlFilter(FilterChain chain, HttpServletRequest reque= st, + final HttpServletResponse response) throws IOException, + ServletException { + if (log.isDebugEnabled()) { + log.debug("XML filter service start processing request"); } + FilterServletResponseWrapper servletResponseWrapper =3D getWrapper(respon= se); + // HACK - to avoid MyFaces incompabilites and bypass + // intermediaty filters + // in chain, self-rendered region write directly to wrapper stored in + // request-scope attribute. + request + .setAttribute(RESPONSE_WRAPPER_ATTRIBUTE, + servletResponseWrapper); + chain.doFilter(request, servletResponseWrapper); + String viewId =3D (String) request.getAttribute(AjaxViewHandler.VIEW_ID_K= EY); + HtmlParser parser =3D null; + // setup response + // Redirect in AJAX request - convert to special response recognized by + // client. + String redirectLocation =3D servletResponseWrapper.getRedirectLocation(); + String characterEncoding =3D servletResponseWrapper + .getCharacterEncoding(); + Writer output; + if (null !=3D redirectLocation) { + if (isAjaxRequest(request)) { + // Special handling of redirect - client-side script must + // Check for response and perform redirect by window.location + if (log.isDebugEnabled()) { + log.debug("Create AJAX redirect response to url: " + + redirectLocation); + } + response.reset(); + // Keep cookies. + for (Iterator iter =3D servletResponseWrapper.getCookies().iterator(); i= ter.hasNext();) { + Cookie cookie =3D (Cookie) iter.next(); + response.addCookie(cookie); + } + // Copy response headers + Map headers =3D servletResponseWrapper.getHeaders(); + for (Iterator iter =3D headers.entrySet().iterator(); iter + .hasNext();) { + Map.Entry header =3D (Map.Entry) iter.next(); + response.setHeader((String) header.getKey(), + (String) header.getValue()); + } + response.setHeader(AjaxContainerRenderer.AJAX_FLAG_HEADER, + "redirect"); + // Not caching AJAX request + response.setHeader("Cache-Control", + "no-cache, must-revalidate, max_age=3D0, no-store"); + response.setHeader("Expires", "0"); + response.setHeader("Pragma", "no-cache"); + response.setContentType(getMimetype() + ";charset=3DUTF-8"); + response.setHeader(AjaxContainerRenderer.AJAX_LOCATION_HEADER, + redirectLocation); + output =3D createResponseWriter(response, "UTF-8"); + // For buggy XmlHttpRequest realisations repeat headers in + // + output.write("\n" + + "" + + "" + "" + + ""); + output.flush(); + response.flushBuffer(); + } else { + response.sendRedirect(redirectLocation); + } + return; + } else if ("true".equals(servletResponseWrapper.getHeaders().get( + AjaxContainerRenderer.AJAX_FLAG_HEADER))) { + if (log.isDebugEnabled()) { + log + .debug("Process response to well-formed XML for AJAX XMLHttpRequest par= ser"); + } + // Not caching AJAX request + response.setHeader("Cache-Control", + "no-cache, must-revalidate, max_age=3D0, no-store"); + response.setHeader("Expires", "0"); + response.setHeader("Pragma", "no-cache"); + // response.setCharacterEncoding(servletResponseWrapper + // .getCharacterEncoding()); // + // JSContentHandler.DEFAULT_ENCODING); + // Set the content-type. For AJAX responses default encoding - + // UTF8. + // TODO - for null encoding, setup only Output encoding for + // filter ? + String outputEncoding =3D "UTF-8"; + String contentType =3D getMimetype() + ";charset=3D" + outputEncoding; + response.setContentType(contentType); + parser =3D getParser(getMimetype(), true, viewId); + if (null =3D=3D parser) { + throw new ServletException(Messages.getMessage( + Messages.PARSER_NOT_INSTANTIATED_ERROR, contentType)); + } + output =3D createResponseWriter(response, outputEncoding); + parser.setDoctype(getPublicid()); + parser.setInputEncoding(characterEncoding); + parser.setOutputEncoding(outputEncoding); + parser.setViewState((String) request + .getAttribute(AjaxViewHandler.SERIALIZED_STATE_KEY)); + } else { + // setup conversion reules for output contentType, send directly + // if content not + // supported by tidy. + String contentType =3D servletResponseWrapper.getContentType(); + if (log.isDebugEnabled()) { + log.debug("create HTML/XML parser for content type: " + + contentType); + } + // if(contentType =3D=3D null){ + // contentType =3D request.getContentType(); + // } + if (contentType !=3D null) { + if (contentType.indexOf("charset") < 0 + && null !=3D characterEncoding) { + contentType +=3D ";charset=3D" + characterEncoding; + } + parser =3D getParser(contentType, false, viewId); + response.setContentType(contentType); + } + // null or unsupported content type + if (null =3D=3D parser) { + if (log.isDebugEnabled()) { + log + .debug("Parser not have support for the such content type, send res= ponse as-is"); + } + try { + if (servletResponseWrapper.isUseWriter()) { + output =3D createResponseWriter(response, + characterEncoding); + servletResponseWrapper.sendContent(output); + } else if (servletResponseWrapper.isUseStream()) { + ServletOutputStream out =3D response.getOutputStream(); + servletResponseWrapper.sendContent(out); + } + } finally { + // reuseWrapper(servletResponseWrapper); + } + return; + } + output =3D createResponseWriter(response, characterEncoding); = - /** - * @param mimetype The mimetype to set. - */ - protected void setMimetype(String mimetype) { - this.mimetype =3D mimetype; + parser.setInputEncoding(characterEncoding); + parser.setOutputEncoding(characterEncoding); } = - /** - * @return Returns the mimetype. - */ - protected String getMimetype() { - return mimetype; + try { + // Setup scripts and styles + parser.setScripts((Set) request + .getAttribute(AjaxContext.SCRIPTS_PARAMETER)); + parser.setStyles((Set) request + .getAttribute(AjaxContext.STYLES_PARAMETER)); + // Process parsing. + long startTimeMills =3D System.currentTimeMillis(); + servletResponseWrapper.parseContent(output, parser); + if (log.isDebugEnabled()) { + startTimeMills =3D System.currentTimeMillis() - startTimeMills; + log.debug(Messages.getMessage(Messages.PARSING_TIME_INFO, "" + + startTimeMills)); + } + } catch (Exception e) { + throw new ServletException(Messages + .getMessage(Messages.JTIDY_PARSING_ERROR), e); + } finally { + reuseParser(parser); } + } = - /** - * @return Returns the forcexml. - */ - public boolean isForcexml() { - return this.forcexml; + /** + * @param response + * @return + * @throws ServletException + */ + protected FilterServletResponseWrapper getWrapper( + HttpServletResponse response) throws ServletException { + return new FilterServletResponseWrapper(response); + } + + /** + * @param request + * @return + */ + protected boolean isAjaxRequest(ServletRequest request) { + try { + return null !=3D request + .getParameter(AjaxContainerRenderer.AJAX_PARAMETER_NAME); + } catch (Exception e) { + // OCJ 10 - throw exception for static resources. + return false; } + } = - /** - * @param forcexml The forcexml to set. - */ - protected void setForcexml(boolean forcexml) { - this.forcexml =3D forcexml; + /** + * @param response + * @param characterEncoding + * @return + * @throws IOException + * @throws UnsupportedEncodingException + */ + private Writer createResponseWriter(final HttpServletResponse response, + String characterEncoding) throws IOException, + UnsupportedEncodingException { + Writer output; + try { + output =3D response.getWriter(); + } catch (IllegalStateException e) { + if (null !=3D characterEncoding) { + output =3D new OutputStreamWriter(response.getOutputStream(), + characterEncoding); + } else { + output =3D new OutputStreamWriter(response.getOutputStream()); + } } + return output; + } = + protected abstract void reuseParser(HtmlParser parser); = - private Object nz(Object param, Object def) { - return param !=3D null?param:def; - } + protected abstract HtmlParser getParser(String mimetype, boolean isAja= x, String viewId); = + /** + * @param publicid + * The publicid to set. + */ + protected void setPublicid(String publicid) { + this.publicid =3D publicid; + } + + /** + * @return Returns the publicid. + */ + public String getPublicid() { + return publicid; + } + + /** + * @param systemid + * The systemid to set. + */ + protected void setSystemid(String systemid) { + this.systemid =3D systemid; + } + + /** + * @return Returns the systemid. + */ + public String getSystemid() { + return systemid; + } + + /** + * @param namespace + * The namespace to set. + */ + protected void setNamespace(String namespace) { + this.namespace =3D namespace; + } + + /** + * @return Returns the namespace. + */ + public String getNamespace() { + return namespace; + } + + /** + * @param mimetype + * The mimetype to set. + */ + protected void setMimetype(String mimetype) { + this.mimetype =3D mimetype; + } + + /** + * @return Returns the mimetype. + */ + protected String getMimetype() { + return mimetype; + } + + /** + * @return Returns the forcexml. + */ + public boolean isForcexml() { + return this.forcexml; + } + + /** + * @param forcexml + * The forcexml to set. + */ + protected void setForcexml(boolean forcexml) { + this.forcexml =3D forcexml; + } + + private Object nz(Object param, Object def) { + return param !=3D null ? param : def; + } + } Added: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/aja= x/xmlfilter/ConfigurableFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ConfigurableFilter.java (rev 0) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ConfigurableFilter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -0,0 +1,20 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +/** + * @author asmirnov + * + */ +public class ConfigurableFilter extends BaseFilter { + + /** + * = + */ + public ConfigurableFilter() { + xmlFilter =3D new ConfigurableXMLFilter(); + xmlFilter.setFilter(this); + } + +} Added: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/aja= x/xmlfilter/ConfigurableXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ConfigurableXMLFilter.java (rev 0) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ConfigurableXMLFilter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -0,0 +1,238 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +import java.io.IOException; +import java.io.InputStream; +import java.util.EmptyStackException; +import java.util.Properties; +import java.util.regex.PatternSyntaxException; + +import javax.servlet.FilterConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; + +import org.ajax4jsf.framework.ajax.xmlfilter.nekko.NekkoParser; +import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser; +import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyXMLFilter; +import org.ajax4jsf.framework.util.message.Messages; +import org.ajax4jsf.io.parser.FastHtmlParser; +import org.apache.commons.collections.ArrayStack; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * @author asmirnov + * = + */ +public class ConfigurableXMLFilter extends BaseXMLFilter { + + private static final Log log =3D LogFactory + .getLog(ConfigurableXMLFilter.class); + + private static final String PARSERS_LIST_PARAMETER =3D "org.ajax4jsf.x= mlparsers"; + + private static final String VIEW_ID_PATTERN_PARAMETER =3D "org.ajax4js= f.xmlparser."; + + /** + * map of the parsers names and viewId patterns for all parser type. + */ + private ParserConfig parsers =3D new TidyParserConfig(); + + // private ParserConfig passParserConfig =3D new PassParserConfig(); + + public void init(FilterConfig config) throws ServletException { + super.init(config); + ServletContext servletContext =3D config.getServletContext(); + String parsersParameter =3D servletContext + .getInitParameter(PARSERS_LIST_PARAMETER); + if (null !=3D parsersParameter) { + configureParsers(servletContext, parsersParameter); + } + } + + /** + * @param servletContext + * @param parsersParameter + * @throws ServletException + */ + public void configureParsers(ServletContext servletContext, + String parsersParameter) throws ServletException { + String[] parsersNames =3D parsersParameter.split("\\s*,\\s*"); + for (int i =3D parsersNames.length - 1; i >=3D 0; i--) { + String parserName =3D parsersNames[i]; + ParserConfig parserConfig; + if ("TIDY".equals(parserName)) { + parserConfig =3D new TidyParserConfig(); + } else if ("NEKO".equals(parserName)) { + parserConfig =3D new NekoParserConfig(); + } else if ("PASS".equals(parserName)) { + parserConfig =3D new PassParserConfig(); + } else { + throw new ServletException( + "Unknown XML parser type in config parameter " + + parserName); + } + parserConfig.setNext(parsers); + if (null !=3D servletContext) { + try { + String parserViewPattern =3D servletContext + .getInitParameter(VIEW_ID_PATTERN_PARAMETER + + parserName); + parserConfig.setPatterns(parserViewPattern); + + } catch (PatternSyntaxException e) { + throw new ServletException("Invalid pattern for a parser " + + parserName + " :" + e.getMessage()); + } + } + parsers =3D parserConfig; + } + } + + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter#getParser(= java.lang.String, + * boolean, java.lang.String) + */ + protected HtmlParser getParser(String mimetype, boolean isAjax, + String viewId) { + HtmlParser parser =3D null; + if (isAjax || isForcexml()) { + parser =3D parsers.getParser(viewId, mimetype); + } else if (mimetype.startsWith("text/html") + || mimetype.startsWith("application/xhtml+xml")) { + parser =3D new FastHtmlParser(); + } + return parser; + } + + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter#reuseParse= r(org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser) + */ + protected void reuseParser(HtmlParser parser) { + parsers.reuseParser(parser); + + } + + private static final int STACK_SIZE =3D 100; + + private ArrayStack _xhtmlParsersPool =3D new ArrayStack(STACK_SIZE); + + private class NekoParserConfig extends ParserConfig { + + protected HtmlParser createParser(String mime) { + NekkoParser parser; + try { + synchronized (_xhtmlParsersPool) { + parser =3D (NekkoParser) _xhtmlParsersPool.pop(); + } + } catch (EmptyStackException e) { + parser =3D new NekkoParser(); + parser.setPublicId(getPublicid()); + parser.setSystemid(getSystemid()); + parser.setNamespace(getNamespace()); + // If tidy not handle all requests, disable reorganising + // of html + // parser.setMoveElements(isForcexml()); + } + // TODO - set header scripts/styles filter. + return parser; + } + + boolean storeParser(HtmlParser parser) { + if (null !=3D parser && parser instanceof NekkoParser) { + synchronized (_xhtmlParsersPool) { + if (_xhtmlParsersPool.size() < STACK_SIZE) { + ((NekkoParser) parser).reset(); + _xhtmlParsersPool.push(parser); + } + + } + return true; + } + return false; + } + } + + private class TidyParserConfig extends ParserConfig { + + protected HtmlParser createParser(String mime) { + // TODO Auto-generated method stub + TidyParser tidyParser =3D new TidyParser(getTidyProperties()); + tidyParser.setMoveElements(isForcexml()); + tidyParser.setMime(mime); + return tidyParser; + } + + } + + private class PassParserConfig extends ParserConfig { + + protected HtmlParser createParser(String mime) { + return new FastHtmlParser(); + } + + } + + private Properties _tidyProperties; + + private Properties getTidyProperties() { + if (null =3D=3D _tidyProperties) { + _tidyProperties =3D new Properties(); + InputStream defaultprops =3D null; + InputStream props =3D null; + try { + defaultprops =3D TidyParser.class + .getResourceAsStream("tidy.properties"); + if (null !=3D defaultprops) { + _tidyProperties.load(defaultprops); + if (log.isDebugEnabled()) { + log.debug("default tidy parser properties loaded"); + } + } else if (log.isDebugEnabled()) { + log.debug("No default tidy parser properties found"); + } + + // Second part - user-defined properties. + props =3D Thread.currentThread().getContextClassLoader() + .getResourceAsStream("tidy.properties"); + if (null !=3D props) { + _tidyProperties.load(props); + if (log.isDebugEnabled()) { + log.debug("application-specific tidy parser properties loaded"); + } + } + } catch (IOException e) { + // TODO Auto-generated catch block + log.warn(Messages + .getMessage(Messages.READING_TIDY_PROPERTIES_ERROR), e); + } finally { + if (null !=3D props) { + try { + props.close(); + } catch (IOException e) { + // can be ignored + } + } + if (null !=3D defaultprops) { + try { + defaultprops.close(); + } catch (IOException e) { + // can be ignored + } + } + } + } + return _tidyProperties; + } + + public ParserConfig getParsers() { + return parsers; + } + +} Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/FilterServletResponseWrapper.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/FilterServletResponseWrapper.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/FilterServletResponseWrapper.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -61,11 +61,15 @@ import java.io.Reader; import java.io.UnsupportedEncodingException; import java.io.Writer; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; = import javax.servlet.ServletOutputStream; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; = @@ -81,7 +85,7 @@ /** * Base wrapper save JSF page response, for parse to XML with different pa= rsers * @author shura (latest modification by $Author: alexsmirnov $) - * @version $Revision: 1.21 $ $Date: 2006/08/28 19:21:43 $ + * @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:58:17 $ * */ public class FilterServletResponseWrapper extends HttpServletResponseWrapp= er { @@ -112,6 +116,8 @@ private String redirectLocation =3D null; = private boolean useNullStream =3D false; + = + private List cookies =3D new ArrayList(); = public FilterServletResponseWrapper(HttpServletResponse response) { super(response); @@ -635,4 +641,13 @@ = = = + public void addCookie(Cookie cookie) { + cookies.add(cookie); + super.addCookie(cookie); + } + = + public Collection getCookies() { + return cookies; + } + = } Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/HtmlParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/HtmlParser.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/HtmlParser.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -66,4 +66,6 @@ */ public abstract void setViewState(String viewState); = + public abstract boolean setMime(String mimeType); + } \ No newline at end of file Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/Log4JConfigurator.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/Log4JConfigurator.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/Log4JConfigurator.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -30,8 +30,8 @@ import org.apache.log4j.xml.DOMConfigurator; = /** - * @author shura (latest modification by $Author: slava_kabanovich $) - * @version $Revision: 1.2 $ $Date: 2006/07/11 15:54:51 $ + * @author shura (latest modification by $Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:58:18 $ * */ class Log4JConfigurator { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/NekkoFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/NekkoFilter.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/NekkoFilter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Added: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/aja= x/xmlfilter/ParserConfig.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ParserConfig.java (rev 0) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ParserConfig.java 2007-07-09 18:34:57 UTC (rev 305) @@ -0,0 +1,67 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +abstract class ParserConfig { + + private static final Pattern[] ALL_VIEWS_PATTERN =3D { Pattern.compile= (".*") }; + = + private static final Pattern SEPARATOR_PATTERN =3D Pattern.compile("\\= s*,\\s*"); = + + private Pattern[] patterns =3D ALL_VIEWS_PATTERN; + + private ParserConfig next; + + protected abstract HtmlParser createParser(String mimetype); + + boolean storeParser(HtmlParser parser) { + return false; + } + + HtmlParser getParser(String viewId, String mimetype) { + HtmlParser result =3D null; + for (int i =3D 0; i < patterns.length && null =3D=3D result; i++) { + Matcher matcher =3D patterns[i].matcher(viewId); + if (matcher.matches()) { + result =3D createParser(mimetype); + } + } + if (null =3D=3D result && null !=3D next) { + result =3D next.getParser(viewId, mimetype); + } + return result; + } + + public void reuseParser(HtmlParser parser) { + if (!storeParser(parser) && null !=3D next) { + next.reuseParser(parser); + } + } + + public ParserConfig getNext() { + return next; + } + + public void setNext(ParserConfig next) { + this.next =3D next; + } + + public void setPatterns(String patternsString) { + if (null !=3D patternsString) { + String[] split =3D SEPARATOR_PATTERN.split(patternsString); + patterns =3D new Pattern[split.length]; + for (int i =3D 0; i < split.length; i++) { + patterns[i]=3DPattern.compile(split[i].trim()); + } + } = + } + + public Pattern[] getPatterns() { + return patterns; + } + +} \ No newline at end of file Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/ServletStreamWriter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ServletStreamWriter.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/ServletStreamWriter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/TidyFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/TidyFilter.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/TidyFilter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -29,7 +29,7 @@ /** * Convert Html Output to XML using Jtidy. * @author shura (latest modification by $Author: alexsmirnov $) - * @version $Revision: 1.10 $ $Date: 2006/07/05 08:53:36 $ + * @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:58:20 $ */ public class TidyFilter extends BaseFilter { static final Log log =3D LogFactory.getLog(TidyFilter.class); Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/XMLResponseWriterState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/XMLResponseWriterState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/XMLResponseWriterState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -38,7 +38,7 @@ /** * @throws java.io.IOException */ - private static String ILLEGAL_METOD_STATE =3D Messages.getMessage(Message= s.ILLEGAL_METHOD_STATE); + private static final String ILLEGAL_METOD_STATE =3D Messages.getMessage(M= essages.ILLEGAL_METHOD_STATE); = void endDocument() throws IOException { throw new IOException(ILLEGAL_METOD_STATE); Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/nekko/NekkoParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/nekko/NekkoParser.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/nekko/NekkoParser.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -108,6 +108,7 @@ */ public NekkoParser() { _parser=3Dnew HtmlSAXParser(getHtmlConfig()); +// Properties properties =3D OutputPropertiesFactory.getDefaultMethodProp= erties(Method.XHTML); Properties properties =3D OutputPropertiesFactory.getDefaultMethodProper= ties(Method.XML); // properties.put("encoding",_encoding); _serializer =3D SerializerFactory.getSerializer(properties); @@ -459,7 +460,7 @@ = } = - private class HtmlWriter extends Writer { + private static class HtmlWriter extends Writer { = /** * = @@ -641,4 +642,8 @@ _systemid =3D systemid; } = + public boolean setMime(String mimeType) { + return false; + } + } Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/nekko/NekkoXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/nekko/NekkoXMLFilter.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/nekko/NekkoXMLFilter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -36,7 +36,7 @@ = public NekkoXMLFilter() {} = - protected HtmlParser getParser(String mimetype, boolean isAjax) { + protected HtmlParser getParser(String mimetype, boolean isAjax, String vi= ewId) { HtmlParser parser =3D null; if( isAjax ){ parser =3D getXmlParser(); Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/tidy/TidyParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/tidy/TidyParser.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/tidy/TidyParser.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -46,7 +46,7 @@ = /** * @author asmirnov(a)exadel.com (latest modification by $Author: alexsmir= nov $) - * @version $Revision: 1.7 $ $Date: 2006/11/24 17:10:23 $ + * @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:59:17 $ * = */ public class TidyParser implements TidyMessageListener, HtmlParser { @@ -243,7 +243,7 @@ * 'null' writer for discard errors - since processed in message listener * = * @author shura (latest modification by $Author: alexsmirnov $) - * @version $Revision: 1.7 $ $Date: 2006/11/24 17:10:23 $ + * @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:59:17 $ * = */ private static class ErrorWriter extends Writer { @@ -322,7 +322,9 @@ // setup html output tidy.setXHTML(false); tidy.setXmlOut(false); - // TODO - auto doctype ? + if (log.isDebugEnabled()) { + log.debug("Print output as ordinary HTML"); + } return true; } } @@ -332,6 +334,9 @@ // setup xhtml output tidy.setXHTML(true); tidy.setXmlOut(false); + if (log.isDebugEnabled()) { + log.debug("Print output as XHTML"); + } return true; } } @@ -344,6 +349,9 @@ tidy.setXmlPi(true); tidy.setEscapeCdata(false); tidy.setNumEntities(true); + if (log.isDebugEnabled()) { + log.debug("Print output as XML"); + } return true; } } @@ -384,7 +392,7 @@ * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setDoctype(java.= lang.String) */ public void setDoctype(String doctype) { - tidy.setDocType(doctype); + tidy.setDocType("omit");//doctype); } = /* Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/= ajax/xmlfilter/tidy/TidyXMLFilter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/tidy/TidyXMLFilter.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/framework/ajax/x= mlfilter/tidy/TidyXMLFilter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -25,13 +25,8 @@ import java.io.InputStream; import java.util.Properties; = -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; - import org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter; -import org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper; import org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser; -import org.ajax4jsf.framework.ajax.xmlfilter.TidyServletResponseWrapper; import org.ajax4jsf.framework.util.message.Messages; import org.ajax4jsf.io.parser.FastHtmlParser; import org.apache.commons.collections.ArrayStack; @@ -71,7 +66,7 @@ * @param string Encodings for parser * @return */ - protected HtmlParser getParser(String mime, boolean isAjax) { + protected HtmlParser getParser(String mime, boolean isAjax, String viewId= ) { // For non-ajax, parse only html types ! if (isAjax || mime.startsWith("text/html") || mime.startsWith("applicat= ion/xhtml+xml")) { if(isAjax || isForcexml()){ @@ -123,15 +118,6 @@ } return _tidyProperties; = - } - - - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter#getWrapper(javax= .servlet.http.HttpServletResponse) - */ - protected FilterServletResponseWrapper getWrapper(HttpServletResponse res= ponse) throws ServletException { - // TODO Auto-generated method stub - return new TidyServletResponseWrapper(response); } = = } Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/ByteBuf= fer.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/ByteBuffer.ja= va 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/ByteBuffer.ja= va 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/CharBuf= fer.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/CharBuffer.ja= va 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/CharBuffer.ja= va 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBuf= ferInputStream.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferInp= utStream.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferInp= utStream.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBuf= ferOutputStream.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferOut= putStream.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferOut= putStream.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBuf= ferReader.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferRea= der.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferRea= der.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBuf= ferWriter.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferWri= ter.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/FastBufferWri= ter.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/Test.ja= va =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/Test.java 200= 7-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/Test.java 200= 7-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= AnyCharState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/AnyCha= rState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/AnyCha= rState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= BlankState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/BlankS= tate.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/BlankS= tate.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= BufferedAnyCharState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edAnyCharState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edAnyCharState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= BufferedBlankState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edBlankState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edBlankState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= BufferedSingleCharState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edSingleCharState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edSingleCharState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= BufferedStringState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edStringState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Buffer= edStringState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= FastHtmlParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/FastHt= mlParser.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/FastHt= mlParser.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -56,6 +56,8 @@ = private String viewState; = + private String mimeType; + public void parse(Reader in, Writer out) throws IOException { boolean haveHtml =3D false; boolean haveHead =3D false; @@ -163,7 +165,7 @@ private void writeToHead(Writer out, boolean haveHtml, boolean haveHead) throws IOException { if (!haveHead && !haveHtml) { - out.write(""); + out.write(""); } if (!haveHead) { out.write(""); @@ -252,4 +254,9 @@ this.viewState =3D viewState; = } + + public boolean setMime(String mimeType) { + this.mimeType=3DmimeType; + return true; + } } Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= KeywordCharState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Keywor= dCharState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Keywor= dCharState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= KeywordState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Keywor= dState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Keywor= dState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= ParserState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parser= State.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parser= State.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= ParsingContext.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parsin= gContext.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parsin= gContext.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= ParsingStateManager.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parsin= gStateManager.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Parsin= gStateManager.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= SingleCharState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Single= CharState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/Single= CharState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= StringState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/String= State.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/String= State.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/= XmlIdentifierState.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/XmlIde= ntifierState.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/io/parser/XmlIde= ntifierState.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Anchor.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Anc= hor.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Anc= hor.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -78,7 +78,7 @@ * Anchor/node Linked list. * @author hoehrmann * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Anchor { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/AttVal.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= Val.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= Val.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -82,7 +82,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class AttVal extends Object implements Cloneable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/AttrCheck.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= rCheck.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= rCheck.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public interface AttrCheck { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/AttrCheckImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= rCheckImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= rCheckImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -84,7 +84,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class AttrCheckImpl { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Attribute.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= ribute.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= ribute.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Attribute { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/AttributeTable.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= ributeTable.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Att= ributeTable.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -83,7 +83,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class AttributeTable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Clean.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Cle= an.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Cle= an.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -101,7 +101,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Clean { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Configuration.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Con= figuration.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Con= figuration.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -99,7 +99,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.4 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Configuration implements Serializable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMAttrImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= AttrImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= AttrImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -84,7 +84,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMAttrImpl extends DOMNodeImpl implements org.w3c.dom.Attr, = Cloneable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMAttrMapImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= AttrMapImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= AttrMapImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -83,7 +83,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMAttrMapImpl implements org.w3c.dom.NamedNodeMap { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMCDATASectionImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= CDATASectionImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= CDATASectionImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMCDATASectionImpl extends DOMTextImpl implements org.w3c.do= m.CDATASection { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMCharacterDataImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= CharacterDataImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= CharacterDataImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -82,7 +82,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMCharacterDataImpl extends DOMNodeImpl implements org.w3c.d= om.CharacterData { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMCommentImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= CommentImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= CommentImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMCommentImpl extends DOMCharacterDataImpl implements org.w3= c.dom.Comment { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMDocumentImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= DocumentImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= DocumentImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -84,7 +84,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.3 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMDocumentImpl extends DOMNodeImpl implements org.w3c.dom.Do= cument { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMDocumentTypeImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= DocumentTypeImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= DocumentTypeImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -80,7 +80,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMDocumentTypeImpl extends DOMNodeImpl implements org.w3c.do= m.DocumentType { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMElementImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= ElementImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= ElementImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -85,7 +85,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMElementImpl extends DOMNodeImpl implements org.w3c.dom.Ele= ment { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMNodeImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= NodeImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= NodeImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -85,7 +85,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.3 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMNodeImpl implements org.w3c.dom.Node { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMNodeListByTagNameImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= NodeListByTagNameImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= NodeListByTagNameImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -81,7 +81,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMNodeListByTagNameImpl implements org.w3c.dom.NodeList { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMNodeListImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= NodeListImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= NodeListImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMNodeListImpl implements org.w3c.dom.NodeList { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMProcessingInstructionImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= ProcessingInstructionImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= ProcessingInstructionImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -83,7 +83,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMProcessingInstructionImpl extends DOMNodeImpl implements o= rg.w3c.dom.ProcessingInstruction { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/DOMTextImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= TextImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/DOM= TextImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -84,7 +84,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class DOMTextImpl extends DOMCharacterDataImpl implements org.w3c.d= om.Text { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Dict.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Dic= t.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Dic= t.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -82,7 +82,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Dict { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/EncodingNameMapper.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enc= odingNameMapper.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enc= odingNameMapper.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -81,7 +81,7 @@ /** * Maps between Java and IANA character encoding names. Also handles encod= ing alias used in tidy c. * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) * @see http://www.iana.org/assignments/character-sets */ public abstract class EncodingNameMapper Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/EncodingUtils.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enc= odingUtils.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Enc= odingUtils.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -76,7 +76,7 @@ = /** * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class EncodingUtils { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Entity.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Ent= ity.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Ent= ity.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Entity { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/EntityTable.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Ent= ityTable.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Ent= ityTable.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -84,7 +84,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class EntityTable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/IStack.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/ISt= ack.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/ISt= ack.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -85,7 +85,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class IStack { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Lexer.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Lex= er.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Lex= er.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -93,7 +93,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.8 $ ($Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Lexer { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Node.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Nod= e.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Nod= e.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -82,7 +82,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Node implements Cloneable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Out.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= .java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= .java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -81,7 +81,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public interface Out { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/OutFactory.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= Factory.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= Factory.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -84,7 +84,7 @@ /** * Tidy Output factory. * @author Fabrizio Giustina - * @version $Revision: 1.3 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class OutFactory { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/OutImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= Impl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= Impl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -89,7 +89,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class OutImpl implements Out { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/OutJavaImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= JavaImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Out= JavaImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -87,7 +87,7 @@ /** * Output implementation using java writers. * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class OutJavaImpl implements Out { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/PPrint.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/PPr= int.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/PPr= int.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -90,7 +90,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.7 $ ($Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class PPrint { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/ParseProperty.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= seProperty.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= seProperty.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/ParsePropertyImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= sePropertyImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= sePropertyImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Parser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= ser.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= ser.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public interface Parser { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/ParserImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= serImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Par= serImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class ParserImpl { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Report.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Rep= ort.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Rep= ort.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -93,7 +93,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class Report { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/StreamIn.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamIn.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamIn.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ = public interface StreamIn Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/StreamInFactory.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamInFactory.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamInFactory.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -84,7 +84,7 @@ /** * Tidy Input factory. * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class StreamInFactory { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/StreamInImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamInImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamInImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -89,7 +89,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.2 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class StreamInImpl implements StreamIn { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/StreamInJavaImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamInJavaImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Str= eamInJavaImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -85,7 +85,7 @@ /** * StreamIn Implementation using java writers. * @author Fabrizio Giustina - * @version $Revision: 1.5 $ ($Author: alexsmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class StreamInJavaImpl implements StreamIn { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Style.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Sty= le.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Sty= le.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Style { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/StyleProp.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Sty= leProp.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Sty= leProp.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class StyleProp { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TagCheck.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tag= Check.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tag= Check.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -80,7 +80,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public interface TagCheck { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TagCheckImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tag= CheckImpl.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tag= CheckImpl.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -79,7 +79,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class TagCheckImpl { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TagTable.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tag= Table.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tag= Table.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -86,7 +86,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class TagTable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/Tidy.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= y.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= y.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -98,7 +98,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.5 $ ($Author: slava_kabanovich $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class Tidy implements Serializable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TidyBeanInfo.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yBeanInfo.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yBeanInfo.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -83,7 +83,7 @@ * @author Dave Raggett dsr(a)w3.org * @author Andy Quick ac.quick(= a)sympatico.ca (translation to Java) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class TidyBeanInfo extends SimpleBeanInfo { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TidyLexerListener.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yLexerListener.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yLexerListener.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -22,8 +22,8 @@ package org.ajax4jsf.org.w3c.tidy; = /** - * @author asmirnov(a)exadel.com (latest modification by $Author: sergeysm= irnov $) - * @version $Revision: 1.1 $ $Date: 2006/04/28 02:04:41 $ + * @author asmirnov(a)exadel.com (latest modification by $Author: alexsmir= nov $) + * @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:56:47 $ * */ public interface TidyLexerListener extends TidyMessageListener { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TidyMessage.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yMessage.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yMessage.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -78,7 +78,7 @@ * Message sent to listeners for validation errors/warnings and info. * @see Tidy#setMessageListener(TidyMessageListener) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public final class TidyMessage { @@ -181,7 +181,7 @@ /** * Message severity enumeration. * @author fgiust - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public static final class Level implements Comparable { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TidyMessageListener.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yMessageListener.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yMessageListener.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -78,7 +78,7 @@ * Listener interface for validation errors/warnings and info. * @see Tidy#setMessageListener(TidyMessageListener) * @author Fabrizio Giustina - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public interface TidyMessageListener { Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/TidyUtils.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yUtils.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Tid= yUtils.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * Modified: branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/ti= dy/ValidUTF8Sequence.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Val= idUTF8Sequence.java 2007-07-09 13:55:22 UTC (rev 304) +++ branches/version_1_0_7/src/framework/java/org/ajax4jsf/org/w3c/tidy/Val= idUTF8Sequence.java 2007-07-09 18:34:57 UTC (rev 305) @@ -1,7 +1,7 @@ /** * License Agreement. * - * Ajax4jsf 1.0 - Natural Ajax for Java Server Faces (JSF) + * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF) * * Copyright (C) 2007 Exadel, Inc. * @@ -76,7 +76,7 @@ = /** * @author Fabrizio Giustina (translation from c) - * @version $Revision: 1.1 $ ($Author: sergeysmirnov $) + * @version $Revision: 1.1.2.1 $ ($Author: alexsmirnov $) */ public class ValidUTF8Sequence { --===============7740389288439455899==-- From ajax4jsf-svn-commits at lists.jboss.org Tue Jul 10 14:21:28 2007 Content-Type: multipart/mixed; boundary="===============7236359244557856982==" MIME-Version: 1.0 From: ajax4jsf-svn-commits at lists.jboss.org To: ajax4jsf-svn-commits at lists.jboss.org Subject: [ajax4jsf-svn-commits] JBoss Ajax4JSF SVN: r306 - in trunk/framework/src: main/java/org/ajax4jsf/xml/serializer and 2 other directories. Date: Tue, 10 Jul 2007 14:21:27 -0400 Message-ID: --===============7236359244557856982== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: alexsmirnov Date: 2007-07-10 14:21:27 -0400 (Tue, 10 Jul 2007) New Revision: 306 Added: trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/nekk= o/NekoParserTestCase.java Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nekk= o/NekkoParser.java trunk/framework/src/main/java/org/ajax4jsf/xml/serializer/ToXHTMLStream.= java trunk/framework/src/main/resources/org/ajax4jsf/xml/serializer/output_xh= tml.properties Log: Fix NekoFilter output according to the HTML DTD Modified: trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilt= er/nekko/NekkoParser.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekkoParser.java 2007-07-09 18:34:57 UTC (rev 305) +++ trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekkoParser.java 2007-07-10 18:21:27 UTC (rev 306) @@ -68,582 +68,674 @@ = /** * @author shura - * + * = */ -public class NekkoParser implements HtmlParser { +public class NekkoParser implements HtmlParser { = - private static final Log _log =3D LogFactory.getLog(NekkoParser.class); - = - private HtmlSAXParser _parser; - = -// private HtmlWriter _writer=3D new HtmlWriter(); - = - private ElementRemover remover =3D new ElementRemover(); - = - private XMLDocumentFilter[] _filters =3D { new ViewStateFilter()/*,remove= r */, new HtmlCorrectionFilter(), new Purifier() /*, _writer*/ }; + private static final Log _log =3D LogFactory.getLog(NekkoParser.class); = - private DOMFragmentParser viewStateParser ;//=3D new DOMFragmentParser(); + private HtmlSAXParser _parser; = - private Document viewStateDocument ;//=3D new HTMLDocumentImpl(); + // private HtmlWriter _writer=3D new HtmlWriter(); = - private DocumentFragment fragment =3D null; + private ElementRemover remover =3D new ElementRemover(); = - private Set _scripts; - = - private Set _styles; - = - private String _viewState; - = - private String _encoding; + private XMLDocumentFilter[] _filters =3D { + new ViewStateFilter()/* ,remover */, new HtmlCorrectionFilter(), + new Purifier() /* , _writer */}; = - private Serializer _serializer; + private DOMFragmentParser viewStateParser;// =3D new DOMFragmentParser= (); = - private String _publicId =3D "-//W3C//DTD XHTML 1.0 Transitional//EN"; - private String _systemid =3D "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran= sitional.dtd"; - private String _namespace =3D "http://www.w3.org/1999/xhtml"; + private Document viewStateDocument;// =3D new HTMLDocumentImpl(); = - private String _outputEncoding; - /** - * = - */ - public NekkoParser() { - _parser=3Dnew HtmlSAXParser(getHtmlConfig()); -// Properties properties =3D OutputPropertiesFactory.getDefaultMethodProp= erties(Method.XHTML); - Properties properties =3D OutputPropertiesFactory.getDefaultMethodProper= ties(Method.XML); -// properties.put("encoding",_encoding); - _serializer =3D SerializerFactory.getSerializer(properties); -// serializer.setOutputStream(output); -// _parser.setContentHandler(serializer.asContentHandler()); - viewStateParser =3D new DOMFragmentParser(); - // Set parser features - try { - viewStateParser.setProperty( - "http://cyberneko.org/html/properties/names/elems", - "lower"); - viewStateParser.setProperty( - "http://cyberneko.org/html/properties/names/attrs", - "lower"); - } catch (SAXException e) { - _log.error("Exception in DOM parser configuration", e); - } = - try { - // Create Document Builder Factory - DocumentBuilderFactory docFactory =3D DocumentBuilderFactory - .newInstance(); - // Create Document Builder - DocumentBuilder docBuilder =3D docFactory.newDocumentBuilder(); - viewStateDocument =3D docBuilder.newDocument(); - } catch (ParserConfigurationException e) { - viewStateDocument =3D new HTMLDocumentImpl(); - _log.error("Error on create DOM Document by JAXP, use Xerxes implementa= tion. Check JAXP configuration ",e); - } -// viewStateDocument =3D new HTMLDocumentImpl(); - remover.removeElement("style"); + private DocumentFragment fragment =3D null; + + private Set _scripts; + + private Set _styles; + + private String _viewState; + + private String _encoding; + + private Serializer _serializer; + + private String _publicId =3D "-//W3C//DTD XHTML 1.0 Transitional//EN"; + + private String _systemid =3D "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t= ransitional.dtd"; + + private String _namespace =3D "http://www.w3.org/1999/xhtml"; + + private String _outputEncoding; + + /** + * = + */ + public NekkoParser() { + _parser =3D new HtmlSAXParser(getHtmlConfig()); + Properties properties =3D OutputPropertiesFactory + .getDefaultMethodProperties(Method.XHTML); + // Properties properties =3D + // OutputPropertiesFactory.getDefaultMethodProperties(Method.XML); + // properties.put("encoding",_encoding); + _serializer =3D SerializerFactory.getSerializer(properties); + // serializer.setOutputStream(output); + // _parser.setContentHandler(serializer.asContentHandler()); + viewStateParser =3D new DOMFragmentParser(); + // Set parser features + try { + viewStateParser + .setProperty( + "http://cyberneko.org/html/properties/names/elems", + "lower"); + viewStateParser + .setProperty( + "http://cyberneko.org/html/properties/names/attrs", + "lower"); + } catch (SAXException e) { + _log.error("Exception in DOM parser configuration", e); } - = - /** - * Reset parser state - */ - public void reset(){ - _scripts=3Dnull; - _styles=3Dnull; - _viewState=3Dnull; - _parser.reset(); - _serializer.reset(); + try { + // Create Document Builder Factory + DocumentBuilderFactory docFactory =3D DocumentBuilderFactory + .newInstance(); + // Create Document Builder + DocumentBuilder docBuilder =3D docFactory.newDocumentBuilder(); + viewStateDocument =3D docBuilder.newDocument(); + } catch (ParserConfigurationException e) { + viewStateDocument =3D new HTMLDocumentImpl(); + _log + .error( + "Error on create DOM Document by JAXP, use Xerxes implementation. C= heck JAXP configuration ", + e); } + // viewStateDocument =3D new HTMLDocumentImpl(); + remover.removeElement("style"); + } = - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#parseHtml(java.i= o.InputStream, java.io.OutputStream) - */ - public void parseHtml(InputStream input, java.io.Writer output) - throws IOException { - InputSource src =3D new InputSource(input); - parseSAXSource(src,output); - } + /** + * Reset parser state + */ + public void reset() { + _scripts =3D null; + _styles =3D null; + _viewState =3D null; + _parser.reset(); + _serializer.reset(); + } = - private void parseSAXSource(InputSource src, java.io.Writer output) throw= s IOException { -// PrintWriter printWriter =3D null; + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#parseHtml(jav= a.io.InputStream, + * java.io.OutputStream) + */ + public void parseHtml(InputStream input, java.io.Writer output) + throws IOException { + InputSource src =3D new InputSource(input); + parseSAXSource(src, output); + } + + private void parseSAXSource(InputSource src, java.io.Writer output) + throws IOException { + // PrintWriter printWriter =3D null; + fragment =3D null; + if (null !=3D _viewState) { + fragment =3D viewStateDocument.createDocumentFragment(); + try { + viewStateParser.parse(new InputSource(new StringReader( + _viewState)), fragment); + } catch (Exception e) { fragment =3D null; - if(null !=3D _viewState){ - fragment =3D viewStateDocument.createDocumentFragment(); - try { - viewStateParser.parse(new InputSource(new StringReader( - _viewState)), fragment); - } catch (Exception e) { - fragment =3D null; - } - // TODO - parse view state to DOM Fragment. - } - try { - _parser.setProperty("http://cyberneko.org/html/properties/default-encod= ing", - _encoding); - Properties properties =3D _serializer.getOutputFormat(); - properties.put("encoding",_outputEncoding); - _serializer.setOutputFormat(properties); - _serializer.setWriter(output); -// _serializer.setOutputStream(new OutputStream(){ -// -// public void write(int b) throws IOException { -// // TODO Auto-generated method stub -// = -// }}); - _parser.setContentHandler(_serializer.asContentHandler()); -// printWriter =3D new PrintWriter(output); -// _writer.setWriter(printWriter); -// _writer.setEncoding(_encoding); - _parser.parse(src); - } catch (SAXException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { -// _writer.setWriter(null); -// if(null !=3D printWriter){ -// printWriter.flush(); -// printWriter.close(); -// } - = - } - = + } + // TODO - parse view state to DOM Fragment. } + try { + if (null !=3D _encoding) { + _parser + .setProperty( + "http://cyberneko.org/html/properties/default-encoding", + _encoding); = - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#parseHtml(java.i= o.Reader, java.io.OutputStream) - */ - public void parseHtml(Reader input, java.io.Writer output) throws IOExcep= tion { - InputSource src =3D new InputSource(input); - parseSAXSource(src,output); - } + } + Properties properties =3D _serializer.getOutputFormat(); + if (null !=3D _outputEncoding) { + properties.put("encoding", _outputEncoding); = - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setEncoding(java= .lang.String) - */ - public void setInputEncoding(String encoding) { - _encoding =3D encoding; - } + } + _serializer.setOutputFormat(properties); + _serializer.setWriter(output); + // _serializer.setOutputStream(new OutputStream(){ + // + // public void write(int b) throws IOException { + // // TODO Auto-generated method stub + // = + // }}); + _parser.setContentHandler(_serializer.asContentHandler()); + // printWriter =3D new PrintWriter(output); + // _writer.setWriter(printWriter); + // _writer.setEncoding(_encoding); + _parser.parse(src); + } catch (SAXException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + // _writer.setWriter(null); + // if(null !=3D printWriter){ + // printWriter.flush(); + // printWriter.close(); + // } = - public void setOutputEncoding(String encoding) { - _outputEncoding =3D encoding; } - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setMoveElements(= boolean) - */ - public void setMoveElements(boolean move) { - // TODO Auto-generated method stub = - } + } = - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setScripts(java.= util.Set) - */ - public void setScripts(Set scripts) { - _scripts =3D scripts; + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#parseHtml(jav= a.io.Reader, + * java.io.OutputStream) + */ + public void parseHtml(Reader input, java.io.Writer output) + throws IOException { + InputSource src =3D new InputSource(input); + parseSAXSource(src, output); + } = - } + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setEncoding(j= ava.lang.String) + */ + public void setInputEncoding(String encoding) { + _encoding =3D encoding; + } = - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setStyles(java.u= til.Set) - */ - public void setStyles(Set styles) { - _styles =3D styles; + public void setOutputEncoding(String encoding) { + _outputEncoding =3D encoding; + } = - } + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setMoveElemen= ts(boolean) + */ + public void setMoveElements(boolean move) { + // TODO Auto-generated method stub = - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setDoctype(java.= lang.String) - */ - public void setDoctype(String doctype) { - this._publicId =3D doctype; + } = - } + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setScripts(ja= va.util.Set) + */ + public void setScripts(Set scripts) { + _scripts =3D scripts; = - /* (non-Javadoc) - * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setViewState(jav= a.lang.String) + } + + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setStyles(jav= a.util.Set) + */ + public void setStyles(Set styles) { + _styles =3D styles; + + } + + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setDoctype(ja= va.lang.String) + */ + public void setDoctype(String doctype) { + this._publicId =3D doctype; + + } + + /* + * (non-Javadoc) + * = + * @see org.ajax4jsf.framework.ajax.xmlfilter.HtmlParser#setViewState(= java.lang.String) + */ + public void setViewState(String viewState) { + _viewState =3D viewState; + + } + + private static class HtmlSAXParser extends AbstractSAXParser { + /** + * Default constructor. + * = + * @throws ServletException */ - public void setViewState(String viewState) { - _viewState =3D viewState; + public HtmlSAXParser(HTMLConfiguration config) { + super(config); = } - = - private static class HtmlSAXParser extends AbstractSAXParser { - /** Default constructor. = - * @throws ServletException */ - public HtmlSAXParser(HTMLConfiguration config) { - super(config); - = - } - } - = - private class ViewStateFilter extends DefaultFilter{ - private boolean haveHtml =3D false; - private boolean haveHead =3D false; - private boolean headParsed =3D false; - private int stateMarkerLevel =3D -1; + } = + private class ViewStateFilter extends DefaultFilter { + private boolean haveHtml =3D false; = + private boolean haveHead =3D false; = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#reset(org.apache.xerces= .xni.parser.XMLComponentManager) - */ - public void reset(XMLComponentManager componentManager) throws XMLConfig= urationException { - haveHead =3D false; - haveHtml =3D false; - headParsed =3D false; - stateMarkerLevel =3D -1; - super.reset(componentManager); - } + private boolean headParsed =3D false; = + private int stateMarkerLevel =3D -1; = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#startElement(org.apache= .xerces.xni.QName, org.apache.xerces.xni.XMLAttributes, org.apache.xerces.x= ni.Augmentations) - */ - public void startElement(QName element, XMLAttributes attributes, Augmen= tations augs) throws XNIException { - if(stateMarkerLevel >=3D0){ - stateMarkerLevel++; - if(null !=3D fragment){ - return; - } - } - if (!headParsed) { - if("html".equalsIgnoreCase(element.rawname)){ - haveHtml =3D true; - } else if("head".equalsIgnoreCase(element.rawname)){ - haveHead =3D true; - super.startElement(element, attributes, augs); - insertResources(); - return; - } else { - if(!haveHtml){ - insertStartElement("html"); - } - insertStartElement("head"); - insertResources(); - insertEndElement("head"); - } + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#reset(org.apache.xerces.= xni.parser.XMLComponentManager) + */ + public void reset(XMLComponentManager componentManager) + throws XMLConfigurationException { + haveHead =3D false; + haveHtml =3D false; + headParsed =3D false; + stateMarkerLevel =3D -1; + super.reset(componentManager); + } = - } - if(isStateMarker(element, attributes)){ - stateMarkerLevel =3D 0; - return; - }; - super.startElement(element, attributes, augs); + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#startElement(org.apache.= xerces.xni.QName, + * org.apache.xerces.xni.XMLAttributes, + * org.apache.xerces.xni.Augmentations) + */ + public void startElement(QName element, XMLAttributes attributes, + Augmentations augs) throws XNIException { + if (stateMarkerLevel >=3D 0) { + stateMarkerLevel++; + if (null !=3D fragment) { + return; } + } + if (!headParsed) { + if ("html".equalsIgnoreCase(element.rawname)) { + haveHtml =3D true; + } else if ("head".equalsIgnoreCase(element.rawname)) { + haveHead =3D true; + super.startElement(element, attributes, augs); + insertResources(); + return; + } else { + if (!haveHtml) { + insertStartElement("html"); + } + insertStartElement("head"); + insertResources(); + insertEndElement("head"); + } = + } + if (isStateMarker(element, attributes)) { + stateMarkerLevel =3D 0; + return; + } + ; + super.startElement(element, attributes, augs); + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#characters(org.apache.x= erces.xni.XMLString, org.apache.xerces.xni.Augmentations) - */ - public void characters(XMLString text, Augmentations augs) throws XNIExc= eption { - if(stateMarkerLevel >=3D0){ - if(null !=3D fragment){ - return; - } - } - super.characters(text, augs); + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#characters(org.apache.xe= rces.xni.XMLString, + * org.apache.xerces.xni.Augmentations) + */ + public void characters(XMLString text, Augmentations augs) + throws XNIException { + if (stateMarkerLevel >=3D 0) { + if (null !=3D fragment) { + return; } + } + super.characters(text, augs); + } = + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#endElement(org.apache.xe= rces.xni.QName, + * org.apache.xerces.xni.Augmentations) + */ + public void endElement(QName element, Augmentations augs) + throws XNIException { + if (stateMarkerLevel >=3D 0) { + stateMarkerLevel--; + if (null !=3D fragment || stateMarkerLevel =3D=3D -1) { + return; + } + } + super.endElement(element, augs); + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#endElement(org.apache.x= erces.xni.QName, org.apache.xerces.xni.Augmentations) - */ - public void endElement(QName element, Augmentations augs) throws XNIExce= ption { - if(stateMarkerLevel >=3D0){ - stateMarkerLevel--; - if(null !=3D fragment || stateMarkerLevel =3D=3D -1){ - return; - } - } - super.endElement(element, augs); + private void insertResources() { + headParsed =3D true; + if (null !=3D _styles) { + for (Iterator iter =3D _styles.iterator(); iter.hasNext();) { + String style =3D (String) iter.next(); + QName element =3D new QName(null, "link", "link", null); + XMLAttributes attrs =3D new XMLAttributesImpl(); + attrs.addAttribute(new QName(null, "href", "href", null), + "CDATA", style); + attrs.addAttribute(new QName(null, "type", "type", null), + "CDATA", "text/css"); + attrs.addAttribute(new QName(null, "rel", "rel", null), + "CDATA", "stylesheet"); + Augmentations augs =3D new HTMLAugmentations(); + super.emptyElement(element, attrs, augs); } + } + if (null !=3D _scripts) { + for (Iterator iter =3D _scripts.iterator(); iter.hasNext();) { + String script =3D (String) iter.next(); + QName element =3D new QName(null, "script", "script", null); + XMLAttributes attrs =3D new XMLAttributesImpl(); + attrs.addAttribute(new QName(null, "src", "src", null), + "CDATA", script); + attrs.addAttribute(new QName(null, "type", "type", null), + "CDATA", "text/javascript"); + Augmentations augs =3D new HTMLAugmentations(); + super.startElement(element, attrs, augs); + super.endElement(element, augs); + } + } = + } = - private void insertResources() { - headParsed =3D true; - if(null !=3D _styles){ - for (Iterator iter =3D _styles.iterator(); iter.hasNext();) { - String style =3D (String) iter.next(); - QName element =3D new QName(null,"link","link",null); - XMLAttributes attrs =3D new XMLAttributesImpl(); - attrs.addAttribute(new QName(null,"href","href",null), "CDATA", style= ); - attrs.addAttribute(new QName(null,"type","type",null), "CDATA", "text= /css"); - attrs.addAttribute(new QName(null,"rel","rel",null), "CDATA", "styles= heet"); - Augmentations augs =3D new HTMLAugmentations(); - super.emptyElement(element,attrs,augs); - } - } - if(null !=3D _scripts){ - for (Iterator iter =3D _scripts.iterator(); iter.hasNext();) { - String script =3D (String) iter.next(); - QName element =3D new QName(null,"script","script",null); - XMLAttributes attrs =3D new XMLAttributesImpl(); - attrs.addAttribute(new QName(null,"src","src",null), "CDATA", script); - attrs.addAttribute(new QName(null,"type","type",null), "CDATA", "text= /javascript"); - Augmentations augs =3D new HTMLAugmentations(); - super.startElement(element,attrs,augs); - super.endElement(element, augs); - } - } - = + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#emptyElement(org.apache.= xerces.xni.QName, + * org.apache.xerces.xni.XMLAttributes, + * org.apache.xerces.xni.Augmentations) + */ + public void emptyElement(QName name, XMLAttributes attributes, + Augmentations augmentation) throws XNIException { + if (stateMarkerLevel >=3D 0) { + if (null !=3D fragment) { + return; } + } + if (!headParsed) { + if ("head".equalsIgnoreCase(name.rawname)) { + haveHead =3D true; + super.startElement(name, attributes, augmentation); + insertResources(); + insertEndElement(name.rawname); + return; + } + } + if (isStateMarker(name, attributes)) { + return; + } + ; + super.emptyElement(name, attributes, augmentation); + } = - - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#emptyElement(org.apache= .xerces.xni.QName, org.apache.xerces.xni.XMLAttributes, org.apache.xerces.x= ni.Augmentations) - */ - public void emptyElement(QName name, XMLAttributes attributes, Augmentat= ions augmentation) throws XNIException { - if(stateMarkerLevel >=3D0){ - if(null !=3D fragment){ - return; - } - } - if (!headParsed) { - if("head".equalsIgnoreCase(name.rawname)){ - haveHead =3D true; - super.startElement(name, attributes, augmentation); - insertResources(); - insertEndElement(name.rawname); - return; - } - } - if(isStateMarker(name, attributes)){ - return; - }; - super.emptyElement(name, attributes, augmentation); + /** + * @param name + * @param attributes + */ + private boolean isStateMarker(QName name, XMLAttributes attributes) { + if (name.rawname.equalsIgnoreCase("span") + && AjaxViewHandler.STATE_MARKER_KEY.equals(attributes + .getValue("id"))) { + // STATE marker element - out real content. + if (null !=3D fragment) { + try { + _serializer.asDOMSerializer().serialize(fragment); + } catch (IOException e) { + // Break output. + } } + return true; + } + return false; + } = + void insertStartElement(String name) { + QName element =3D new QName(null, name, name, null); + XMLAttributes attrs =3D new XMLAttributesImpl(); + Augmentations augs =3D new HTMLAugmentations(); + super.startElement(element, attrs, augs); + } = - /** - * @param name - * @param attributes - */ - private boolean isStateMarker(QName name, XMLAttributes attributes) { - if(name.rawname.equalsIgnoreCase("span") && AjaxViewHandler.STATE_MARKE= R_KEY.equals(attributes.getValue("id"))){ - // STATE marker element - out real content. - if(null !=3D fragment){ - try { - _serializer.asDOMSerializer().serialize(fragment); - } catch (IOException e) { - // Break output. - } - } - return true; - } - return false; - } - = - void insertStartElement(String name) { - QName element =3D new QName(null,name,name,null); - XMLAttributes attrs =3D new XMLAttributesImpl(); - Augmentations augs =3D new HTMLAugmentations(); - super.startElement(element,attrs,augs); - } - = - = - void insertEndElement(String name) { - QName element =3D new QName(null,name,name,null); -// XMLAttributes attrs =3D new XMLAttributesImpl(); - Augmentations augs =3D new HTMLAugmentations(); - super.endElement(element,augs); - } + void insertEndElement(String name) { + QName element =3D new QName(null, name, name, null); + // XMLAttributes attrs =3D new XMLAttributesImpl(); + Augmentations augs =3D new HTMLAugmentations(); + super.endElement(element, augs); + } = + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#endDocument(org.apache.x= erces.xni.Augmentations) + */ + public void endDocument(Augmentations augs) throws XNIException { + if (!haveHtml) { + insertEndElement("html"); + } + super.endDocument(augs); + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#endDocument(org.apache= .xerces.xni.Augmentations) - */ - public void endDocument(Augmentations augs) throws XNIException { - if (!haveHtml) { - insertEndElement("html"); - } - super.endDocument(augs); - } - = - = + } = + private static class HtmlWriter extends Writer { + + /** + * = + */ + public HtmlWriter() { + super(); + fEncoding =3D "UTF-8"; } = - private static class HtmlWriter extends Writer { + public void setEncoding(String encoding) { + this.fEncoding =3D encoding; + } = - /** - * = - */ - public HtmlWriter() { - super(); - fEncoding =3D "UTF-8"; - } - = - public void setEncoding(String encoding){ - this.fEncoding =3D encoding; - } - = - public void setWriter( PrintWriter writer){ - this.fPrinter =3D writer; - } + public void setWriter(PrintWriter writer) { + this.fPrinter =3D writer; + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.Writer#emptyElement(org.apache.xerces= .xni.QName, org.apache.xerces.xni.XMLAttributes, org.apache.xerces.xni.Augm= entations) - */ - public void emptyElement(QName element, XMLAttributes attributes, Augmen= tations augs) throws XNIException { - // TODO Auto-generated method stub - super.emptyElement(element, attributes, augs); - printEndElement(element); - } + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.Writer#emptyElement(org.apache.xerces.= xni.QName, + * org.apache.xerces.xni.XMLAttributes, + * org.apache.xerces.xni.Augmentations) + */ + public void emptyElement(QName element, XMLAttributes attributes, + Augmentations augs) throws XNIException { + // TODO Auto-generated method stub + super.emptyElement(element, attributes, augs); + printEndElement(element); + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#endCDATA(org.apache.xer= ces.xni.Augmentations) - */ - public void endCDATA(Augmentations augs) throws XNIException { - // TODO Auto-generated method stub - super.endCDATA(augs); - } + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#endCDATA(org.apache.xerc= es.xni.Augmentations) + */ + public void endCDATA(Augmentations augs) throws XNIException { + // TODO Auto-generated method stub + super.endCDATA(augs); + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#startCDATA(org.apache.x= erces.xni.Augmentations) - */ - public void startCDATA(Augmentations augs) throws XNIException { - // TODO Auto-generated method stub - super.startCDATA(augs); - } + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#startCDATA(org.apache.xe= rces.xni.Augmentations) + */ + public void startCDATA(Augmentations augs) throws XNIException { + // TODO Auto-generated method stub + super.startCDATA(augs); + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#textDecl(java.lang.Stri= ng, java.lang.String, org.apache.xerces.xni.Augmentations) - */ - public void textDecl(String version, String encoding, Augmentations augs= ) throws XNIException { - // TODO Auto-generated method stub - super.textDecl(version, encoding, augs); - } + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#textDecl(java.lang.Strin= g, + * java.lang.String, org.apache.xerces.xni.Augmentations) + */ + public void textDecl(String version, String encoding, Augmentations augs) + throws XNIException { + // TODO Auto-generated method stub + super.textDecl(version, encoding, augs); + } = - /* (non-Javadoc) - * @see org.cyberneko.html.filters.DefaultFilter#xmlDecl(java.lang.Strin= g, java.lang.String, java.lang.String, org.apache.xerces.xni.Augmentations) - */ - public void xmlDecl(String version, String encoding, String standalone, = Augmentations augs) throws XNIException { - // TODO Auto-generated method stub - super.xmlDecl(version, encoding, standalone, augs); - } - = - = + /* + * (non-Javadoc) + * = + * @see org.cyberneko.html.filters.DefaultFilter#xmlDecl(java.lang.String, + * java.lang.String, java.lang.String, + * org.apache.xerces.xni.Augmentations) + */ + public void xmlDecl(String version, String encoding, String standalone, + Augmentations augs) throws XNIException { + // TODO Auto-generated method stub + super.xmlDecl(version, encoding, standalone, augs); } - /** - * Factory method for create and configure HTML parser configuration. - * Create configuration for use in parsing, set nessesary features and = properties - * @return - * @throws ServletException - */ - protected HTMLConfiguration getHtmlConfig() { - HTMLConfiguration _config =3D new HTMLConfiguration(); - try { - if (this.getPublicid() !=3D null || this.getSystemid() !=3D null) { - _config.setFeature( - "http://cyberneko.org/html/features/insert-doctype", - true); - _config.setFeature( - "http://cyberneko.org/html/features/override-doctype", - true); - } - if (this.getPublicid() !=3D null) { - _config.setProperty( - "http://cyberneko.org/html/properties/doctype/pubid", - getPublicid()); - = - } - if (this.getSystemid() !=3D null) { - _config.setProperty( - "http://cyberneko.org/html/properties/doctype/sysid", - getSystemid()); - = - } - if (this.getNamespace() !=3D null) { - _config.setFeature( - "http://xml.org/sax/features/namespaces", - true); - _config.setFeature( - "http://cyberneko.org/html/features/override-namespaces", - true); - _config.setFeature( - "http://cyberneko.org/html/features/insert-namespaces", - true); - _config.setProperty( - "http://cyberneko.org/html/properties/namespaces-uri", - getNamespace()); - = - } - // config - // .setFeature( - // "http://cyberneko.org/html/features/bal= ance-tags/ignore-outside-content", - // true); - _config - .setFeature( - "http://cyberneko.org/html/features/scanner/cdata-sections", - true); - _config - .setFeature( - "http://cyberneko.org/html/features/scanner/script/strip-comment-= delims", - true); - _config - .setFeature( - "http://cyberneko.org/html/features/scanner/style/strip-comment-d= elims", - true); - _config.setFeature( - "http://cyberneko.org/html/features/insert-doctype", - true); - _config.setFeature( - "http://cyberneko.org/html/features/insert-namespaces", - true); - // = - // Set properties http://cyberneko.org/html/features/insert-namespace= s = - // _config - // .setProperty( - // "http://cyberneko.org/html/properties/default-encoding", - // encoding); - _config.setProperty( - "http://cyberneko.org/html/properties/names/elems", - "lower"); - _config.setProperty( - "http://cyberneko.org/html/properties/names/attrs", - "lower"); - _config.setProperty("http://cyberneko.org/html/properties/filters", _= filters); - } catch (XMLConfigurationException e) { -// throw new ServletException("error set Neko feature ", e); - } - return _config; - } = - private String getNamespace() { - // TODO Auto-generated method stub - return this._namespace; - } + } = - private String getSystemid() { - // TODO Auto-generated method stub - return this._systemid; - } + /** + * Factory method for create and configure HTML parser configuration. = Create + * configuration for use in parsing, set nessesary features and proper= ties + * = + * @return + * @throws ServletException + */ + protected HTMLConfiguration getHtmlConfig() { + HTMLConfiguration _config =3D new HTMLConfiguration(); + try { + if (this.getPublicid() !=3D null || this.getSystemid() !=3D null) { + _config.setFeature( + "http://cyberneko.org/html/features/insert-doctype", + true); + _config.setFeature( + "http://cyberneko.org/html/features/override-doctype", + true); + } + if (this.getPublicid() !=3D null) { + _config.setProperty( + "http://cyberneko.org/html/properties/doctype/pubid", + getPublicid()); = - private String getPublicid() { - // TODO Auto-generated method stub - return this._publicId; - } + } + if (this.getSystemid() !=3D null) { + _config.setProperty( + "http://cyberneko.org/html/properties/doctype/sysid", + getSystemid()); = - /** - * @param namespace The namespace to set. - */ - public void setNamespace(String namespace) { - _namespace =3D namespace; - } + } + if (this.getNamespace() !=3D null) { + _config.setFeature("http://xml.org/sax/features/namespaces", + true); + _config + .setFeature( + "http://cyberneko.org/html/features/override-namespaces", + true); + _config.setFeature( + "http://cyberneko.org/html/features/insert-namespaces", + true); + _config.setProperty( + "http://cyberneko.org/html/properties/namespaces-uri", + getNamespace()); = - /** - * @param publicId The publicId to set. - */ - public void setPublicId(String publicId) { - _publicId =3D publicId; - } + } + // config + // .setFeature( + // "http://cyberneko.org/html/features/balance-tags/ignore-outside-co= ntent", + // true); + _config + .setFeature( + "http://cyberneko.org/html/features/scanner/cdata-sections", + true); + _config + .setFeature( + "http://cyberneko.org/html/features/scanner/script/strip-comment-de= lims", + true); + _config + .setFeature( + "http://cyberneko.org/html/features/scanner/style/strip-comment-del= ims", + true); + _config.setFeature( + "http://cyberneko.org/html/features/insert-doctype", true); + _config.setFeature( + "http://cyberneko.org/html/features/insert-namespaces", + true); + // = + // Set properties + // http://cyberneko.org/html/features/insert-namespaces + // _config + // .setProperty( + // "http://cyberneko.org/html/properties/default-encoding", + // encoding); + _config + .setProperty( + "http://cyberneko.org/html/properties/names/elems", + "lower"); + _config + .setProperty( + "http://cyberneko.org/html/properties/names/attrs", + "lower"); + _config.setProperty("http://cyberneko.org/html/properties/filters", + _filters); + } catch (XMLConfigurationException e) { + // throw new ServletException("error set Neko feature ", e); + } + return _config; + } = - /** - * @param systemid The systemid to set. - */ - public void setSystemid(String systemid) { - _systemid =3D systemid; - } + private String getNamespace() { + // TODO Auto-generated method stub + return this._namespace; + } = - public boolean setMime(String mimeType) { - return false; - } + private String getSystemid() { + // TODO Auto-generated method stub + return this._systemid; + } = + private String getPublicid() { + // TODO Auto-generated method stub + return this._publicId; + } + + /** + * @param namespace + * The namespace to set. + */ + public void setNamespace(String namespace) { + _namespace =3D namespace; + } + + /** + * @param publicId + * The publicId to set. + */ + public void setPublicId(String publicId) { + _publicId =3D publicId; + } + + /** + * @param systemid + * The systemid to set. + */ + public void setSystemid(String systemid) { + _systemid =3D systemid; + } + + public boolean setMime(String mimeType) { + return false; + } + } Modified: trunk/framework/src/main/java/org/ajax4jsf/xml/serializer/ToXHTML= Stream.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/java/org/ajax4jsf/xml/serializer/ToXHTMLStream= .java 2007-07-09 18:34:57 UTC (rev 305) +++ trunk/framework/src/main/java/org/ajax4jsf/xml/serializer/ToXHTMLStream= .java 2007-07-10 18:21:27 UTC (rev 306) @@ -77,7 +77,8 @@ */ private static final CharInfo m_htmlcharInfo =3D // new CharInfo(CharInfo.HTML_ENTITIES_RESOURCE); - CharInfo.getCharInfo(CharInfo.HTML_ENTITIES_RESOURCE, Method.HTML); + // Asmirnov - disable HTML Entities. + CharInfo.getCharInfo(CharInfo.XML_ENTITIES_RESOURCE, Method.XHTML); = /** A digital search trie for fast, case insensitive lookup of ElemDes= c objects. */ static final Trie m_elementFlags =3D new Trie(); @@ -538,6 +539,8 @@ */ static private final ElemDesc m_dummy =3D new ElemDesc(0 | ElemDesc.BL= OCK); = + public static final String XHTML_NAMESPACE_URI =3D "http://www.w3.org/= 1999/xhtml"; + /** True if URLs should be specially escaped with the %xx form. */ private boolean m_specialEscapeURLs =3D true; = @@ -838,7 +841,7 @@ = = // if this element has a namespace then treat it like XML - if (null !=3D namespaceURI && namespaceURI.length() > 0) + if (null !=3D namespaceURI && namespaceURI.length() > 0 && (!XHTML= _NAMESPACE_URI.equals(namespaceURI))) { super.startElement(namespaceURI, localName, name, atts); = @@ -952,7 +955,7 @@ closeCDATA(); = // if the element has a namespace, treat it like XML, not HTML - if (null !=3D namespaceURI && namespaceURI.length() > 0) + if (null !=3D namespaceURI && namespaceURI.length() > 0 && (!XHTML= _NAMESPACE_URI.equals(namespaceURI))) { super.endElement(namespaceURI, localName, name); = Modified: trunk/framework/src/main/resources/org/ajax4jsf/xml/serializer/ou= tput_xhtml.properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/main/resources/org/ajax4jsf/xml/serializer/output_x= html.properties 2007-07-09 18:34:57 UTC (rev 305) +++ trunk/framework/src/main/resources/org/ajax4jsf/xml/serializer/output_x= html.properties 2007-07-10 18:21:27 UTC (rev 306) @@ -22,7 +22,8 @@ = # XSLT properties do not need namespace qualification. method=3Dxhtml -indent=3Dyes +indent=3Dno +omit-xml-declaration=3Dyes media-type=3Dapplication/xml+xhtml version=3D1.0 = @@ -37,6 +38,8 @@ # Note that the colon after the protocol needs to be escaped. {http\u003a//xml.apache.org/xalan}indent-amount=3D0 {http\u003a//xml.apache.org/xalan}content-handler=3Dorg.ajax4jsf.xml.seria= lizer.ToXHTMLStream -{http\u003a//xml.apache.org/xalan}entities=3Dorg/ajax4jsf/xml/serializer/H= TMLEntities +# XMLHttpRequest can't resolve HTTP entities. +# {http\u003a//xml.apache.org/xalan}entities=3Dorg/ajax4jsf/xml/serializer= /HTMLEntities +{http\u003a//xml.apache.org/xalan}entities=3Dorg/ajax4jsf/xml/serializer/X= MLEntities {http\u003a//xml.apache.org/xalan}use-url-escaping=3Dyes {http\u003a//xml.apache.org/xalan}omit-meta-tag=3Dyes Added: trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/= nekko/NekoParserTestCase.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekoParserTestCase.java (rev 0) +++ trunk/framework/src/test/java/org/ajax4jsf/framework/ajax/xmlfilter/nek= ko/NekoParserTestCase.java 2007-07-10 18:21:27 UTC (rev 306) @@ -0,0 +1,55 @@ +/** + * = + */ +package org.ajax4jsf.framework.ajax.xmlfilter.nekko; + +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; + +import junit.framework.TestCase; + +/** + * @author asmirnov + * + */ +public class NekoParserTestCase extends TestCase { + + private NekkoParser parser; + + /** + * @param name + */ + public NekoParserTestCase(String name) { + super(name); + } + + /* (non-Javadoc) + * @see junit.framework.TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + parser =3D new NekkoParser(); + } + + /* (non-Javadoc) + * @see junit.framework.TestCase#tearDown() + */ + protected void tearDown() throws Exception { + super.tearDown(); + parser =3D null; + } + + /** + * Test method for {@link org.ajax4jsf.framework.ajax.xmlfilter.nekko.= NekkoParser#parseHtml(java.io.Reader, java.io.Writer)}. + * @throws IOException = + */ + public void testParseHtmlReaderWriter() throws IOException { + String html =3D "