[jboss-cvs] JBossAS SVN: r68323 - trunk/spring-int/src/main/org/jboss/spring/deployers.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Dec 16 17:56:53 EST 2007


Author: alesj
Date: 2007-12-16 17:56:53 -0500 (Sun, 16 Dec 2007)
New Revision: 68323

Modified:
   trunk/spring-int/src/main/org/jboss/spring/deployers/AbstractSpringMetaDataDeployer.java
   trunk/spring-int/src/main/org/jboss/spring/deployers/ApplicationContextDeployer.java
   trunk/spring-int/src/main/org/jboss/spring/deployers/BeanFactoryDeployer.java
Log:
Generics.

Modified: trunk/spring-int/src/main/org/jboss/spring/deployers/AbstractSpringMetaDataDeployer.java
===================================================================
--- trunk/spring-int/src/main/org/jboss/spring/deployers/AbstractSpringMetaDataDeployer.java	2007-12-16 20:26:44 UTC (rev 68322)
+++ trunk/spring-int/src/main/org/jboss/spring/deployers/AbstractSpringMetaDataDeployer.java	2007-12-16 22:56:53 UTC (rev 68323)
@@ -38,9 +38,10 @@
  * @see ApplicationContextDeployer
  * @see BeanFactoryDeployer
  *
