From 289692714f0f92973a0f475aefd224982dccd06b Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 12 Apr 2010 11:17:12 +0000 Subject: [PATCH] Introduce Maven support git-svn-id: https://svn.argeo.org/slc/trunk@3448 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../META-INF/spring/demo.xml | 2 + demo/site/org.argeo.slc.demo.maven/.project | 22 ++++++++ .../.settings/org.eclipse.pde.core.prefs | 4 ++ .../META-INF/MANIFEST.MF | 17 ++++++ .../META-INF/spring/imports.xml | 8 +++ .../META-INF/spring/maven.xml | 13 +++++ .../META-INF/spring/osgi.xml | 10 ++++ .../ant/hello/build.xml | 5 ++ .../org.argeo.slc.demo.maven/build.properties | 1 + .../org.argeo.slc.demo.maven/conf/ant.xml | 19 +++++++ .../conf/flowGenerator.xml | 18 +++++++ .../org.argeo.slc.demo.maven/conf/imports.xml | 8 +++ .../org.argeo.slc.demo.maven/conf/osgi.xml | 10 ++++ dep/org.argeo.slc.dep.agent/pom.xml | 4 ++ pom.xml | 5 ++ .../org.argeo.slc.support.maven/.classpath | 2 +- runtime/org.argeo.slc.support.maven/.project | 9 +++- runtime/org.argeo.slc.support.maven/pom.xml | 11 ++-- .../slc/maven/MavenDeployEnvironment.java | 27 ++++++---- .../org/argeo/slc/maven/MavenManager.java | 54 ++++++++++++++----- 20 files changed, 221 insertions(+), 28 deletions(-) create mode 100644 demo/site/org.argeo.slc.demo.maven/.project create mode 100644 demo/site/org.argeo.slc.demo.maven/.settings/org.eclipse.pde.core.prefs create mode 100644 demo/site/org.argeo.slc.demo.maven/META-INF/MANIFEST.MF create mode 100644 demo/site/org.argeo.slc.demo.maven/META-INF/spring/imports.xml create mode 100644 demo/site/org.argeo.slc.demo.maven/META-INF/spring/maven.xml create mode 100644 demo/site/org.argeo.slc.demo.maven/META-INF/spring/osgi.xml create mode 100644 demo/site/org.argeo.slc.demo.maven/ant/hello/build.xml create mode 100644 demo/site/org.argeo.slc.demo.maven/build.properties create mode 100644 demo/site/org.argeo.slc.demo.maven/conf/ant.xml create mode 100644 demo/site/org.argeo.slc.demo.maven/conf/flowGenerator.xml create mode 100644 demo/site/org.argeo.slc.demo.maven/conf/imports.xml create mode 100644 demo/site/org.argeo.slc.demo.maven/conf/osgi.xml diff --git a/demo/site/org.argeo.slc.demo.agent/META-INF/spring/demo.xml b/demo/site/org.argeo.slc.demo.agent/META-INF/spring/demo.xml index 0eda31f10..6467d6ccb 100644 --- a/demo/site/org.argeo.slc.demo.agent/META-INF/spring/demo.xml +++ b/demo/site/org.argeo.slc.demo.agent/META-INF/spring/demo.xml @@ -11,6 +11,8 @@ + diff --git a/pom.xml b/pom.xml index e9127f7da..ad48eec3f 100644 --- a/pom.xml +++ b/pom.xml @@ -247,6 +247,11 @@ limitations under the License. org.argeo.slc.support.ant ${project.version} + + org.argeo.slc.runtime + org.argeo.slc.support.maven + ${project.version} + org.argeo.slc.runtime org.argeo.slc.support.hibernate diff --git a/runtime/org.argeo.slc.support.maven/.classpath b/runtime/org.argeo.slc.support.maven/.classpath index 9653ef0ac..ea37d3120 100644 --- a/runtime/org.argeo.slc.support.maven/.classpath +++ b/runtime/org.argeo.slc.support.maven/.classpath @@ -5,6 +5,6 @@ - + diff --git a/runtime/org.argeo.slc.support.maven/.project b/runtime/org.argeo.slc.support.maven/.project index fdf94a130..6d444af5a 100644 --- a/runtime/org.argeo.slc.support.maven/.project +++ b/runtime/org.argeo.slc.support.maven/.project @@ -11,13 +11,18 @@ - org.maven.ide.eclipse.maven2Builder + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder org.eclipse.jdt.core.javanature - org.maven.ide.eclipse.maven2Nature + org.eclipse.pde.PluginNature diff --git a/runtime/org.argeo.slc.support.maven/pom.xml b/runtime/org.argeo.slc.support.maven/pom.xml index c41846e27..e1edaff0b 100644 --- a/runtime/org.argeo.slc.support.maven/pom.xml +++ b/runtime/org.argeo.slc.support.maven/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 org.argeo.slc @@ -18,11 +19,10 @@ ${version.maven-bundle-plugin} + org.argeo.dep.osgi.maven.embedder org.argeo.slc.maven.* - *,org.codehaus.plexus;resolution:="optional" - @@ -65,5 +65,10 @@ commons-logging --> + + org.argeo.dep.osgi + org.argeo.dep.osgi.maven.embedder + 2.0.4.0002 + diff --git a/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java b/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java index d3949a200..50717fae6 100644 --- a/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java +++ b/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenDeployEnvironment.java @@ -1,9 +1,18 @@ 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.SlcException; import org.argeo.slc.deploy.DeployEnvironment; public abstract class MavenDeployEnvironment implements DeployEnvironment { -/* private static final Log log = LogFactory + private static final Log log = LogFactory .getLog(MavenDeployEnvironment.class); private MavenManager mavenManager; @@ -41,13 +50,13 @@ public abstract class MavenDeployEnvironment implements DeployEnvironment { URL antUrl = getClass().getClassLoader().getResource( "org/argeo/slc/support/deploy/ant/build.xml"); -// if (type == null || type.equals("zip")) { -// new AntRunner(antUrl, "deployZip", props).run(); -// } else if (type.equals("tar.gz")) { -// new AntRunner(antUrl, "deployTarGz", props).run(); -// } else { -// throw new SlcException("Unknow package type " + type); -// } + // if (type == null || type.equals("zip")) { + // new AntRunner(antUrl, "deployZip", props).run(); + // } else if (type.equals("tar.gz")) { + // new AntRunner(antUrl, "deployTarGz", props).run(); + // } else { + // throw new SlcException("Unknow package type " + type); + // } throw new SlcException("Not implemented."); } catch (SlcException e) { throw e; @@ -60,5 +69,5 @@ public abstract class MavenDeployEnvironment implements DeployEnvironment { public void setMavenManager(MavenManager mavenManager) { this.mavenManager = mavenManager; } -*/ + } diff --git a/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenManager.java b/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenManager.java index 20120bdf7..b49a911bd 100644 --- a/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenManager.java +++ b/runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenManager.java @@ -1,8 +1,19 @@ package org.argeo.slc.maven; +import java.io.File; +import java.util.List; +import java.util.Vector; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.embedder.MavenEmbedder; +import org.apache.maven.embedder.MavenEmbedderException; +import org.argeo.slc.SlcException; public class MavenManager { - /* + private final Log log = LogFactory.getLog(getClass()); private String localRepositoryPath = System.getProperty("user.home") @@ -13,13 +24,20 @@ public class MavenManager { private List remoteRepositories = new Vector(); private MavenEmbedder mavenEmbedder; + private ClassLoader classLoader; + private Boolean offline = false; public void init() { try { mavenEmbedder = new MavenEmbedder(); - mavenEmbedder.setOffline(true); - mavenEmbedder.setClassLoader(Thread.currentThread() - .getContextClassLoader()); + mavenEmbedder.setOffline(offline); + if (classLoader != null) + mavenEmbedder.setClassLoader(classLoader); + else + mavenEmbedder.setClassLoader(getClass().getClassLoader()); + // else + // mavenEmbedder.setClassLoader(Thread.currentThread() + // .getContextClassLoader()); mavenEmbedder.start(); mavenEmbedder.setLocalRepositoryDirectory(new File( @@ -34,16 +52,18 @@ public class MavenManager { remoteRepository.getUrl(), remoteRepository.getId()); remoteRepositoriesInternal.add(repository); } - + MavenFile mavenFile = new MavenFile(); - mavenFile.setGroupId("org.argeo.slc.runtime"); - mavenFile.setArtifactId("org.argeo.slc.specs"); - mavenFile.setVersion("0.11.3-SNAPSHOT"); + mavenFile.setGroupId("org.argeo.slc.dist"); + mavenFile.setArtifactId("org.argeo.slc.sdk"); + mavenFile.setVersion("0.12.2-SNAPSHOT"); + mavenFile.setType("pom"); Artifact artifact = resolve(mavenFile); - log.debug("Dependencies of "+artifact); - for(Object obj : artifact.getDependencyTrail()){ - log.debug(" "+obj); - } + log.debug("Location of " + artifact + " : " + artifact.getFile()); +// log.debug("Dependencies of " + artifact); +// for (Object obj : artifact.getDependencyTrail()) { +// log.debug(" " + obj); +// } } catch (Exception e) { throw new SlcException("Cannot initialize Maven manager", e); @@ -100,5 +120,13 @@ public class MavenManager { public void setRemoteRepositories(List remoteRepositories) { this.remoteRepositories = remoteRepositories; } -*/ + + public void setClassLoader(ClassLoader classLoader) { + this.classLoader = classLoader; + } + + public void setOffline(Boolean offline) { + this.offline = offline; + } + } -- 2.39.2