1 package org
.argeo
.slc
.support
.deploy
;
6 import java
.util
.Properties
;
9 import org
.apache
.commons
.logging
.Log
;
10 import org
.apache
.commons
.logging
.LogFactory
;
11 import org
.argeo
.slc
.ant
.AntRegistryUtil
;
12 import org
.argeo
.slc
.core
.SlcException
;
13 import org
.argeo
.slc
.core
.deploy
.DeployEnvironment
;
14 import org
.argeo
.slc
.maven
.MavenFile
;
15 import org
.argeo
.slc
.maven
.MavenManager
;
17 public class BasicDeployEnvironment
implements DeployEnvironment
{
18 private static final Log log
= LogFactory
19 .getLog(BasicDeployEnvironment
.class);
20 private MavenManager mavenManager
;
22 public void unpackTo(Object packg
, File targetLocation
,
23 Map
<String
, String
> filter
) {
26 String removeRootDir
= "enabled";
27 if (packg
instanceof MavenFile
) {
28 packageLocation
= mavenManager
29 .getPackageLocation((MavenFile
) packg
);
30 type
= ((MavenFile
) packg
).getType();
31 } else if (packg
instanceof File
) {
32 packageLocation
= (File
) packg
;
33 // TODO: type based on extension
35 throw new SlcException("Unrecognized package type "
38 if (log
.isDebugEnabled()) {
39 log
.debug("Unpack " + packageLocation
+ " of type " + type
+ " to "
44 File tempDir
= new File("/tmp/"+UUID
.randomUUID().toString());
46 targetLocation
.mkdirs();
47 Properties props
= new Properties();
48 props
.setProperty("dest", targetLocation
.getAbsolutePath());
49 props
.setProperty("src", packageLocation
.getAbsolutePath());
50 props
.setProperty("tempDir", tempDir
.getAbsolutePath());
51 props
.setProperty("removeRootDir", removeRootDir
);
53 URL antUrl
= getClass().getClassLoader().getResource(
54 "org/argeo/slc/support/deploy/ant/build.xml");
56 if (type
== null || type
.equals("zip")) {
57 AntRegistryUtil
.runAll(antUrl
, "deployZip", props
);
58 } else if (type
.equals("tar.gz")) {
59 AntRegistryUtil
.runAll(antUrl
, "deployTarGz", props
);
61 throw new SlcException("Unknow package type " + type
);
63 } catch (SlcException e
) {
65 } catch (Exception e
) {
66 throw new SlcException("Cannot unpack package " + packg
+ " to "
71 public void setMavenManager(MavenManager mavenManager
) {
72 this.mavenManager
= mavenManager
;