<bundle id="basic" symbolic-name="org.argeo.slc.demo.basic"
action="start" />
<bundle id="ant" symbolic-name="org.argeo.slc.demo.ant" action="start" />
+ <bundle id="maven" symbolic-name="org.argeo.slc.demo.maven"
+ action="start" />
<!--
<bundle id="detached" symbolic-name="org.argeo.slc.demo.detached"
action="start" /> <bundle id="det"
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.argeo.slc.demo.maven</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
--- /dev/null
+#Wed Jan 06 20:27:20 CET 2010
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
--- /dev/null
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: SLC Demo Maven
+Bundle-SymbolicName: org.argeo.slc.demo.maven
+Bundle-Version: 0.12.2.SNAPSHOT
+Bundle-Description: Demonstrate Maven support
+Import-Package: org.aopalliance.aop;version="1.0.0",
+ org.apache.maven.project,
+ org.argeo.slc.core.execution;version="0.12.2.SNAPSHOT-r3445",
+ org.argeo.slc.execution;version="0.12.2.SNAPSHOT-r3445",
+ org.argeo.slc.maven;version="0.12.2.SNAPSHOT-r3353",
+ org.argeo.slc.osgi;version="0.12.2.SNAPSHOT-r3424",
+ org.springframework.aop;version="2.5.6.SEC01",
+ org.springframework.aop.framework;version="2.5.6.SEC01",
+ org.springframework.aop.scope;version="2.5.6.SEC01",
+ org.springframework.beans.factory.config;version="2.5.6.SEC01",
+ org.springframework.osgi.util;version="1.2.1"
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+ <import resource="classpath:org/argeo/slc/core/execution/simple.xml" />
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"\r
+ xmlns:aop="http://www.springframework.org/schema/aop"\r
+ xsi:schemaLocation="\r
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
+ http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd\r
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">\r
+\r
+ <bean id="mavenManager" class="org.argeo.slc.maven.MavenManager"\r
+ init-method="init">\r
+ </bean>\r
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/osgi \r
+ http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+ http://www.springframework.org/schema/beans \r
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+ <beans:import resource="classpath:org/argeo/slc/osgi/execution.xml" />\r
+</beans:beans>
\ No newline at end of file
--- /dev/null
+<project default="hello">
+ <target name="hello">
+ <echo message="Hello World!" />
+ </target>
+</project>
\ No newline at end of file
--- /dev/null
+bin.includes = META-INF/
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"\r
+ xmlns:aop="http://www.springframework.org/schema/aop"\r
+ xsi:schemaLocation="\r
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
+ http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd\r
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">\r
+\r
+ <bean id="main" class="org.argeo.slc.core.execution.DefaultExecutionFlow">\r
+ <property name="executables">\r
+ <list>\r
+ <bean class="org.argeo.slc.ant.AntRun">\r
+ <property name="buildFile" value="osgibundle:/ant/hello/build.xml" />\r
+ </bean>\r
+ </list>\r
+ </property>\r
+ </bean>\r
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"\r
+ xmlns:aop="http://www.springframework.org/schema/aop"\r
+ xsi:schemaLocation="\r
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
+ http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd\r
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">\r
+\r
+ <bean class="org.argeo.slc.ant.AntFlowGenerator">\r
+ <property name="antFiles">\r
+ <list>\r
+ <value>osgibundle:/ant/hello/build.xml\r
+ </value>\r
+ </list>\r
+ </property>\r
+ </bean>\r
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+ <import resource="classpath:org/argeo/slc/core/execution/simple.xml" />
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/osgi \r
+ http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+ http://www.springframework.org/schema/beans \r
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+ <beans:import resource="classpath:org/argeo/slc/osgi/execution.xml" />\r
+</beans:beans>
\ No newline at end of file
<groupId>org.argeo.slc.runtime</groupId>
<artifactId>org.argeo.slc.launcher</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.argeo.slc.runtime</groupId>
+ <artifactId>org.argeo.slc.support.maven</artifactId>
+ </dependency>
<!-- Spring -->
<dependency>
<artifactId>org.argeo.slc.support.ant</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.slc.runtime</groupId>
+ <artifactId>org.argeo.slc.support.maven</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.argeo.slc.runtime</groupId>
<artifactId>org.argeo.slc.support.hibernate</artifactId>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>\r
<classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>\r
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>\r
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
<classpathentry kind="output" path="target/classes"/>\r
</classpath>\r
</arguments>
</buildCommand>
<buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
</natures>
</projectDescription>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.argeo.slc</groupId>
<version>${version.maven-bundle-plugin}</version>
<configuration>
<instructions>
+ <Fragment-Host>org.argeo.dep.osgi.maven.embedder</Fragment-Host>
<Export-Package>
org.argeo.slc.maven.*
</Export-Package>
- <Import-Package>*,org.codehaus.plexus;resolution:="optional"</Import-Package>
- <!-- <Fragment-Host>org.argeo.dep.osgi.maven.embedder</Fragment-Host> -->
</instructions>
</configuration>
</plugin>
<artifactId>commons-logging</artifactId> </exclusion> </exclusions>
</dependency>
-->
+ <dependency>
+ <groupId>org.argeo.dep.osgi</groupId>
+ <artifactId>org.argeo.dep.osgi.maven.embedder</artifactId>
+ <version>2.0.4.0002</version>
+ </dependency>
</dependencies>
</project>
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;
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;
public void setMavenManager(MavenManager mavenManager) {
this.mavenManager = mavenManager;
}
-*/
+
}
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
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
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
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