Make sure Spring context will be properly closed
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 29 Jun 2008 20:09:47 +0000 (20:09 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 29 Jun 2008 20:09:47 +0000 (20:09 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1339 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/AntSlcApplication.java
org.argeo.slc.agent/src/main/java/org/argeo/slc/ws/client/WebServiceUtils.java
org.argeo.slc.agent/src/test/java/org/argeo/slc/ant/SlcAntTest.java

index 7c85fc2397ca9d921ccb148ba55951648521208e..b6c98ebbc3e44f6c571783fd190c05a0c8ce0872 100644 (file)
@@ -32,7 +32,6 @@ import org.springframework.beans.factory.BeanFactoryUtils;
 import org.springframework.beans.factory.ListableBeanFactory;
 import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.ApplicationContext;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.io.DefaultResourceLoader;
@@ -68,29 +67,32 @@ public class AntSlcApplication {
                        log.debug("workDir=" + workDir);
                }
 
-               // Spring initialization
-               ConfigurableApplicationContext ctx = createExecutionContext(slcExecution);
-
                // Ant coordinates
                String scriptRelativePath = findAntScript(slcExecution);
                List<String> targets = findAntTargets(slcExecution);
 
+               // Spring initialization
+               ConfigurableApplicationContext ctx = createExecutionContext(slcExecution);
+
                // Ant project initialization
                Project project = new Project();
                AntExecutionContext executionContext = new AntExecutionContext(project);
                project.addReference(AntConstants.REF_ROOT_CONTEXT, ctx);
                project.addReference(AntConstants.REF_SLC_EXECUTION, slcExecution);
-               initProject(project, properties, references);
-               parseProject(project, scriptRelativePath);
 
-               // Execute project
-               initStructure(project, scriptRelativePath);
-               runProject(project, targets);
+               try {
+                       initProject(project, properties, references);
+                       parseProject(project, scriptRelativePath);
 
-               if (executionOutput != null)
-                       executionOutput.postExecution(executionContext);
+                       // Execute project
+                       initStructure(project, scriptRelativePath);
+                       runProject(project, targets);
 
-               ctx.close();
+                       if (executionOutput != null)
+                               executionOutput.postExecution(executionContext);
+               } finally {
+                       ctx.close();
+               }
        }
 
        protected void initSystemProperties(Properties userProperties) {
index 6073044581a706c92fdc585ba874f57cd8bafb71..43ad31306ae6c6490ec536396f7e899c25d190b3 100644 (file)
@@ -5,16 +5,14 @@ import java.util.Iterator;
 import javax.xml.transform.Source;\r
 import javax.xml.transform.dom.DOMSource;\r
 \r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
 import org.springframework.ws.client.core.WebServiceTemplate;\r
 import org.springframework.ws.soap.SoapFaultDetail;\r
 import org.springframework.ws.soap.SoapFaultDetailElement;\r
 import org.springframework.ws.soap.client.SoapFaultClientException;\r
 import org.springframework.xml.transform.StringResult;\r
 import org.w3c.dom.Node;\r
-import org.w3c.dom.Text;\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
 \r
 public abstract class WebServiceUtils {\r
        private final static Log log = LogFactory.getLog(WebServiceUtils.class);\r
index 9cfa214223575e109daae75322f7bad224f8868e..5a58f1f95e328ca9b2d0386bae5a3b4158ec716f 100644 (file)
@@ -1,11 +1,6 @@
 package org.argeo.slc.ant;\r
 \r
-import java.io.File;\r
-\r
 import org.argeo.slc.ant.unit.MinimalAntClasspathTestCase;\r
-import org.argeo.slc.core.process.SlcExecution;\r
-import org.argeo.slc.unit.AbstractSpringTestCase;\r
-import org.springframework.core.io.FileSystemResource;\r
 \r
 public class SlcAntTest extends MinimalAntClasspathTestCase {\r
        // private Log log = LogFactory.getLog(getClass());\r