You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2008/03/03 21:21:17 UTC

svn commit: r633260 [1/2] - in /cocoon/trunk/blocks/cocoon-portal: cocoon-portal-converter-castor/src/main/java/org/apache/cocoon/portal/converter/castor/ cocoon-portal-impl/ cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/impl...

Author: cziegeler
Date: Mon Mar  3 12:21:05 2008
New Revision: 633260

URL: http://svn.apache.org/viewvc?rev=633260&view=rev
Log:
Further reduce the dependencies to Cocoon core.

Added:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/SaxBuffer.java   (with props)
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/XMLUtils.java   (with props)
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/src/main/java/org/apache/cocoon/portal/avalon/
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/src/main/java/org/apache/cocoon/portal/avalon/AbstractComponent.java
      - copied, changed from r617587, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/AbstractComponent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/src/main/java/org/apache/cocoon/portal/source/
      - copied from r617587, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/source/
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/src/main/java/org/apache/cocoon/portal/source/CopletSource.java
      - copied unchanged from r633232, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/source/CopletSource.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/src/main/java/org/apache/cocoon/portal/source/CopletSourceFactory.java
      - copied, changed from r633232, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/source/CopletSourceFactory.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/src/main/java/org/apache/cocoon/portal/source/LayoutSource.java
      - copied unchanged from r633232, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/source/LayoutSource.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/src/main/java/org/apache/cocoon/portal/source/LayoutSourceFactory.java
      - copied, changed from r633232, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/source/LayoutSourceFactory.java
Removed:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/source/
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/AbstractComponent.java
Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-converter-castor/src/main/java/org/apache/cocoon/portal/converter/castor/CastorSourceConverter.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/pom.xml
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/impl/AbstractCopletAdapter.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventConverter.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CIncludeCopletAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/DefaultCopletAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/IncludeCopletAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/ParameterAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/RemovableAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/WindowAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/XSLTAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LayoutType.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultLayoutFactory.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/InformationProviderServiceImpl.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/om/PortletDefinitionRegistryImpl.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/services/factory/FactoryManagerServiceImpl.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sitemap/pom.xml

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-converter-castor/src/main/java/org/apache/cocoon/portal/converter/castor/CastorSourceConverter.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-converter-castor/src/main/java/org/apache/cocoon/portal/converter/castor/CastorSourceConverter.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-converter-castor/src/main/java/org/apache/cocoon/portal/converter/castor/CastorSourceConverter.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-converter-castor/src/main/java/org/apache/cocoon/portal/converter/castor/CastorSourceConverter.java Mon Mar  3 12:21:05 2008
@@ -22,6 +22,7 @@
 import java.io.OutputStreamWriter;
 import java.io.UnsupportedEncodingException;
 import java.io.Writer;
+import java.net.URLEncoder;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -34,7 +35,6 @@
 import org.apache.cocoon.portal.profile.ProfileKey;
 import org.apache.cocoon.portal.profile.ProfileStore;
 import org.apache.cocoon.portal.util.AbstractBean;
-import org.apache.cocoon.util.NetUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.excalibur.source.ModifiableSource;
@@ -308,7 +308,7 @@
 
         buffer.append("&content=");
         try {
-            buffer.append(NetUtils.encode(writer.toString(), "utf-8"));
+            buffer.append(URLEncoder.encode(writer.toString(), "utf-8"));
         } catch (UnsupportedEncodingException uee) {
             // ignore this as utf-8 is always supported
         }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/pom.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/pom.xml?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/pom.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/pom.xml Mon Mar  3 12:21:05 2008
@@ -49,19 +49,27 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.cocoon</groupId>
-      <artifactId>cocoon-core</artifactId>
+      <artifactId>cocoon-portal-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.cocoon</groupId>
-      <artifactId>cocoon-portal-api</artifactId>
+      <artifactId>cocoon-spring-configurator</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.cocoon</groupId>
-      <artifactId>cocoon-ajax-impl</artifactId>
+      <artifactId>cocoon-thread-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.cocoon</groupId>
-      <artifactId>cocoon-forms-impl</artifactId>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-jxpath</groupId>
+      <artifactId>commons-jxpath</artifactId>
     </dependency>
     <dependency>
       <groupId>commons-collections</groupId>
@@ -81,38 +89,25 @@
       <artifactId>nekodtd</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.cocoon</groupId>
-      <artifactId>cocoon-serializers-charsets</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.cocoon</groupId>
-      <artifactId>cocoon-core</artifactId>
-      <type>test-jar</type>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-     <!--  
-          Test dependencies
-          TODO remove these when MNG-1378 is fixed, these are inherited from the root pom normally
-     -->
     <dependency>
-      <groupId>xmlunit</groupId>
-      <artifactId>xmlunit</artifactId>
-      <scope>test</scope>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-serializers-charsets</artifactId>
     </dependency>
     <dependency>
-      <groupId>jmock</groupId>
-      <artifactId>jmock</artifactId>
-      <scope>test</scope>
+      <groupId>org.apache.excalibur.components</groupId>
+      <artifactId>excalibur-sourceresolve</artifactId>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
+      <groupId>org.apache.excalibur.components</groupId>
+      <artifactId>excalibur-xmlutil</artifactId>
     </dependency>
     <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <scope>test</scope>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-xml-api</artifactId>
     </dependency>
   </dependencies>
   

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/impl/AbstractCopletAdapter.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/impl/AbstractCopletAdapter.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/impl/AbstractCopletAdapter.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/impl/AbstractCopletAdapter.java Mon Mar  3 12:21:05 2008
@@ -32,8 +32,8 @@
 import org.apache.cocoon.portal.om.CopletInstance;
 import org.apache.cocoon.portal.om.CopletInstanceFeatures;
 import org.apache.cocoon.portal.util.AbstractBean;
+import org.apache.cocoon.portal.util.SaxBuffer;
 import org.apache.cocoon.thread.RunnableManager;
-import org.apache.cocoon.xml.SaxBuffer;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventConverter.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventConverter.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventConverter.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventConverter.java Mon Mar  3 12:21:05 2008
@@ -30,7 +30,6 @@
 import org.apache.cocoon.portal.event.Event;
 import org.apache.cocoon.portal.event.EventConverter;
 import org.apache.cocoon.portal.util.AbstractBean;
-import org.apache.cocoon.util.HashUtil;
 
 /**
  * This implementation stores the events that can't be converted to strings (which don't
@@ -86,7 +85,7 @@
             while ( i.hasNext() ) {
                 final Map.Entry current = (Map.Entry)i.next();
                 final Constructor c = this.getConstructor(current.getValue().toString());
-                final long hash = HashUtil.hash(current.getValue().toString());
+                final long hash = current.getValue().hashCode();
                 final String hashKey = Long.toString(hash);
                 // check for duplicate hash code
                 if ( this.factories.containsKey(hashKey) ) {
@@ -131,7 +130,7 @@
         // check if *this* event is convertable
         if ( data != null ) {
             final String eventClassName = event.getClass().getName();
-            final long hash = HashUtil.hash(eventClassName);
+            final long hash = eventClassName.hashCode();
             final String hashKey = Long.toString(hash);
             Object o = this.factories.get(hashKey);
             if ( o == null ) {
@@ -188,9 +187,9 @@
                     } catch (InstantiationException ie) {
                         // we ignore this
                     } catch (InvocationTargetException ite) {
-                        // we ignore this                    
+                        // we ignore this
                     } catch (IllegalAccessException iae) {
-                        // we ignore this                    
+                        // we ignore this
                     }
                 }
             }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCIncludeAspect.java Mon Mar  3 12:21:05 2008
@@ -16,10 +16,10 @@
  */
 package org.apache.cocoon.portal.layout.renderer.aspect.impl;
 
