X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.repo%2Fsrc%2Forg%2Fargeo%2Fslc%2Frepo%2Fmaven%2FMavenConventionsUtils.java;h=c25e3fb7f232f594e2ce01b7680c2ca8fe271c6a;hb=b182eb6c94fc5a5f942091a57d8ec6fd9a782a58;hp=09827885cc271cc4f2fbbfaebb33f6f1f91d7d02;hpb=f59056d0b805cb91f524671a28b8780338509ba4;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.repo/src/org/argeo/slc/repo/maven/MavenConventionsUtils.java b/org.argeo.slc.repo/src/org/argeo/slc/repo/maven/MavenConventionsUtils.java index 09827885c..c25e3fb7f 100644 --- a/org.argeo.slc.repo/src/org/argeo/slc/repo/maven/MavenConventionsUtils.java +++ b/org.argeo.slc.repo/src/org/argeo/slc/repo/maven/MavenConventionsUtils.java @@ -16,21 +16,11 @@ package org.argeo.slc.repo.maven; import java.io.File; -import java.util.Properties; import java.util.Set; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.argeo.slc.SlcException; -import org.argeo.slc.aether.AetherTemplate; import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; /** * Static utilities around Maven which are NOT using the Maven APIs (conventions @@ -162,66 +152,66 @@ public class MavenConventionsUtils { return p.toString(); } - /** - * Directly parses Maven POM XML format in order to find all artifacts - * references under the dependency and dependencyManagement tags. This is - * meant to migrate existing pom registering a lot of artifacts, not to - * replace Maven resolving. - */ - public static void gatherPomDependencies(AetherTemplate aetherTemplate, Set artifacts, - Artifact pomArtifact) { - if (log.isDebugEnabled()) - log.debug("Gather dependencies for " + pomArtifact); - - try { - File file = aetherTemplate.getResolvedFile(pomArtifact); - DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - Document doc = documentBuilder.parse(file); - - // properties - Properties props = new Properties(); - props.setProperty("project.version", pomArtifact.getBaseVersion()); - NodeList properties = doc.getElementsByTagName("properties"); - if (properties.getLength() > 0) { - NodeList propertiesElems = properties.item(0).getChildNodes(); - for (int i = 0; i < propertiesElems.getLength(); i++) { - if (propertiesElems.item(i) instanceof Element) { - Element property = (Element) propertiesElems.item(i); - props.put(property.getNodeName(), property.getTextContent()); - } - } - } - - // dependencies (direct and dependencyManagement) - NodeList dependencies = doc.getElementsByTagName("dependency"); - for (int i = 0; i < dependencies.getLength(); i++) { - Element dependency = (Element) dependencies.item(i); - String groupId = dependency.getElementsByTagName("groupId").item(0).getTextContent().trim(); - String artifactId = dependency.getElementsByTagName("artifactId").item(0).getTextContent().trim(); - String version = dependency.getElementsByTagName("version").item(0).getTextContent().trim(); - if (version.startsWith("${")) { - String versionKey = version.substring(0, version.length() - 1).substring(2); - if (!props.containsKey(versionKey)) - throw new SlcException("Cannot interpret version " + version); - version = props.getProperty(versionKey); - } - NodeList scopes = dependency.getElementsByTagName("scope"); - if (scopes.getLength() > 0 && scopes.item(0).getTextContent().equals("import")) { - // recurse - gatherPomDependencies(aetherTemplate, artifacts, - new DefaultArtifact(groupId, artifactId, "pom", version)); - } else { - // TODO: deal with scope? - // TODO: deal with type - String type = "jar"; - Artifact artifact = new DefaultArtifact(groupId, artifactId, type, version); - artifacts.add(artifact); - } - } - } catch (Exception e) { - throw new SlcException("Cannot process " + pomArtifact, e); - } - } +// /** +// * Directly parses Maven POM XML format in order to find all artifacts +// * references under the dependency and dependencyManagement tags. This is +// * meant to migrate existing pom registering a lot of artifacts, not to +// * replace Maven resolving. +// */ +// public static void gatherPomDependencies(AetherTemplate aetherTemplate, Set artifacts, +// Artifact pomArtifact) { +// if (log.isDebugEnabled()) +// log.debug("Gather dependencies for " + pomArtifact); +// +// try { +// File file = aetherTemplate.getResolvedFile(pomArtifact); +// DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); +// Document doc = documentBuilder.parse(file); +// +// // properties +// Properties props = new Properties(); +// props.setProperty("project.version", pomArtifact.getBaseVersion()); +// NodeList properties = doc.getElementsByTagName("properties"); +// if (properties.getLength() > 0) { +// NodeList propertiesElems = properties.item(0).getChildNodes(); +// for (int i = 0; i < propertiesElems.getLength(); i++) { +// if (propertiesElems.item(i) instanceof Element) { +// Element property = (Element) propertiesElems.item(i); +// props.put(property.getNodeName(), property.getTextContent()); +// } +// } +// } +// +// // dependencies (direct and dependencyManagement) +// NodeList dependencies = doc.getElementsByTagName("dependency"); +// for (int i = 0; i < dependencies.getLength(); i++) { +// Element dependency = (Element) dependencies.item(i); +// String groupId = dependency.getElementsByTagName("groupId").item(0).getTextContent().trim(); +// String artifactId = dependency.getElementsByTagName("artifactId").item(0).getTextContent().trim(); +// String version = dependency.getElementsByTagName("version").item(0).getTextContent().trim(); +// if (version.startsWith("${")) { +// String versionKey = version.substring(0, version.length() - 1).substring(2); +// if (!props.containsKey(versionKey)) +// throw new SlcException("Cannot interpret version " + version); +// version = props.getProperty(versionKey); +// } +// NodeList scopes = dependency.getElementsByTagName("scope"); +// if (scopes.getLength() > 0 && scopes.item(0).getTextContent().equals("import")) { +// // recurse +// gatherPomDependencies(aetherTemplate, artifacts, +// new DefaultArtifact(groupId, artifactId, "pom", version)); +// } else { +// // TODO: deal with scope? +// // TODO: deal with type +// String type = "jar"; +// Artifact artifact = new DefaultArtifact(groupId, artifactId, type, version); +// artifacts.add(artifact); +// } +// } +// } catch (Exception e) { +// throw new SlcException("Cannot process " + pomArtifact, e); +// } +// } /** Prevent instantiation */ private MavenConventionsUtils() {