You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2007/10/23 02:08:03 UTC

svn commit: r587305 - in /cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon: AvalonBeanPostProcessor.java AvalonUtils.java

Author: vgritsenko
Date: Mon Oct 22 17:08:02 2007
New Revision: 587305

URL: http://svn.apache.org/viewvc?rev=587305&view=rev
Log:
make empty config read only. no need to replace properties of empty config.

Modified:
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonBeanPostProcessor.java
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonUtils.java

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonBeanPostProcessor.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonBeanPostProcessor.java?rev=587305&r1=587304&r2=587305&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonBeanPostProcessor.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonBeanPostProcessor.java Mon Oct 22 17:08:02 2007
@@ -56,7 +56,12 @@
  */
 public class AvalonBeanPostProcessor implements DestructionAwareBeanPostProcessor, BeanFactoryAware {
 
-    protected static final Configuration EMPTY_CONFIG = new DefaultConfiguration("empty");
+    protected static final Configuration EMPTY_CONFIG;
+    static {
+        DefaultConfiguration config = new DefaultConfiguration("empty");
+        config.makeReadOnly();
+        EMPTY_CONFIG = config;
+    }
 
     protected Logger logger;
     protected Context context;
@@ -193,8 +198,7 @@
     }
 
     /**
-     * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object,
-     *      java.lang.String)
+     * @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(Object, String)
      */
     public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
         try {
@@ -224,15 +228,18 @@
             }
             ContainerUtil.contextualize(bean, this.context);
             ContainerUtil.service(bean, (ServiceManager) this.beanFactory.getBean(ServiceManager.class.getName()));
+
             Configuration config = info.getProcessedConfiguration();
             if (config == null) {
                 config = info.getConfiguration();
                 if (config == null) {
                     config = EMPTY_CONFIG;
+                } else {
+                    config = AvalonUtils.replaceProperties(config, this.settings);
                 }
-                config = AvalonUtils.replaceProperties(config, this.settings);
                 info.setProcessedConfiguration(config);
             }
+
             if (bean instanceof Configurable) {
                 ContainerUtil.configure(bean, config);
             } else if (bean instanceof Parameterizable) {
@@ -243,6 +250,7 @@
                 }
                 ContainerUtil.parameterize(bean, p);
             }
+
             ContainerUtil.initialize(bean);
         } catch (Exception e) {
             throw new BeanCreationException("Unable to initialize Avalon component with role " + beanName, e);
@@ -252,8 +260,7 @@
     }
 
     /**
-     * @see org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor#postProcessBeforeDestruction(java.lang.Object,
-     *      java.lang.String)
+     * @see DestructionAwareBeanPostProcessor#postProcessBeforeDestruction(Object, String)
      */
     public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException {
         try {

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonUtils.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonUtils.java?rev=587305&r1=587304&r2=587305&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonUtils.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/core/container/spring/avalon/AvalonUtils.java Mon Oct 22 17:08:02 2007
@@ -32,10 +32,13 @@
 
     /** Bean name for the Avalon context. */
     public static final String CONTEXT_ROLE = "org.apache.avalon.framework.context.Context";
+
     /** Bean name for the logger. */
     public static final String LOGGER_ROLE = "org.apache.avalon.framework.logger.Logger";
+
     /** Bean name for the service manager. */
     public static final String SERVICE_MANAGER_ROLE = "org.apache.avalon.framework.service.ServiceManager";
+
 
     /**
      * Replace all properties in the configuration object.