From 38eb8183a25b1393457f31d4c373be065c51c385 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 16 Jun 2009 21:31:37 +0000 Subject: [PATCH] Reintroduce ant support git-svn-id: https://svn.argeo.org/slc/trunk@2556 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- demo/pom.xml | 5 + .../META-INF/MANIFEST.MF | 19 +++ .../ant/hello/build.xml | 5 + demo/site/org.argeo.slc.demo.ant/conf/ant.xml | 19 +++ .../org.argeo.slc.demo.ant/conf/imports.xml | 12 ++ .../site/org.argeo.slc.demo.ant/conf/main.xml | 16 +++ .../site/org.argeo.slc.demo.ant/conf/osgi.xml | 15 ++ pom.xml | 7 + runtime/org.argeo.slc.support.ant/pom.xml | 4 + .../main/java/org/argeo/slc/ant/AntRun.java | 133 ++++++++++++++++++ .../argeo/slc/osgi/OsgiExecutionLauncher.java | 2 +- runtime/org.argeo.slc.support.simple/pom.xml | 5 + .../ant/backup/build.xml | 98 +++++++++++++ .../WEB-INF/classes/log4j.properties | 36 ----- .../org.argeo.slc.webapp.war/WEB-INF/web.xml | 4 +- 15 files changed, 341 insertions(+), 39 deletions(-) create mode 100644 demo/site/org.argeo.slc.demo.ant/META-INF/MANIFEST.MF create mode 100644 demo/site/org.argeo.slc.demo.ant/ant/hello/build.xml create mode 100644 demo/site/org.argeo.slc.demo.ant/conf/ant.xml create mode 100644 demo/site/org.argeo.slc.demo.ant/conf/imports.xml create mode 100644 demo/site/org.argeo.slc.demo.ant/conf/main.xml create mode 100644 demo/site/org.argeo.slc.demo.ant/conf/osgi.xml create mode 100644 runtime/org.argeo.slc.support.ant/src/main/java/org/argeo/slc/ant/AntRun.java create mode 100644 server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.main/ant/backup/build.xml delete mode 100644 server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/classes/log4j.properties diff --git a/demo/pom.xml b/demo/pom.xml index dbff147d6..e0dcaf7d6 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -145,6 +145,11 @@ org.argeo.slc.dep.agent ${project.version} + + org.argeo.slc.runtime + org.argeo.slc.support.ant + ${project.version} + diff --git a/demo/site/org.argeo.slc.demo.ant/META-INF/MANIFEST.MF b/demo/site/org.argeo.slc.demo.ant/META-INF/MANIFEST.MF new file mode 100644 index 000000000..4f4943623 --- /dev/null +++ b/demo/site/org.argeo.slc.demo.ant/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Require-Bundle: org.argeo.slc.support.equinox, + org.argeo.slc.specs, + org.argeo.slc.support.simple, + org.argeo.slc.support.ant +Bundle-Version: 0.11.4.SNAPSHOT +Bundle-Name: Basic Plug-in +Spring-Context: conf/*,conf/testCases/* +Bundle-SymbolicName: org.argeo.slc.demo.ant +Import-Package: net.sf.cglib.core, + net.sf.cglib.proxy, + net.sf.cglib.reflect, + org.aopalliance.aop, + org.apache.commons.logging, + org.springframework.aop, + org.springframework.aop.framework, + org.springframework.aop.scope, + org.springframework.beans.factory.config, + org.springframework.core.io diff --git a/demo/site/org.argeo.slc.demo.ant/ant/hello/build.xml b/demo/site/org.argeo.slc.demo.ant/ant/hello/build.xml new file mode 100644 index 000000000..78dffa3e0 --- /dev/null +++ b/demo/site/org.argeo.slc.demo.ant/ant/hello/build.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/demo/site/org.argeo.slc.demo.ant/conf/ant.xml b/demo/site/org.argeo.slc.demo.ant/conf/ant.xml new file mode 100644 index 000000000..826c185ed --- /dev/null +++ b/demo/site/org.argeo.slc.demo.ant/conf/ant.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/demo/site/org.argeo.slc.demo.ant/conf/imports.xml b/demo/site/org.argeo.slc.demo.ant/conf/imports.xml new file mode 100644 index 000000000..6bff52fb1 --- /dev/null +++ b/demo/site/org.argeo.slc.demo.ant/conf/imports.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/demo/site/org.argeo.slc.demo.ant/conf/main.xml b/demo/site/org.argeo.slc.demo.ant/conf/main.xml new file mode 100644 index 000000000..7546151c6 --- /dev/null +++ b/demo/site/org.argeo.slc.demo.ant/conf/main.xml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/demo/site/org.argeo.slc.demo.ant/conf/osgi.xml b/demo/site/org.argeo.slc.demo.ant/conf/osgi.xml new file mode 100644 index 000000000..a759f5b5c --- /dev/null +++ b/demo/site/org.argeo.slc.demo.ant/conf/osgi.xml @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 0de8168fb..fb45f268b 100644 --- a/pom.xml +++ b/pom.xml @@ -816,6 +816,13 @@ limitations under the License. com.springsource.com.jcraft.jsch 0.1.25 + + + + com.opensymphony.quartz + com.springsource.org.quartz + 1.6.2 + diff --git a/runtime/org.argeo.slc.support.ant/pom.xml b/runtime/org.argeo.slc.support.ant/pom.xml index 8076cb819..a99da195e 100644 --- a/runtime/org.argeo.slc.support.ant/pom.xml +++ b/runtime/org.argeo.slc.support.ant/pom.xml @@ -53,6 +53,10 @@ org.apache.ant com.springsource.org.apache.tools.ant + + + org.apache.ant + com.springsource.org.apache.tools.ant.launch 1.7.1 diff --git a/runtime/org.argeo.slc.support.ant/src/main/java/org/argeo/slc/ant/AntRun.java b/runtime/org.argeo.slc.support.ant/src/main/java/org/argeo/slc/ant/AntRun.java new file mode 100644 index 000000000..a49c5be1d --- /dev/null +++ b/runtime/org.argeo.slc.support.ant/src/main/java/org/argeo/slc/ant/AntRun.java @@ -0,0 +1,133 @@ +package org.argeo.slc.ant; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tools.ant.BuildEvent; +import org.apache.tools.ant.BuildListener; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.ProjectHelper; +import org.apache.tools.ant.helper.ProjectHelper2; +import org.argeo.slc.SlcException; +import org.springframework.core.io.Resource; + +public class AntRun implements Runnable { + private final static Log log = LogFactory.getLog(AntRun.class); + + private Resource buildFile; + + private List targets = new ArrayList(); + private Map properties = new HashMap(); + + public void run() { + Project project = new Project(); + + try { + String path = buildFile.getURL().getPath(); + project.setUserProperty("ant.file", path); + project.setBaseDir(extractBaseDir(path)); + + project.init(); + ProjectHelper projectHelper = new ProjectHelper2(); + project.addReference(ProjectHelper.PROJECTHELPER_REFERENCE, + projectHelper); + projectHelper.parse(project, buildFile.getURL()); + } catch (Exception e) { + throw new SlcException("Could not parse " + buildFile, e); + } + + if (properties != null) { + for (Map.Entry entry : properties.entrySet()) { + project.setUserProperty(entry.getKey().toString(), entry + .getValue().toString()); + } + } + + project.fireBuildStarted(); + Throwable exception = null; + try { + project.addBuildListener(new LoggingListener()); + if (targets.size() == 0) { + project.executeTarget(project.getDefaultTarget()); + } else { + project.executeTargets(new Vector(targets)); + } + } catch (Throwable e) { + exception = e; + throw new SlcException("Could not run Ant script " + buildFile, e); + } finally { + project.fireBuildFinished(exception); + } + } + + private File extractBaseDir(String path) { + String baseDir = null; + if (path.length() > 1) { + int indx = path.lastIndexOf('/', path.length() - 1); + if (indx == -1 || indx == 0) { + baseDir = "/"; + } else { + baseDir = path.substring(0, indx) + "/"; + } + } else { + baseDir = "/"; + } + File file = new File(baseDir); + if (file.exists()) { + return file; + } else { + return new File(System.getProperty("user.dir")); + } + } + + public void setBuildFile(Resource buildFile) { + this.buildFile = buildFile; + } + + public void setTargets(List targets) { + this.targets = targets; + } + + public void setProperties(Map properties) { + this.properties = properties; + } + + protected static class LoggingListener implements BuildListener { + + public void buildFinished(BuildEvent event) { + if (log.isDebugEnabled()) + log.debug("Ant build finished: " + event); + } + + public void buildStarted(BuildEvent event) { + if (log.isDebugEnabled()) + log.debug("Ant build started: " + event); + } + + public void messageLogged(BuildEvent event) { + log.info(event.getMessage()); + } + + public void targetFinished(BuildEvent event) { + if (log.isTraceEnabled()) + log.debug("Target finished: " + event.getTarget()); + } + + public void targetStarted(BuildEvent event) { + if (log.isTraceEnabled()) + log.debug("Target started: " + event.getTarget()); + } + + public void taskFinished(BuildEvent event) { + } + + public void taskStarted(BuildEvent event) { + } + } +} diff --git a/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/osgi/OsgiExecutionLauncher.java b/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/osgi/OsgiExecutionLauncher.java index 5baa91be8..1b911269b 100644 --- a/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/osgi/OsgiExecutionLauncher.java +++ b/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/osgi/OsgiExecutionLauncher.java @@ -98,7 +98,7 @@ public class OsgiExecutionLauncher implements BundleContextAware { descriptor.setName(launch.getExecutionName()); module.execute(descriptor); log.info("Executed " + launch.getExecutionName() + " from " - + launch.getExecutionName()); + + launch.getModuleName()); } } catch (Exception e) { diff --git a/runtime/org.argeo.slc.support.simple/pom.xml b/runtime/org.argeo.slc.support.simple/pom.xml index 9829bb47e..a7cfe7b8c 100644 --- a/runtime/org.argeo.slc.support.simple/pom.xml +++ b/runtime/org.argeo.slc.support.simple/pom.xml @@ -115,5 +115,10 @@ com.springsource.com.jcraft.jsch + + com.opensymphony.quartz + com.springsource.org.quartz + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.main/ant/backup/build.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.main/ant/backup/build.xml new file mode 100644 index 000000000..edf93b187 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.main/ant/backup/build.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/classes/log4j.properties b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/classes/log4j.properties deleted file mode 100644 index d51df5f45..000000000 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/classes/log4j.properties +++ /dev/null @@ -1,36 +0,0 @@ -# Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=WARN, console - -## Levels -# Slc -log4j.logger.org.argeo.slc=DEBUG - -# Spring -log4j.logger.org.springframework=WARN -log4j.logger.org.springframework.transaction=WARN -log4j.logger.org.springframework.orm.hibernate3=WARN -log4j.logger.org.springframework.orm.hibernate3.HibernateTransactionManager=WARN -log4j.logger.org.springframework.osgi.web=INFO - -# Hibernate -log4j.logger.org.hibernate=WARN -log4j.logger.org.hibernate.stat=WARN -log4j.logger.org.hibernate.SQL=WARN -log4j.logger.org.hibernate.transaction=WARN -#log4j.logger.org.hibernate.tool.hbm2ddl=TRACE -#log4j.logger.org.hibernate.type=TRACE - -# Active MQ -log4j.logger.org.apache.activemq.web.MessageListenerServlet=WARN - -# EhCache -log4j.logger.net.sf.ehcache=WARN - -## Appenders -# A1 is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n - diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/web.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/web.xml index a7477347e..0e1ad8909 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/web.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/web.xml @@ -70,7 +70,7 @@ org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext - +