Generate SDK pom
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 27 Apr 2012 13:58:08 +0000 (13:58 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 27 Apr 2012 13:58:08 +0000 (13:58 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@5287 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/maven/ImportMavenDependencies.java
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/maven/MavenConventionsUtils.java

index e0a8d067b886237d4db2bfbaccb9b3fb6fec0c81..3f001546558805a998ca442bb7118847008856ce 100644 (file)
@@ -101,12 +101,16 @@ public class ImportMavenDependencies implements Runnable {
                                        artifactComparator);
                        MavenConventionsUtils.gatherPomDependencies(aetherTemplate,
                                        registeredArtifacts, pomArtifact);
+                       Artifact sdkArtifact = new DefaultArtifact(
+                                       "org.argeo.tp:dist:pom:1.3.0");
+                       String sdkPom = MavenConventionsUtils.artifactsAsDependencyPom(
+                                       sdkArtifact, registeredArtifacts);
                        if (log.isDebugEnabled())
                                log.debug("Gathered " + registeredArtifacts.size()
-                                               + " artifacts");
-
+                                               + " artifacts:\n" + sdkPom);
                        // Resolve and add non-optional dependencies
                        Set<Artifact> artifacts = new TreeSet<Artifact>(artifactComparator);
+                       /*
                        for (Artifact artifact : registeredArtifacts) {
                                try {
                                        Boolean wasAdded = addArtifact(artifacts, artifact);
@@ -132,7 +136,7 @@ public class ImportMavenDependencies implements Runnable {
                        // distributionDescriptor.store(out, "");
                        // log.debug(new String(out.toByteArray()));
                        // out.close();
-
+*/
                        return artifacts;
                } catch (Exception e) {
                        throw new SlcException("Cannot resolve distribution", e);
index cce0c12ae13981fe7415b574371057f2739078a3..3531515cd9ad4a0cd441b55d96b1c0dbc67b66f6 100644 (file)
@@ -76,6 +76,62 @@ public class MavenConventionsUtils {
                                + artifact.getArtifactId() + '/' + artifact.getVersion();
        }
 
+       public static String artifactsAsDependencyPom(Artifact pomArtifact,
+                       Set<Artifact> artifacts) {
+               StringBuffer b = new StringBuffer();
+
+               // XML header
+               b.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+               b.append("<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\">\n");
+               b.append("<modelVersion>4.0.0</modelVersion>");
+
+               // Artifact
+               b.append("<parent><groupId>org.argeo</groupId><artifactId>parent</artifactId><version>1.2.0</version></parent>\n");
+               b.append("<groupId>").append(pomArtifact.getGroupId())
+                               .append("</groupId>\n");
+               b.append("<artifactId>").append(pomArtifact.getArtifactId())
+                               .append("</artifactId>\n");
+               b.append("<version>").append(pomArtifact.getVersion())
+                               .append("</version>\n");
+               b.append("<packaging>pom</packaging>\n");
+
+               // Dependencies
+               b.append("<dependencies>\n");
+               for (Artifact artifact : artifacts) {
+                       b.append("\t<dependency>");
+                       b.append("<artifactId>").append(artifact.getArtifactId())
+                                       .append("</artifactId>");
+                       b.append("<groupId>").append(artifact.getGroupId())
+                                       .append("</groupId>");
+                       b.append("</dependency>\n");
+               }
+               b.append("</dependencies>\n");
+
+               // Dependency management
+               b.append("<dependencyManagement>\n");
+               b.append("<dependencies>\n");
+               for (Artifact artifact : artifacts) {
+                       b.append("\t<dependency>");
+                       b.append("<artifactId>").append(artifact.getArtifactId())
+                                       .append("</artifactId>");
+                       b.append("<version>").append(artifact.getVersion())
+                                       .append("</version>");
+                       b.append("<groupId>").append(artifact.getGroupId())
+                                       .append("</groupId>");
+                       b.append("</dependency>\n");
+               }
+               b.append("</dependencies>\n");
+               b.append("</dependencyManagement>\n");
+
+               // Repositories
+               b.append("<repositories>\n");
+               b.append("<repository><id>argeo</id><url>http://maven.argeo.org/argeo</url></repository>\n");
+               b.append("</repositories>\n");
+
+               b.append("</project>\n");
+               return b.toString();
+       }
+
        /**
         * Directly parses Maven POM XML format in order to find all artifacts
         * references under the dependency and dependencyManagement tags. This is