From 787d5761e4d125e527104a0455ab47d4eaf38ac1 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 12 Jun 2008 20:02:50 +0000 Subject: [PATCH] Introduce SLC Main command line git-svn-id: https://svn.argeo.org/slc/trunk@1251 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- org.argeo.slc.agent/pom.xml | 5 ++ .../org/argeo/slc/ant/AntSlcApplication.java | 63 +++++++++---------- .../main/java/org/argeo/slc/ant/SlcMain.java | 20 ++++++ .../java/org/argeo/slc/ant/SlcAntTest.java | 1 + 4 files changed, 54 insertions(+), 35 deletions(-) create mode 100644 org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/SlcMain.java diff --git a/org.argeo.slc.agent/pom.xml b/org.argeo.slc.agent/pom.xml index 62a5562d8..1fbd1a40f 100644 --- a/org.argeo.slc.agent/pom.xml +++ b/org.argeo.slc.agent/pom.xml @@ -86,5 +86,10 @@ maven-settings + + commons-cli + commons-cli + + \ No newline at end of file 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 3638340e1..79f325a9c 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 @@ -37,11 +37,35 @@ public class AntSlcApplication { private SlcRuntime slcRuntime; private Resource contextLocation; + private ConfigurableApplicationContext context; private Resource rootDir; private Resource confDir; private Resource workDir; + public void init() { + try { + if (confDir != null && contextLocation == null) { + contextLocation = confDir + .createRelative("applicationContext.xml"); + } + + GenericApplicationContext ctx = new GenericApplicationContext( + slcRuntime.getRuntimeContext()); + if (contextLocation != null && contextLocation.exists()) { + XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader( + ctx); + xmlReader.loadBeanDefinitions(contextLocation); + } + ctx.refresh(); + context = ctx; + } catch (Exception e) { + throw new SlcAntException( + "Cannot create SLC app application context.", e); + } + + } + public void execute(SlcExecution slcExecution, Properties properties, Map references) { if (log.isDebugEnabled()) { @@ -66,6 +90,8 @@ public class AntSlcApplication { initStructure(project, script); runProject(project, targets); + + ctx.close(); } protected Resource findAntScript(SlcExecution slcExecution) { @@ -114,18 +140,9 @@ public class AntSlcApplication { protected ConfigurableApplicationContext createExecutionContext() { try { - if (confDir != null && contextLocation == null) { - contextLocation = confDir - .createRelative("applicationContext.xml"); - } - GenericApplicationContext ctx = new GenericApplicationContext( - slcRuntime.getRuntimeContext()); - if (contextLocation != null && contextLocation.exists()) { - XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader( - ctx); - xmlReader.loadBeanDefinitions(contextLocation); - } + context); + ctx.refresh(); return ctx; } catch (Exception e) { throw new SlcAntException( @@ -234,30 +251,6 @@ public class AntSlcApplication { throw new SlcAntException("Cannot inititalize execution structure", e); } - - /* - * File rootDir = new File(project - * .getUserProperty(SlcAntConstants.ROOT_DIR_PROPERTY)) - * .getAbsoluteFile(); File baseDir = - * project.getBaseDir().getAbsoluteFile(); List dirs = new Vector(); - * File currentDir = baseDir; do { dirs.add(currentDir); currentDir = - * currentDir.getParentFile(); if (log.isTraceEnabled()) log.trace("List " + - * currentDir); } while (!currentDir.equals(rootDir.getParentFile())); // - * first path is root dir (because of previous algorithm) TreeSPath - * currPath = TreeSPath.createRootPath(rootDir.getName()); for (int i = - * dirs.size() - 1; i >= 0; i--) { File dir = dirs.get(i); // retrieves - * description for this path final String description; if (i == 0) {// - * project itself description = project.getDescription() != null && - * !project.getDescription().equals("") ? project .getDescription() : - * project.getName(); } else { description = dir.getName(); if - * (log.isTraceEnabled()) log.trace("Dir desc " + i + "/" + dirs.size() + ": " + - * description); } SimpleSElement element = new - * SimpleSElement(description); // creates and register path if - * (!dir.equals(rootDir)) {// already set currPath = - * currPath.createChild(dir.getName()); } registry.register(currPath, - * element); } project.addReference(SlcAntConstants.REF_PROJECT_PATH, - * currPath); - */ } protected void parseProject(Project project, Resource script) { diff --git a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/SlcMain.java b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/SlcMain.java new file mode 100644 index 000000000..cf737a016 --- /dev/null +++ b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/SlcMain.java @@ -0,0 +1,20 @@ +package org.argeo.slc.ant; + +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; + +public class SlcMain { + + /** + * @param args + */ + public static void main(String[] args) { + // TODO Auto-generated method stub + + } + + public static Options createOptions(){ + Options options = new Options(); + return options; + } +} 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 c49fcc74f..4cbdb86cb 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 @@ -29,6 +29,7 @@ public class SlcAntTest extends AbstractSpringTestCase { slcApp.setRootDir(new FileSystemResource(new File("src/test/resources") .getAbsolutePath() + File.separator)); + slcApp.init(); SlcExecution slcExecution = new SlcExecution(); slcExecution.getAttributes().put(SlcAntConstants.EXECATTR_ANT_FILE, -- 2.39.5