From c0460581ca0679267f9c66759ea9ecf598e1b6d0 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 29 Jun 2008 20:09:47 +0000 Subject: [PATCH] Make sure Spring context will be properly closed git-svn-id: https://svn.argeo.org/slc/trunk@1339 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org/argeo/slc/ant/AntSlcApplication.java | 26 ++++++++++--------- .../argeo/slc/ws/client/WebServiceUtils.java | 6 ++--- .../java/org/argeo/slc/ant/SlcAntTest.java | 5 ---- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/AntSlcApplication.java b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/AntSlcApplication.java index 7c85fc239..b6c98ebbc 100644 --- a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/AntSlcApplication.java +++ b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/AntSlcApplication.java @@ -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 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) { diff --git a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ws/client/WebServiceUtils.java b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ws/client/WebServiceUtils.java index 607304458..43ad31306 100644 --- a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ws/client/WebServiceUtils.java +++ b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ws/client/WebServiceUtils.java @@ -5,16 +5,14 @@ import java.util.Iterator; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMSource; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.ws.client.core.WebServiceTemplate; import org.springframework.ws.soap.SoapFaultDetail; import org.springframework.ws.soap.SoapFaultDetailElement; import org.springframework.ws.soap.client.SoapFaultClientException; import org.springframework.xml.transform.StringResult; import org.w3c.dom.Node; -import org.w3c.dom.Text; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; public abstract class WebServiceUtils { private final static Log log = LogFactory.getLog(WebServiceUtils.class); diff --git a/org.argeo.slc.agent/src/test/java/org/argeo/slc/ant/SlcAntTest.java b/org.argeo.slc.agent/src/test/java/org/argeo/slc/ant/SlcAntTest.java index 9cfa21422..5a58f1f95 100644 --- a/org.argeo.slc.agent/src/test/java/org/argeo/slc/ant/SlcAntTest.java +++ b/org.argeo.slc.agent/src/test/java/org/argeo/slc/ant/SlcAntTest.java @@ -1,11 +1,6 @@ package org.argeo.slc.ant; -import java.io.File; - import org.argeo.slc.ant.unit.MinimalAntClasspathTestCase; -import org.argeo.slc.core.process.SlcExecution; -import org.argeo.slc.unit.AbstractSpringTestCase; -import org.springframework.core.io.FileSystemResource; public class SlcAntTest extends MinimalAntClasspathTestCase { // private Log log = LogFactory.getLog(getClass()); -- 2.39.2