diff options
Diffstat (limited to 'src/main/java/org/apache/maven/artifact/resolver')
-rw-r--r-- | src/main/java/org/apache/maven/artifact/resolver/JavadirWorkspaceReader.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/main/java/org/apache/maven/artifact/resolver/JavadirWorkspaceReader.java b/src/main/java/org/apache/maven/artifact/resolver/JavadirWorkspaceReader.java new file mode 100644 index 0000000..a927c2c --- /dev/null +++ b/src/main/java/org/apache/maven/artifact/resolver/JavadirWorkspaceReader.java @@ -0,0 +1,93 @@ +package org.fedoraproject.maven.artifact.resolver; + +import org.fedoraproject.maven.artifact.repository.MavenJPackageDepmap; +import java.io.File; +import java.util.List; +import java.util.LinkedList; +import java.util.Hashtable; + +import org.sonatype.aether.artifact.Artifact; +import org.sonatype.aether.repository.WorkspaceReader; +import org.sonatype.aether.repository.WorkspaceRepository; + +public class JavadirWorkspaceReader + implements WorkspaceReader +{ + private WorkspaceRepository workspaceRepository; + + private static final char GROUP_SEPARATOR = '.'; + private static final char PATH_SEPARATOR = '/'; + + + public JavadirWorkspaceReader() { + workspaceRepository = new WorkspaceRepository("javadir-workspace"); + } + + public WorkspaceRepository getRepository() { + return workspaceRepository; + } + + public File findArtifact( Artifact artifact ) { + System.err.println("=============JAVADIRREADER-FIND_ARTIFACT: " + artifact.getArtifactId()); + StringBuffer path = new StringBuffer(); + + String artifactId = artifact.getArtifactId(); + String groupId = artifact.getGroupId(); + String version = artifact.getVersion(); + + System.err.println("Wanted GROUPID=" + groupId); + System.err.println("Wanted ARTIFACTID=" + artifactId); + + if (!groupId.startsWith("JPP")) { + MavenJPackageDepmap map = MavenJPackageDepmap.getInstance(); + Hashtable<String,String> newInfo = map.getMappedInfo(groupId, artifactId, version); + + groupId = (String) newInfo.get("group"); + artifactId = (String) newInfo.get("artifact"); + } + System.err.println("Resolved GROUPID=" + groupId); + System.err.println("Resolved ARTIFACTID=" + artifactId); + + if (artifact.getExtension().equals("pom")) { + path = getPOMPath(groupId, artifactId); + } else if (artifact.getExtension().equals("signature")) { + path.append("/usr/share/maven/repository/"); + path.append( groupId ).append( '/' ); + path.append( artifactId ).append( ".signature" ); + } else { + path.append("/usr/share/maven/repository/"); + path.append( groupId ).append( '/' ); + path.append( artifactId ).append( ".jar" ); + } + + System.err.println("Returning " + path.toString()); + return new File(path.toString()); + } + + public List<String> findVersions( Artifact artifact ) { + List<String> ret = new LinkedList<String>(); + ret.add("DUMMY_VER"); + return ret; + } + + private StringBuffer getPOMPath(String groupId, String artifactId) { + + StringBuffer path = new StringBuffer(); + String fName = groupId.replace(PATH_SEPARATOR, GROUP_SEPARATOR) + "-" + artifactId + ".pom"; + path.append(System.getProperty("maven2.jpp.pom.path", "JPP/maven2/poms")).append("/").append(fName); + java.io.File f; + + // NOTE: We are returning default_poms/ as the path for this pom + // even though it may not exist there. This may cause an error, + // but that is fine because if the pom is not there, there is + // a serious problem anyways.. + f = new java.io.File(System.getProperty("maven2.jpp.default.repo", "/usr/share/maven2/repository") + "/" + path.toString()); + //System.err.println("Checking path " + f.getAbsolutePath() + " for the pom"); + if (!f.exists()) { + path = new StringBuffer(); + path.append(System.getProperty("maven2.jpp.default.pom.path", "JPP/maven2/default_poms")).append("/").append(fName); + } + path.insert(0, "/usr/share/maven2/repository/"); + return path; + } +} |