svn commit: r164017 - /cocoon/trunk/tools/external-project-build/generic-build.xml
Author: reinhard Date: Thu Apr 21 02:42:01 2005 New Revision: 164017 URL: http://svn.apache.org/viewcvs?rev=164017&view=rev Log: fix dependencies, start with support for unit tests Added: cocoon/trunk/tools/external-project-build/generic-build.xml Added: cocoon/trunk/tools/external-project-build/generic-build.xml URL: http://svn.apache.org/viewcvs/cocoon/trunk/tools/external-project-build/generic-build.xml?rev=164017&view=auto == --- cocoon/trunk/tools/external-project-build/generic-build.xml (added) +++ cocoon/trunk/tools/external-project-build/generic-build.xml Thu Apr 21 02:42:01 2005 @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file
svn commit: r164036 - /cocoon/blocks/spring-app/trunk/java/org/apache/cocoon/spring/SpringComponentLocator.java
Author: cziegeler Date: Thu Apr 21 04:08:05 2005 New Revision: 164036 URL: http://svn.apache.org/viewcvs?rev=164036&view=rev Log: Store context in request local attribute Modified: cocoon/blocks/spring-app/trunk/java/org/apache/cocoon/spring/SpringComponentLocator.java Modified: cocoon/blocks/spring-app/trunk/java/org/apache/cocoon/spring/SpringComponentLocator.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/spring-app/trunk/java/org/apache/cocoon/spring/SpringComponentLocator.java?rev=164036&r1=164035&r2=164036&view=diff == --- cocoon/blocks/spring-app/trunk/java/org/apache/cocoon/spring/SpringComponentLocator.java (original) +++ cocoon/blocks/spring-app/trunk/java/org/apache/cocoon/spring/SpringComponentLocator.java Thu Apr 21 04:08:05 2005 @@ -251,7 +251,7 @@ */ protected ApplicationContext getParentContext() { final Request request = ObjectModelHelper.getRequest(this.cocoon.getCurrentObjectModel()); -ApplicationContext parentContext = (ApplicationContext)request.getAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE); +ApplicationContext parentContext = (ApplicationContext)request.getAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE, Request.REQUEST_SCOPE); if ( parentContext == null ) { // there is no parent sitemap with an application context @@ -267,16 +267,16 @@ */ public void enteredSitemap(EnterSitemapEvent event) { final Request request = ObjectModelHelper.getRequest(event.getEnvironment().getObjectModel()); -final Object oldContext = request.getAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE); +final Object oldContext = request.getAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE, Request.REQUEST_SCOPE); if ( oldContext != null ) { -Stack stack = (Stack)request.getAttribute("ac-stack"); +Stack stack = (Stack)request.getAttribute("ac-stack", Request.REQUEST_SCOPE); if ( stack == null ) { stack = new Stack(); -request.setAttribute("ac-stack", stack); +request.setAttribute("ac-stack", stack, Request.REQUEST_SCOPE); } stack.push(oldContext); } -request.setAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE, this.wac); +request.setAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE, this.wac, Request.REQUEST_SCOPE); } /** @@ -284,14 +284,14 @@ */ public void leftSitemap(LeaveSitemapEvent event) { final Request request = ObjectModelHelper.getRequest(event.getEnvironment().getObjectModel()); -final Stack stack = (Stack)request.getAttribute("ac-stack"); +final Stack stack = (Stack)request.getAttribute("ac-stack", Request.REQUEST_SCOPE); if ( stack == null ) { -request.removeAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE); +request.removeAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE, Request.REQUEST_SCOPE); } else { final Object oldContext = stack.pop(); -request.setAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE, oldContext); +request.setAttribute(APPLICATION_CONTEXT_REQUEST_ATTRIBUTE, oldContext, Request.REQUEST_SCOPE); if ( stack.size() == 0 ) { -request.removeAttribute("ac-stack"); +request.removeAttribute("ac-stack", Request.REQUEST_SCOPE); } } }
svn commit: r164042 - in /cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml: ImmutableAttributesImpl.java XMLUtils.java
Author: vgritsenko Date: Thu Apr 21 05:09:38 2005 New Revision: 164042 URL: http://svn.apache.org/viewcvs?rev=164042&view=rev Log: public static empty attributes should be an immutable object. use single FACTORY. add serialize(XMLizable) method. Added: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java (with props) Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/XMLUtils.java Added: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java?rev=164042&view=auto == --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java (added) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java Thu Apr 21 05:09:38 2005 @@ -0,0 +1,74 @@ +/* + * Copyright 2005 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.xml; + +import org.xml.sax.Attributes; + +/** + * Immutable attributes + * + * @version $Id$ + */ +public class ImmutableAttributesImpl extends AttributesImpl { + +public ImmutableAttributesImpl() { +super(); +} + +public ImmutableAttributesImpl(Attributes attrs) { +super(attrs); +} + +public void clear() { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void removeAttribute(int index) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void setLocalName(int index, String localName) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void setQName(int index, String qName) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void setType(int index, String type) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void setURI(int index, String uri) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void setValue(int index, String value) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void setAttributes(Attributes atts) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void setAttribute(int index, String uri, String localName, String qName, String type, String value) { +throw new UnsupportedOperationException("immutable attributes"); +} + +public void addAttribute(String uri, String localName, String qName, String type, String value) { +throw new UnsupportedOperationException("immutable attributes"); +} +} Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java -- svn:eol-style = native Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java -- svn:keywords = Id Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/XMLUtils.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/XMLUtils.java?rev=164042&r1=164041&r2=164042&view=diff == --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/XMLUtils.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/XMLUtils.java Thu Apr 21 05:09:38 2005 @@ -1,12 +1,12 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. - * + * Copyright 1999-2005 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. @@ -44,19 +44,23 @@ * @author
svn commit: r164043 - in /cocoon/trunk/src/java/org/apache/cocoon/xml: ImmutableAttributesImpl.java XMLUtils.java
Author: vgritsenko Date: Thu Apr 21 05:11:55 2005 New Revision: 164043 URL: http://svn.apache.org/viewcvs?rev=164043&view=rev Log: ipublic static empty attributes should be an immutable object. use single FACTORY. add serialize(XMLizable) method. Added: cocoon/trunk/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java (props changed) - copied unchanged from r164042, cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java Modified: cocoon/trunk/src/java/org/apache/cocoon/xml/XMLUtils.java Copied: cocoon/trunk/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java (from r164042, cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java) URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java?p2=cocoon/trunk/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java&p1=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java&r1=164042&r2=164043&rev=164043&view=diff == (empty) Propchange: cocoon/trunk/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java -- svn:eol-style = native Propchange: cocoon/trunk/src/java/org/apache/cocoon/xml/ImmutableAttributesImpl.java -- svn:keywords = Id Modified: cocoon/trunk/src/java/org/apache/cocoon/xml/XMLUtils.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/xml/XMLUtils.java?rev=164043&r1=164042&r2=164043&view=diff == --- cocoon/trunk/src/java/org/apache/cocoon/xml/XMLUtils.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/xml/XMLUtils.java Thu Apr 21 05:11:55 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 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. @@ -44,12 +44,16 @@ * @author mailto:[EMAIL PROTECTED]">Nicola Ken Barozzi * @author mailto:[EMAIL PROTECTED]">Sylvain Wallez * @author mailto:[EMAIL PROTECTED]">Carsten Ziegeler - * @version CVS $Id: XMLUtils.java,v 1.10 2004/06/18 12:38:31 vgritsenko Exp $ + * @version $Id$ */ public class XMLUtils { -public static final AttributesImpl EMPTY_ATTRIBUTES = new AttributesImpl(); +/** + * Empty attributes immutable object. + */ +public static final Attributes EMPTY_ATTRIBUTES = new ImmutableAttributesImpl(); +private static final SAXTransformerFactory FACTORY = (SAXTransformerFactory) TransformerFactory.newInstance(); private static final Properties XML_FORMAT = createDefaultPropertiesForXML(false); private static final Properties XML_FORMAT_NODECL = createDefaultPropertiesForXML(true); @@ -199,9 +203,10 @@ if (node == null) { return ""; } + StringWriter writer = new StringWriter(); TransformerHandler transformerHandler; -transformerHandler = ((SAXTransformerFactory)TransformerFactory.newInstance()).newTransformerHandler(); +transformerHandler = FACTORY.newTransformerHandler(); transformerHandler.getTransformer().setOutputProperties(format); transformerHandler.setResult(new StreamResult(writer)); if (node.getNodeType() != Node.DOCUMENT_NODE) { @@ -212,13 +217,44 @@ if (node.getNodeType() != Node.DOCUMENT_NODE) { transformerHandler.endDocument(); } + +return writer.toString(); +} catch (javax.xml.transform.TransformerException e) { +throw new ProcessingException("TransformerException: " + e, e); +} catch (SAXException e) { +throw new ProcessingException("SAXException while streaming DOM node to SAX: " + e, e); +} +} + +/** + * Serialize a XMLizable into a string. + * If the object is null the empty string is returned. + * + * @param format The format of the output to be used by SAX transformer. + * @see OutputKeys + */ +public static String serialize(org.apache.excalibur.xml.sax.XMLizable xml, Properties format) +throws ProcessingException { + +try { +if (xml == null) { +return ""; +} + +StringWriter writer = new StringWriter(); +TransformerHandler transformerHandler; +transformerHandler = FACTORY.newTransformerHandler(); +transformerHandler.getTransformer().setOutputProperties(format); +transformerHandler.setResult(new StreamResult(writer)); +transform
svn commit: r164046 - /cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java /cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMStreamer.java
Author: vgritsenko Date: Thu Apr 21 05:29:22 2005 New Revision: 164046 URL: http://svn.apache.org/viewcvs?rev=164046&view=rev Log: DOMStreamer: add missing Recyclable. DOMBuilder: add constructor taking factory. Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMStreamer.java Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java?rev=164046&r1=164045&r2=164046&view=diff == --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java Thu Apr 21 05:29:22 2005 @@ -1,12 +1,12 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. - * + * Copyright 1999-2005 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. @@ -16,10 +16,12 @@ package org.apache.cocoon.xml.dom; import org.apache.avalon.framework.CascadingRuntimeException; + import org.apache.cocoon.xml.AbstractXMLPipe; -import org.xml.sax.SAXException; + import org.w3c.dom.Document; import org.w3c.dom.Node; +import org.xml.sax.SAXException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; @@ -31,13 +33,15 @@ * DOM Document from SAX events. * * @author mailto:[EMAIL PROTECTED]">Carsten Ziegeler - * @version CVS $Id$ + * @version $Id$ */ -public class DOMBuilder -extends AbstractXMLPipe { +public class DOMBuilder extends AbstractXMLPipe { + +/** The default transformer factory shared by all instances */ +protected static final SAXTransformerFactory FACTORY = (SAXTransformerFactory) TransformerFactory.newInstance(); -/** The transformer factory shared by all instances */ -protected static final SAXTransformerFactory factory = (SAXTransformerFactory)TransformerFactory.newInstance(); +/** The transformer factory */ +protected SAXTransformerFactory factory; /** The listener */ protected Listener listener; @@ -52,7 +56,14 @@ * Construct a new instance of this DOMBuilder. */ public DOMBuilder() { -this( (Listener)null, (Node)null ); +this((Listener) null, (Node) null); +} + +/** + * Construct a new instance of this DOMBuilder. + */ +public DOMBuilder(SAXTransformerFactory factory) { +this(factory, null, null); } /** @@ -60,13 +71,13 @@ * @deprecated Use DOMBuilder() instead. */ public DOMBuilder(DOMFactory factory) { -this( (Listener)null, (Node)null ); +this((Listener) null, (Node) null); } /** * Construct a new instance of this DOMBuilder. */ -public DOMBuilder( Listener listener ) { +public DOMBuilder(Listener listener) { this(listener, null); } @@ -74,7 +85,7 @@ * Construct a new instance of this DOMBuilder. * @deprecated Use DOMBuilder(listener) instead. */ -public DOMBuilder( DOMFactory factory, Listener listener ) { +public DOMBuilder(DOMFactory factory, Listener listener) { this(listener, null); } @@ -82,52 +93,47 @@ * Construct a new instance of this DOMBuilder. * @deprecated Use DOMBuilder(listener, parentNode) instead. */ -public DOMBuilder( DOMFactory domFactory, Listener listener, Node parentNode ) { +public DOMBuilder(DOMFactory domFactory, Listener listener, Node parentNode) { this(listener, parentNode); } /** - * Construct a new instance of this DOMBuilder. + * Constructs a new instance that appends nodes to the given parent node. + * + * Note: You cannot use a Listener when appending to a + * Node, because the notification occurs at endDocument() + * which does not happen here. */ -public DOMBuilder( Listener listener, Node parentNode ) { -super(); -this.listener = listener; -try { -TransformerHandler handler = factory.newTransformerHandler(); -this.setContentHandler(handler); -this.setLexicalHandler(handler); -this.parentNode = parentNode; -if (parentNode != null) { -this.result = new DOMResult( parentNode ); -} else { -this.result = ne
svn commit: r164048 - /cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java /cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMStreamer.java
Author: vgritsenko Date: Thu Apr 21 05:35:57 2005 New Revision: 164048 URL: http://svn.apache.org/viewcvs?rev=164048&view=rev Log: DOMStreamer: add missing Recyclable. DOMBuilder: add constructor taking factory. Modified: cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMStreamer.java Modified: cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java?rev=164048&r1=164047&r2=164048&view=diff == --- cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/xml/dom/DOMBuilder.java Thu Apr 21 05:35:57 2005 @@ -1,12 +1,12 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. - * + * Copyright 1999-2005 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,29 +15,33 @@ */ package org.apache.cocoon.xml.dom; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMResult; -import javax.xml.transform.sax.SAXTransformerFactory; -import javax.xml.transform.sax.TransformerHandler; - import org.apache.avalon.framework.CascadingRuntimeException; + import org.apache.cocoon.xml.AbstractXMLPipe; + import org.w3c.dom.Document; import org.w3c.dom.Node; import org.xml.sax.SAXException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.sax.SAXTransformerFactory; +import javax.xml.transform.sax.TransformerHandler; + /** * The DOMBuilder is a utility class that will generate a W3C * DOM Document from SAX events. * * @author mailto:[EMAIL PROTECTED]">Carsten Ziegeler - * @version CVS $Id: DOMBuilder.java,v 1.4 2004/05/26 01:55:30 joerg Exp $ + * @version $Id$ */ -public class DOMBuilder -extends AbstractXMLPipe { +public class DOMBuilder extends AbstractXMLPipe { + +/** The default transformer factory shared by all instances */ +protected static final SAXTransformerFactory FACTORY = (SAXTransformerFactory) TransformerFactory.newInstance(); -/** The transformer factory shared by all instances */ -protected static final SAXTransformerFactory factory = (SAXTransformerFactory)TransformerFactory.newInstance(); +/** The transformer factory */ +protected SAXTransformerFactory factory; /** The listener */ protected Listener listener; @@ -52,58 +56,60 @@ * Construct a new instance of this DOMBuilder. */ public DOMBuilder() { -this( (Listener)null, (Node)null ); +this((Listener) null, (Node) null); } /** * Construct a new instance of this DOMBuilder. */ -public DOMBuilder( Listener listener ) { -this(listener, null); +public DOMBuilder(SAXTransformerFactory factory) { +this(factory, null, null); } /** * Construct a new instance of this DOMBuilder. */ -public DOMBuilder( Listener listener, Node parentNode ) { -super(); -this.listener = listener; -try { -TransformerHandler handler = factory.newTransformerHandler(); -this.setContentHandler(handler); -this.setLexicalHandler(handler); -this.parentNode = parentNode; -if (parentNode != null) { -this.result = new DOMResult( parentNode ); -} else { -this.result = new DOMResult(); -} -handler.setResult(this.result); -} catch (javax.xml.transform.TransformerException local) { -throw new CascadingRuntimeException("Fatal-Error: Unable to get transformer handler", local); -} +public DOMBuilder(Listener listener) { +this(listener, null); } /** - * Constructs a new instance that appends nodes to the given parent node. - * Note : you cannot use a Listener when appending to a + * Constructs a new instance that appends nodes to the given parent node. + * + * Note: You cannot use a Listener when appending to a * Node, because the notification occurs at endDocument() * which does not happen here. */ -public DOMBuilder( Node parentNode ) { -this( null, parentNode); +public DOMBuilder(Node parentNode) { +this(null, parentNode); } /** - * Recycling + * Construct a new instance of this DOMBui
svn commit: r164112 - in /cocoon: blocks/core/forms/trunk/java/org/apache/cocoon/forms/binding/ blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/ trunk/ trunk/src/java/org/apache/cocoon/ trunk/src/java/org/apache/cocoon/bean/ trunk/src/java/org/apache/cocoon/core/ trunk/src/java/org/apache/cocoon/core/container/ trunk/src/java/org/apache/cocoon/serialization/ trunk/src/test/org/apache/cocoon/ trunk/src/test/org/apache/cocoon/core/container/
Author: cziegeler Date: Thu Apr 21 13:04:01 2005 New Revision: 164112 URL: http://svn.apache.org/viewcvs?rev=164112&view=rev Log: Remove the need for context object (where possible) Reduce default logging output during junit tests Modified: cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java cocoon/trunk/build.properties cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java cocoon/trunk/src/java/org/apache/cocoon/bean/CocoonWrapper.java cocoon/trunk/src/java/org/apache/cocoon/core/Core.java cocoon/trunk/src/java/org/apache/cocoon/core/CoreUtil.java cocoon/trunk/src/java/org/apache/cocoon/core/container/ComponentEnvironment.java cocoon/trunk/src/java/org/apache/cocoon/core/container/ComponentFactory.java cocoon/trunk/src/java/org/apache/cocoon/core/container/CoreServiceManager.java cocoon/trunk/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java cocoon/trunk/src/test/org/apache/cocoon/CocoonTestCase.java cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java cocoon/trunk/src/test/org/apache/cocoon/core/container/ContainerTestCase.java Modified: cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java?rev=164112&r1=164111&r2=164112&view=diff == --- cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java (original) +++ cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java Thu Apr 21 13:04:01 2005 @@ -15,7 +15,6 @@ */ package org.apache.cocoon.forms.binding; -import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.Locale; @@ -24,7 +23,6 @@ import org.apache.cocoon.forms.datatype.convertor.Convertor; import org.apache.cocoon.forms.datatype.convertor.ConversionResult; import org.apache.cocoon.forms.formmodel.Widget; -import org.apache.commons.jxpath.AbstractFactory; import org.apache.commons.jxpath.JXPathContext; import org.apache.commons.jxpath.Pointer; Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java?rev=164112&r1=164111&r2=164112&view=diff == --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java Thu Apr 21 13:04:01 2005 @@ -35,8 +35,6 @@ import org.apache.cocoon.components.notification.DefaultNotifyingBuilder; import org.apache.cocoon.components.notification.Notifier; import org.apache.cocoon.components.notification.Notifying; -import org.apache.cocoon.configuration.Settings; -import org.apache.cocoon.core.Core; import org.apache.cocoon.environment.Environment; import org.apache.cocoon.environment.portlet.PortletContext; import org.apache.cocoon.environment.portlet.PortletEnvironment; @@ -293,8 +291,6 @@ this.portletContext = conf.getPortletContext(); this.appContext.put(Constants.CONTEXT_ENVIRONMENT_CONTEXT, new PortletContext(this.portletContext)); -// FIXME - add settings -appContext.put(Core.CONTEXT_SETTINGS, new Settings()); this.portletContextPath = this.portletContext.getRealPath("/"); // first init the work-directory for the logger. Modified: cocoon/trunk/build.properties URL: http://svn.apache.org/viewcvs/cocoon/trunk/build.properties?rev=164112&r1=164111&r2=164112&view=diff == --- cocoon/trunk/build.properties (original) +++ cocoon/trunk/build.properties Thu Apr 21 13:04:01 2005 @@ -74,7 +74,7 @@ junit.test.debugport=8000 #junit.testcase=org.apache.cocoon.util.test.NetUtilsTestCase -junit.test.loglevel=0 +junit.test.loglevel=1 # IDE - Modified: cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java?rev=164112&r1=164111&r2=164112&view=diff == --- cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java Thu Apr 21 13:04:01 2005 @@ -116,6 +116,9 @@ /** An optional Avalon Component that is called before and after processing all requests. */ protected Requ
svn commit: r164118 - /cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java
Author: cziegeler Date: Thu Apr 21 13:43:19 2005 New Revision: 164118 URL: http://svn.apache.org/viewcvs?rev=164118&view=rev Log: Start using CoreUtil Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java Modified: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java?rev=164118&r1=164117&r2=164118&view=diff == --- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java (original) +++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java Thu Apr 21 13:43:19 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 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. @@ -15,74 +15,59 @@ */ package org.apache.cocoon.portlet; -import org.apache.avalon.excalibur.logger.Log4JLoggerManager; -import org.apache.avalon.excalibur.logger.LogKitLoggerManager; -import org.apache.avalon.excalibur.logger.LoggerManager; -import org.apache.avalon.framework.configuration.Configurable; -import org.apache.avalon.framework.configuration.Configuration; -import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; -import org.apache.avalon.framework.container.ContainerUtil; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintStream; +import java.net.MalformedURLException; +import java.net.SocketException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.StringTokenizer; +import java.util.jar.Attributes; +import java.util.jar.Manifest; + +import javax.portlet.ActionRequest; +import javax.portlet.ActionResponse; +import javax.portlet.GenericPortlet; +import javax.portlet.PortletConfig; +import javax.portlet.PortletException; +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.portlet.RenderRequest; +import javax.portlet.RenderResponse; +import javax.servlet.ServletException; + import org.apache.avalon.framework.context.DefaultContext; -import org.apache.avalon.framework.logger.LogKitLogger; import org.apache.avalon.framework.logger.Logger; -import org.apache.avalon.framework.service.ServiceManager; - import org.apache.cocoon.Cocoon; import org.apache.cocoon.ConnectionResetException; import org.apache.cocoon.Constants; import org.apache.cocoon.ResourceNotFoundException; -import org.apache.cocoon.components.ContextHelper; import org.apache.cocoon.components.notification.DefaultNotifyingBuilder; import org.apache.cocoon.components.notification.Notifier; import org.apache.cocoon.components.notification.Notifying; +import org.apache.cocoon.configuration.Settings; +import org.apache.cocoon.core.BootstrapEnvironment; +import org.apache.cocoon.core.CoreUtil; +import org.apache.cocoon.environment.Context; import org.apache.cocoon.environment.Environment; import org.apache.cocoon.environment.portlet.PortletContext; import org.apache.cocoon.environment.portlet.PortletEnvironment; import org.apache.cocoon.portlet.multipart.MultipartActionRequest; import org.apache.cocoon.portlet.multipart.RequestFactory; -import org.apache.cocoon.util.ClassUtils; import org.apache.cocoon.util.IOUtils; -import org.apache.cocoon.util.StringUtils; import org.apache.cocoon.util.log.CocoonLogFormatter; -import org.apache.cocoon.util.log.Log4JConfigurator; - import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.SystemUtils; import org.apache.log.ContextMap; -import org.apache.log.ErrorHandler; -import org.apache.log.Hierarchy; -import org.apache.log.Priority; -import org.apache.log.util.DefaultErrorHandler; -import org.apache.log4j.LogManager; - -import javax.portlet.ActionRequest; -import javax.portlet.ActionResponse; -import javax.portlet.GenericPortlet; -import javax.portlet.PortletConfig; -import javax.portlet.PortletException; -import javax.portlet.PortletSession; -import javax.portlet.RenderRequest; -import javax.portlet.RenderResponse; -import javax.portlet.PortletRequest; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.PrintStream; -import java.lang.reflect.Constructor; -import java.net.MalformedURLException; -import java.net.SocketException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -
svn commit: r164128 - in /cocoon/trunk/src/java/org/apache/cocoon/components/blocks: ./ BlockManager.java BlocksManager.java
Author: danielf Date: Thu Apr 21 14:42:19 2005 New Revision: 164128 URL: http://svn.apache.org/viewcvs?rev=164128&view=rev Log: BlockManager and BlocksManager, they only parse their configuartion files this far. We have to start somewhere. Added: cocoon/trunk/src/java/org/apache/cocoon/components/blocks/ cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java (with props) cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlocksManager.java Added: cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java?rev=164128&view=auto == --- cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java (added) +++ cocoon/trunk/src/java/org/apache/cocoon/components/blocks/BlockManager.java Thu Apr 21 14:42:19 2005 @@ -0,0 +1,121 @@ +/* + * Copyright 1999-2005 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.components.blocks; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.apache.avalon.framework.activity.Disposable; +import org.apache.avalon.framework.configuration.Configurable; +import org.apache.avalon.framework.configuration.Configuration; +import org.apache.avalon.framework.configuration.ConfigurationException; +import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; +import org.apache.avalon.framework.logger.AbstractLogEnabled; +import org.apache.avalon.framework.service.ServiceException; +import org.apache.avalon.framework.service.ServiceManager; +import org.apache.avalon.framework.service.Serviceable; +import org.apache.excalibur.source.Source; +import org.apache.excalibur.source.SourceResolver; +import org.xml.sax.SAXException; + +/** + * @version SVN $Id$ + */ +public class BlockManager +extends AbstractLogEnabled +implements Configurable, Disposable, Serviceable { + +public static String ROLE = BlockManager.class.getName(); + +private ServiceManager manager; +private SourceResolver resolver; + +private String id; +private String location; +private String mountPath; +private String sitemapPath; +private Map connections = new HashMap(); +private Map properties = new HashMap(); + +public void service(ServiceManager manager) throws ServiceException { +this.manager = manager; +this.resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE); +} + +public void configure(Configuration config) +throws ConfigurationException { +this.id = config.getAttribute("id"); +this.location = config.getAttribute("location"); +this.mountPath = config.getChild("mount").getAttribute("path", null); + +getLogger().debug("BlockManager configure: " + + " id=" + this.id + + " location=" + this.location + + " mountPath=" + this.mountPath); + +Configuration[] connections = +config.getChild("connections").getChildren("connection"); +for (int i = 0; i < connections.length; i++) { +Configuration connection = connections[i]; +this.connections.put(connection.getAttribute("name"), + connection.getAttribute("block")); +getLogger().debug("connection: " + + " name=" + connection.getAttribute("name") + + " block=" + connection.getAttribute("block")); +} + +Configuration[] properties = +config.getChild("properties").getChildren("property"); +for (int i = 0; i < properties.length; i++) { +Configuration property = properties[i]; +this.properties.put(property.getAttribute("name"), + property.getAttribute("value")); +getLogger().debug("property: " + + " name=" + property.getAttribute("name") + + " value=" + property.getAttribute("value")); +} + +// Read the block.xml file +String blockPath = this.location + "/COB-INF/block.xml"; +Source source = null; +Configuration block = null; + +try { +
svn commit: r164138 - /cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java /cocoon/trunk/src/test/org/apache/cocoon/SitemapTestCase.java
Author: danielf Date: Thu Apr 21 15:19:03 2005 New Revision: 164138 URL: http://svn.apache.org/viewcvs?rev=164138&view=rev Log: Moved context setup from SitemapTestCase to SitemapComponentTestCase as it is needed for testing sitemap components as well. Moved processor creation from setUp to process, as setUp is called for all test cases anyway and as it makes the SitemapTestCase more useful as baseclass. Modified: cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java cocoon/trunk/src/test/org/apache/cocoon/SitemapTestCase.java Modified: cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java?rev=164138&r1=164137&r2=164138&view=diff == --- cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java (original) +++ cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java Thu Apr 21 15:19:03 2005 @@ -106,6 +106,7 @@ context.put(ContextHelper.CONTEXT_REQUEST_OBJECT, request); context.put(ContextHelper.CONTEXT_RESPONSE_OBJECT, response); context.put(ContextHelper.CONTEXT_OBJECT_MODEL, objectmodel); +context.put(Constants.CONTEXT_ENVIRONMENT_CONTEXT, getContext()); } /* (non-Javadoc) Modified: cocoon/trunk/src/test/org/apache/cocoon/SitemapTestCase.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/test/org/apache/cocoon/SitemapTestCase.java?rev=164138&r1=164137&r2=164138&view=diff == --- cocoon/trunk/src/test/org/apache/cocoon/SitemapTestCase.java (original) +++ cocoon/trunk/src/test/org/apache/cocoon/SitemapTestCase.java Thu Apr 21 15:19:03 2005 @@ -29,7 +29,6 @@ public class SitemapTestCase extends SitemapComponentTestCase { -protected Processor processor; protected String classDir; protected URL classDirURL; @@ -37,12 +36,6 @@ this.classDirURL = getClassDirURL(); this.classDir = this.classDirURL.toExternalForm(); super.setUp(); -this.processor = (Processor)this.lookup(Processor.ROLE); -} - -public void tearDown() throws Exception { -this.release(this.processor); -super.tearDown(); } protected void prepare() @@ -66,8 +59,9 @@ prepare(context, roles, components); } - -// Hack to get the URL to the directory that this class is in +/** + * Utility method for geting the URL to the directory that this class is in + */ protected URL getClassDirURL() throws RuntimeException { String className = getClass().getName().replace( '.', '/' ) + ".class"; try { @@ -92,19 +86,21 @@ } protected byte[] process(String uri) throws Exception { +Processor processor = (Processor)this.lookup(Processor.ROLE); MockEnvironment env = new MockEnvironment(); env.setURI("", uri); getRequest().setEnvironment(env); env.setObjectModel(getObjectModel()); -EnvironmentHelper.enterProcessor(this.processor, this.getManager(), env); +EnvironmentHelper.enterProcessor(processor, this.getManager(), env); try { -this.processor.process(env); +processor.process(env); getLogger().info("Output: " + new String(env.getOutput(), "UTF-8")); return env.getOutput(); } finally { EnvironmentHelper.leaveProcessor(); +this.release(processor); } }
svn commit: r164141 - in /cocoon/trunk/src/test/org/apache/cocoon/components/blocks: ./ BlockManagerTestCase.java BlockManagerTestCase.xconf BlocksManagerTestCase.java BlocksManagerTestCase.xtest test1/ test1/COB-INF/ test1/COB-INF/block.xml wiring.xml
Author: danielf Date: Thu Apr 21 15:23:38 2005 New Revision: 164141 URL: http://svn.apache.org/viewcvs?rev=164141&view=rev Log: Test code for the block management and some block configuration files to test on. It is only tested that the blockmanager and blocksmanager can be created and configured. Added: cocoon/trunk/src/test/org/apache/cocoon/components/blocks/ cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.java (with props) cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.xconf (with props) cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlocksManagerTestCase.java (with props) cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlocksManagerTestCase.xtest (with props) cocoon/trunk/src/test/org/apache/cocoon/components/blocks/test1/ cocoon/trunk/src/test/org/apache/cocoon/components/blocks/test1/COB-INF/ cocoon/trunk/src/test/org/apache/cocoon/components/blocks/test1/COB-INF/block.xml (with props) cocoon/trunk/src/test/org/apache/cocoon/components/blocks/wiring.xml (with props) Added: cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.java?rev=164141&view=auto == --- cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.java (added) +++ cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.java Thu Apr 21 15:23:38 2005 @@ -0,0 +1,26 @@ +/* + * 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.components.blocks; + +import org.apache.avalon.framework.service.ServiceException; +import org.apache.cocoon.SitemapTestCase; + +public class BlockManagerTestCase extends SitemapTestCase { +public void testConfigure() throws ServiceException { +BlockManager block = (BlockManager)this.lookup(BlockManager.ROLE); +this.release(block); +} +} Propchange: cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.java -- svn:eol-style = native Added: cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.xconf URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.xconf?rev=164141&view=auto == --- cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.xconf (added) +++ cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.xconf Thu Apr 21 15:23:38 2005 @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Propchange: cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlockManagerTestCase.xconf -- svn:eol-style = native Added: cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlocksManagerTestCase.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlocksManagerTestCase.java?rev=164141&view=auto == --- cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlocksManagerTestCase.java (added) +++ cocoon/trunk/src/test/org/apache/cocoon/components/blocks/BlocksManagerTestCase.java Thu Apr 21 15:23:38 2005 @@ -0,0 +1,36 @@ +/* + * 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. + */ +pa
svn commit: r164145 - /cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
Author: vgritsenko Date: Thu Apr 21 16:12:13 2005 New Revision: 164145 URL: http://svn.apache.org/viewcvs?rev=164145&view=rev Log: whitespace, braces Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java?rev=164145&r1=164144&r2=164145&view=diff == --- cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java Thu Apr 21 16:12:13 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 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. @@ -54,6 +54,7 @@ import org.apache.cocoon.xml.IncludeXMLConsumer; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.BooleanUtils; import org.apache.excalibur.xml.sax.SAXParser; import org.xml.sax.Attributes; import org.xml.sax.InputSource; @@ -68,7 +69,7 @@ * @author mailto:[EMAIL PROTECTED]">Giacomo Pati * @author mailto:[EMAIL PROTECTED]">Sven Beauprez * @author mailto:[EMAIL PROTECTED]">Alfio Saglimbeni - * @version CVS $Id$ + * @version $Id$ */ public class SQLTransformer extends AbstractSAXTransformer implements Disposable, Configurable { @@ -173,6 +174,9 @@ /** The default encoding for xml */ protected String xmlDefaultEncoding; +/** The connection used by all top level queries */ +protected Connection conn; + /** * Constructor */ @@ -183,19 +187,16 @@ this.defaultNamespaceURI = NAMESPACE; } -/** The connection used by all top level queries */ -protected Connection conn; - /** * Serviceable */ -public void service( ServiceManager manager ) throws ServiceException { +public void service(ServiceManager manager) throws ServiceException { super.service(manager); this.queries = new Vector(); try { -this.dbSelector = (ServiceSelector) manager.lookup( DataSourceComponent.ROLE + "Selector" ); -} catch ( ServiceException cme ) { -getLogger().warn( "Could not get the DataSource Selector", cme ); +this.dbSelector = (ServiceSelector) manager.lookup(DataSourceComponent.ROLE + "Selector"); +} catch (ServiceException cme) { +getLogger().warn("Could not get the DataSource Selector", cme); } } @@ -204,15 +205,17 @@ */ public void recycle() { super.recycle(); + try { // Close the connection used by all top level queries if (this.conn != null) { this.conn.close(); this.conn = null; } -} catch ( SQLException e ) { -getLogger().warn( "Could not close the connection", e ); +} catch (SQLException e) { +getLogger().warn("Could not close the connection", e); } + this.queries.clear(); this.outUri = null; this.outPrefix = null; @@ -225,17 +228,17 @@ } /** - * dispose + * Dispose */ public void dispose() { -if ( this.dbSelector != null ) { -this.manager.release( this.dbSelector ); +if (this.dbSelector != null) { +this.manager.release(this.dbSelector); this.dbSelector = null; } } /** - * configure + * Configure */ public void configure(Configuration conf) throws ConfigurationException { super.configure(conf); @@ -254,226 +257,235 @@ /** * Setup for the current request */ -public void setup( SourceResolver resolver, Map objectModel, - String source, Parameters parameters ) +public void setup(SourceResolver resolver, Map objectModel, + String source, Parameters parameters) throws ProcessingException, SAXException, IOException { super.setup(resolver, objectModel, source, parameters); -// set encoding + +// Set encoding this.format.put(OutputKeys.ENCODING, parameters.getParameter("xml-encoding", this.xmlDefaultEncoding)); -// setup instance variables +// Setup instance variables this.current_query_index = -1; this.current_state = SQLTransformer.STATE_OUTSIDE; -this.showNrOfRows = parameters.get
svn commit: r164146 - /cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java
Author: vgritsenko Date: Thu Apr 21 16:21:24 2005 New Revision: 164146 URL: http://svn.apache.org/viewcvs?rev=164146&view=rev Log: whitespace, braces Modified: cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java Modified: cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java?rev=164146&r1=164145&r2=164146&view=diff == --- cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java (original) +++ cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java Thu Apr 21 16:21:24 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 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. @@ -68,7 +68,7 @@ * @author mailto:[EMAIL PROTECTED]">Giacomo Pati * @author mailto:[EMAIL PROTECTED]">Sven Beauprez * @author mailto:[EMAIL PROTECTED]">Alfio Saglimbeni - * @version CVS $Id$ + * @version $Id$ */ public class SQLTransformer extends AbstractSAXTransformer implements Disposable, Configurable { @@ -168,11 +168,14 @@ protected SAXParser parser; /** Encoding we use for CLOB field */ - protected String clobEncoding; +protected String clobEncoding; /** The default encoding for xml */ protected String xmlDefaultEncoding; +/** The connection used by all top level queries */ +protected Connection conn; + /** * Constructor */ @@ -183,19 +186,16 @@ super.defaultNamespaceURI = NAMESPACE; } -/** The connection used by all top level queries */ -protected Connection conn; - /** * Serviceable */ -public void service( ServiceManager manager ) throws ServiceException { +public void service(ServiceManager manager) throws ServiceException { super.service(manager); this.queries = new Vector(); try { -this.dbSelector = (ServiceSelector) manager.lookup( DataSourceComponent.ROLE + "Selector" ); -} catch ( ServiceException cme ) { -getLogger().warn( "Could not get the DataSource Selector", cme ); +this.dbSelector = (ServiceSelector) manager.lookup(DataSourceComponent.ROLE + "Selector"); +} catch (ServiceException cme) { +getLogger().warn("Could not get the DataSource Selector", cme); } } @@ -204,15 +204,17 @@ */ public void recycle() { super.recycle(); + try { // Close the connection used by all top level queries if (this.conn != null) { this.conn.close(); this.conn = null; } -} catch ( SQLException e ) { -getLogger().warn( "Could not close the connection", e ); +} catch (SQLException e) { +getLogger().warn("Could not close the connection", e); } + this.queries.clear(); this.outUri = null; this.outPrefix = null; @@ -225,17 +227,17 @@ } /** - * dispose + * Dispose */ public void dispose() { -if ( this.dbSelector != null ) { -this.manager.release( this.dbSelector ); +if (this.dbSelector != null) { +this.manager.release(this.dbSelector); this.dbSelector = null; } } /** - * configure + * Configure */ public void configure(Configuration conf) throws ConfigurationException { super.configure(conf); @@ -254,226 +256,235 @@ /** * Setup for the current request */ -public void setup( SourceResolver resolver, Map objectModel, - String source, Parameters parameters ) +public void setup(SourceResolver resolver, Map objectModel, + String source, Parameters parameters) throws ProcessingException, SAXException, IOException { super.setup(resolver, objectModel, source, parameters); -// set encoding + +// Set encoding this.format.put(OutputKeys.ENCODING, parameters.getParameter("xml-encoding", this.xmlDefaultEncoding)); -// setup instance variables +// Setup instance variables this.current_query_index = -1; this.current_state = SQLTransformer.STATE_OUTSIDE; -this.showNrOfRows = parameters.getParameterAsBoolean( SQLTransformer.MAGIC_NR_OF_ROWS, false ); - this.clobEncoding = parameters.getParameter(SQLTransformer.CLOB_ENCODING, ""); -if ( getLogger().isDebugEnabled()
svn commit: r164147 - /cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
Author: vgritsenko Date: Thu Apr 21 16:36:06 2005 New Revision: 164147 URL: http://svn.apache.org/viewcvs?rev=164147&view=rev Log: always close connection, statements, result set - even in case of sqlexception. Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java?rev=164147&r1=164146&r2=164147&view=diff == --- cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java Thu Apr 21 16:36:06 2005 @@ -52,9 +52,9 @@ import org.apache.cocoon.components.sax.XMLSerializer; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.xml.IncludeXMLConsumer; + import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.BooleanUtils; import org.apache.excalibur.xml.sax.SAXParser; import org.xml.sax.Attributes; import org.xml.sax.InputSource; @@ -302,7 +302,6 @@ super.startPrefixMapping(this.outPrefix, this.outUri); } -AttributesImpl attr = new AttributesImpl(); Query query = (Query) queries.elementAt(index); boolean query_failure = false; Connection conn = null; @@ -324,16 +323,17 @@ query.execute(); } catch (SQLException e) { getLogger().debug("executeQuery failed", e); -AttributesImpl my_attr = new AttributesImpl(); -this.start(query.rowset_name, my_attr); -this.start(MAGIC_ERROR, my_attr); -this.data(e.getMessage()); -this.end(MAGIC_ERROR); -this.end(query.rowset_name); +AttributesImpl attr = new AttributesImpl(); +start(query.rowset_name, attr); +start(MAGIC_ERROR, attr); +data(e.getMessage()); +end(MAGIC_ERROR); +end(query.rowset_name); query_failure = true; } if (!query_failure) { +AttributesImpl attr = new AttributesImpl(); if (this.showNrOfRows) { attr.addAttribute(NAMESPACE, query.nr_of_rows, query.nr_of_rows, "CDATA", String.valueOf(query.getNrOfRows())); @@ -343,37 +343,36 @@ attr.addAttribute(NAMESPACE, query.name_attribute, query.name_attribute, "CDATA", name); } -this.start(query.rowset_name, attr); -attr = new AttributesImpl(); +start(query.rowset_name, attr); if (!query.isStoredProcedure()) { while (query.next()) { -this.start(query.row_name, attr); +start(query.row_name, attr); query.serializeRow(this.manager); if (index + 1 < queries.size()) { executeQuery(index + 1); } -this.end(query.row_name); +end(query.row_name); } } else { query.serializeStoredProcedure(this.manager); } -this.end(query.rowset_name); +end(query.rowset_name); } } catch (SQLException e) { getLogger().debug("SQLTransformer.executeQuery()", e); throw new SAXException(e); } finally { -try { -query.close(); -if (index > 0) { -// close the connection used by a sub query +query.close(); +if (index > 0) { +try { +// Close the connection used by a sub query conn.close(); +} catch (SQLException e) { +getLogger().warn("Unable to close JDBC connection", e); } -} catch (SQLException e) { -getLogger().warn("Unable to close JDBC connection", e); } } @@ -1113,9 +1112,7 @@ getTheLogger().error("Caught a SQLException", e); throw e; } finally { -// Not closing the connection here fixes bug 12173! -// conn.close(); -// conn = null;// To make sure we don't use this connection again. +
svn commit: r164148 - /cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java
Author: vgritsenko Date: Thu Apr 21 16:36:44 2005 New Revision: 164148 URL: http://svn.apache.org/viewcvs?rev=164148&view=rev Log: always close connection, statements, result set - even in case of sqlexception. Modified: cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java Modified: cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java?rev=164148&r1=164147&r2=164148&view=diff == --- cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java (original) +++ cocoon/blocks/unsupported/databases/trunk/java/org/apache/cocoon/transformation/SQLTransformer.java Thu Apr 21 16:36:44 2005 @@ -52,6 +52,7 @@ import org.apache.cocoon.components.sax.XMLSerializer; import org.apache.cocoon.environment.SourceResolver; import org.apache.cocoon.xml.IncludeXMLConsumer; + import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.excalibur.xml.sax.SAXParser; @@ -301,7 +302,6 @@ super.startPrefixMapping(this.outPrefix, this.outUri); } -AttributesImpl attr = new AttributesImpl(); Query query = (Query) queries.elementAt(index); boolean query_failure = false; Connection conn = null; @@ -323,16 +323,17 @@ query.execute(); } catch (SQLException e) { getLogger().debug("executeQuery failed", e); -AttributesImpl my_attr = new AttributesImpl(); -this.start(query.rowset_name, my_attr); -this.start(MAGIC_ERROR, my_attr); -this.data(e.getMessage()); -this.end(MAGIC_ERROR); -this.end(query.rowset_name); +AttributesImpl attr = new AttributesImpl(); +start(query.rowset_name, attr); +start(MAGIC_ERROR, attr); +data(e.getMessage()); +end(MAGIC_ERROR); +end(query.rowset_name); query_failure = true; } if (!query_failure) { +AttributesImpl attr = new AttributesImpl(); if (this.showNrOfRows) { attr.addAttribute(NAMESPACE, query.nr_of_rows, query.nr_of_rows, "CDATA", String.valueOf(query.getNrOfRows())); @@ -342,37 +343,36 @@ attr.addAttribute(NAMESPACE, query.name_attribute, query.name_attribute, "CDATA", name); } -this.start(query.rowset_name, attr); -attr = new AttributesImpl(); +start(query.rowset_name, attr); if (!query.isStoredProcedure()) { while (query.next()) { -this.start(query.row_name, attr); +start(query.row_name, attr); query.serializeRow(this.manager); if (index + 1 < queries.size()) { executeQuery(index + 1); } -this.end(query.row_name); +end(query.row_name); } } else { query.serializeStoredProcedure(this.manager); } -this.end(query.rowset_name); +end(query.rowset_name); } } catch (SQLException e) { getLogger().debug("SQLTransformer.executeQuery()", e); throw new SAXException(e); } finally { -try { -query.close(); -if (index > 0) { -// close the connection used by a sub query +query.close(); +if (index > 0) { +try { +// Close the connection used by a sub query conn.close(); +} catch (SQLException e) { +getLogger().warn("Unable to close JDBC connection", e); } -} catch (SQLException e) { -getLogger().warn("Unable to close JDBC connection", e); } } @@ -1112,9 +1112,7 @@ getTheLogger().error("Caught a SQLException", e); throw e; } finally { -// Not closing the connection here fixes bug 12173! -// conn.close(); -// conn = null;// To make sure we don't use this connection again. +// Connection is not closed here, but later on. See bug #12173. } } @@ -1187,7 +1185,6 @@ try {