]> git.pld-linux.org Git - packages/maven.git/commitdiff
- raw files from JPP
authorpawelz <pawelz@pld-linux.org>
Thu, 29 Apr 2010 13:31:38 +0000 (13:31 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    maven-JPackageRepositoryLayout.java -> 1.1.2.1
    maven-MavenJPackageDepmap.java -> 1.1.2.1
    maven-jpp-script -> 1.1.2.1

maven-JPackageRepositoryLayout.java [new file with mode: 0644]
maven-MavenJPackageDepmap.java [new file with mode: 0644]
maven-jpp-script [new file with mode: 0644]

diff --git a/maven-JPackageRepositoryLayout.java b/maven-JPackageRepositoryLayout.java
new file mode 100644 (file)
index 0000000..9126914
--- /dev/null
@@ -0,0 +1,140 @@
+package org.apache.maven.artifact.repository.layout;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
+import org.xml.sax.InputSource;
+
+/**
+ * Repository layout for jpackage based repositories. 
+ * This class resolves items for jpp style repos (i.e things located in 
+ * /usr/share/java).
+ */
+
+public class JPackageRepositoryLayout
+       implements ArtifactRepositoryLayout
+{
+       private static Hashtable jppArtifactMap;
+
+       private static final char GROUP_SEPARATOR = '.';
+       private static final char PATH_SEPARATOR = '/';
+
+       public String pathOf( Artifact artifact )
+       {
+
+               ArtifactHandler artifactHandler = artifact.getArtifactHandler();
+               StringBuffer path = new StringBuffer();
+
+               String artifactId = artifact.getArtifactId();
+               String groupId = artifact.getGroupId();
+               String version = artifact.getVersion();
+               String classifierSuffix = (artifact.getClassifier() == null || artifact.getClassifier() == "") ? 
+                                         "" : "-" + artifact.getClassifier();
+
+               if (!groupId.startsWith("JPP")) {
+                       MavenJPackageDepmap map = MavenJPackageDepmap.getInstance();
+                       Hashtable newInfo = map.getMappedInfo(groupId, artifactId, version);
+                       
+                       groupId = (String) newInfo.get("group");
+                       artifactId = (String) newInfo.get("artifact");
+               }
+
+               if (groupId.startsWith("JPP")) {
+                       if (artifactHandler.getPackaging().equals("pom")) {
+                               path = getPOMPath(groupId, artifactId);
+
+                       } else {    // Assume if it is not pom it is jar
+                                    // as "maven-plugin" type is a JAR
+                               path.append( groupId ).append( '/' );
+                               path.append( artifactId ).append(classifierSuffix).append( "." + artifactHandler.getExtension());
+                       }
+               } else {
+                       path.append( groupId.replace(GROUP_SEPARATOR, PATH_SEPARATOR) ).append( '/' ).append( artifactId ).append( '/' ).append( version ).append( '/' );
+                       path.append( artifactId ).append( '-' ).append( version ).append( "." );
+                        // Parent poms may come with type "xml"
+                       if (artifactHandler.getPackaging().equals("xml")) {
+                               path.append( "pom" );
+                       } else {
+                               path.append( artifactHandler.getPackaging() );
+                       }
+               }
+
+               return path.toString();
+       }
+
+       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()) {
+            System.err.println(f.getAbsolutePath() + " not found");
+                       path = new StringBuffer();
+                       path.append(System.getProperty("maven2.jpp.default.pom.path", "JPP/maven2/default_poms")).append("/").append(fName);
+               }
+
+               return path;
+       }
+
+       public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+       {
+               return pathOfRepositoryMetadata( metadata, metadata.getLocalFilename( repository ) );
+       }
+
+       private String pathOfRepositoryMetadata( ArtifactMetadata metadata, String filename )
+       {
+
+        StringBuffer path = new StringBuffer();
+
+        if (filename.substring(filename.length()-4).equals(".pom")) {
+                       path = getPOMPath(metadata.getGroupId(), metadata.getArtifactId());
+        } else {
+
+               // FIXME: If it gets here, something other than a pom was requested.. where are those things located?
+               path.append(System.getProperty("maven2.jpp.pom.path", "maven2/poms")).append("/").append(filename);
+        }
+
+               return path.toString();
+       }
+
+       public String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata )
+       {
+               return pathOfRepositoryMetadata( metadata, metadata.getRemoteFilename() );
+       }
+}
diff --git a/maven-MavenJPackageDepmap.java b/maven-MavenJPackageDepmap.java
new file mode 100644 (file)
index 0000000..354452e
--- /dev/null
@@ -0,0 +1,162 @@
+package org.apache.maven.artifact.repository.layout;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
+import org.xml.sax.InputSource;
+
+public class MavenJPackageDepmap {
+
+       private static  MavenJPackageDepmap instance;
+       private static Hashtable jppArtifactMap;
+
+       private MavenJPackageDepmap() {
+               jppArtifactMap = new Hashtable();
+               buildJppArtifactMap();
+       }
+       
+       public static MavenJPackageDepmap getInstance() {
+               if (instance == null) {
+                       instance = new MavenJPackageDepmap();
+               }
+               
+               return instance;
+       }
+
+       public Hashtable getMappedInfo(Hashtable mavenDep) {
+               return getMappedInfo((String) mavenDep.get("group"), 
+                                                       (String) mavenDep.get("artifact"), 
+                                                       (String) mavenDep.get("version"));
+       }
+
+       public Hashtable getMappedInfo(String groupId, String artifactId, String version) {
+
+               Hashtable jppDep;
+               String idToCheck, jppCombination;
+
+               if (System.getProperty("maven2.ignore.versions") == null && System.getProperty("maven2.jpp.mode") == null) {
+                       idToCheck = groupId+","+artifactId+","+version;
+               } else {
+                       idToCheck = groupId+","+artifactId;
+               }
+
+               jppCombination = (String) jppArtifactMap.get(idToCheck);
+
+               //System.err.println("*** " + groupId+","+artifactId+","+version + " => " + jppCombination);
+               
+               jppDep = new Hashtable();
+               if (jppCombination != null && jppCombination != "") {
+
+                       StringTokenizer st = new StringTokenizer(jppCombination, ",");
+
+                       jppDep.put("group", st.nextToken());
+                       jppDep.put("artifact",st.nextToken());
+                       jppDep.put("version",st.nextToken());
+
+               } else {
+                       jppDep.put("group", groupId);
+                       jppDep.put("artifact", artifactId);
+                       jppDep.put("version", version);
+               }
+
+               return jppDep;
+       }
+
+
+       /**
+        *      Returns whether or not the given dependency should be dropped.
+        */
+       public boolean shouldEliminate(String groupId, String artifactId, String version) {
+               String idToCheck;
+
+               if (System.getProperty("maven2.ignore.versions") == null && System.getProperty("maven2.jpp.mode") == null) {
+                       idToCheck = groupId+","+artifactId+","+version;
+               } else {
+                       idToCheck = groupId+","+artifactId;
+               }
+
+               return jppArtifactMap.get(idToCheck) != null && jppArtifactMap.get(idToCheck).equals("");
+
+       }
+
+       private static void buildJppArtifactMap() {
+
+               if (System.getProperty("maven2.ignore.versions") != null || System.getProperty("maven2.jpp.mode") != null) {
+                       //System.err.println("Processing file: /usr/share/java-utils/xml/maven2-versionless-depmap.xml");
+                       processDepmapFile("/etc/maven/maven2-versionless-depmap.xml");
+               }
+
+               //System.err.println("Processing file: /usr/share/java-utils/xml/maven2-depmap.xml");
+               processDepmapFile("/etc/maven/maven2-depmap.xml");
+
+               String customFileName = System.getProperty("maven2.jpp.depmap.file", null); 
+               if (customFileName != null) {
+                       //System.err.println("Processing file: " + customFileName);
+                       processDepmapFile(customFileName);
+               }
+       }
+
+       private static void processDepmapFile(String fileName) {
+               
+               Document mapDocument;
+
+               try {
+                       mapDocument = (new SAXBuilder()).build(new InputSource(new FileInputStream(fileName)));
+               } catch (FileNotFoundException fnfe) {
+                       System.err.println("ERROR: Unable to find map file: " + fileName);
+                       fnfe.printStackTrace();
+                       return;
+               } catch (IOException ioe) {
+                       System.err.println("ERROR: I/O exception occured when opening map file");
+                       ioe.printStackTrace();
+                       return;
+               } catch (JDOMException jde) {
+                       System.err.println("ERROR: Unable to instantiate parser");
+                       jde.printStackTrace();
+                       return;
+               }
+               
+               List l = mapDocument.getRootElement().getChildren("dependency");
+               
+               Iterator i = l.iterator();
+               while (i.hasNext()) {
+                       Element depElement = (Element) i.next();
+
+                       Element mElem = depElement.getChild("maven");
+                       Element jppElem = depElement.getChild("jpp");
+                       
+                       String mG = mElem.getChildText("groupId");
+                       String mA = mElem.getChildText("artifactId");
+                       String mV = mElem.getChildText("version");
+
+                       // jppElem == null => drop this dependency
+                       if (jppElem != null) {
+
+                               String jppG = jppElem.getChildText("groupId");
+                               String jppA = jppElem.getChildText("artifactId");
+                               String jppV = jppElem.getChildText("version");
+                                jppV = jppV != null && jppV.length() > 0 ? jppV : mV;
+
+                               if (System.getProperty("maven2.ignore.versions") == null && System.getProperty("maven2.jpp.mode") == null) {
+                                       //System.err.println("*** Adding: " + mG+","+mA+","+mV + " => " +  jppG+","+jppA+","+jppV + " to map...");
+                                       jppArtifactMap.put(mG+","+mA+","+mV, jppG+","+jppA+","+jppV);
+                               } else {
+                                       //System.err.println("*** Adding: " + mG+","+mA + " => " +  jppG+","+jppA+","+jppV + " to map...");
+                                       jppArtifactMap.put(mG+","+mA, jppG+","+jppA+","+jppV);
+                               }
+                       } else {
+                                       //System.err.println("*** Adding: " + mG+","+mA+"," + " => " +  "JPP/maven2,empty-dep,"+mV + " to map...");
+                                       jppArtifactMap.put(mG+","+mA, "JPP/maven2,empty-dep,"+mV);
+                       }
+               }
+       }
+}
diff --git a/maven-jpp-script b/maven-jpp-script
new file mode 100644 (file)
index 0000000..6449f75
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+if [ -f /usr/share/java-utils/java-functions ] ; then
+  . /usr/share/java-utils/java-functions
+  set_jvm
+  set_javacmd
+fi
+
+export M2_HOME=/usr/share/maven2
+echo $JAVA_HOME
+export JAVA_HOME; $M2_HOME/bin/mvn -Dmaven2.offline.mode -Dmaven2.ignore.versions -Dmaven2.usejppjars $@
This page took 0.270699 seconds and 4 git commands to generate.