-import org.apache.cocoon.transformation.CIncludeTransformer;
-import org.apache.cocoon.xml.AttributesImpl;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * Base class for aspect renderers that generate cinclude statements. Provides a single
@@ -27,18 +27,18 @@
  *
  * @version $Id$
  */
-public abstract class AbstractCIncludeAspect 
+public abstract class AbstractCIncludeAspect
     extends AbstractAspect {
 
     protected static final String PREFIX = "cinclude";
-    protected static final String NAMESPACE = CIncludeTransformer.CINCLUDE_NAMESPACE_URI;
-    protected static final String ELEMENT = CIncludeTransformer.CINCLUDE_INCLUDE_ELEMENT;
+    protected static final String NAMESPACE = "http://apache.org/cocoon/include/1.0";
+    protected static final String ELEMENT = "include";
     protected static final String QELEMENT= PREFIX + ":" + ELEMENT;
-    protected static final String ATTRIBUTE = CIncludeTransformer.CINCLUDE_INCLUDE_ELEMENT_SRC_ATTRIBUTE; 
+    protected static final String ATTRIBUTE = "src";
 
     /**
      * Create the cinclude statement.
-     * 
+     *
      * @param source attribute value for the cinclude tag
      * @param handler SAX event handler
      */
@@ -46,7 +46,7 @@
     throws SAXException {
         handler.startPrefixMapping(PREFIX, NAMESPACE);
         final AttributesImpl attributes = new AttributesImpl();
-        attributes.addCDATAAttribute(ATTRIBUTE, source);
+        XMLUtils.addCDATAAttribute(attributes, ATTRIBUTE, source);
         handler.startElement(NAMESPACE, ELEMENT, QELEMENT, attributes);
         handler.endElement(NAMESPACE, ELEMENT, QELEMENT);
         handler.endPrefixMapping(PREFIX);

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CIncludeCopletAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CIncludeCopletAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CIncludeCopletAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CIncludeCopletAspect.java Mon Mar  3 12:21:05 2008
@@ -27,11 +27,11 @@
 import org.apache.cocoon.portal.om.LayoutException;
 import org.apache.cocoon.portal.om.LayoutFeatures;
 import org.apache.cocoon.portal.services.PortalManager;
-import org.apache.cocoon.xml.AttributesImpl;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.apache.commons.lang.BooleanUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * This aspect streams a cinclude statement into the stream that
@@ -93,8 +93,10 @@
             buffer.append(cid.getId());
             buffer.append("\");");
             final AttributesImpl a = new AttributesImpl();
-            a.addCDATAAttribute("type", "text/javascript");
-            XMLUtils.createElement(handler, "script", a, buffer.toString());
+            XMLUtils.addCDATAAttribute(a, "type", "text/javascript");
+            XMLUtils.startElement(handler,  "script", a);
+            XMLUtils.data(handler, buffer.toString());
+            XMLUtils.endElement(handler, "script");
         } else {
             this.createCInclude("coplet://" + cid.getId(), handler);
         }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java Mon Mar  3 12:21:05 2008
@@ -25,11 +25,11 @@
 import org.apache.cocoon.portal.om.Item;
 import org.apache.cocoon.portal.om.Layout;
 import org.apache.cocoon.portal.om.LayoutException;
-import org.apache.cocoon.xml.AttributesImpl;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.apache.commons.lang.BooleanUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * Add several contents.
@@ -81,10 +81,10 @@
         if ( config.rootTag) {
             final AttributesImpl ai = new AttributesImpl();
             if ( config.rootTagClass != null ) {
-                ai.addCDATAAttribute("class", config.rootTagClass);
+                XMLUtils.addCDATAAttribute(ai, "class", config.rootTagClass);
             }
             if ( config.rootTagId != null ) {
-                ai.addCDATAAttribute("id", config.rootTagId);
+                XMLUtils.addCDATAAttribute(ai, "id", config.rootTagId);
             }
             XMLUtils.startElement(handler, config.tagName, ai);
         }
@@ -110,11 +110,11 @@
                 XMLUtils.startElement(handler, config.itemTagName);
             } else {
                 AttributesImpl attributes = new AttributesImpl();
-    
+
     			Map.Entry entry;
     			for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) {
     				entry = (Map.Entry) iter.next();
-    				attributes.addCDATAAttribute((String)entry.getKey(), (String)entry.getValue());
+    				XMLUtils.addCDATAAttribute(attributes, (String)entry.getKey(), (String)entry.getValue());
     			}
                 XMLUtils.startElement(handler, config.itemTagName, attributes);
             }
@@ -140,11 +140,11 @@
                 XMLUtils.startElement(handler, config.itemTagName);
             } else {
                 AttributesImpl attributes = new AttributesImpl();
-    
+
     			Map.Entry entry;
     			for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) {
     				entry = (Map.Entry) iter.next();
-    				attributes.addCDATAAttribute((String)entry.getKey(), (String)entry.getValue());
+    				XMLUtils.addCDATAAttribute(attributes, (String)entry.getKey(), (String)entry.getValue());
     			}
                 XMLUtils.startElement(handler, config.itemTagName, attributes);
             }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/DefaultCopletAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/DefaultCopletAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/DefaultCopletAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/DefaultCopletAspect.java Mon Mar  3 12:21:05 2008
@@ -28,12 +28,11 @@
 import org.apache.cocoon.portal.om.LayoutException;
 import org.apache.cocoon.portal.om.LayoutFeatures;
 import org.apache.cocoon.portal.services.PortalManager;
-import org.apache.cocoon.xml.AttributesImpl;
-import org.apache.cocoon.xml.IncludeXMLConsumer;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.apache.commons.lang.BooleanUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * This aspect directly invokes the coplet adapter to stream out the coplet content.
@@ -85,11 +84,13 @@
             buffer.append(cid.getId());
             buffer.append("\");");
             final AttributesImpl a = new AttributesImpl();
-            a.addCDATAAttribute("type", "text/javascript");
-            XMLUtils.createElement(handler, "script", a, buffer.toString());
+            XMLUtils.addCDATAAttribute(a, "type", "text/javascript");
+            XMLUtils.startElement(handler, "script", a);
+            XMLUtils.data(handler, buffer.toString());
+            XMLUtils.endElement(handler, "script");
         } else {
             final CopletAdapter copletAdapter = cid.getCopletDefinition().getCopletType().getCopletAdapter();
-            copletAdapter.toSAX(cid, new IncludeXMLConsumer(handler));
+            copletAdapter.toSAX(cid, handler);
         }
 
         if ( config.rootTag ) {

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/IncludeCopletAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/IncludeCopletAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/IncludeCopletAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/IncludeCopletAspect.java Mon Mar  3 12:21:05 2008
@@ -27,11 +27,11 @@
 import org.apache.cocoon.portal.om.LayoutException;
 import org.apache.cocoon.portal.om.LayoutFeatures;
 import org.apache.cocoon.portal.services.PortalManager;
-import org.apache.cocoon.xml.AttributesImpl;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.apache.commons.lang.BooleanUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * This aspect streams a cinclude statement into the stream that
@@ -93,8 +93,10 @@
             buffer.append(cid.getId());
             buffer.append("\");");
             final AttributesImpl a = new AttributesImpl();
-            a.addCDATAAttribute("type", "text/javascript");
-            XMLUtils.createElement(handler, "script", a, buffer.toString());
+            XMLUtils.addCDATAAttribute(a, "type", "text/javascript");
+            XMLUtils.startElement(handler, "script", a);
+            XMLUtils.data(handler, buffer.toString());
+            XMLUtils.endElement(handler, "script");
         } else {
             this.createInclude("coplet://" + cid.getId(), handler);
         }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/ParameterAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/ParameterAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/ParameterAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/ParameterAspect.java Mon Mar  3 12:21:05 2008
