]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java
Simplify equinox launching
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.maven / src / main / java / org / argeo / slc / maven / MavenDeployEnvironment.java
1 package org.argeo.slc.maven;
2
3 import java.io.File;
4 import java.net.URL;
5 import java.util.Map;
6 import java.util.Properties;
7 import java.util.UUID;
8
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11 import org.argeo.slc.SlcException;
12 import org.argeo.slc.deploy.DeployEnvironment;
13
14 public class MavenDeployEnvironment implements DeployEnvironment {
15 private static final Log log = LogFactory
16 .getLog(MavenDeployEnvironment.class);
17 private MavenManager mavenManager;
18
19 public void unpackTo(Object packg, File targetLocation,
20 Map<String, String> filter) {
21 File packageLocation;
22 String type = null;
23 String removeRootDir = "enabled";
24 if (packg instanceof MavenFile) {
25 packageLocation = mavenManager
26 .getPackageLocation((MavenFile) packg);
27 type = ((MavenFile) packg).getType();
28 } else if (packg instanceof File) {
29 packageLocation = (File) packg;
30 // TODO: type based on extension
31 } else {
32 throw new SlcException("Unrecognized package type "
33 + packg.getClass());
34 }
35 if (log.isDebugEnabled()) {
36 log.debug("Unpack " + packageLocation + " of type " + type + " to "
37 + targetLocation);
38 }
39
40 try {
41 File tempDir = new File("/tmp/" + UUID.randomUUID().toString());
42 tempDir.mkdirs();
43 targetLocation.mkdirs();
44 Properties props = new Properties();
45 props.setProperty("dest", targetLocation.getAbsolutePath());
46 props.setProperty("src", packageLocation.getAbsolutePath());
47 props.setProperty("tempDir", tempDir.getAbsolutePath());
48 props.setProperty("removeRootDir", removeRootDir);
49
50 URL antUrl = getClass().getClassLoader().getResource(
51 "org/argeo/slc/support/deploy/ant/build.xml");
52
53 // if (type == null || type.equals("zip")) {
54 // new AntRunner(antUrl, "deployZip", props).run();
55 // } else if (type.equals("tar.gz")) {
56 // new AntRunner(antUrl, "deployTarGz", props).run();
57 // } else {
58 // throw new SlcException("Unknow package type " + type);
59 // }
60 throw new SlcException("Not implemented.");
61 } catch (SlcException e) {
62 throw e;
63 } catch (Exception e) {
64 throw new SlcException("Cannot unpack package " + packg + " to "
65 + targetLocation, e);
66 }
67 }
68
69 public void setMavenManager(MavenManager mavenManager) {
70 this.mavenManager = mavenManager;
71 }
72
73 }