[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