@@ -24,10 +24,10 @@
 import org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectContext;
 import org.apache.cocoon.portal.om.Layout;
 import org.apache.cocoon.portal.om.LayoutException;
-import org.apache.cocoon.xml.AttributesImpl;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * Add layout parameter to resulting XML stream so that they can be picked
@@ -45,13 +45,13 @@
  * <h2>Applicable to:</h2>
  * <ul>
  *  <li>{@link org.apache.cocoon.portal.om.Layout}</li>
- * </ul> 
+ * </ul>
  *
  * <h2>Parameters</h2>
  * <table><tbody>
  * <tr><th>tag-name</th><td>Name of tag holding key-value pairs as attributes.</td>
  *  <td></td><td>String</td><td><code>"parameter"</code></td></tr>
- * </tbody></table> 
+ * </tbody></table>
  *
  * @version $Id$
  */
@@ -72,7 +72,7 @@
             Map.Entry entry;
             for (Iterator iter = parameter.entrySet().iterator(); iter.hasNext();) {
                 entry = (Map.Entry) iter.next();
-                attributes.addCDATAAttribute((String)entry.getKey(), (String)entry.getValue());
+                XMLUtils.addCDATAAttribute(attributes, (String)entry.getKey(), (String)entry.getValue());
             }
             XMLUtils.startElement(contenthandler, config.tagName, attributes);
         } else {

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/RemovableAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/RemovableAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/RemovableAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/RemovableAspect.java Mon Mar  3 12:21:05 2008
@@ -5,7 +5,7 @@
  * The ASF licenses this file to You 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
@@ -23,7 +23,7 @@
 import org.apache.cocoon.portal.om.CopletLayout;
 import org.apache.cocoon.portal.om.Layout;
 import org.apache.cocoon.portal.om.LayoutException;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -45,7 +45,7 @@
  *
  * @version $Id$
  */
-public class RemovableAspect 
+public class RemovableAspect
     extends AbstractAspect {
 
 	/**
@@ -57,17 +57,20 @@
 	throws SAXException, LayoutException {
         if ( layout instanceof CopletLayout ) {
             final CopletInstance cid = this.getCopletInstance(((CopletLayout)layout).getCopletInstanceId());
-    
+
             boolean mandatory = CopletDefinitionFeatures.isMandatory(cid.getCopletDefinition());
             if ( !mandatory ) {
                 RemoveLayoutEvent lre = new RemoveLayoutEvent(layout);
-                XMLUtils.createElement(handler, "remove-uri", rendererContext.getPortalService().getLinkService().getLinkURI(lre));
+                XMLUtils.startElement(handler, "remove-uri");
+                XMLUtils.data(handler, rendererContext.getPortalService().getLinkService().getLinkURI(lre));
+                XMLUtils.endElement(handler, "remove-uri");
             }
         } else {
             // for any other layout just create the event
             RemoveLayoutEvent lre = new RemoveLayoutEvent(layout);
-            XMLUtils.createElement(handler, "remove-uri", 
-                                   rendererContext.getPortalService().getLinkService().getLinkURI(lre));
+            XMLUtils.startElement(handler, "remove-uri");
+            XMLUtils.data(handler, rendererContext.getPortalService().getLinkService().getLinkURI(lre));
+            XMLUtils.endElement(handler, "remove-uri");
         }
         rendererContext.invokeNext(layout, handler);
 	}

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java Mon Mar  3 12:21:05 2008
@@ -16,10 +16,10 @@
  */
 package org.apache.cocoon.portal.layout.renderer.aspect.impl;
 
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.Map;
 import java.util.List;
-import java.util.ArrayList;
+import java.util.Map;
 import java.util.Properties;
 
 import org.apache.cocoon.portal.PortalException;
@@ -35,11 +35,11 @@
 import org.apache.cocoon.portal.om.LayoutInstance;
 import org.apache.cocoon.portal.om.NamedItem;
 import org.apache.cocoon.portal.om.LayoutFeatures.RenderInfo;
-import org.apache.cocoon.xml.AttributesImpl;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.apache.commons.lang.BooleanUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * <h2>Example XML:</h2>
@@ -109,7 +109,7 @@
  *
  * @version $Id$
  */
-public class TabContentAspect 
+public class TabContentAspect
     extends CompositeContentAspect {
 
     /**
@@ -147,7 +147,7 @@
             // open named-item tag
             attributes.clear();
             if ( tab instanceof NamedItem ) {
-                attributes.addCDATAAttribute("name", ((NamedItem)tab).getName());
+                XMLUtils.addCDATAAttribute(attributes, "name", ((NamedItem)tab).getName());
             }
             boolean selected = false;
             if ( config.useNames ) {
@@ -162,17 +162,17 @@
                 selected = (j == selectedTabIndex);
             }
             if ( selected ) {
-                attributes.addCDATAAttribute("selected", "true");
+                XMLUtils.addCDATAAttribute(attributes, "selected", "true");
             }
             final LayoutInstanceChangeAttributeEvent event;
             event = new ChangeTabEvent(layoutInstance, tab, config.useNames);
-            attributes.addCDATAAttribute("parameter", rendererContext.getPortalService().getLinkService().getLinkURI(event)); 
+            XMLUtils.addCDATAAttribute(attributes, "parameter", rendererContext.getPortalService().getLinkService().getLinkURI(event));
 
             // add parameters
             final Iterator iter = tab.getParameters().entrySet().iterator();
             while ( iter.hasNext() ) {
                 final Map.Entry entry = (Map.Entry) iter.next();
-                attributes.addCDATAAttribute((String)entry.getKey(), (String)entry.getValue());
+                XMLUtils.addCDATAAttribute(attributes, (String)entry.getKey(), (String)entry.getValue());
             }
 
             XMLUtils.startElement(handler, "named-item", attributes);
@@ -237,20 +237,20 @@
                     XMLUtils.startElement(handler, config.childTagName);
                     subNav = true;
                 }
-                attributes.addCDATAAttribute("name", ((NamedItem) tab).getName());
+                XMLUtils.addCDATAAttribute(attributes, "name", ((NamedItem) tab).getName());
                 final LayoutInstanceChangeAttributeEvent event;
                 event = new ChangeTabEvent(layoutInstance, tab, config.useNames);
                 List events = new ArrayList(parentEvents);
                 events.add(event);
 
-                attributes.addCDATAAttribute("parameter",
+                XMLUtils.addCDATAAttribute(attributes, "parameter",
                     service.getLinkService().getLinkURI(events));
 
                 // add parameters
                 final Iterator iter = tab.getParameters().entrySet().iterator();
                 while (iter.hasNext()) {
                     final Map.Entry entry = (Map.Entry) iter.next();
-                    attributes.addCDATAAttribute((String) entry.getKey(),
+                    XMLUtils.addCDATAAttribute(attributes, (String) entry.getKey(),
                         (String) entry.getValue());
                 }
 
@@ -287,7 +287,7 @@
      * @see org.apache.cocoon.portal.layout.renderer.aspect.impl.CompositeContentAspect#prepareConfiguration(java.util.Properties)
      */
     public Object prepareConfiguration(Properties configuration)
-    throws PortalException { 
+    throws PortalException {
         TabPreparedConfiguration pc = new TabPreparedConfiguration();
         pc.takeValues((PreparedConfiguration)super.prepareConfiguration(configuration));
         pc.childTagName = configuration.getProperty("child-tag-name", "");

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/WindowAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/WindowAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/WindowAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/WindowAspect.java Mon Mar  3 12:21:05 2008
@@ -36,7 +36,7 @@
 import org.apache.cocoon.portal.om.Layout;
 import org.apache.cocoon.portal.om.LayoutException;
 import org.apache.cocoon.portal.om.LayoutFeatures;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.apache.commons.lang.BooleanUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
@@ -145,7 +145,9 @@
                                                  Layout             layout,
                                                  ContentHandler     contenthandler)
     throws SAXException {
-        XMLUtils.createElement(contenthandler, WindowAspect.INSTANCE_ID_TAG, cid.getId());
+        XMLUtils.startElement(contenthandler, WindowAspect.INSTANCE_ID_TAG);
+        XMLUtils.data(contenthandler, cid.getId());
+        XMLUtils.endElement(contenthandler, WindowAspect.INSTANCE_ID_TAG);
     }
 
     protected void streamTitle(CopletInstance cid,
@@ -160,7 +162,9 @@
         if ( title == null ) {
             title = cid.getTitle();
         }
-        XMLUtils.createElement(contenthandler, WindowAspect.TITLE_TAG, title);
+        XMLUtils.startElement(contenthandler, WindowAspect.TITLE_TAG);
+        XMLUtils.data(contenthandler, title);
+        XMLUtils.endElement(contenthandler, WindowAspect.TITLE_TAG);
     }
 
     protected void streamCopletModes(CopletInstance cid,
@@ -174,7 +178,9 @@
             final Iterator i = windowStates.iterator();
             while ( i.hasNext() ) {
                 final DecorationAction action = (DecorationAction)i.next();
-                XMLUtils.createElement(contenthandler, action.getName(), action.getUrl());
+                XMLUtils.startElement(contenthandler, action.getName());
+                XMLUtils.data(contenthandler, action.getUrl());
+                XMLUtils.endElement(contenthandler, action.getName());
             }
         }
     }
@@ -187,7 +193,9 @@
         boolean mandatory = CopletDefinitionFeatures.isMandatory(cid.getCopletDefinition());
         if ( !mandatory ) {
             RemoveLayoutEvent lre = new RemoveLayoutEvent(layout);
-            XMLUtils.createElement(contenthandler, "remove-uri", this.portalService.getLinkService().getLinkURI(lre));
+            XMLUtils.startElement(contenthandler, "remove-uri");
+            XMLUtils.data(contenthandler, this.portalService.getLinkService().getLinkURI(lre));
+            XMLUtils.endElement(contenthandler, "remove-uri");
         }
     }
 
@@ -203,7 +211,9 @@
             final int size = cid.getSize();
 
             // stream out the current size
-            XMLUtils.createElement(contenthandler, WindowAspect.SIZE_TAG, CopletInstanceFeatures.sizeToString(size));
+            XMLUtils.startElement(contenthandler, WindowAspect.SIZE_TAG);
+            XMLUtils.data(contenthandler, CopletInstanceFeatures.sizeToString(size));
+            XMLUtils.endElement(contenthandler, WindowAspect.SIZE_TAG);
 
             // Does the coplet type provide the window states for us?
             if ( adapter instanceof CopletDecorationProvider ) {
@@ -211,23 +221,31 @@
                 final Iterator i = windowStates.iterator();
                 while ( i.hasNext() ) {
                     final DecorationAction action = (DecorationAction)i.next();
-                    XMLUtils.createElement(contenthandler, action.getName(), action.getUrl());
+                    XMLUtils.startElement(contenthandler, action.getName());
+                    XMLUtils.data(contenthandler, action.getUrl());
+                    XMLUtils.endElement(contenthandler, action.getName());
                 }
             } else {
                 Event event;
 
                 if ( size != CopletInstance.SIZE_MINIMIZED ) {
                     event = new CopletInstanceSizingEvent(cid, CopletInstance.SIZE_MINIMIZED);
-                    XMLUtils.createElement(contenthandler, DecorationAction.WINDOW_STATE_MINIMIZED, this.portalService.getLinkService().getLinkURI(event));
+                    XMLUtils.startElement(contenthandler, DecorationAction.WINDOW_STATE_MINIMIZED);
+                    XMLUtils.data(contenthandler, this.portalService.getLinkService().getLinkURI(event));
+                    XMLUtils.endElement(contenthandler, DecorationAction.WINDOW_STATE_MINIMIZED);
                 }
                 if ( size != CopletInstance.SIZE_NORMAL) {
                     event = new CopletInstanceSizingEvent(cid, CopletInstance.SIZE_NORMAL);
-                    XMLUtils.createElement(contenthandler, DecorationAction.WINDOW_STATE_NORMAL, this.portalService.getLinkService().getLinkURI(event));
+                    XMLUtils.startElement(contenthandler, DecorationAction.WINDOW_STATE_NORMAL);
+                    XMLUtils.data(contenthandler, this.portalService.getLinkService().getLinkURI(event));
+                    XMLUtils.endElement(contenthandler, DecorationAction.WINDOW_STATE_NORMAL);
                 }
                 if ( this.enableMaximized ) {
                     if ( size != CopletInstance.SIZE_MAXIMIZED ) {
                         event = new CopletInstanceSizingEvent(cid, CopletInstance.SIZE_MAXIMIZED);
-                        XMLUtils.createElement(contenthandler, DecorationAction.WINDOW_STATE_MAXIMIZED, this.portalService.getLinkService().getLinkURI(event));
+                        XMLUtils.startElement(contenthandler, DecorationAction.WINDOW_STATE_MAXIMIZED);
+                        XMLUtils.data(contenthandler, this.portalService.getLinkService().getLinkURI(event));
+                        XMLUtils.endElement(contenthandler, DecorationAction.WINDOW_STATE_MAXIMIZED);
                     }
                 }
 
@@ -237,10 +255,14 @@
                         final Layout fullScreenLayout = LayoutFeatures.getFullScreenInfo(this.portalService);
                         if ( fullScreenLayout != null && fullScreenLayout.equals( layout )) {
                             event = new CopletInstanceSizingEvent( cid, CopletInstance.SIZE_NORMAL );
-                            XMLUtils.createElement(contenthandler, DecorationAction.WINDOW_STATE_NORMAL, this.portalService.getLinkService().getLinkURI(event));
+                            XMLUtils.startElement(contenthandler, DecorationAction.WINDOW_STATE_NORMAL);
+                            XMLUtils.data(contenthandler, this.portalService.getLinkService().getLinkURI(event));
+                            XMLUtils.endElement(contenthandler, DecorationAction.WINDOW_STATE_NORMAL);
                         } else {
                             event = new CopletInstanceSizingEvent( cid, CopletInstance.SIZE_FULLSCREEN );
-                            XMLUtils.createElement(contenthandler, DecorationAction.WINDOW_STATE_FULLSCREEN, this.portalService.getLinkService().getLinkURI(event));
+                            XMLUtils.startElement(contenthandler, DecorationAction.WINDOW_STATE_FULLSCREEN);
+                            XMLUtils.data(contenthandler, this.portalService.getLinkService().getLinkURI(event));
+                            XMLUtils.endElement(contenthandler, DecorationAction.WINDOW_STATE_FULLSCREEN);
                         }
                     }
                 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/XSLTAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/XSLTAspect.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/XSLTAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/XSLTAspect.java Mon Mar  3 12:21:05 2008
@@ -26,14 +26,11 @@
 import javax.xml.transform.sax.SAXResult;
 import javax.xml.transform.sax.TransformerHandler;
 
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.cocoon.portal.PortalException;
 import org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectContext;
 import org.apache.cocoon.portal.om.Layout;
 import org.apache.cocoon.portal.om.LayoutException;
 import org.apache.cocoon.portal.services.VariableResolver;
-import org.apache.cocoon.xml.IncludeXMLConsumer;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.xml.xslt.XSLTProcessor;
@@ -87,10 +84,10 @@
     /** Source resolver for resolving the stylesheets. */
     protected SourceResolver resolver;
 
-    protected ServiceManager serviceManager;
+    protected XSLTProcessor xsltProcessor;
 
-    public void setServiceManager(ServiceManager sm) {
-        this.serviceManager = sm;
+    public void setXsltProcessor(XSLTProcessor xsltProcessor) {
+        this.xsltProcessor = xsltProcessor;
     }
 
     public void setSourceResolver(SourceResolver resolver) {
@@ -110,12 +107,10 @@
     throws SAXException, LayoutException {
         PreparedConfiguration config = (PreparedConfiguration)rendererContext.getAspectConfiguration();
 
-        XSLTProcessor processor = null;
         Source stylesheet = null;
         try {
             stylesheet = this.resolver.resolveURI(this.getStylesheetURI(config, layout));
-            processor = (XSLTProcessor) this.serviceManager.lookup(config.xsltRole);
-            TransformerHandler transformer = processor.getTransformerHandler(stylesheet);
+            TransformerHandler transformer = this.xsltProcessor.getTransformerHandler(stylesheet);
             // Pass configured parameters to the stylesheet.
             if (config.parameters.size() > 0) {
                 Transformer theTransformer = transformer.getTransformer();
@@ -135,7 +130,7 @@
                     theTransformer.setParameter((String)entry.getKey(), entry.getValue());
                 }
             }
-            SAXResult result = new SAXResult(new IncludeXMLConsumer((handler)));
+            SAXResult result = new SAXResult(handler);
             if (handler instanceof LexicalHandler) {
                 result.setLexicalHandler((LexicalHandler) handler);
             }
@@ -148,11 +143,8 @@
             throw new SAXException("XSLT Exception.", xpe);
         } catch (IOException io) {
             throw new SAXException("Error in resolving.", io);
-        } catch (ServiceException ce) {
-            throw new SAXException("Unable to lookup component.", ce);
         } finally {
             this.resolver.release(stylesheet);
-            this.serviceManager.release(processor);
         }
 	}
 

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LayoutType.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LayoutType.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LayoutType.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LayoutType.java Mon Mar  3 12:21:05 2008
@@ -20,7 +20,6 @@
 import java.util.List;
 
 import org.apache.cocoon.portal.layout.renderer.Renderer;
-import org.apache.cocoon.util.ClassUtils;
 
 
 /**
@@ -142,7 +141,7 @@
             return new Item();
         }
         try {
-            return (Item) ClassUtils.newInstance( this.itemClassName );
+            return (Item) Thread.currentThread().getContextClassLoader().loadClass(this.itemClassName).newInstance();
         } catch (Exception e ) {
             throw new LayoutException("Unable to create new item for layout type " + this + " of class" + this.itemClassName, e);
         }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java Mon Mar  3 12:21:05 2008
@@ -24,7 +24,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.cocoon.ProcessingException;
 import org.apache.cocoon.portal.event.Receiver;
 import org.apache.cocoon.portal.event.coplet.CopletDefinitionAddedEvent;
 import org.apache.cocoon.portal.event.coplet.CopletInstanceAddedEvent;
@@ -307,7 +306,7 @@
             if ( !this.getCopletInstances(profile, user, CATEGORY_USER, profileName) ) {
                 if ( user.getGroups().size() == 0 || !this.getCopletInstances(profile, user, CATEGORY_GROUP, profileName)) {
                     if ( !this.getCopletInstances(profile, user, CATEGORY_GLOBAL, profileName) ) {
-                        throw new ProcessingException("No profile for copletinstancedatas found.");
+                        throw new ProfileException("No profile for copletinstancedatas found.");
                     }
                 }
             }
@@ -315,7 +314,7 @@
             if ( !this.getLayout(profile, user, CATEGORY_USER, profileName) ) {
                 if ( user.getGroups().size() == 0 || !this.getLayout(profile, user, CATEGORY_GROUP, profileName)) {
                     if ( !this.getLayout(profile, user, CATEGORY_GLOBAL, profileName) ) {
-                        throw new ProcessingException("No profile for layout found.");
+                        throw new ProfileException("No profile for layout found.");
                     }
                 }
             }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultLayoutFactory.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultLayoutFactory.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultLayoutFactory.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultLayoutFactory.java Mon Mar  3 12:21:05 2008
@@ -38,7 +38,6 @@
 import org.apache.cocoon.portal.services.CopletFactory;
 import org.apache.cocoon.portal.services.LayoutFactory;
 import org.apache.cocoon.portal.util.AbstractBean;
-import org.apache.cocoon.util.ClassUtils;
 
 /**
  * Default implementation of the layout factory.
@@ -90,7 +89,7 @@
         }
         Layout layout = null;
         try {
-            Class clazz = ClassUtils.loadClass( layoutType.getLayoutClassName() );
+            Class clazz = Thread.currentThread().getContextClassLoader().loadClass( layoutType.getLayoutClassName() );
             Constructor constructor = clazz.getConstructor(new Class[] {String.class});
             layout = (Layout)constructor.newInstance(new Object[] {layoutId});
             layout.setLayoutType(layoutType);

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultPortalManager.java Mon Mar  3 12:21:05 2008
@@ -20,7 +20,6 @@
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.cocoon.ajax.BrowserUpdateTransformer;
 import org.apache.cocoon.portal.PortalException;
 import org.apache.cocoon.portal.PortalRuntimeException;
 import org.apache.cocoon.portal.layout.renderer.Renderer;
@@ -40,11 +39,11 @@
 import org.apache.cocoon.portal.services.aspects.impl.support.ResponseProcessorAspectContextImpl;
 import org.apache.cocoon.portal.services.aspects.support.AspectChainImpl;
 import org.apache.cocoon.portal.util.AbstractBean;
-import org.apache.cocoon.xml.AttributesImpl;
-import org.apache.cocoon.xml.XMLUtils;
+import org.apache.cocoon.portal.util.XMLUtils;
 import org.apache.commons.lang.StringUtils;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
 
 /**
  *
@@ -54,6 +53,8 @@
 	extends AbstractBean
 	implements PortalManager, RequestProcessorAspect, ResponseProcessorAspect {
 
+    public static final String BU_NSURI = "http://apache.org/cocoon/browser-update/1.0";
+
     /** The aspect chain for additional request processing. */
     protected AspectChainImpl requestChain;
 
@@ -161,15 +162,15 @@
         // only render the changed coplets
         if ( portalLayout == null && portalService.getRequestContext().isAjaxRequest() ) {
             Layout rootLayout = profileManager.getLayout(null);
-            ch.startPrefixMapping("bu", BrowserUpdateTransformer.BU_NSURI);
-            ch.startElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
+            ch.startPrefixMapping("bu", BU_NSURI);
+            ch.startElement(BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
 
             final List changed = CopletInstanceFeatures.getChangedCopletInstanceDataObjects(this.portalService);
             final Iterator i = changed.iterator();
             while ( i.hasNext() ) {
                 final CopletInstance current = (CopletInstance)i.next();
                 final AttributesImpl a = new AttributesImpl();
-                a.addCDATAAttribute("id", current.getId());
+                XMLUtils.addCDATAAttribute(a, "id", current.getId());
                 XMLUtils.startElement(ch, "coplet", a);
                 final Layout l = LayoutFeatures.searchLayout(this.portalService, current.getId(), rootLayout);
                 Renderer portalLayoutRenderer = l.getRenderer();
@@ -180,22 +181,22 @@
                 }
                 XMLUtils.endElement(ch, "coplet");
             }
-            ch.endElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document");
+            ch.endElement(BU_NSURI, "document", "bu:document");
             ch.endPrefixMapping("bu");
         } else {
             if ( StringUtils.isNotEmpty(copletId) ) {
-                ch.startPrefixMapping("bu", BrowserUpdateTransformer.BU_NSURI);
-                ch.startElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
+                ch.startPrefixMapping("bu", BU_NSURI);
+                ch.startElement(BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
 
                 final AttributesImpl a = new AttributesImpl();
-                a.addCDATAAttribute("id", copletId);
+                XMLUtils.addCDATAAttribute(a, "id", copletId);
                 XMLUtils.startElement(ch, "coplet", a);
             } else if ( StringUtils.isNotEmpty(layoutId) ) {
-                ch.startPrefixMapping("bu", BrowserUpdateTransformer.BU_NSURI);
-                ch.startElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
+                ch.startPrefixMapping("bu", BU_NSURI);
+                ch.startElement(BU_NSURI, "document", "bu:document", XMLUtils.EMPTY_ATTRIBUTES);
 
                 final AttributesImpl a = new AttributesImpl();
-                a.addCDATAAttribute("id", layoutId);
+                XMLUtils.addCDATAAttribute(a, "id", layoutId);
                 XMLUtils.startElement(ch, "layout", a);
             }
 
@@ -217,11 +218,11 @@
             }
             if ( StringUtils.isNotEmpty(copletId) ) {
                 XMLUtils.endElement(ch, "coplet");
-                ch.endElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document");
+                ch.endElement(BU_NSURI, "document", "bu:document");
                 ch.endPrefixMapping("bu");
             } else if ( StringUtils.isNotEmpty(layoutId) ) {
                 XMLUtils.endElement(ch, "layout");
-                ch.endElement(BrowserUpdateTransformer.BU_NSURI, "document", "bu:document");
+                ch.endElement(BU_NSURI, "document", "bu:document");
                 ch.endPrefixMapping("bu");
             }
         }

Added: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/SaxBuffer.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/SaxBuffer.java?rev=633260&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/SaxBuffer.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/SaxBuffer.java Mon Mar  3 12:21:05 2008
@@ -0,0 +1,538 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.portal.util;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.ext.LexicalHandler;
+
+/**
+ * A class that can record SAX events and replay them later.
+ *
+ * <p>Compared to {@link org.apache.cocoon.components.sax.XMLByteStreamCompiler},
+ * this class is many times faster at sending out the recorded SAX events since
+ * it doesn't need to convert between byte and char representations etc.
+ * On the other hand, its data structure is more complex then a simple byte array,
+ * making XMLByteStreamCompiler better in case the recorded SAX should be stored long-term.
+ *
+ * <p>Use this class if you need to frequently generate smaller amounts of SAX events,
+ * or replay a set of recorded start events immediately.</p>
+ *
+ * <p>Both {@link ContentHandler} and {@link LexicalHandler} are supported, the only
+ * exception is that the setDocumentLocator event is not recorded.</p>
+ *
+ * @version $Id$
+ */
+public class SaxBuffer implements ContentHandler, LexicalHandler {
+
+    /**
+     * Stores list of {@link SaxBit} objects.
+     */
+    protected List saxbits;
+
+    /**
+     * Creates empty SaxBuffer
+     */
+    public SaxBuffer() {
+        this.saxbits = new ArrayList();
+    }
+
+    /**
+     * Creates SaxBuffer based on the provided bits list.
+     */
+    public SaxBuffer(List bits) {
+        this.saxbits = bits;
+    }
+
+    /**
+     * Creates copy of another SaxBuffer
+     */
+    public SaxBuffer(SaxBuffer saxBuffer) {
+        this.saxbits = new ArrayList(saxBuffer.saxbits);
+    }
+
+    //
+    // ContentHandler Interface
+    //
+
+    public void skippedEntity(String name) throws SAXException {
+        saxbits.add(new SkippedEntity(name));
+    }
+
+    public void setDocumentLocator(Locator locator) {
+        // Don't record this event
+    }
+
+    public void ignorableWhitespace(char ch[], int start, int length) throws SAXException {
+        saxbits.add(new IgnorableWhitespace(ch, start, length));
+    }
+
+    public void processingInstruction(String target, String data) throws SAXException {
+        saxbits.add(new PI(target, data));
+    }
+
+    public void startDocument() throws SAXException {
+        saxbits.add(StartDocument.SINGLETON);
+    }
+
+    public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
+        saxbits.add(new StartElement(namespaceURI, localName, qName, atts));
+    }
+
+    public void endPrefixMapping(String prefix) throws SAXException {
+        saxbits.add(new EndPrefixMapping(prefix));
+    }
+
+    public void characters(char ch[], int start, int length) throws SAXException {
+        saxbits.add(new Characters(ch, start, length));
+    }
+
+    public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
+        saxbits.add(new EndElement(namespaceURI, localName, qName));
+    }
+
+    public void endDocument() throws SAXException {
+        saxbits.add(EndDocument.SINGLETON);
+    }
+
+    public void startPrefixMapping(String prefix, String uri) throws SAXException {
+        saxbits.add(new StartPrefixMapping(prefix, uri));
+    }
+
+    //
+    // LexicalHandler Interface
+    //
+
+    public void endCDATA() throws SAXException {
+        saxbits.add(EndCDATA.SINGLETON);
+    }
+
+    public void comment(char ch[], int start, int length) throws SAXException {
+        saxbits.add(new Comment(ch, start, length));
+    }
+
+    public void startEntity(String name) throws SAXException {
+        saxbits.add(new StartEntity(name));
+    }
+
+    public void endDTD() throws SAXException {
+        saxbits.add(EndDTD.SINGLETON);
+    }
+
+    public void startDTD(String name, String publicId, String systemId) throws SAXException {
+        saxbits.add(new StartDTD(name, publicId, systemId));
+    }
+
+    public void startCDATA() throws SAXException {
+        saxbits.add(StartCDATA.SINGLETON);
+    }
+
+    public void endEntity(String name) throws SAXException {
+        saxbits.add(new EndEntity(name));
+    }
+
+    //
+    // Public Methods
+    //
+
+    /**
+     * @return true if buffer is empty
+     */
+    public boolean isEmpty() {
+        return saxbits.isEmpty();
+    }
+
+    /**
+     * @return unmodifiable list of SAX bits
+     */
+    public List getBits() {
+        return Collections.unmodifiableList(saxbits);
+    }
+
+    /**
+     * Stream this buffer into the provided content handler.
+     * If contentHandler object implements LexicalHandler, it will get lexical
+     * events as well.
+     */
+    public void toSAX(ContentHandler contentHandler) throws SAXException {
+        for (Iterator i = saxbits.iterator(); i.hasNext();) {
+            SaxBit saxbit = (SaxBit)i.next();
+            saxbit.send(contentHandler);
+        }
+    }
+
+    /**
+     * @return String value of the buffer
+     */
+    public String toString() {
+        // NOTE: This method is used in i18n XML bundle implementation
+        final StringBuffer value = new StringBuffer();
+        for (Iterator i = saxbits.iterator(); i.hasNext();) {
+            final SaxBit saxbit = (SaxBit) i.next();
+            if (saxbit instanceof Characters) {
+                ((Characters) saxbit).toString(value);
+            }
+        }
+
+        return value.toString();
+    }
+
+    /**
+     * Clear this buffer
+     */
+    public void recycle() {
+        saxbits.clear();
+    }
+
+    /**
+     * Dump buffer contents into the provided writer.
+     */
+    public void dump(Writer writer) throws IOException {
+        Iterator i = saxbits.iterator();
+        while (i.hasNext()) {
+            final SaxBit saxbit = (SaxBit) i.next();
+            saxbit.dump(writer);
+        }
+        writer.flush();
+    }
+
+    //
+    // Implementation Methods
+    //
+
+    /**
+     * Adds a SaxBit to the bits list
+     */
+    protected final void addBit(SaxBit bit) {
+        saxbits.add(bit);
+    }
+
+    /**
+     * Iterates through the bits list
+     */
+    protected final Iterator bits() {
+        return saxbits.iterator();
+    }
+
+    /**
+     * SaxBit is a representation of the SAX event. Every SaxBit is immutable object.
+     */
+    interface SaxBit {
+        public void send(ContentHandler contentHandler) throws SAXException;
+        public void dump(Writer writer) throws IOException;
+    }
+
+    public final static class StartDocument implements SaxBit, Serializable {
+        public static final StartDocument SINGLETON = new StartDocument();
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.startDocument();
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[StartDocument]\n");
+        }
+    }
+
+    public final static class EndDocument implements SaxBit, Serializable {
+        public static final EndDocument SINGLETON = new EndDocument();
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.endDocument();
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[EndDocument]\n");
+        }
+    }
+
+    public final static class PI implements SaxBit, Serializable {
+        public final String target;
+        public final String data;
+
+        public PI(String target, String data) {
+            this.target = target;
+            this.data = data;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.processingInstruction(target, data);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[ProcessingInstruction] target=" + target + ",data=" + data + "\n");
+        }
+    }
+
+    public final static class StartDTD implements SaxBit, Serializable {
+        public final String name;
+        public final String publicId;
+        public final String systemId;
+
+        public StartDTD(String name, String publicId, String systemId) {
+            this.name = name;
+            this.publicId = publicId;
+            this.systemId = systemId;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            if (contentHandler instanceof LexicalHandler)
+                ((LexicalHandler)contentHandler).startDTD(name, publicId, systemId);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[StartDTD] name=" + name + ",publicId=" + publicId + ",systemId=" + systemId + "\n");
+        }
+    }
+
+    public final static class EndDTD implements SaxBit, Serializable {
+        public static final EndDTD SINGLETON = new EndDTD();
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            if (contentHandler instanceof LexicalHandler)
+                ((LexicalHandler)contentHandler).endDTD();
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[EndDTD]\n");
+        }
+    }
+
+    public final static class StartEntity implements SaxBit, Serializable {
+        public final String name;
+
+        public StartEntity(String name) {
+            this.name = name;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            if (contentHandler instanceof LexicalHandler)
+                ((LexicalHandler)contentHandler).startEntity(name);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[StartEntity] name=" + name + "\n");
+        }
+    }
+
+    public final static class EndEntity implements SaxBit, Serializable {
+        public final String name;
+
+        public EndEntity(String name) {
+            this.name = name;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            if (contentHandler instanceof LexicalHandler)
+                ((LexicalHandler)contentHandler).endEntity(name);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[EndEntity] name=" + name + "\n");
+        }
+    }
+
+    public final static class SkippedEntity implements SaxBit, Serializable {
+        public final String name;
+
+        public SkippedEntity(String name) {
+            this.name = name;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.skippedEntity(name);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[SkippedEntity] name=" + name + "\n");
+        }
+    }
+
+    public final static class StartPrefixMapping implements SaxBit, Serializable {
+        public final String prefix;
+        public final String uri;
+
+        public StartPrefixMapping(String prefix, String uri) {
+            this.prefix = prefix;
+            this.uri = uri;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.startPrefixMapping(prefix, uri);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[StartPrefixMapping] prefix=" + prefix + ",uri=" + uri + "\n");
+        }
+    }
+
+    public final static class EndPrefixMapping implements SaxBit, Serializable {
+        public final String prefix;
+
+        public EndPrefixMapping(String prefix) {
+            this.prefix = prefix;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.endPrefixMapping(prefix);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[EndPrefixMapping] prefix=" + prefix + "\n");
+        }
+    }
+
+    public final static class StartElement implements SaxBit, Serializable {
+        public final String namespaceURI;
+        public final String localName;
+        public final String qName;
+        public final Attributes attrs;
+
+        public StartElement(String namespaceURI, String localName, String qName, Attributes attrs) {
+            this.namespaceURI = namespaceURI;
+            this.localName = localName;
+            this.qName = qName;
+            this.attrs = new org.xml.sax.helpers.AttributesImpl(attrs);
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.startElement(namespaceURI, localName, qName, attrs);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[StartElement] namespaceURI=" + namespaceURI + ",localName=" + localName + ",qName=" + qName + "\n");
+            for (int i = 0; i < attrs.getLength(); i++) {
+                writer.write("      [Attribute] namespaceURI=" + attrs.getURI(i) + ",localName=" + attrs.getLocalName(i) + ",qName=" + attrs.getQName(i) + ",type=" + attrs.getType(i) + ",value=" + attrs.getValue(i) + "\n");
+            }
+        }
+    }
+
+    public final static class EndElement implements SaxBit, Serializable {
+        public final String namespaceURI;
+        public final String localName;
+        public final String qName;
+
+        public EndElement(String namespaceURI, String localName, String qName) {
+            this.namespaceURI = namespaceURI;
+            this.localName = localName;
+            this.qName = qName;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.endElement(namespaceURI, localName, qName);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[EndElement] namespaceURI=" + namespaceURI + ",localName=" + localName + ",qName=" + qName + "\n");
+        }
+    }
+
+    public final static class Characters implements SaxBit, Serializable {
+        public final char[] ch;
+
+        public Characters(char[] ch, int start, int length) {
+            // make a copy so that we don't hold references to a potentially large array we don't control
+            this.ch = new char[length];
+            System.arraycopy(ch, start, this.ch, 0, length);
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.characters(ch, 0, ch.length);
+        }
+
+        public void toString(StringBuffer value) {
+            value.append(ch);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[Characters] ch=" + new String(ch) + "\n");
+        }
+    }
+
+    public final static class Comment implements SaxBit, Serializable {
+        public final char[] ch;
+
+        public Comment(char[] ch, int start, int length) {
+            // make a copy so that we don't hold references to a potentially large array we don't control
+            this.ch = new char[length];
+            System.arraycopy(ch, start, this.ch, 0, length);
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            if (contentHandler instanceof LexicalHandler)
+                ((LexicalHandler)contentHandler).comment(ch, 0, ch.length);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[Comment] ch=" + new String(ch) + "\n");
+        }
+    }
+
+    public final static class StartCDATA implements SaxBit, Serializable {
+        public static final StartCDATA SINGLETON = new StartCDATA();
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            if (contentHandler instanceof LexicalHandler)
+                ((LexicalHandler)contentHandler).startCDATA();
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[StartCDATA]\n");
+        }
+    }
+
+    public final static class EndCDATA implements SaxBit, Serializable {
+        public static final EndCDATA SINGLETON = new EndCDATA();
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            if (contentHandler instanceof LexicalHandler)
+                ((LexicalHandler)contentHandler).endCDATA();
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[EndCDATA]\n");
+        }
+    }
+
+    public final static class IgnorableWhitespace implements SaxBit, Serializable {
+        public final char[] ch;
+
+        public IgnorableWhitespace(char[] ch, int start, int length) {
+            // make a copy so that we don't hold references to a potentially large array we don't control
+            this.ch = new char[length];
+            System.arraycopy(ch, start, this.ch, 0, length);
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            contentHandler.ignorableWhitespace(ch, 0, ch.length);
+        }
+
+        public void dump(Writer writer) throws IOException {
+            writer.write("[IgnorableWhitespace] ch=" + new String(ch) + "\n");
+        }
+    }
+}

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/SaxBuffer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/SaxBuffer.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision url

