[jboss-svn-commits] JBL Code SVN: r24605 - in labs/jbossesb/trunk/product/services/spring/src: test/java/org/jboss/soa/esb/actions/spring and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jan 8 09:45:12 EST 2009


Author: beve
Date: 2009-01-08 09:45:12 -0500 (Thu, 08 Jan 2009)
New Revision: 24605

Modified:
   labs/jbossesb/trunk/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java
   labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java
   labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java
   labs/jbossesb/trunk/product/services/spring/src/test/resources/spring-context-2.xml
Log:
Work for https://jira.jboss.org/jira/browse/JBESB-2237 "Revisit spring integration"


Modified: labs/jbossesb/trunk/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java
===================================================================
--- labs/jbossesb/trunk/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java	2009-01-08 09:50:53 UTC (rev 24604)
+++ labs/jbossesb/trunk/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java	2009-01-08 14:45:12 UTC (rev 24605)
@@ -26,7 +26,7 @@
 import org.jboss.soa.esb.message.Message;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanFactory;
-import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 /**
@@ -62,9 +62,9 @@
 	/** configuration object */
 	protected ConfigTree configTree;
 
-	/** Spring bean factory */
-	private BeanFactory factory;
-
+	/** Spring Application Context */
+	private AbstractApplicationContext appContext;
+	
 	/**
 	 * Constructs and instance with storing the passed in ConfigTree instance.
 	 * <p/>
@@ -101,7 +101,7 @@
 		}
 
 		springContextXml = configTree.getAttribute( SPRING_CONTEXT_XML_ATTR );
-		if (springContextXml == null)
+		if (springContextXml == null || springContextXml.equals(""))
 		{
 			throw new ActionLifecycleException( "No Spring context specified on action config: " + SPRING_CONTEXT_XML_ATTR + "." );
 		} 
@@ -117,7 +117,7 @@
 	 */
 	public boolean isBeanFactoryNull()
 	{
-		return factory == null;
+		return appContext == null;
 	}
 	
 	/**
@@ -151,6 +151,11 @@
 	 */
 	public void destroy() throws ActionLifecycleException
 	{
+	    if (appContext != null)
+	    {
+	        appContext.close();
+	        appContext = null;
+	    }
 	}
 
 	/**
@@ -175,7 +180,7 @@
 	 */
 	protected BeanFactory getBeanFactory() throws ActionLifecycleException
 	{
-		return factory;
+		return appContext;
 	}
 	
 	/**
@@ -200,19 +205,7 @@
 	{
 		try
 		{
-			ApplicationContext springContext;
-
-			if (springContextXml.contains( "," ))
-			{
-				String[] springContextXmls = springContextXml.split( "," );
-				springContext = new ClassPathXmlApplicationContext( springContextXmls );
-			} 
-			else
-			{
-				springContext = new ClassPathXmlApplicationContext( springContextXml );
-			}
-
-			factory = (BeanFactory) springContext;
+			appContext = new ClassPathXmlApplicationContext(springContextXml.split(","));
 		} 
 		catch (final BeansException e)
 		{

Modified: labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java	2009-01-08 09:50:53 UTC (rev 24604)
+++ labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java	2009-01-08 14:45:12 UTC (rev 24605)
@@ -20,6 +20,8 @@
 package org.jboss.soa.esb.actions.spring;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import junit.framework.JUnit4TestAdapter;
 
 import org.jboss.soa.esb.actions.ActionLifecycleException;
@@ -67,6 +69,22 @@
         assertEquals("Greeting Changed", mockAction.sayHelloAopStyle());
         assertEquals(false, mockAction.isBeanFactoryNull());
     }
+    
+    @Test
+    public void destroy() throws Exception
+    {
+        MockSpringAction mockAction = createMockAction( new String[] { springContext1, springContext2 } );
+        mockAction.sayHelloSpring();
+        assertFalse(mockAction.isBeanFactoryNull());
+        mockAction.destroy();
+        assertTrue(mockAction.isBeanFactoryNull());
+    }
+    
+	@Test (expected = ActionLifecycleException.class)
+    public void exptySpringContextFile() throws Exception
+    {
+        createMockAction( new String[] { "" } );
+    }
        
     public static junit.framework.Test suite()
     {
@@ -81,13 +99,19 @@
 	private MockSpringAction createMockAction( String[] files) throws Exception
 	{
         final ConfigTree config = createConfig();
-        final StringBuilder sb = new StringBuilder();
-        for (String configFile : files)
-		{
-        	sb.append( configFile ).append( ',' );
-		}
-        config.setAttribute( "springContextXml" , sb.toString() );
-        
+        if (files.length == 1)
+        {
+            config.setAttribute( "springContextXml" , files[0]);
+        }
+        else
+        {
+            final StringBuilder sb = new StringBuilder();
+            for (String configFile : files)
+    		{
+            	sb.append(configFile).append(",");
+    		}
+            config.setAttribute( "springContextXml" , sb.toString() );
+        }
         return new MockSpringAction( config );
 	}
 }

Modified: labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java
===================================================================
--- labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java	2009-01-08 09:50:53 UTC (rev 24604)
+++ labs/jbossesb/trunk/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java	2009-01-08 14:45:12 UTC (rev 24605)
@@ -8,15 +8,21 @@
  */
 public class SaySomething
 {
-   private String greeting;
+    private String greeting;
 
-   public String getGreeting()
-   {
-      return greeting;
-   }
+    public String getGreeting()
+    {
+        return greeting;
+    }
 
-   public void setGreeting(String greeting)
-   {
-      this.greeting = greeting;
-   }
+    public void setGreeting(String greeting)
+    {
+        this.greeting = greeting;
+    }
+
+    public void destroy()
+    {
+        System.out.println("destroy called");
+    }
+
 }

Modified: labs/jbossesb/trunk/product/services/spring/src/test/resources/spring-context-2.xml
===================================================================
--- labs/jbossesb/trunk/product/services/spring/src/test/resources/spring-context-2.xml	2009-01-08 09:50:53 UTC (rev 24604)
+++ labs/jbossesb/trunk/product/services/spring/src/test/resources/spring-context-2.xml	2009-01-08 14:45:12 UTC (rev 24605)
@@ -8,7 +8,7 @@
 
 	<!-- ========================= BUSINESS OBJECT DEFINITIONS ======================== -->
 
-	<bean id="goodbyeObject" class="org.jboss.soa.esb.actions.spring.SaySomething">
+	<bean id="goodbyeObject" class="org.jboss.soa.esb.actions.spring.SaySomething" destroy-method="destroy">
 		<property name="greeting" value="goodbye from Spring"/>
 	</bean>
 	




More information about the jboss-svn-commits mailing list