svn commit: r164017 - /cocoon/trunk/tools/external-project-build/generic-build.xml

2005-04-21 Thread reinhard
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

2005-04-21 Thread cziegeler
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

2005-04-21 Thread vgritsenko
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

2005-04-21 Thread vgritsenko
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

2005-04-21 Thread vgritsenko
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

2005-04-21 Thread vgritsenko
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/

2005-04-21 Thread cziegeler
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

2005-04-21 Thread cziegeler
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

2005-04-21 Thread danielf
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

2005-04-21 Thread danielf
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

2005-04-21 Thread danielf
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

2005-04-21 Thread vgritsenko
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

2005-04-21 Thread vgritsenko
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

2005-04-21 Thread vgritsenko
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

2005-04-21 Thread vgritsenko
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 {