+ * @param <T> exact bean factory type
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
-public abstract class AbstractSpringMetaDataDeployer extends AbstractRealDeployerWithInput<SpringMetaData>
+public abstract class AbstractSpringMetaDataDeployer<T extends BeanFactory> extends AbstractRealDeployerWithInput<SpringMetaData>
 {
    protected AbstractSpringMetaDataDeployer()
    {
@@ -68,7 +69,7 @@
          try
          {
             Thread.currentThread().setContextClassLoader(classLoader);
-            BeanFactory beanFactory = doCreate(springMetaData);
+            T beanFactory = doCreate(springMetaData);
             String name = ((Nameable) beanFactory).getName();
             springMetaData.setName(name);
             bind(beanFactory, name);
@@ -87,14 +88,14 @@
        * @param metaData the spring meta data
        * @return new bean factory instance
        */
-      protected abstract BeanFactory doCreate(SpringMetaData metaData);
+      protected abstract T doCreate(SpringMetaData metaData);
 
       public void undeploy(DeploymentUnit unit, SpringMetaData springMetaData)
       {
          String name = springMetaData.getName();
          try
          {
-            BeanFactory beanFactory = lookup(name);
+            T beanFactory = lookup(name);
             if (beanFactory != null)
             {
                doClose(beanFactory);
@@ -115,7 +116,7 @@
        *
        * @param beanFactory the bean factory to close
        */
-      protected abstract void doClose(BeanFactory beanFactory);
+      protected abstract void doClose(T beanFactory);
    }
 
    /**
@@ -125,7 +126,7 @@
     * @param name the jndi name
     * @throws DeploymentException for any error
     */
-   protected void bind(BeanFactory beanFactory, String name) throws DeploymentException
+   protected void bind(T beanFactory, String name) throws DeploymentException
    {
       InitialContext ctx = null;
       try
@@ -192,9 +193,10 @@
     * @return bean factory instance
     * @throws Exception for any exception
     */
-   protected BeanFactory lookup(String name) throws Exception
+   protected T lookup(String name) throws Exception
    {
-      BeanFactory beanFactory = (BeanFactory) Util.lookup(name, getExactBeanFactoryClass());
+      Class<T> beanFactoryClass = getExactBeanFactoryClass();
+      T beanFactory = beanFactoryClass.cast(Util.lookup(name, beanFactoryClass));
       if (log.isTraceEnabled())
          log.trace("Found Spring bean factory [" + name + "]: " + beanFactory);
       return beanFactory;
@@ -205,5 +207,5 @@
     *
     * @return the bean factory class
     */
-   protected abstract Class getExactBeanFactoryClass();
+   protected abstract Class<T> getExactBeanFactoryClass();
 }

Modified: trunk/spring-int/src/main/org/jboss/spring/deployers/ApplicationContextDeployer.java
===================================================================
--- trunk/spring-int/src/main/org/jboss/spring/deployers/ApplicationContextDeployer.java	2007-12-16 20:26:44 UTC (rev 68322)
+++ trunk/spring-int/src/main/org/jboss/spring/deployers/ApplicationContextDeployer.java	2007-12-16 22:56:53 UTC (rev 68323)
@@ -23,35 +23,33 @@
 
 import org.jboss.deployers.spi.deployer.helpers.DeploymentVisitor;
 import org.jboss.spring.factory.NamedXmlApplicationContext;
-import org.springframework.beans.factory.BeanFactory;
 import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.ApplicationContext;
 
 /**
  * Spring application context deployer.
  *
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
-public class ApplicationContextDeployer extends AbstractSpringMetaDataDeployer
+public class ApplicationContextDeployer extends AbstractSpringMetaDataDeployer<ConfigurableApplicationContext>
 {
    protected DeploymentVisitor<SpringMetaData> createDeploymentVisitor()
    {
       return new SpringDeploymentVisitor()
       {
-         protected BeanFactory doCreate(SpringMetaData metaData)
+         protected ConfigurableApplicationContext doCreate(SpringMetaData metaData)
          {
             return new NamedXmlApplicationContext(metaData.getDefaultName(), metaData.getResource());
          }
 
-         protected void doClose(BeanFactory beanFactory)
+         protected void doClose(ConfigurableApplicationContext beanFactory)
          {
-            ((ConfigurableApplicationContext) beanFactory).close();
+            beanFactory.close();
          }
       };
    }
 
-   protected Class getExactBeanFactoryClass()
+   protected Class<ConfigurableApplicationContext> getExactBeanFactoryClass()
    {
-      return ApplicationContext.class;
+      return ConfigurableApplicationContext.class;
    }
 }

Modified: trunk/spring-int/src/main/org/jboss/spring/deployers/BeanFactoryDeployer.java
===================================================================
--- trunk/spring-int/src/main/org/jboss/spring/deployers/BeanFactoryDeployer.java	2007-12-16 20:26:44 UTC (rev 68322)
+++ trunk/spring-int/src/main/org/jboss/spring/deployers/BeanFactoryDeployer.java	2007-12-16 22:56:53 UTC (rev 68323)
@@ -23,7 +23,6 @@
 
 import org.jboss.deployers.spi.deployer.helpers.DeploymentVisitor;
 import org.jboss.spring.factory.NamedXmlBeanFactory;
-import org.springframework.beans.factory.BeanFactory;
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
 
 /**
@@ -31,26 +30,26 @@
  *
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
-public class BeanFactoryDeployer extends AbstractSpringMetaDataDeployer
+public class BeanFactoryDeployer extends AbstractSpringMetaDataDeployer<ConfigurableBeanFactory>
 {
    protected DeploymentVisitor<SpringMetaData> createDeploymentVisitor()
    {
       return new SpringDeploymentVisitor()
       {
-         protected BeanFactory doCreate(SpringMetaData metaData)
+         protected ConfigurableBeanFactory doCreate(SpringMetaData metaData)
          {
             return new NamedXmlBeanFactory(metaData.getDefaultName(), metaData.getResource());
          }
 
-         protected void doClose(BeanFactory beanFactory)
+         protected void doClose(ConfigurableBeanFactory beanFactory)
          {
-            ((ConfigurableBeanFactory) beanFactory).destroySingletons();
+            beanFactory.destroySingletons();
          }
       };
    }
 
-   protected Class getExactBeanFactoryClass()
+   protected Class<ConfigurableBeanFactory> getExactBeanFactoryClass()
    {
-      return BeanFactory.class;
+      return ConfigurableBeanFactory.class;
    }
 }




More information about the jboss-cvs-commits mailing list