From: Mathieu Baudier Date: Sat, 31 May 2008 17:58:36 +0000 (+0000) Subject: Introduce maven deploy environment X-Git-Tag: argeo-slc-2.1.7~2876 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=956079f214e8b52944d1b5fe4576a9a7587ebb6e;hp=3b00f618dbc08ee5f28861d0bcf5079e6c3d8da4;p=gpl%2Fargeo-slc.git Introduce maven deploy environment git-svn-id: https://svn.argeo.org/slc/trunk@1164 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java new file mode 100644 index 000000000..d10b073e1 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java @@ -0,0 +1,73 @@ +package org.argeo.slc.maven; + +import java.io.File; +import java.net.URL; +import java.util.Map; +import java.util.Properties; +import java.util.UUID; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.slc.ant.AntRegistryUtil; +import org.argeo.slc.core.SlcException; +import org.argeo.slc.core.deploy.DeployEnvironment; + +public class MavenDeployEnvironment implements DeployEnvironment { + private static final Log log = LogFactory + .getLog(MavenDeployEnvironment.class); + private MavenManager mavenManager; + + public void unpackTo(Object packg, File targetLocation, + Map filter) { + File packageLocation; + String type = null; + String removeRootDir = "enabled"; + if (packg instanceof MavenFile) { + packageLocation = mavenManager + .getPackageLocation((MavenFile) packg); + type = ((MavenFile) packg).getType(); + } else if (packg instanceof File) { + packageLocation = (File) packg; + // TODO: type based on extension + } else { + throw new SlcException("Unrecognized package type " + + packg.getClass()); + } + if (log.isDebugEnabled()) { + log.debug("Unpack " + packageLocation + " of type " + type + " to " + + targetLocation); + } + + try { + File tempDir = new File("/tmp/"+UUID.randomUUID().toString()); + tempDir.mkdirs(); + targetLocation.mkdirs(); + Properties props = new Properties(); + props.setProperty("dest", targetLocation.getAbsolutePath()); + props.setProperty("src", packageLocation.getAbsolutePath()); + props.setProperty("tempDir", tempDir.getAbsolutePath()); + props.setProperty("removeRootDir", removeRootDir); + + URL antUrl = getClass().getClassLoader().getResource( + "org/argeo/slc/support/deploy/ant/build.xml"); + + if (type == null || type.equals("zip")) { + AntRegistryUtil.runAll(antUrl, "deployZip", props); + } else if (type.equals("tar.gz")) { + AntRegistryUtil.runAll(antUrl, "deployTarGz", props); + } else { + throw new SlcException("Unknow package type " + type); + } + } catch (SlcException e) { + throw e; + } catch (Exception e) { + throw new SlcException("Cannot unpack package " + packg + " to " + + targetLocation, e); + } + } + + public void setMavenManager(MavenManager mavenManager) { + this.mavenManager = mavenManager; + } + +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/BasicDeployEnvironment.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/BasicDeployEnvironment.java deleted file mode 100644 index 60dfea024..000000000 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/BasicDeployEnvironment.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.argeo.slc.support.deploy; - -import java.io.File; -import java.net.URL; -import java.util.Map; -import java.util.Properties; -import java.util.UUID; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.slc.ant.AntRegistryUtil; -import org.argeo.slc.core.SlcException; -import org.argeo.slc.core.deploy.DeployEnvironment; -import org.argeo.slc.maven.MavenFile; -import org.argeo.slc.maven.MavenManager; - -public class BasicDeployEnvironment implements DeployEnvironment { - private static final Log log = LogFactory - .getLog(BasicDeployEnvironment.class); - private MavenManager mavenManager; - - public void unpackTo(Object packg, File targetLocation, - Map filter) { - File packageLocation; - String type = null; - String removeRootDir = "enabled"; - if (packg instanceof MavenFile) { - packageLocation = mavenManager - .getPackageLocation((MavenFile) packg); - type = ((MavenFile) packg).getType(); - } else if (packg instanceof File) { - packageLocation = (File) packg; - // TODO: type based on extension - } else { - throw new SlcException("Unrecognized package type " - + packg.getClass()); - } - if (log.isDebugEnabled()) { - log.debug("Unpack " + packageLocation + " of type " + type + " to " - + targetLocation); - } - - try { - File tempDir = new File("/tmp/"+UUID.randomUUID().toString()); - tempDir.mkdirs(); - targetLocation.mkdirs(); - Properties props = new Properties(); - props.setProperty("dest", targetLocation.getAbsolutePath()); - props.setProperty("src", packageLocation.getAbsolutePath()); - props.setProperty("tempDir", tempDir.getAbsolutePath()); - props.setProperty("removeRootDir", removeRootDir); - - URL antUrl = getClass().getClassLoader().getResource( - "org/argeo/slc/support/deploy/ant/build.xml"); - - if (type == null || type.equals("zip")) { - AntRegistryUtil.runAll(antUrl, "deployZip", props); - } else if (type.equals("tar.gz")) { - AntRegistryUtil.runAll(antUrl, "deployTarGz", props); - } else { - throw new SlcException("Unknow package type " + type); - } - } catch (SlcException e) { - throw e; - } catch (Exception e) { - throw new SlcException("Cannot unpack package " + packg + " to " - + targetLocation, e); - } - } - - public void setMavenManager(MavenManager mavenManager) { - this.mavenManager = mavenManager; - } - -}