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 2006/02/23 22:14:47 UTC

svn commit: r380225 - in /cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon: components/treeprocessor/ components/treeprocessor/sitemap/ core/container/spring/ serialization/

Author: cziegeler
Date: Thu Feb 23 13:14:44 2006
New Revision: 380225

URL: http://svn.apache.org/viewcvs?rev=380225&view=rev
Log:
Dispose sitemap application contexts, add support for aliases (shorthands)

Modified:
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ComponentInfo.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/XmlConfigCreator.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/serialization/AbstractTextSerializer.java

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java Thu Feb 23 13:14:44 2006
@@ -31,12 +31,12 @@
 
     protected ServiceManager manager;
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.cocoon.components.treeprocessor.ProcessingNodeBuilder#setBuilder(org.apache.cocoon.components.treeprocessor.TreeBuilder)
      */
     public void setBuilder(TreeBuilder treeBuilder) {
         this.treeBuilder = treeBuilder;
-        this.manager = treeBuilder.getBuiltProcessorManager();
+        this.manager = (ServiceManager)treeBuilder.getApplicationContext().getBean(ServiceManager.class.getName());
     }
 
     /**

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java Thu Feb 23 13:14:44 2006
@@ -30,6 +30,7 @@
 import org.apache.cocoon.ProcessingException;
 import org.apache.cocoon.Processor;
 import org.apache.cocoon.components.source.impl.SitemapSourceInfo;
+import org.apache.cocoon.core.container.spring.CocoonXmlWebApplicationContext;
 import org.apache.cocoon.environment.Environment;
 import org.apache.cocoon.environment.ForwardRedirector;
 import org.apache.cocoon.environment.Redirector;
@@ -93,7 +94,10 @@
 
     /** no listeners by default */ 
     private Map classpathListeners = Collections.EMPTY_MAP;
-    
+
+    /** Application Context for this sitemap. */
+    protected CocoonXmlWebApplicationContext applicationContext;
+
     /**
      * Builds a concrete processig, given the wrapping processor
      */
@@ -103,7 +107,7 @@
         this.wrappingProcessor = wrappingProcessor;
 
         // Get the sitemap executor - we use the same executor for each sitemap
-        this.sitemapExecutor = sitemapExecutor;        
+        this.sitemapExecutor = sitemapExecutor;
     }
 
     public void handleNotification() {
@@ -122,7 +126,7 @@
     }    
     
     /** Set the processor data, result of the treebuilder job */
-    public void setProcessorData(ServiceManager manager, 
+    public void setProcessorData(CocoonXmlWebApplicationContext appContext, 
                                  ClassLoader classloader, 
                                  ProcessingNode rootNode, 
                                  List disposableNodes,
@@ -132,7 +136,8 @@
             throw new IllegalStateException("setProcessorData() can only be called once");
         }
 
-        this.manager = manager;
+        this.applicationContext = appContext;
+        this.manager = (ServiceManager)this.applicationContext.getBean(ServiceManager.class.getName());
         this.classloader = classloader;
         this.rootNode = rootNode;
         this.disposableNodes = disposableNodes;
@@ -388,6 +393,10 @@
         // dispose listeners
         this.disposeListeners(this.enterSitemapEventListeners);
         this.disposeListeners(this.leaveSitemapEventListeners);
+        if ( this.applicationContext != null ) {
+            this.applicationContext.destroy();
+            this.applicationContext = null;
+        }
     }
 
     protected void disposeListeners(List l) {

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java Thu Feb 23 13:14:44 2006
@@ -41,6 +41,7 @@
 import org.apache.cocoon.components.source.SourceUtil;
 import org.apache.cocoon.components.treeprocessor.variables.VariableResolverFactory;
 import org.apache.cocoon.components.treeprocessor.variables.VariableResolver;
+import org.apache.cocoon.core.container.spring.CocoonXmlWebApplicationContext;
 import org.apache.cocoon.sitemap.PatternException;
 import org.apache.cocoon.sitemap.SitemapParameters;
 import org.apache.cocoon.util.location.Location;
@@ -53,10 +54,9 @@
  *
  * @version $Id$
  */
-public class DefaultTreeBuilder
-        extends AbstractLogEnabled
-        implements TreeBuilder, Contextualizable, Serviceable,
-                   Recyclable, Disposable {
+public abstract class DefaultTreeBuilder
+    extends AbstractLogEnabled
+    implements TreeBuilder, Contextualizable, Serviceable, Recyclable, Disposable {
 
     protected Map attributes = new HashMap();
 
@@ -95,6 +95,8 @@
      * It is created by {@link #createServiceManager(ClassLoader, Context, Configuration)}.
      */
     private ServiceManager itsManager;
+
+    private CocoonXmlWebApplicationContext itsApplicationContext;
     
     /**
      * The classloader for the processor that we are building.
@@ -127,13 +129,6 @@
 
     // -------------------------------------
 
-    /**
-     * Component processor of the parent manager
-     * (can be null for the root sitemap)
-     */
-    protected ServiceManager parentProcessorManager;
-
-
     /** Nodes gone through setupNode() that implement Initializable */
     private List initializableNodes = new ArrayList();
 
@@ -150,14 +145,14 @@
     private Map registeredNodes = new HashMap();
 
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
      */
     public void contextualize(Context context) throws ContextException {
         this.context = context;
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
      */
     public void service(ServiceManager manager) throws ServiceException {
@@ -172,11 +167,7 @@
         return "resource://org/apache/cocoon/components/treeprocessor/sitemap-language.xml";
     }
 
-    public void setParentProcessorManager(ServiceManager manager) {
-        this.parentProcessorManager = manager;
-    }
-
-    /* (non-Javadoc)
+    /**
      * @see org.apache.cocoon.components.treeprocessor.TreeBuilder#setAttribute(java.lang.String, java.lang.Object)
      */
     public void setAttribute(String name, Object value) {
@@ -227,28 +218,29 @@
      *
      * @return a component manager
      */
-    protected ServiceManager createServiceManager(ClassLoader classloader, Context context, Configuration tree)
-    throws Exception {
-        return this.manager;
-    }
+    protected abstract CocoonXmlWebApplicationContext createApplicationContext(ClassLoader classloader, Context context, Configuration tree)
+    throws Exception;
 
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.cocoon.components.treeprocessor.TreeBuilder#setProcessor(ConcreteTreeProcessor)
      */
     public void setProcessor(ConcreteTreeProcessor processor) {
         this.processor = processor;
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.cocoon.components.treeprocessor.TreeBuilder#getProcessor()
      */
     public ConcreteTreeProcessor getProcessor() {
         return this.processor;
     }
     
-    public ServiceManager getBuiltProcessorManager() {
-        return this.itsManager;
+    /**
+     * @see org.apache.cocoon.components.treeprocessor.TreeBuilder#getApplicationContext()
+     */
+    public CocoonXmlWebApplicationContext getApplicationContext() {
+        return this.itsApplicationContext;
     }
 
     public ClassLoader getBuiltProcessorClassLoader() {
@@ -379,9 +371,9 @@
 //        currentThread.setContextClassLoader(this.itsClassLoader);
         this.itsClassLoader = Thread.currentThread().getContextClassLoader();
 
-        this.itsManager = createServiceManager(this.itsClassLoader, this.itsContext, componentConfig);
-        this.itsComponentInfo = (ProcessorComponentInfo)this.itsManager.lookup(ProcessorComponentInfo.ROLE);
-
+        this.itsApplicationContext = createApplicationContext(this.itsClassLoader, this.itsContext, componentConfig);
+        this.itsComponentInfo = (ProcessorComponentInfo)this.itsApplicationContext.getBean(ProcessorComponentInfo.ROLE);
+        this.itsManager = (ServiceManager)this.itsApplicationContext.getBean(ServiceManager.class.getName());
         // Create a helper object to setup components
         this.itsLifecycle = new LifecycleHelper(getLogger(),
                                              this.itsContext,
@@ -607,7 +599,6 @@
         this.disposableNodes = new ArrayList(); // Must not be cleared as it's used for processor disposal
         this.initializableNodes.clear();
         this.linkedBuilders.clear();
-        this.parentProcessorManager = null; // Set in setParentProcessorManager()
         this.processor = null;          // Set in setProcessor()
 
         this.itsNamespace = null;       // Set in build()

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java Thu Feb 23 13:14:44 2006
@@ -19,7 +19,7 @@
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.cocoon.core.container.spring.CocoonXmlWebApplicationContext;
 
 /**
  *
@@ -40,9 +40,7 @@
         }
     }
 
-    void setParentProcessorManager(ServiceManager manager);
-    
-    ServiceManager getBuiltProcessorManager();
+    CocoonXmlWebApplicationContext getApplicationContext();
     
     ClassLoader getBuiltProcessorClassLoader();
 

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java Thu Feb 23 13:14:44 2006
@@ -28,7 +28,6 @@
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.configuration.NamespacedSAXConfigurationHandler;
-import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
 import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.context.Context;
 import org.apache.avalon.framework.context.ContextException;
@@ -78,9 +77,6 @@
                                       Configurable, Contextualizable,
                                       Disposable, Initializable {
 
-    private static final String XCONF_URL =
-        "resource://org/apache/cocoon/components/treeprocessor/sitemap-language.xml";
-
     /** The parent TreeProcessor, if any */
     protected TreeProcessor parent;
 
@@ -125,9 +121,6 @@
     /** The actual processor */
     protected ConcreteTreeProcessor concreteProcessor;
 
-    /** The tree builder configuration */
-    private Configuration treeBuilderConfiguration;
-
     /**
      * Create a TreeProcessor.
      */
@@ -150,7 +143,6 @@
         // Copy all that can be copied from the parent
         this.context = parent.context;
         this.source = sitemapSource;
-        this.treeBuilderConfiguration = parent.treeBuilderConfiguration;
         this.checkReload = checkReload;
         this.lastModifiedDelay = parent.lastModifiedDelay;
 
@@ -181,14 +173,14 @@
         return new TreeProcessor(this, delayedSource, checkReload, prefix);
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
      */
     public void contextualize(Context context) throws ContextException {
         this.context = context;
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
      */
     public void service(ServiceManager manager) throws ServiceException {
@@ -241,10 +233,6 @@
         this.checkReload = config.getAttributeAsBoolean("check-reload",
                              this.core.getSettings().isReloadingEnabled("sitemap"));
 
-        // Obtain the configuration file, or use the XCONF_URL if none
-        // is defined
-        String xconfURL = config.getAttribute("config", XCONF_URL);
-
         // Reload check delay. Default is 1 second.
         this.lastModifiedDelay = config.getChild("reload").getAttributeAsLong("delay", this.core.getSettings().getReloadDelay("sitemap"));
 
@@ -255,21 +243,6 @@
         } catch (Exception e) {
             throw new ConfigurationException("Cannot resolve " + fileName, e);
         }
-
-        // Read the builtin languages definition file
-        try {
-            Source source = this.resolver.resolveURI(xconfURL);
-            try {
-                SAXConfigurationHandler handler = new SAXConfigurationHandler();
-                SourceUtil.toSAX(this.manager, source, null, handler);
-                this.treeBuilderConfiguration = handler.getConfiguration();
-            } finally {
-                this.resolver.release(source);
-            }
-        } catch (Exception e) {
-            String msg = "Error while reading " + xconfURL + ": " + e.getMessage();
-            throw new ConfigurationException(msg, e);
-        }
     }
 
     /**
@@ -719,11 +692,10 @@
             TreeBuilder treeBuilder = getTreeBuilder(sitemapProgram);
             try {
                 treeBuilder.setProcessor(newProcessor);
-                treeBuilder.setParentProcessorManager(this.manager);
 
                 ProcessingNode root = treeBuilder.build(sitemapProgram);
                 newProcessor.setProcessorData(
-                        treeBuilder.getBuiltProcessorManager(),
+                        treeBuilder.getApplicationContext(),
                         treeBuilder.getBuiltProcessorClassLoader(),
                         root,
                         treeBuilder.getDisposableNodes(),
@@ -764,7 +736,7 @@
         return newProcessor;
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.avalon.framework.activity.Disposable#dispose()
      */
     public void dispose() {

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java Thu Feb 23 13:14:44 2006
@@ -103,7 +103,7 @@
      * Build a component manager with the contents of the <map:components> element of
      * the tree.
      */
-    protected ServiceManager createServiceManager(ClassLoader classloader, Context context, Configuration config)
+    protected CocoonXmlWebApplicationContext createApplicationContext(ClassLoader classloader, Context context, Configuration config)
     throws Exception {
 
         // Create the classloader, if needed.
@@ -154,7 +154,7 @@
             }
         }
 
-        return newManager;
+        return sitemapContext;
     }
 
     /**

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java Thu Feb 23 13:14:44 2006
@@ -99,10 +99,18 @@
         }
     }
 
+    /**
+     * Get the avalon configuration information.
+     */
     public ConfigurationInfo getConfigurationInfo() {
         return this.avalonConfiguration;
     }
 
+    /**
+     * Register a child context as a listener. This allows a child context to destroy itself
+     * when the parent is destroyed.
+     * @param childContext The child context.
+     */
     public void registerChildContext(CocoonXmlWebApplicationContext childContext) {
         this.addListener(childContext);
     }
@@ -129,6 +137,8 @@
     }
 
     /**
+     * Create a new bean factory and add a bean post processor to handle
+     * Avalon components.
      * @see org.springframework.context.support.AbstractRefreshableApplicationContext#createBeanFactory()
      */
     protected DefaultListableBeanFactory createBeanFactory() {
@@ -173,7 +183,7 @@
             return super.getResourceByPath(path);
         }
     }
-    
+
     /**
      * The default location for the context is "conf/applicationContext.xml"
      * which is searched relative to the current sitemap.

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ComponentInfo.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ComponentInfo.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ComponentInfo.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ComponentInfo.java Thu Feb 23 13:14:44 2006
@@ -46,6 +46,7 @@
     private Parameters parameters;
     private String loggerCategory;
     private String role;
+    private String alias;
 
     public ComponentInfo() {
         this.model = MODEL_PRIMITIVE;
@@ -216,6 +217,14 @@
 
     public void setParameters(Parameters parameters) {
         this.parameters = parameters;
+    }
+
+    public String getAlias() {
+        return alias;
+    }
+
+    public void setAlias(String alias) {
+        this.alias = alias;
     }
 
     /**

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ConfigReader.java Thu Feb 23 13:14:44 2006
@@ -175,9 +175,11 @@
                 // Component declaration
                 // Find the role
                 String role = componentConfig.getAttribute("role", null);
+                String alias = null;
                 if (role == null) {
                     // Get the role from the role manager if not explicitely specified
                     role = (String)this.configInfo.getShorthands().get( componentName );
+                    alias = componentName;
                     if (role == null) {
                         // Unknown role
                         throw new ConfigurationException("Unknown component type '" + componentName +
@@ -209,6 +211,9 @@
                 info.fill(componentConfig);
                 info.setComponentClassName(className);
                 info.setRole(role);
+                if ( alias != null ) {
+                    info.setAlias(alias);
+                }
                 info.setConfiguration(componentConfig);
 
                 this.configInfo.addComponent(info);
@@ -454,6 +459,7 @@
                     info.fill(role);
                     info.setRole(roleName);
                     info.setConfiguration(role);
+                    info.setAlias(shorthand);
                     this.configInfo.getClassNames().put(roleName, info);
                 } else {
                     // Check that it's consistent with the existing info
@@ -485,6 +491,7 @@
                         info.setComponentClassName(className);
                         info.fill(key);
                         info.setConfiguration(key);
+                        info.setAlias(shortHand);
                         keyMap.put( shortHand, info );
                     } else {
                         // Check that it's consistent with the existing info

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/XmlConfigCreator.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/XmlConfigCreator.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/XmlConfigCreator.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/XmlConfigCreator.java Thu Feb 23 13:14:44 2006
@@ -33,7 +33,6 @@
  * This is a simple component that uses a {@link  ConfigurationInfo} to create
  * a Spring like configuration xml document.
  *
- * TODO: register aliases for shorthands
  * @since 2.2
  * @version $Id$
  */
@@ -163,6 +162,12 @@
                 }
                 buffer.append("</bean>\n");
                 pooledRoles.add(role);
+            }
+            if ( current.getAlias() != null ) {
+                buffer.append("<alias");
+                this.appendAttribute(buffer, "name", this.xml(role));
+                this.appendAttribute(buffer, "alias", current.getAlias());
+                buffer.append("/>\n");
             }
         }
         // add the Cocoon object to the root

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/serialization/AbstractTextSerializer.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/serialization/AbstractTextSerializer.java?rev=380225&r1=380224&r2=380225&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/serialization/AbstractTextSerializer.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/serialization/AbstractTextSerializer.java Thu Feb 23 13:14:44 2006
@@ -15,7 +15,6 @@
  */
 package org.apache.cocoon.serialization;
 
-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;