]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenManager.java
Introduce Maven support
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.maven / src / main / java / org / argeo / slc / maven / MavenManager.java
index 20120bdf77127e7b3368f3e18aef8b75438f5672..b49a911bd5649891771b1ca6dd12b9c49da72d32 100644 (file)
@@ -1,8 +1,19 @@
 package org.argeo.slc.maven;\r
 \r
+import java.io.File;\r
+import java.util.List;\r
+import java.util.Vector;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.apache.maven.artifact.Artifact;\r
+import org.apache.maven.artifact.repository.ArtifactRepository;\r
+import org.apache.maven.embedder.MavenEmbedder;\r
+import org.apache.maven.embedder.MavenEmbedderException;\r
+import org.argeo.slc.SlcException;\r
 \r
 public class MavenManager {\r
-       /*\r
+\r
        private final Log log = LogFactory.getLog(getClass());\r
 \r
        private String localRepositoryPath = System.getProperty("user.home")\r
@@ -13,13 +24,20 @@ public class MavenManager {
        private List<RemoteRepository> remoteRepositories = new Vector<RemoteRepository>();\r
 \r
        private MavenEmbedder mavenEmbedder;\r
+       private ClassLoader classLoader;\r
+       private Boolean offline = false;\r
 \r
        public void init() {\r
                try {\r
                        mavenEmbedder = new MavenEmbedder();\r
-                       mavenEmbedder.setOffline(true);\r
-                       mavenEmbedder.setClassLoader(Thread.currentThread()\r
-                                       .getContextClassLoader());\r
+                       mavenEmbedder.setOffline(offline);\r
+                       if (classLoader != null)\r
+                               mavenEmbedder.setClassLoader(classLoader);\r
+                       else\r
+                               mavenEmbedder.setClassLoader(getClass().getClassLoader());\r
+                       // else\r
+                       // mavenEmbedder.setClassLoader(Thread.currentThread()\r
+                       // .getContextClassLoader());\r
                        mavenEmbedder.start();\r
 \r
                        mavenEmbedder.setLocalRepositoryDirectory(new File(\r
@@ -34,16 +52,18 @@ public class MavenManager {
                                                remoteRepository.getUrl(), remoteRepository.getId());\r
                                remoteRepositoriesInternal.add(repository);\r
                        }\r
-                       \r
+\r
                        MavenFile mavenFile = new MavenFile();\r
-                       mavenFile.setGroupId("org.argeo.slc.runtime");\r
-                       mavenFile.setArtifactId("org.argeo.slc.specs");\r
-                       mavenFile.setVersion("0.11.3-SNAPSHOT");\r
+                       mavenFile.setGroupId("org.argeo.slc.dist");\r
+                       mavenFile.setArtifactId("org.argeo.slc.sdk");\r
+                       mavenFile.setVersion("0.12.2-SNAPSHOT");\r
+                       mavenFile.setType("pom");\r
                        Artifact artifact = resolve(mavenFile);\r
-                       log.debug("Dependencies of "+artifact);\r
-                       for(Object obj : artifact.getDependencyTrail()){\r
-                               log.debug("  "+obj);\r
-                       }\r
+                       log.debug("Location of " + artifact + " : " + artifact.getFile());\r
+//                     log.debug("Dependencies of " + artifact);\r
+//                     for (Object obj : artifact.getDependencyTrail()) {\r
+//                             log.debug("  " + obj);\r
+//                     }\r
 \r
                } catch (Exception e) {\r
                        throw new SlcException("Cannot initialize Maven manager", e);\r
@@ -100,5 +120,13 @@ public class MavenManager {
        public void setRemoteRepositories(List<RemoteRepository> remoteRepositories) {\r
                this.remoteRepositories = remoteRepositories;\r
        }\r
-*/\r
+\r
+       public void setClassLoader(ClassLoader classLoader) {\r
+               this.classLoader = classLoader;\r
+       }\r
+\r
+       public void setOffline(Boolean offline) {\r
+               this.offline = offline;\r
+       }\r
+\r
 }\r