Author: norman
Date: Sun Dec 19 10:44:37 2010
New Revision: 1050797

URL: http://svn.apache.org/viewvc?rev=1050797&view=rev
Log:
Merge two abstract classes to simplify it a bit 

Removed:
    
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/api/RestrictedLifeCycleBeanPostProcessor.java
Modified:
    
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/api/AbstractLifeCycleBeanPostProcessor.java
    
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/CommonsConfigurableBeanPostProcessor.java
    
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/LogEnabledBeanPostProcessor.java

Modified: 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/api/AbstractLifeCycleBeanPostProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/api/AbstractLifeCycleBeanPostProcessor.java?rev=1050797&r1=1050796&r2=1050797&view=diff
==============================================================================
--- 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/api/AbstractLifeCycleBeanPostProcessor.java
 (original)
+++ 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/api/AbstractLifeCycleBeanPostProcessor.java
 Sun Dec 19 10:44:37 2010
@@ -20,6 +20,9 @@ package org.apache.james.container.sprin
 
 import org.springframework.beans.BeansException;
 import org.springframework.beans.FatalBeanException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
+import org.springframework.beans.factory.ListableBeanFactory;
 import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.core.Ordered;
 import org.springframework.core.PriorityOrdered;
@@ -31,9 +34,10 @@ import org.springframework.core.Priority
  * 
  * @param <T>
  */
-public abstract class AbstractLifeCycleBeanPostProcessor<T> implements 
BeanPostProcessor, PriorityOrdered {
+public abstract class AbstractLifeCycleBeanPostProcessor<T> implements 
BeanPostProcessor, PriorityOrdered, BeanFactoryAware {
 
     private int order = Ordered.HIGHEST_PRECEDENCE;
+    private ListableBeanFactory factory;
 
     /*
      * (non-Javadoc)
@@ -46,7 +50,10 @@ public abstract class AbstractLifeCycleB
         try {
             Class<T> lClass = getLifeCycleInterface();
             if (lClass.isInstance(bean))
-                executeLifecycleMethodAfterInit((T) bean, name);
+                // check if the bean is registered in the context. If not it 
was create by the InstanceFactory and so there is no need to execute the 
callback
+                if (factory.containsBeanDefinition(name)) {
+                    executeLifecycleMethodAfterInit((T) bean, name);
+                }
         } catch (Exception e) {
             throw new FatalBeanException("Unable to execute lifecycle method 
on bean" + name, e);
         }
@@ -71,7 +78,10 @@ public abstract class AbstractLifeCycleB
         try {
             Class<T> lClass = getLifeCycleInterface();
             if (lClass.isInstance(bean))
-                executeLifecycleMethodBeforeInit((T) bean, name);
+                // check if the bean is registered in the context. If not it 
was create by the InstanceFactory and so there is no need to execute the 
callback
+                if (factory.containsBeanDefinition(name)) {
+                    executeLifecycleMethodBeforeInit((T) bean, name);
+                }
         } catch (Exception e) {
             throw new FatalBeanException("Unable to execute lifecycle method 
on bean" + name, e);
         }
@@ -120,5 +130,15 @@ public abstract class AbstractLifeCycleB
     public int getOrder() {
         return order;
     }
+    
+
+    /*
+     * (non-Javadoc)
+     * @see 
org.springframework.beans.factory.BeanFactoryAware#setBeanFactory(org.springframework.beans.factory.BeanFactory)
+     */
+    public void setBeanFactory(BeanFactory factory) throws BeansException {
+        this.factory = (ListableBeanFactory) factory;
+    }
+
 
 }

Modified: 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/CommonsConfigurableBeanPostProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/CommonsConfigurableBeanPostProcessor.java?rev=1050797&r1=1050796&r2=1050797&view=diff
==============================================================================
--- 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/CommonsConfigurableBeanPostProcessor.java
 (original)
+++ 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/CommonsConfigurableBeanPostProcessor.java
 Sun Dec 19 10:44:37 2010
@@ -19,8 +19,8 @@
 package org.apache.james.container.spring.lifecycle.impl;
 
 import org.apache.commons.configuration.HierarchicalConfiguration;
+import 
org.apache.james.container.spring.lifecycle.api.AbstractLifeCycleBeanPostProcessor;
 import org.apache.james.container.spring.lifecycle.api.ConfigurationProvider;
-import 
org.apache.james.container.spring.lifecycle.api.RestrictedLifeCycleBeanPostProcessor;
 import org.apache.james.lifecycle.api.Configurable;
 
 /**
@@ -28,15 +28,15 @@ import org.apache.james.lifecycle.api.Co
  * 
  *
  */
-public class CommonsConfigurableBeanPostProcessor extends 
RestrictedLifeCycleBeanPostProcessor<Configurable> {
+public class CommonsConfigurableBeanPostProcessor extends 
AbstractLifeCycleBeanPostProcessor<Configurable> {
 
     private ConfigurationProvider provider;
 
+
     @Override
-    protected void executeLifecycleMethodBeforeInitChecked(Configurable bean, 
String beanname) throws Exception {
+    protected void executeLifecycleMethodBeforeInit(Configurable bean, String 
beanname) throws Exception {
         HierarchicalConfiguration config = provider.getConfiguration(beanname);
         bean.configure(config);
-
     }
 
     public void setConfigurationProvider(ConfigurationProvider provider) {

Modified: 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/LogEnabledBeanPostProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/LogEnabledBeanPostProcessor.java?rev=1050797&r1=1050796&r2=1050797&view=diff
==============================================================================
--- 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/LogEnabledBeanPostProcessor.java
 (original)
+++ 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/impl/LogEnabledBeanPostProcessor.java
 Sun Dec 19 10:44:37 2010
@@ -18,8 +18,8 @@
  ****************************************************************/
 package org.apache.james.container.spring.lifecycle.impl;
 
+import 
org.apache.james.container.spring.lifecycle.api.AbstractLifeCycleBeanPostProcessor;
 import org.apache.james.container.spring.lifecycle.api.LogProvider;
-import 
org.apache.james.container.spring.lifecycle.api.RestrictedLifeCycleBeanPostProcessor;
 import org.apache.james.lifecycle.api.LogEnabled;
 
 /**
@@ -27,7 +27,7 @@ import org.apache.james.lifecycle.api.Lo
  * 
  *
  */
-public class LogEnabledBeanPostProcessor extends 
RestrictedLifeCycleBeanPostProcessor<LogEnabled> {
+public class LogEnabledBeanPostProcessor extends 
AbstractLifeCycleBeanPostProcessor<LogEnabled> {
 
     private LogProvider provider;
 
@@ -41,8 +41,9 @@ public class LogEnabledBeanPostProcessor
     }
 
     @Override
-    protected void executeLifecycleMethodBeforeInitChecked(LogEnabled bean, 
String beanname) throws Exception {
+    protected void executeLifecycleMethodBeforeInit(LogEnabled bean, String 
beanname) throws Exception {
         bean.setLog(provider.getLog(beanname));
     }
 
+ 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to