1 package org
.argeo
.slc
.maven
;
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
;
15 public class MavenDeployEnvironment
implements DeployEnvironment
{
16 private static final Log log
= LogFactory
17 .getLog(MavenDeployEnvironment
.class);
18 private MavenManager mavenManager
;
20 public void unpackTo(Object packg
, File targetLocation
,
21 Map
<String
, String
> filter
) {
24 String removeRootDir
= "enabled";
25 if (packg
instanceof MavenFile
) {
26 packageLocation
= mavenManager
27 .getPackageLocation((MavenFile
) packg
);
28 type
= ((MavenFile
) packg
).getType();
29 } else if (packg
instanceof File
) {
30 packageLocation
= (File
) packg
;
31 // TODO: type based on extension
33 throw new SlcException("Unrecognized package type "
36 if (log
.isDebugEnabled()) {
37 log
.debug("Unpack " + packageLocation
+ " of type " + type
+ " to "
42 File tempDir
= new File("/tmp/"+UUID
.randomUUID().toString());
44 targetLocation
.mkdirs();
45 Properties props
= new Properties();
46 props
.setProperty("dest", targetLocation
.getAbsolutePath());
47 props
.setProperty("src", packageLocation
.getAbsolutePath());
48 props
.setProperty("tempDir", tempDir
.getAbsolutePath());
49 props
.setProperty("removeRootDir", removeRootDir
);
51 URL antUrl
= getClass().getClassLoader().getResource(
52 "org/argeo/slc/support/deploy/ant/build.xml");
54 if (type
== null || type
.equals("zip")) {
55 AntRegistryUtil
.runAll(antUrl
, "deployZip", props
);
56 } else if (type
.equals("tar.gz")) {
57 AntRegistryUtil
.runAll(antUrl
, "deployTarGz", props
);
59 throw new SlcException("Unknow package type " + type
);
61 } catch (SlcException e
) {
63 } catch (Exception e
) {
64 throw new SlcException("Cannot unpack package " + packg
+ " to "
69 public void setMavenManager(MavenManager mavenManager
) {
70 this.mavenManager
= mavenManager
;