Added: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/XMLUtils.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/XMLUtils.java?rev=633260&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/XMLUtils.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/XMLUtils.java Mon Mar  3 12:21:05 2008
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.portal.util;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+
+/**
+ * XML utility methods.
+ *
+ * @version $Id$
+ */
+public class XMLUtils {
+
+    /**
+     * Empty attributes.
+     */
+    public static final Attributes EMPTY_ATTRIBUTES = new AttributesImpl();
+
+    /**
+     * Add string data
+     *
+     * @param contentHandler The SAX content handler
+     * @param data The string data
+     */
+    public static void data(ContentHandler contentHandler,
+                            String data)
+    throws SAXException {
+        final char[] c = data.toCharArray();
+        contentHandler.characters(c, 0, c.length);
+    }
+
+    /**
+     * Create endElement with empty Namespace
+     *
+     * <p>For information on the names, see startElement.</p>
+     *
+     * @param localName The local name (without prefix)
+     * @exception org.xml.sax.SAXException Any SAX exception, possibly
+     *            wrapping another exception.
+     */
+    public static void endElement(ContentHandler contentHandler,
+                                  String localName)
+    throws SAXException {
+        contentHandler.endElement("", localName, localName);
+    }
+
+    /**
+     * Create a startElement with a empty Namespace and without Attributes
+     *
+     * @param localName The local name (without prefix)
+     * @exception org.xml.sax.SAXException Any SAX exception, possibly
+     *            wrapping another exception.
+     * @see #endElement(ContentHandler, String)
+     */
+    public static void startElement(ContentHandler contentHandler,
+                                    String localName)
+    throws SAXException {
+        contentHandler.startElement("", localName, localName, EMPTY_ATTRIBUTES);
+    }
+
+    /**
+     * Create a startElement with a empty Namespace
+     *
+     * @param localName The local name (without prefix)
+     * @param atts The attributes attached to the element.  If
+     *        there are no attributes, it shall be an empty
+     *        Attributes object.
+     * @exception org.xml.sax.SAXException Any SAX exception, possibly
+     *            wrapping another exception.
+     * @see #endElement(ContentHandler, String)
+     * @see org.xml.sax.Attributes
+     */
+    public static void startElement(ContentHandler contentHandler,
+                                    String localName,
+                                    Attributes atts)
+    throws SAXException {
+        contentHandler.startElement("", localName, localName, atts);
+    }
+
+    /**
+     * Add an attribute of type CDATA with empty Namespace to the end of the list.
+     *
+     * <p>For the sake of speed, this method does no checking
+     * to see if the attribute is already in the list: that is
+     * the responsibility of the application.</p>
+     *
+     * @param localName The local name.
+     * @param value The attribute value.
+     */
+    public static void addCDATAAttribute(AttributesImpl ai, String localName, String value) {
+        ai.addAttribute("", localName, localName, "CDATA", value);
+    }
+
+}

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/XMLUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/util/XMLUtils.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision url

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/InformationProviderServiceImpl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/InformationProviderServiceImpl.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/InformationProviderServiceImpl.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/InformationProviderServiceImpl.java Mon Mar  3 12:21:05 2008
@@ -18,8 +18,8 @@
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.cocoon.portal.avalon.AbstractComponent;
 import org.apache.cocoon.portal.pluto.om.PortletDefinitionRegistry;
