cvs commit: cocoon-2.1/src/blocks/forms/samples/resources/htmlarea/popups popup.js
crossley2004/03/17 22:05:07 Modified:src/blocks/forms/samples/resources/htmlarea dialog.js htmlarea.css htmlarea.js popupdiv.js popupwin.js src/blocks/forms/samples/resources/htmlarea/lang b5.js cz.js da.js de.js ee.js el.js en.js es.js fi.js fr.js gb.js he.js hu.js it.js ja-euc.js ja-jis.js ja-sjis.js ja-utf8.js lt.js lv.js nb.js nl.js no.js pl.js pt_br.js ro.js ru.js se.js si.js vn.js src/blocks/forms/samples/resources/htmlarea/plugins/CSS css.js src/blocks/forms/samples/resources/htmlarea/plugins/CSS/lang en.js src/blocks/forms/samples/resources/htmlarea/plugins/ContextMenu context-menu.js menu.css src/blocks/forms/samples/resources/htmlarea/plugins/ContextMenu/lang de.js el.js en.js nl.js src/blocks/forms/samples/resources/htmlarea/plugins/FullPage full-page.js src/blocks/forms/samples/resources/htmlarea/plugins/FullPage/lang en.js ro.js src/blocks/forms/samples/resources/htmlarea/plugins/SpellChecker spell-check-style.css spell-check-ui.js spell-checker.js src/blocks/forms/samples/resources/htmlarea/plugins/SpellChecker/lang cz.js da.js de.js en.js hu.js it.js ro.js src/blocks/forms/samples/resources/htmlarea/plugins/TableOperations table-operations.js src/blocks/forms/samples/resources/htmlarea/plugins/TableOperations/lang cz.js da.js de.js el.js en.js fi.js hu.js it.js nl.js no.js ro.js src/blocks/forms/samples/resources/htmlarea/popups popup.js Log: Removed Apache License 2.0 which was accidently committed to this. Revision ChangesPath 1.2 +1 -16 cocoon-2.1/src/blocks/forms/samples/resources/htmlarea/dialog.js Index: dialog.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/samples/resources/htmlarea/dialog.js,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- dialog.js 9 Mar 2004 10:33:59 - 1.1 +++ dialog.js 18 Mar 2004 06:05:05 - 1.2 @@ -1,18 +1,3 @@ -/* -* Copyright 1999-2004 The Apache Software Foundation -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ // htmlArea v3.0 - Copyright (c) 2003-2004 interactivetools.com, inc. // This copyright notice MUST stay intact for use (see license.txt). // 1.2 +0 -15 cocoon-2.1/src/blocks/forms/samples/resources/htmlarea/htmlarea.css Index: htmlarea.css === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/samples/resources/htmlarea/htmlarea.css,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- htmlarea.css 9 Mar 2004 10:33:59 - 1.1 +++ htmlarea.css 18 Mar 2004 06:05:05 - 1.2 @@ -1,18 +1,3 @@ -/* -* Copyright 1999-2004 The Apache Software Foundation -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ .htmlarea { background: #fff; } .htmlarea .toolbar { 1.2 +1 -16 cocoon-2.1/src/blocks/forms/samples/resources/htmlarea/htmlarea.js Index: htmlarea.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/samples/resources/htmlarea/htmlarea.js,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- htmlarea.js 9 Mar 2004 10:33:59 - 1.1 +++ htmlarea.js
cvs commit: cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib AnchorPosition.js CalendarPopup.js OptionTransfer.js PopupWindow.js date.js selectbox.js
crossley2004/03/17 22:16:04 Modified:src/blocks/forms/samples/resources mattkruse-lib.js src/blocks/forms/samples/resources/mattkruse-lib AnchorPosition.js CalendarPopup.js OptionTransfer.js PopupWindow.js date.js selectbox.js Log: Removed Apache License 2.0 which was accidently committed to this. Revision ChangesPath 1.2 +0 -15 cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib.js Index: mattkruse-lib.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib.js,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- mattkruse-lib.js 9 Mar 2004 10:34:10 - 1.1 +++ mattkruse-lib.js 18 Mar 2004 06:16:04 - 1.2 @@ -1,18 +1,3 @@ -/* -* Copyright 1999-2004 The Apache Software Foundation -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ // === // Author: Matt Kruse [EMAIL PROTECTED] // WWW: http://www.mattkruse.com/ 1.2 +0 -15 cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib/AnchorPosition.js Index: AnchorPosition.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib/AnchorPosition.js,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AnchorPosition.js 9 Mar 2004 10:34:02 - 1.1 +++ AnchorPosition.js 18 Mar 2004 06:16:04 - 1.2 @@ -1,18 +1,3 @@ -/* -* Copyright 1999-2004 The Apache Software Foundation -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ // === // Author: Matt Kruse [EMAIL PROTECTED] // WWW: http://www.mattkruse.com/ 1.2 +0 -15 cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib/CalendarPopup.js Index: CalendarPopup.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib/CalendarPopup.js,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CalendarPopup.js 9 Mar 2004 10:34:02 - 1.1 +++ CalendarPopup.js 18 Mar 2004 06:16:04 - 1.2 @@ -1,18 +1,3 @@ -/* -* Copyright 1999-2004 The Apache Software Foundation -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ // === // Author: Matt Kruse [EMAIL PROTECTED] // WWW: http://www.mattkruse.com/ 1.2 +0 -15 cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib/OptionTransfer.js Index: OptionTransfer.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/samples/resources/mattkruse-lib/OptionTransfer.js,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- OptionTransfer.js 9 Mar 2004 10:34:02 - 1.1 +++ OptionTransfer.js 18 Mar 2004 06:16:04 - 1.2 @@ -1,18 +1,3 @@ -/* -* Copyright 1999-2004 The Apache Software Foundation -* -* Licensed under the Apache
cvs commit: cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/popups blank.html custom2.html editor_help.html old-fullscreen.html old_insert_image.html popup.js
crossley2004/03/17 23:00:22 Modified:src/blocks/woody/samples/resources/htmlarea ChangeLog dialog.js htmlarea.css htmlarea.js make-release.pl popupdiv.js popupwin.js reference.html release-notes.html src/blocks/woody/samples/resources/htmlarea/lang b5.js cz.js da.js de.js ee.js el.js en.js es.js fi.js fr.js gb.js he.js hu.js it.js ja-euc.js ja-jis.js ja-sjis.js ja-utf8.js lt.js lv.js nb.js nl.js no.js pl.js pt_br.js ro.js ru.js se.js si.js vn.js src/blocks/woody/samples/resources/htmlarea/plugins/CSS css.js src/blocks/woody/samples/resources/htmlarea/plugins/CSS/lang en.js src/blocks/woody/samples/resources/htmlarea/plugins/ContextMenu 1.pl context-menu.js menu.css src/blocks/woody/samples/resources/htmlarea/plugins/ContextMenu/lang de.js el.js en.js nl.js src/blocks/woody/samples/resources/htmlarea/plugins/FullPage full-page.js src/blocks/woody/samples/resources/htmlarea/plugins/FullPage/lang en.js ro.js src/blocks/woody/samples/resources/htmlarea/plugins/SpellChecker spell-check-logic.cgi spell-check-style.css spell-check-ui.html spell-check-ui.js spell-checker.js src/blocks/woody/samples/resources/htmlarea/plugins/SpellChecker/lang cz.js da.js de.js en.js hu.js it.js ro.js src/blocks/woody/samples/resources/htmlarea/plugins/TableOperations table-operations.js src/blocks/woody/samples/resources/htmlarea/plugins/TableOperations/lang cz.js da.js de.js el.js en.js fi.js hu.js it.js nl.js no.js ro.js src/blocks/woody/samples/resources/htmlarea/popups blank.html custom2.html editor_help.html old-fullscreen.html old_insert_image.html popup.js Log: Removed Apache License 2.0 which was accidently committed to this. Fix dos2unix line-endings. Revision ChangesPath 1.4 +1150 -1150cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/ChangeLog http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/ChangeLog.diff?r1=1.3r2=1.4 1.5 +72 -87 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/dialog.js http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/dialog.js.diff?r1=1.4r2=1.5 1.5 +180 -195 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/htmlarea.css http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/htmlarea.css.diff?r1=1.4r2=1.5 1.5 +2166 -2181cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/htmlarea.js http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/htmlarea.js.diff?r1=1.4r2=1.5 1.4 +263 -263 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/make-release.pl http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/make-release.pl.diff?r1=1.3r2=1.4 1.5 +369 -384 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/popupdiv.js http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/popupdiv.js.diff?r1=1.4r2=1.5 1.5 +139 -154 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/popupwin.js http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/popupwin.js.diff?r1=1.4r2=1.5 1.4 +1 -1 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/reference.html http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/reference.html.diff?r1=1.3r2=1.4 1.4 +2 -2 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/release-notes.html http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/release-notes.html.diff?r1=1.3r2=1.4 1.6 +36 -51 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/lang/b5.js http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/lang/b5.js.diff?r1=1.5r2=1.6 1.7 +63 -78 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/lang/cz.js http://cvs.apache.org/viewcvs/cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/lang/cz.js.diff?r1=1.6r2=1.7 1.6 +38 -53 cocoon-2.1/src/blocks/woody/samples/resources/htmlarea/lang/da.js
cvs commit: cocoon-2.1/src/documentation/xdocs/developing/webapps authentication.xml
cziegeler2004/03/17 23:27:12 Modified:src/documentation/xdocs/developing/webapps authentication.xml Log: Correct docs Revision ChangesPath 1.8 +1 -1 cocoon-2.1/src/documentation/xdocs/developing/webapps/authentication.xml Index: authentication.xml === RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/developing/webapps/authentication.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- authentication.xml6 Mar 2004 02:26:11 - 1.7 +++ authentication.xml18 Mar 2004 07:27:12 - 1.8 @@ -744,7 +744,7 @@ lt;map:parameter name=handler value=myhandler/gt; lt;map:generate src=getinfofromcontext.xml/gt; - lt;map:transform src=session/gt; + lt;map:transform type=session/gt; lt;map:transform src=toHTML/gt; lt;map:serialize/gt; lt;/map:actgt;
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/transformation/helpers DefaultIncludeCacheManager.java
cziegeler2004/03/17 23:42:12 Modified:.status.xml src/java/org/apache/cocoon/transformation/helpers DefaultIncludeCacheManager.java Log: action dev=CZ type=fix fixes-bug=27764 due-to=Corin Moss due-to-email=[EMAIL PROTECTED] DefaultIncludeCacheManager did not release xml-serializer under some circumstances. /action Revision ChangesPath 1.285 +4 -1 cocoon-2.1/status.xml Index: status.xml === RCS file: /home/cvs/cocoon-2.1/status.xml,v retrieving revision 1.284 retrieving revision 1.285 diff -u -r1.284 -r1.285 --- status.xml17 Mar 2004 09:29:14 - 1.284 +++ status.xml18 Mar 2004 07:42:11 - 1.285 @@ -212,6 +212,9 @@ changes release version=@version@ date=@date@ + action dev=CZ type=fix fixes-bug=27764 due-to=Corin Moss due-to-email=[EMAIL PROTECTED] + DefaultIncludeCacheManager did not release xml-serializer under some circumstances. + /action action dev=CZ type=fix fixes-bug=27681 due-to=Peter Brant due-to-email=[EMAIL PROTECTED] DOMFactory can now create a document element. /action 1.8 +21 -16 cocoon-2.1/src/java/org/apache/cocoon/transformation/helpers/DefaultIncludeCacheManager.java Index: DefaultIncludeCacheManager.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/transformation/helpers/DefaultIncludeCacheManager.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DefaultIncludeCacheManager.java 5 Mar 2004 13:03:00 - 1.7 +++ DefaultIncludeCacheManager.java 18 Mar 2004 07:42:12 - 1.8 @@ -20,13 +20,13 @@ import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.component.Component; -import org.apache.avalon.framework.component.ComponentException; -import org.apache.avalon.framework.component.ComponentManager; -import org.apache.avalon.framework.component.Composable; import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.parameters.ParameterException; import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.parameters.Parameters; +import org.apache.avalon.framework.service.ServiceException; +import org.apache.avalon.framework.service.ServiceManager; +import org.apache.avalon.framework.service.Serviceable; import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.caching.CachedResponse; @@ -62,12 +62,12 @@ extends AbstractLogEnabled implements IncludeCacheManager, ThreadSafe, -Composable, +Serviceable, Disposable, Parameterizable, Component { -private ComponentManager manager; +private ServiceManager manager; private SourceResolver resolver; @@ -180,7 +180,7 @@ if (this.getLogger().isDebugEnabled()) { this.getLogger().debug(Thread started for + uri); } -} catch (ComponentException ce) { +} catch (ServiceException ce) { throw new SourceException(Unable to lookup thread pool or xml serializer., ce); } catch (Exception e) { throw new SourceException(Unable to get pooled thread., e); @@ -273,7 +273,7 @@ deserializer = (XMLDeserializer)this.manager.lookup( XMLDeserializer.ROLE ); deserializer.setConsumer(handler); deserializer.deserialize(result); -} catch (ComponentException ce) { +} catch (ServiceException ce) { throw new SAXException(Unable to lookup xml deserializer., ce); } finally { this.manager.release( deserializer ); @@ -302,7 +302,7 @@ deserializer = (XMLDeserializer)this.manager.lookup( XMLDeserializer.ROLE ); deserializer.setConsumer(handler); deserializer.deserialize(response.getResponse()); -} catch (ComponentException ce) { +} catch (ServiceException ce) { throw new SAXException(Unable to lookup xml deserializer., ce); } finally { this.manager.release( deserializer ); @@ -355,8 +355,10 @@ } catch (ProcessingException pe) { throw new SAXException(ProcessingException, pe); -} catch (ComponentException e) { +} catch
cvs commit: cocoon-2.2/src/java/org/apache/cocoon/transformation/helpers DefaultIncludeCacheManager.java
cziegeler2004/03/18 00:00:20 Modified:src/java/org/apache/cocoon/transformation XIncludeTransformer.java AugmentTransformer.java JXTemplateTransformer.java FilterTransformer.java AbstractExtractionTransformer.java TraxTransformer.java src/java/org/apache/cocoon/transformation/helpers DefaultIncludeCacheManager.java Log: action dev=CZ type=fix fixes-bug=27764 due-to=Corin Moss due-to-email=[EMAIL PROTECTED] DefaultIncludeCacheManager did not release xml-serializer under some circumstances. /action And syncing transformation package with 2.1 except i18n Revision ChangesPath 1.16 +25 -26 cocoon-2.2/src/java/org/apache/cocoon/transformation/XIncludeTransformer.java Index: XIncludeTransformer.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/transformation/XIncludeTransformer.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- XIncludeTransformer.java 8 Mar 2004 14:03:31 - 1.15 +++ XIncludeTransformer.java 18 Mar 2004 08:00:19 - 1.16 @@ -51,9 +51,9 @@ /** * Implementation of an XInclude transformer. It supports xml:base attributes, - * xpointer fragment identifiers (see the xpointer package to see what exactly is supported), - * fallback elements, and does xinclude processing on the included content and on the content - * of fallback elements (with loop inclusion detection). + * XPointer fragment identifiers (see the xpointer package to see what exactly is + * supported), fallback elements, and does xinclude processing on the included content + * and on the content of fallback elements (with loop inclusion detection). * * @author a href=mailto:[EMAIL PROTECTED]Donald Ball/a (wrote the original version) * @version CVS $Id$ @@ -151,32 +151,32 @@ } public void startElement(String uri, String name, String raw, Attributes attr) throws SAXException { -if (uri.equals(XINCLUDE_NAMESPACE_URI)) { -if (xIncludeLevel == 1 useFallback name.equals(XINCLUDE_FALLBACK_ELEMENT)) { -fallbackLevel++; - -// don't need these anymore -useFallback = false; -fallBackException = null; - -return; -} else if (xIncludeLevel 0 fallbackLevel 1) { -xIncludeLevel++; -return; -} - -xmlBaseSupport.startElement(uri, name, raw, attr); +if (xIncludeLevel == 1 useFallback XINCLUDE_NAMESPACE_URI.equals(uri) XINCLUDE_FALLBACK_ELEMENT.equals(name)) { +fallbackLevel++; + +// don't need these anymore +useFallback = false; +fallBackException = null; + +return; +} else if (xIncludeLevel 0 fallbackLevel 1) { +xIncludeLevel++; +return; +} + +xmlBaseSupport.startElement(uri, name, raw, attr); +if (XINCLUDE_NAMESPACE_URI.equals(uri)) { if (XINCLUDE_INCLUDE_ELEMENT.equals(name)) { String href = attr.getValue(,XINCLUDE_INCLUDE_ELEMENT_HREF_ATTRIBUTE); if (href == null) { throw new SAXException(raw + must have a 'href' attribute at + getLocation()); } - + String parse = attr.getValue(,XINCLUDE_INCLUDE_ELEMENT_PARSE_ATTRIBUTE); - + if (null == parse) parse=xml; xIncludeLevel++; - + try { processXIncludeElement(href, parse); } catch (ProcessingException e) { @@ -188,11 +188,10 @@ } return; } - + throw new SAXException(Unknown XInclude element + raw + at + getLocation()); - + } else { -xmlBaseSupport.startElement(uri, name, raw, attr); super.startElement(uri,name,raw,attr); } } @@ -209,7 +208,7 @@ fallBackException = null; fallbackLevel = 0; getLogger().error(Exception occured during xinclude processing, and did not find a fallback element., localFallBackException); -throw new SAXException(Exception occured during xinclude processing, and did not find a fallback element: +
cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor FormattingFloatConvertor.java FormattingFloatConvertorBuilder.java
bruno 2004/03/18 03:44:59 Modified:src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor FormattingFloatConvertor.java FormattingFloatConvertorBuilder.java Log: Previous code was an exact duplicate of the FormattingDecimalConvertor(Builder), and couldn't ever have worked correctly. Revision ChangesPath 1.2 +14 -109 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingFloatConvertor.java Index: FormattingFloatConvertor.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingFloatConvertor.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FormattingFloatConvertor.java 9 Mar 2004 10:34:06 - 1.1 +++ FormattingFloatConvertor.java 18 Mar 2004 11:44:58 - 1.2 @@ -1,12 +1,12 @@ /* * Copyright 1999-2004 The Apache Software Foundation. - * + * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,135 +15,40 @@ */ package org.apache.cocoon.forms.datatype.convertor; -import org.outerj.i18n.I18nSupport; import org.outerj.i18n.DecimalFormat; import java.util.Locale; import java.text.ParseException; -import java.math.BigDecimal; -import java.math.BigInteger; /** * A Convertor for [EMAIL PROTECTED] Float}s backed by the - * [EMAIL PROTECTED] java.text.NumberFormat NumberFormat} class. - * - * pA strongformatting pattern/strong can be used. This can either be a locale-dependent - * or locale-independent formatting pattern. When looking up a formatting pattern, a mechansim - * similar to resource bundle lookup is used. Suppose the locale is nl-BE, then first a formatting - * pattern for nl-BE will be sought, then one for nl, and if that is not - * found, finally the locale-independent formatting pattern will be used. + * [EMAIL PROTECTED] java.text.DecimalFormat DecimalFormat} class. * - * pNote: the earlier statement about the fact that this class uses java.text.DecimalFormat - * is not entirely correct. In fact, it uses a small wrapper class that will either delegate to - * java.text.DecimalFormat or com.ibm.icu.text.DecimalFormat. The com.ibm version will automatically - * be used if it is present on the classpath, otherwise the java.text version will be used. + * pThis class is mostly the same as the [EMAIL PROTECTED] FormattingDecimalConvertor}, + * so see there for more information. * * @version CVS $Id$ */ -public class FormattingFloatConvertor implements Convertor { -private int variant; -/** Locale-specific formatting patterns. */ -private LocaleMap localizedPatterns; -/** Non-locale specific formatting pattern. */ -private String nonLocalizedPattern; - -public static final int INTEGER = 0; -public static final int NUMBER = 1; -public static final int CURRENCY = 2; -public static final int PERCENT = 3; +public class FormattingFloatConvertor extends FormattingDecimalConvertor { public FormattingFloatConvertor() { -this.variant = getDefaultVariant(); -this.localizedPatterns = new LocaleMap(); -} - -protected int getDefaultVariant() { -return NUMBER; +super(); } public Object convertFromString(String value, Locale locale, Convertor.FormatCache formatCache) { DecimalFormat decimalFormat = getDecimalFormat(locale, formatCache); try { Number decimalValue = decimalFormat.parse(value); -if (decimalValue instanceof BigDecimal) -; - else if (decimalValue instanceof Integer) - decimalValue = new BigDecimal(decimalValue .intValue()); -else if (decimalValue instanceof Long) -decimalValue = new BigDecimal(decimalValue.longValue()); -else if (decimalValue instanceof Double) -decimalValue = new BigDecimal(decimalValue.doubleValue()); -else if (decimalValue instanceof BigInteger) -decimalValue = new BigDecimal((BigInteger)decimalValue); +if (decimalValue instanceof Float) +return decimalValue; else -return null; - -return
cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl DoubleType.java DoubleTypeBuilder.java
bruno 2004/03/18 03:45:55 Modified:src/blocks/forms/conf forms-datatype.xconf Added: src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor FormattingDoubleConvertor.java FormattingDoubleConvertorBuilder.java PlainDoubleConvertor.java PlainDoubleConvertorBuilder.java src/blocks/forms/java/org/apache/cocoon/forms/datatype/typeimpl DoubleType.java DoubleTypeBuilder.java Log: Added a double datatype Revision ChangesPath 1.2 +6 -0 cocoon-2.1/src/blocks/forms/conf/forms-datatype.xconf Index: forms-datatype.xconf === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/conf/forms-datatype.xconf,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- forms-datatype.xconf 9 Mar 2004 10:34:05 - 1.1 +++ forms-datatype.xconf 18 Mar 2004 11:45:55 - 1.2 @@ -51,6 +51,12 @@ convertor name=formatting src=org.apache.cocoon.forms.datatype.convertor.FormattingFloatConvertorBuilder/ /convertors /datatype + datatype name=double src=org.apache.cocoon.forms.datatype.typeimpl.DoubleTypeBuilder +convertors default=formatting plain=plain + convertor name=plain src=org.apache.cocoon.forms.datatype.convertor.PlainDoubleConvertorBuilder/ + convertor name=formatting src=org.apache.cocoon.forms.datatype.convertor.FormattingDoubleConvertorBuilder/ +/convertors + /datatype datatype name=date src=org.apache.cocoon.forms.datatype.typeimpl.DateTypeBuilder convertors default=formatting plain=millis convertor name=formatting src=org.apache.cocoon.forms.datatype.convertor.FormattingDateConvertorBuilder/ 1.1 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDoubleConvertor.java Index: FormattingDoubleConvertor.java === /* * Copyright 1999-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.cocoon.forms.datatype.convertor; import org.outerj.i18n.DecimalFormat; import java.util.Locale; import java.text.ParseException; /** * A Convertor for [EMAIL PROTECTED] Double}s backed by the * [EMAIL PROTECTED] java.text.DecimalFormat DecimalFormat} class. * * pThis class is mostly the same as the [EMAIL PROTECTED] FormattingDecimalConvertor}, * so see there for more information. * * @version CVS $Id: FormattingDoubleConvertor.java,v 1.1 2004/03/18 11:45:55 bruno Exp $ */ public class FormattingDoubleConvertor extends FormattingDecimalConvertor { public FormattingDoubleConvertor() { super(); } public Object convertFromString(String value, Locale locale, Convertor.FormatCache formatCache) { DecimalFormat decimalFormat = getDecimalFormat(locale, formatCache); try { Number decimalValue = decimalFormat.parse(value); if (decimalValue instanceof Double) return decimalValue; else return new Double(decimalValue.doubleValue()); } catch (ParseException e) { return null; } } public Class getTypeClass() { return Double.class; } } 1.1 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingDoubleConvertorBuilder.java Index: FormattingDoubleConvertorBuilder.java === /* * Copyright 1999-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing
cvs commit: cocoon-2.1/tools/src blocks-build.xsl
joerg 2004/03/18 03:54:13 Modified:tools/src blocks-build.xsl Log: allow arbitrary packages in gump.xml, use case: users might use Cocoon build system for their blocks, http://marc.theaimsgroup.com/?t=10795344963r=1w=4 Revision ChangesPath 1.57 +1 -1 cocoon-2.1/tools/src/blocks-build.xsl Index: blocks-build.xsl === RCS file: /home/cvs/cocoon-2.1/tools/src/blocks-build.xsl,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- blocks-build.xsl 17 Mar 2004 19:51:14 - 1.56 +++ blocks-build.xsl 18 Mar 2004 11:54:13 - 1.57 @@ -367,7 +367,7 @@ jar jarfile=${{build.blocks}}/{$block-name}-block.jar index=true fileset dir=${{build.blocks}}/{$block-name}/dest - include name=org/**/ + include name={translate(package/text(), '.', '/')}/**/ include name=META-INF/**/ /fileset /jar
cvs commit: cocoon-2.2/tools/src blocks-build.xsl
joerg 2004/03/18 03:56:35 Modified:tools/src blocks-build.xsl Log: allow arbitrary packages in gump.xml, use case: users might use Cocoon build system for their blocks, http://marc.theaimsgroup.com/?t=10795344963r=1w=4 Revision ChangesPath 1.37 +1 -1 cocoon-2.2/tools/src/blocks-build.xsl Index: blocks-build.xsl === RCS file: /home/cvs/cocoon-2.2/tools/src/blocks-build.xsl,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- blocks-build.xsl 10 Mar 2004 09:08:25 - 1.36 +++ blocks-build.xsl 18 Mar 2004 11:56:35 - 1.37 @@ -442,7 +442,7 @@ jar jarfile={string('${build.blocks}')}/{$block-name}-block.jar index=true fileset dir={string('${build.blocks}')}/{$block-name}/dest - include name=org/**/ + include name={translate(package/text(), '.', '/')}/**/ include name=META-INF/**/ /fileset /jar
cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms FormManager.java DefaultFormManager.java
bruno 2004/03/18 05:56:09 Modified:src/blocks/forms/java/org/apache/cocoon/forms FormManager.java DefaultFormManager.java Log: Added methods to create a form instance or definition based on a DOM tree instead of a Source. Revision ChangesPath 1.2 +30 -1 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/FormManager.java Index: FormManager.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/FormManager.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FormManager.java 9 Mar 2004 10:34:12 - 1.1 +++ FormManager.java 18 Mar 2004 13:56:09 - 1.2 @@ -16,7 +16,9 @@ package org.apache.cocoon.forms; import org.apache.cocoon.forms.formmodel.Form; +import org.apache.cocoon.forms.formmodel.FormDefinition; import org.apache.excalibur.source.Source; +import org.w3c.dom.Element; /** * Work interface for the component that can create [EMAIL PROTECTED] Form}s. @@ -27,5 +29,32 @@ String ROLE = FormManager.class.getName(); +/** + * Creates a form instance based on the XML form definition + * that can be read from the specified source. + * + * pThe form definition will be cached, so that future form instances + * can be creted quickly. + */ Form createForm(Source source) throws Exception; + +/** + * Creates a form instance based on the XML form definition that is + * supplied as a DOM tree. + * + * pThe specified element must be a fd:form element. + * + * pThe Form Definition will not be cached. + */ +Form createForm(Element formElement) throws Exception; + +/** + * Creates a form definition based on the XML form definition that is + * supplied as a DOM tree. + * + * pThe specified element must be a fd:form element. + + * pThe Form Definition will not be cached. + */ +FormDefinition createFormDefinition(Element formElement) throws Exception; } 1.4 +19 -8 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java Index: DefaultFormManager.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/DefaultFormManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DefaultFormManager.java 11 Mar 2004 02:56:33 - 1.3 +++ DefaultFormManager.java 18 Mar 2004 13:56:09 - 1.4 @@ -97,6 +97,14 @@ return (Form)formDefinition.createInstance(); } +public Form createForm(Element formElement) throws Exception { +return (Form)getFormDefinition(formElement).createInstance(); +} + +public FormDefinition createFormDefinition(Element formElement) throws Exception { +return getFormDefinition(formElement); +} + public FormDefinition getFormDefinition(Source source) throws Exception { FormDefinition formDefinition = (FormDefinition)this.cacheManager.get(source, PREFIX); if (formDefinition == null) { @@ -111,16 +119,19 @@ } Element formElement = formDocument.getDocumentElement(); - -// check that the root element is a fd:form element -if (!(formElement.getLocalName().equals(form) || Constants.DEFINITION_NS.equals(formElement.getNamespaceURI( -throw new Exception(Expected a Cocoon Forms form element at + DomHelper.getLocation(formElement)); - -FormDefinitionBuilder formDefinitionBuilder = (FormDefinitionBuilder)widgetDefinitionBuilderSelector.select(form); -formDefinition = (FormDefinition)formDefinitionBuilder.buildWidgetDefinition(formElement); +formDefinition = getFormDefinition(formElement); this.cacheManager.set(formDefinition, source, PREFIX); } return formDefinition; +} + +public FormDefinition getFormDefinition(Element formElement) throws Exception { +// check that the root element is a fd:form element +if (!(formElement.getLocalName().equals(form) || Constants.DEFINITION_NS.equals(formElement.getNamespaceURI( +throw new Exception(Expected a Cocoon Forms form element at + DomHelper.getLocation(formElement)); + +FormDefinitionBuilder formDefinitionBuilder = (FormDefinitionBuilder)widgetDefinitionBuilderSelector.select(form); +return (FormDefinition)formDefinitionBuilder.buildWidgetDefinition(formElement); } /**
cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/v2 Form.js
bruno 2004/03/18 05:59:20 Modified:src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/v2 Form.js Log: Allow to create the form based on a dom-tree containing the XML form description, in addition to an URI. Revision ChangesPath 1.3 +12 -5 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/v2/Form.js Index: Form.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/v2/Form.js,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Form.js 11 Mar 2004 02:56:32 - 1.2 +++ Form.js 18 Mar 2004 13:59:20 - 1.3 @@ -21,9 +21,11 @@ defineClass(org.apache.cocoon.forms.flow.javascript.v2.ScriptableWidget); /** - * Create a form, given the URI of its definition file + * Create a form, giving either: + * - the URI of its definition file + * - an fd:form element in the form of a org.w3c.dom.Element */ -function Form(uri) { +function Form(formDefinition) { var formMgr = null; var resolver = null; var src = null; @@ -33,9 +35,14 @@ var SourceResolver = Packages.org.apache.cocoon.environment.SourceResolver; formMgr = cocoon.getComponent(FormManager.ROLE); -resolver = cocoon.getComponent(SourceResolver.ROLE); -src = resolver.resolveURI(uri); -var form = formMgr.createForm(src); +var form; +if ((typeof formDefinition) == string || formDefinition instanceof String) { +resolver = cocoon.getComponent(SourceResolver.ROLE); +src = resolver.resolveURI(formDefinition); +form = formMgr.createForm(src); +} else { +form = formMgr.createForm(formDefinition) +} this.binding_ = null; this.formWidget_ = new Widget(form); this.local_ = cocoon.createPageLocal();
cvs commit: cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript woody2.js
joerg 2004/03/18 06:01:44 Modified:src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript woody2.js Log: *** keyword substitution change *** Revision ChangesPath 1.12 +200 -200 cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/woody2.js Index: woody2.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/flow/javascript/woody2.js,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- woody2.js 9 Mar 2004 13:54:25 - 1.11 +++ woody2.js 18 Mar 2004 14:01:44 - 1.12 @@ -1,200 +1,200 @@ -/* - * Copyright 1999-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Implementation of the Woody/FlowScript integration. - * - * @author a href=http://www.apache.org/~sylvain/;Sylvain Wallez/a - * @version CVS $Id$ - */ - -// Revisit this class, so it gives access to more than the value. -defineClass(org.apache.cocoon.woody.flow.javascript.ScriptableWidget); - -/** - * Create a Woody form, given the URI of its definition file - */ -function Form(uri) { -var formMgr = null; -var resolver = null; -var src = null; -try { -formMgr = cocoon.getComponent(Packages.org.apache.cocoon.woody.FormManager.ROLE); -resolver = cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE); -src = resolver.resolveURI(uri); -this.form = formMgr.createForm(src); -this.binding = null; -this.validator = null; -this.eventHandler = null; -// TODO : do we keep this ? -this.formWidget = new Widget(this.form); - -} finally { -cocoon.releaseComponent(formMgr); -if (src != null) resolver.release(src); -cocoon.releaseComponent(resolver); -} -} - -Form.prototype.getModel = function() { -return this.formWidget; -} - -/** - * Get a Widget (the java object) from the form. - * If codename/code is undefined, the form widget itself is returned. - * Otherwise, the form's child widget of name codename/code is returned. - */ -Form.prototype.getWidget = function(name) { -if (name == undefined) { -return this.form; -} else { -return this.form.getWidget(name); -} -} - -/** - * Manages the display of a form and its validation. - * - * This uses some additionnal propertied on the form object : - * - locale : the form locale (default locale is used if not set) - * - validator : additional validation function. This function receives - * the form object as parameter and should return a boolean indicating - * if the form handling is finished (true) or if the form should be - * redisplayed again (false) - * - * On return, the calling code can check some properties to know the form result : - * - isValid : true if the form was sucessfully validated - * - submitId : the id of the widget that triggered the form submit (can be null) - * - * @parameter uri the page uri (like in cocoon.sendPageAndWait()) - * @parameter bizdata some business data for the view (like in cocoon.sendPageAndWait()). - *The woody-form and locale properties are added to this object. - */ -Form.prototype.showForm = function(uri, bizData) { - -if (bizData == undefined) bizData = new Object(); - bizData[Packages.org.apache.cocoon.woody.transformation.WoodyPipelineConfig.WOODY_FORM] = this.form; - -if (this.locale == null) -this.locale = java.util.Locale.getDefault(); -bizData[locale] = this.locale; - -// Keep the first continuation that will be created as the result of this function -var result = null; - -var finished = false; -this.isValid = false; - -do { -var k = cocoon.sendPageAndWait(uri, bizData); -if (result == null) result = k; - -var formContext = - Packages.org.apache.cocoon.woody.flow.javascript.WoodyFlowHelper.getFormContext(cocoon, this.locale); - -// Prematurely add the bizData as a request attribute so that event listeners can use it -// (the same is done by
cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript Form.js
joerg 2004/03/18 06:03:44 Modified:src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript Form.js Log: ask both built-in and custom validation (thanks to Alex Kovacs) Revision ChangesPath 1.3 +5 -5 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/Form.js Index: Form.js === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/Form.js,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Form.js 13 Mar 2004 03:24:44 - 1.2 +++ Form.js 18 Mar 2004 14:03:43 - 1.3 @@ -113,13 +113,13 @@ finished = this.form.process(formContext); // Additional flow-level validation -if (finished this.form.isValid()) { +if (finished) { if (this.validator == null) { - this.isValid = true; +this.isValid = this.form.isValid(); } else { - this.isValid = this.validator(this.form, bizData); - finished = this.isValid; +this.isValid = this.form.isValid() this.validator(this.form, bizData); } +finished = this.isValid; } // FIXME: Theoretically, we should clone the form widget (this.form) to ensure it keeps its
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/sitemap PipelineNode.java
cziegeler2004/03/18 07:08:13 Modified:src/java/org/apache/cocoon/environment/wrapper MutableEnvironmentFacade.java EnvironmentWrapper.java src/java/org/apache/cocoon/environment AbstractEnvironment.java Environment.java src/java/org/apache/cocoon/components/treeprocessor TreeProcessor.java src/test/org/apache/cocoon/environment/mock MockEnvironment.java src/java/org/apache/cocoon/components/treeprocessor/sitemap PipelineNode.java Log: Better solution for the new internal redirect handling Revision ChangesPath 1.7 +8 -1 cocoon-2.1/src/java/org/apache/cocoon/environment/wrapper/MutableEnvironmentFacade.java Index: MutableEnvironmentFacade.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/environment/wrapper/MutableEnvironmentFacade.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- MutableEnvironmentFacade.java 5 Mar 2004 13:02:55 - 1.6 +++ MutableEnvironmentFacade.java 18 Mar 2004 15:08:12 - 1.7 @@ -286,6 +286,13 @@ } /* (non-Javadoc) + * @see org.apache.cocoon.environment.Environment#isInternRedirect() + */ +public boolean isInternalRedirect() { +return env.isInternalRedirect(); +} + +/* (non-Javadoc) * @see org.apache.cocoon.environment.SourceResolver#resolve(java.lang.String) */ public Source resolve(String systemID) throws ProcessingException, SAXException, IOException { 1.15 +12 -5 cocoon-2.1/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java Index: EnvironmentWrapper.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- EnvironmentWrapper.java 11 Mar 2004 14:21:56 - 1.14 +++ EnvironmentWrapper.java 18 Mar 2004 15:08:12 - 1.15 @@ -71,7 +71,7 @@ protected String contentType; -protected boolean external = false; +protected boolean internalRedirect = false; /** * Constructs an EnvironmentWrapper object from a Request @@ -454,13 +454,20 @@ * Always return codefalse/code. */ public boolean isExternal() { -return this.external; +return false; } -public void setExternal(boolean flag) { -this.external = flag; +public void setInternalRedirect(boolean flag) { +this.internalRedirect = flag; if ( flag ) { ((RequestWrapper)this.request).setRequestURI(this.prefix.toString(), this.uris); } +} + +/* (non-Javadoc) + * @see org.apache.cocoon.environment.Environment#isInternRedirect() + */ +public boolean isInternalRedirect() { +return this.internalRedirect; } } 1.19 +8 -1 cocoon-2.1/src/java/org/apache/cocoon/environment/AbstractEnvironment.java Index: AbstractEnvironment.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/environment/AbstractEnvironment.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- AbstractEnvironment.java 5 Mar 2004 13:02:54 - 1.18 +++ AbstractEnvironment.java 18 Mar 2004 15:08:12 - 1.19 @@ -589,4 +589,11 @@ } this.initializedComponents = false; } + +/* (non-Javadoc) + * @see org.apache.cocoon.environment.Environment#isInternRedirect() + */ +public boolean isInternalRedirect() { +return false; +} } 1.7 +12 -5 cocoon-2.1/src/java/org/apache/cocoon/environment/Environment.java Index: Environment.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/environment/Environment.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Environment.java 5 Mar 2004 13:02:54 - 1.6 +++ Environment.java 18 Mar 2004 15:08:12 - 1.7 @@ -199,12 +199,19 @@ void finishingProcessing(); /** - * Is this environment external ? An external environment is one that is created in response - * to an external request (http, commandline, etc.). Environments created by the cocoon: - * protocol aren't external. + * Is this environment external ? An external environment is one that +
cvs commit: cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor TreeProcessor.java
cziegeler2004/03/18 07:15:10 Modified:src/java/org/apache/cocoon/environment Environment.java AbstractEnvironment.java src/test/org/apache/cocoon/environment/mock MockEnvironment.java src/java/org/apache/cocoon/environment/wrapper EnvironmentWrapper.java MutableEnvironmentFacade.java src/java/org/apache/cocoon/components/cprocessor/sitemap/impl PipelineNode.java src/java/org/apache/cocoon/components/cprocessor TreeProcessor.java Log: Better solution for the new internal redirect handling Revision ChangesPath 1.14 +12 -5 cocoon-2.2/src/java/org/apache/cocoon/environment/Environment.java Index: Environment.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/environment/Environment.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- Environment.java 8 Mar 2004 14:02:43 - 1.13 +++ Environment.java 18 Mar 2004 15:15:09 - 1.14 @@ -176,12 +176,19 @@ void finishingProcessing(); /** - * Is this environment external ? An external environment is one that is created in response - * to an external request (http, commandline, etc.). Environments created by the cocoon: - * protocol aren't external. + * Is this environment external ? An external environment is one that + * is created in response to an external request (http, commandline, etc.). + * Environments created by the cocoon: protocol aren't external. * - * @return true is this environment is external + * @return true if this environment is external */ boolean isExternal(); + +/** + * Is this an internal redirect? + * An environment is on internal redirect if it is an internal request + * (via the cocoon: protocol) and used for a redirect. + */ +boolean isInternalRedirect(); } 1.26 +8 -1 cocoon-2.2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java Index: AbstractEnvironment.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/environment/AbstractEnvironment.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- AbstractEnvironment.java 8 Mar 2004 14:02:42 - 1.25 +++ AbstractEnvironment.java 18 Mar 2004 15:15:09 - 1.26 @@ -277,4 +277,11 @@ public void finishingProcessing() { // do nothing here } + +/* (non-Javadoc) + * @see org.apache.cocoon.environment.Environment#isInternRedirect() + */ +public boolean isInternalRedirect() { +return false; +} } 1.9 +6 -0 cocoon-2.2/src/test/org/apache/cocoon/environment/mock/MockEnvironment.java Index: MockEnvironment.java === RCS file: /home/cvs/cocoon-2.2/src/test/org/apache/cocoon/environment/mock/MockEnvironment.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- MockEnvironment.java 8 Mar 2004 14:04:20 - 1.8 +++ MockEnvironment.java 18 Mar 2004 15:15:10 - 1.9 @@ -153,5 +153,11 @@ return true; } +/* (non-Javadoc) + * @see org.apache.cocoon.environment.Environment#isInternalRedirect() + */ +public boolean isInternalRedirect() { +return false; +} } 1.20 +12 -5 cocoon-2.2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java Index: EnvironmentWrapper.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- EnvironmentWrapper.java 11 Mar 2004 14:48:29 - 1.19 +++ EnvironmentWrapper.java 18 Mar 2004 15:15:10 - 1.20 @@ -62,7 +62,7 @@ protected String contentType; -protected boolean external = false; +protected boolean internalRedirect = false; /** * Constructs an EnvironmentWrapper object from a Request @@ -281,13 +281,20 @@ * Always return codefalse/code. */ public boolean isExternal() { -return this.external; +return false; } -public void setExternal(boolean flag) { -this.external = flag; +public void setInternalRedirect(boolean flag) { +this.internalRedirect = flag; if ( flag ) {
cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor FormattingFloatConvertorBuilder.java
joerg 2004/03/18 07:47:18 Modified:src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor FormattingFloatConvertorBuilder.java Log: imports Revision ChangesPath 1.4 +1 -8 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingFloatConvertorBuilder.java Index: FormattingFloatConvertorBuilder.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/datatype/convertor/FormattingFloatConvertorBuilder.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- FormattingFloatConvertorBuilder.java 18 Mar 2004 11:44:59 - 1.3 +++ FormattingFloatConvertorBuilder.java 18 Mar 2004 15:47:18 - 1.4 @@ -15,13 +15,6 @@ */ package org.apache.cocoon.forms.datatype.convertor; -import org.w3c.dom.Element; -import org.apache.cocoon.forms.Constants; -import org.apache.cocoon.forms.util.DomHelper; -import org.apache.cocoon.i18n.I18nUtils; - -import java.util.Locale; - /** * Builds [EMAIL PROTECTED] FormattingFloatConvertor}s. *
cvs commit: cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/samples/slide AdminHelper.java
joerg 2004/03/18 10:29:47 Modified:src/blocks/slide/java/org/apache/cocoon/samples/slide AdminHelper.java Log: unused local variable removed Revision ChangesPath 1.9 +0 -1 cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/samples/slide/AdminHelper.java Index: AdminHelper.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/samples/slide/AdminHelper.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- AdminHelper.java 17 Mar 2004 22:44:43 - 1.8 +++ AdminHelper.java 18 Mar 2004 18:29:47 - 1.9 @@ -348,7 +348,6 @@ String userUri = usersPath + / + username; SlideToken slideToken = new SlideTokenImpl(new CredentialsToken(caller)); -Structure structure = nat.getStructureHelper(); Content content = nat.getContentHelper(); try {
cvs commit: cocoon-2.2/src/java/org/apache/cocoon/xml AbstractXMLProducer.java
joerg 2004/03/18 10:33:07 Modified:src/java/org/apache/cocoon/xml AbstractXMLProducer.java Log: fixed bug 27678, thanks to Peter Brant: setConsumer() calls setContentHandler() + setLexicalHandler() Revision ChangesPath 1.5 +3 -7 cocoon-2.2/src/java/org/apache/cocoon/xml/AbstractXMLProducer.java Index: AbstractXMLProducer.java === RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/xml/AbstractXMLProducer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AbstractXMLProducer.java 8 Mar 2004 14:04:00 - 1.4 +++ AbstractXMLProducer.java 18 Mar 2004 18:33:07 - 1.5 @@ -49,8 +49,8 @@ */ public void setConsumer(XMLConsumer consumer) { this.xmlConsumer = consumer; -this.contentHandler = consumer; -this.lexicalHandler = consumer; +setContentHandler(consumer); +setLexicalHandler(consumer); } /** @@ -68,10 +68,6 @@ * br * Subclasses may retrieve this codeLexicalHandler/code instance * accessing the protected codesuper.lexicalHandler/code field. - * - * @exception IllegalStateException If the codeLexicalHandler/code or - * the codeXMLConsumer/code were - * already set. */ public void setLexicalHandler(LexicalHandler handler) { this.lexicalHandler = handler;
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/xml AbstractXMLProducer.java
joerg 2004/03/18 10:33:13 Modified:src/java/org/apache/cocoon/xml AbstractXMLProducer.java Log: fixed bug 27678, thanks to Peter Brant: setConsumer() calls setContentHandler() + setLexicalHandler() Revision ChangesPath 1.3 +3 -7 cocoon-2.1/src/java/org/apache/cocoon/xml/AbstractXMLProducer.java Index: AbstractXMLProducer.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/xml/AbstractXMLProducer.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AbstractXMLProducer.java 5 Mar 2004 13:03:01 - 1.2 +++ AbstractXMLProducer.java 18 Mar 2004 18:33:13 - 1.3 @@ -49,8 +49,8 @@ */ public void setConsumer(XMLConsumer consumer) { this.xmlConsumer = consumer; -this.contentHandler = consumer; -this.lexicalHandler = consumer; +setContentHandler(consumer); +setLexicalHandler(consumer); } /** @@ -68,10 +68,6 @@ * br * Subclasses may retrieve this codeLexicalHandler/code instance * accessing the protected codesuper.lexicalHandler/code field. - * - * @exception IllegalStateException If the codeLexicalHandler/code or - * the codeXMLConsumer/code were - * already set. */ public void setLexicalHandler(LexicalHandler handler) { this.lexicalHandler = handler;
cvs commit: cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/pluto PortletURLProviderImpl.java
cziegeler2004/03/18 11:01:15 Modified:src/blocks/portal/java/org/apache/cocoon/portal/pluto PortletURLProviderImpl.java Log: Fix for NPE as reported in bug 27518 Revision ChangesPath 1.5 +7 -1 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/pluto/PortletURLProviderImpl.java Index: PortletURLProviderImpl.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/pluto/PortletURLProviderImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PortletURLProviderImpl.java 16 Mar 2004 15:56:43 - 1.4 +++ PortletURLProviderImpl.java 18 Mar 2004 19:01:15 - 1.5 @@ -194,6 +194,12 @@ PortalService service = null; try { service = (PortalService) this.manager.lookup(PortalService.ROLE); +if ( service.getPortalName() == null ) { +// this happens when the core log is set to debug +// and Cocoon debugs all session attributes +// otherwise this can't happen +return super.toString(); +} LinkService linkService = service.getComponentManager().getLinkService(); //TODO - secure
cvs commit: cocoon-2.1/src/blocks/apples/samples sitemap.xmap
joerg 2004/03/18 13:04:41 Modified:src/blocks/forms/java/org/apache/cocoon/forms/transformation WidgetReplacingPipe.java EffectWidgetReplacingPipe.java src/blocks/apples/java/org/apache/cocoon/components/flow/apples/samples BindingWoodyApple.java src/blocks/forms/java/org/apache/cocoon/forms/acting HandleFormSubmitAction.java src/blocks/forms/samples/v2 sitemap.xmap src/blocks/forms/samples sitemap.xmap src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript Form.js src/blocks/forms/java/org/apache/cocoon/forms/samples InitForm1Action.java src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/v2 Form.js src/blocks/forms/conf forms-transformator.xmap forms-generator.xmap src/blocks/petstore/samples sitemap.xmap src/blocks/forms/samples/aggregate sitemap.xmap src/blocks/forms/java/org/apache/cocoon/forms Constants.java tools/targets upgrade-build.xml src/blocks/apples/samples sitemap.xmap Added: src/blocks/forms/java/org/apache/cocoon/forms/transformation FormsTemplateTransformer.java FormsPipelineConfig.java src/blocks/forms/samples/messages FormsMessages_fr.xml FormsMessages.xml FormsMessages_it_IT.xml src/blocks/forms/java/org/apache/cocoon/forms/acting AbstractFormsAction.java src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript FormsFlowHelper.java src/blocks/forms/java/org/apache/cocoon/forms/generation FormsGenerator.java Removed: src/blocks/forms/java/org/apache/cocoon/forms/transformation FormPipelineConfig.java FormTemplateTransformer.java src/blocks/forms/samples/messages FormMessages_fr.xml FormMessages.xml FormMessages_it_IT.xml src/blocks/forms/java/org/apache/cocoon/forms/acting AbstractFormAction.java src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript FormFlowHelper.java src/blocks/forms/java/org/apache/cocoon/forms/generation FormGenerator.java Log: reverting the renaming from forms to form - sorry for any confusion Revision ChangesPath 1.5 +3 -3 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/transformation/WidgetReplacingPipe.java Index: WidgetReplacingPipe.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/transformation/WidgetReplacingPipe.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- WidgetReplacingPipe.java 11 Mar 2004 02:56:32 - 1.4 +++ WidgetReplacingPipe.java 18 Mar 2004 21:04:39 - 1.5 @@ -92,7 +92,7 @@ protected boolean repeaterWidget; protected WidgetReplacingPipe.InsertStylingContentHandler stylingHandler = new WidgetReplacingPipe.InsertStylingContentHandler(); -protected FormPipelineConfig pipeContext; +protected FormsPipelineConfig pipeContext; /** * Have we encountered a wi:style element in a widget ? @@ -105,7 +105,7 @@ protected String namespacePrefix; -public void init(Widget newContextWidget, FormPipelineConfig newPipeContext) { +public void init(Widget newContextWidget, FormsPipelineConfig newPipeContext) { contextWidget = newContextWidget; inWidgetElement = false; elementNestingCounter = 0; 1.7 +4 -4 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java Index: EffectWidgetReplacingPipe.java === RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- EffectWidgetReplacingPipe.java15 Mar 2004 21:33:20 - 1.6 +++ EffectWidgetReplacingPipe.java18 Mar 2004 21:04:39 - 1.7 @@ -66,7 +66,7 @@ * Form location attribute on codeft:form-template/code element, containing * JXPath expression which should result in Form object. * - * @see FormPipelineConfig#findForm + * @see FormsPipelineConfig#findForm */ private static final String LOCATION = location;
cvs commit: cocoon-2.1/tools/targets upgrade-build.xml
joerg 2004/03/18 15:17:21 Modified:tools/targets upgrade-build.xml Log: updates on repeater binding syntax only on demand Revision ChangesPath 1.9 +60 -24cocoon-2.1/tools/targets/upgrade-build.xml Index: upgrade-build.xml === RCS file: /home/cvs/cocoon-2.1/tools/targets/upgrade-build.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- upgrade-build.xml 18 Mar 2004 21:04:41 - 1.8 +++ upgrade-build.xml 18 Mar 2004 23:17:21 - 1.9 @@ -24,7 +24,7 @@ /tstamp target -name=woody2CocoonForms-renaming +name=Woody2CocoonForms description=Updates from Woody to CocoonForms echo @@ -121,13 +121,6 @@ replacevalue![CDATA[exclude-result-prefixes=fi]]/replacevalue /replace -xslt basedir=${target.dir} destdir=${temp.dir} - includes=**/*.xml extension=.xml - style=tools/src/cforms-repeater-syntax.xsl/ -move todir=${target.dir} - fileset dir=${temp.dir}/ -/move - !-- updating sitemaps -- replace dir=${target.dir} include name=**/*.xmap/ @@ -185,6 +178,30 @@ echo - +Please read carefully! +In the next step you can update the repeater binding syntax in your binding +files. This can only be done by an XSLT and this transformation can neither +preserve possibly available DocType declarations nor every layout detail +(e.g. attribute order). +You will be asked for a directory for the binding files. +- +/echo + +input message=Do you want to update the repeater binding syntax in your binding files automatically? (yes|no) + addproperty=updateRepeaterSyntaxInput + defaultvalue=no/ + +condition property=updateRepeaterSyntax + or +equals arg1=yes arg2=${updateRepeaterSyntaxInput} casesensitive=false trim=true/ +equals arg1=y arg2=${updateRepeaterSyntaxInput} casesensitive=false trim=true/ + /or +/condition + +antcall target=Woody2CocoonForms-repeater-syntax/ + +echo +- The update was successful so far. You can now choose whether you want to copy the updated files from the target directory back to the source directory. @@ -204,34 +221,53 @@ /or /condition -fail unless=copyFiles -The update was not completed as you chose not to copy the updated files. -Either do this by hand or restart this update process. -The updated files can be found at: -${target.dir} -/fail +antcall target=Woody2CocoonForms-copy-files/ + +echo +- +The update is now complete. Have much fun with the new Cocoon Forms. + + The Apache Cocoon Team +- +/echo + + /target + + target name=Woody2CocoonForms-repeater-syntax if=updateRepeaterSyntax -input - message=Please enter the backup dir (default is ${target.dir}_orig): +input message=Please enter the binding dir *relative* to the above entered source dir ${target.dir}: + addproperty=binding.dir + defaultvalue=./ + +xslt basedir=${target.dir}/${binding.dir} destdir=${temp.dir} + includes=**/*.xml extension=.xml + style=tools/src/cforms-repeater-syntax.xsl/ +move todir=${target.dir}/${binding.dir} + fileset dir=${temp.dir}/ +/move + /target + + target name=Woody2CocoonForms-copy-files if=copyFiles + depends=Woody2CocoonForms-do-not-copy-files +input message=Please enter the backup dir (default is ${target.dir}_orig): addproperty=backup.dir defaultvalue=${target.dir}_orig/ copy todir=${backup.dir} fileset dir=${src.dir}/ /copy - +!-- copy todir=${src.dir} fileset dir=${target.dir}/ /copy +-- + /target + target name=Woody2CocoonForms-do-not-copy-files unless=copyFiles echo -- -The update is now complete. Have much fun with the new Cocoon Forms. - - The Apache Cocoon Team -- +You chosed not to copy the updated files. Either do this by hand or restart +this update process. The updated files can be found at: +${target.dir} /echo - /target - /project
cvs commit: cocoon-2.1/tools/targets upgrade-build.xml
joerg 2004/03/18 15:43:51 Modified:tools/targets upgrade-build.xml Log: update also references to stylesheets (not only in sitemap, but also other stylesheets) Revision ChangesPath 1.10 +19 -6 cocoon-2.1/tools/targets/upgrade-build.xml Index: upgrade-build.xml === RCS file: /home/cvs/cocoon-2.1/tools/targets/upgrade-build.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- upgrade-build.xml 18 Mar 2004 23:17:21 - 1.9 +++ upgrade-build.xml 18 Mar 2004 23:43:50 - 1.10 @@ -121,6 +121,25 @@ replacevalue![CDATA[exclude-result-prefixes=fi]]/replacevalue /replace +!-- references to stylesheets in sitemap and stylesheets -- +replace dir=${target.dir} + include name=**/*.xmap/ + include name=**/*.xsl/ + include name=**/*.xslt/ + replacefilter token=woody-advanced-field-styling.xsl + value=forms-advanced-field-styling.xsl/ + replacefilter token=woody-calendar-styling.xsl + value=forms-calendar-styling.xsl/ + replacefilter token=woody-field-styling.xsl + value=forms-field-styling.xsl/ + replacefilter token=woody-htmlarea-styling.xsl + value=forms-htmlarea-styling.xsl/ + replacefilter token=woody-page-styling.xsl + value=forms-page-styling.xsl/ + replacefilter token=woody-samples-styling.xsl + value=forms-samples-styling.xsl/ +/replace + !-- updating sitemaps -- replace dir=${target.dir} include name=**/*.xmap/ @@ -137,12 +156,6 @@ | - Forms(Generator|TemplateTransformer|Messages) +-- replacefilter token=Woody value=Forms/ - !--+ - | - stylesheet names - +-- - replacefilter -token=woody-samples-styling.xsl -value=forms-samples-styling.xsl/ !--+ | - hints for actions (removing woody prefix) +--
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/xml ParamSaxBuffer.java
vgritsenko2004/03/18 15:59:12 Modified:src/java/org/apache/cocoon/xml ParamSaxBuffer.java Log: Add new bug... Revision ChangesPath 1.5 +3 -1 cocoon-2.1/src/java/org/apache/cocoon/xml/ParamSaxBuffer.java Index: ParamSaxBuffer.java === RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/xml/ParamSaxBuffer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ParamSaxBuffer.java 17 Mar 2004 16:20:08 - 1.4 +++ ParamSaxBuffer.java 18 Mar 2004 23:59:12 - 1.5 @@ -49,6 +49,8 @@ /** * Parses text and extracts code{name}/code parameters for later * substitution. + * + * FIXME: This method throws exception when '{' and '}' are separated onto two character events */ public void characters(char ch[], int start, int length) throws SAXException { final int end = start + length;