-import org.apache.cocoon.portal.util.AbstractComponent;
 import org.apache.pluto.services.PortletContainerEnvironment;
 import org.apache.pluto.services.information.DynamicInformationProvider;
 import org.apache.pluto.services.information.InformationProviderService;

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java Mon Mar  3 12:21:05 2008
@@ -21,12 +21,12 @@
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.cocoon.portal.avalon.AbstractComponent;
 import org.apache.cocoon.portal.om.CopletInstance;
 import org.apache.cocoon.portal.pluto.om.common.PreferenceSetImpl;
 import org.apache.cocoon.portal.profile.PersistenceType;
 import org.apache.cocoon.portal.profile.ProfileKey;
 import org.apache.cocoon.portal.profile.ProfileStore;
-import org.apache.cocoon.portal.util.AbstractComponent;
 import org.apache.pluto.om.common.PreferenceSet;
 
 /**
@@ -60,7 +60,7 @@
     }
 
     /**
-     * @see org.apache.cocoon.portal.util.AbstractComponent#dispose()
+     * @see org.apache.cocoon.portal.avalon.AbstractComponent#dispose()
      */
     public void dispose() {
         if ( this.manager != null ) {
@@ -71,7 +71,7 @@
     }
 
     /**
-     * @see org.apache.cocoon.portal.util.AbstractComponent#service(org.apache.avalon.framework.service.ServiceManager)
+     * @see org.apache.cocoon.portal.avalon.AbstractComponent#service(org.apache.avalon.framework.service.ServiceManager)
      */
     public void service(ServiceManager serviceManager) throws ServiceException {
         super.service(serviceManager);

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/om/PortletDefinitionRegistryImpl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/om/PortletDefinitionRegistryImpl.java?rev=633260&r1=633259&r2=633260&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/om/PortletDefinitionRegistryImpl.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/om/PortletDefinitionRegistryImpl.java Mon Mar  3 12:21:05 2008
@@ -39,6 +39,7 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.cocoon.components.source.SourceUtil;
 import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.avalon.AbstractComponent;
 import org.apache.cocoon.portal.deployment.DeploymentEvent;
 import org.apache.cocoon.portal.deployment.DeploymentException;
 import org.apache.cocoon.portal.deployment.DeploymentStatus;
@@ -47,7 +48,6 @@
 import org.apache.cocoon.portal.om.CopletType;
 import org.apache.cocoon.portal.pluto.deployment.Deployer;
 import org.apache.cocoon.portal.pluto.deployment.WebApplicationRewriter;
-import org.apache.cocoon.portal.util.AbstractComponent;
 import org.apache.cocoon.thread.RunnableManager;
 import org.apache.commons.lang.StringUtils;
 import org.apache.excalibur.source.Source;