[java-sig-commits] [maven] Added mvn-rpmbuild script to be used in spec files

Stanislav Ochotnicky sochotni at fedoraproject.org
Thu Feb 10 13:14:36 UTC 2011


commit f5501c5008f4d8ff1357f2a14bbb6dff5e114836
Author: Stanislav Ochotnicky <sochotnicky at redhat.com>
Date:   Thu Feb 10 11:57:07 2011 +0100

    Added mvn-rpmbuild script to be used in spec files
    
    - mvn-local is now mixed mode (online with javadir priority)
    - Changed mvn.jpp to mvn.local

 0002-Use-custom-resolver.patch |   34 ++++++++++++++--------------
 JavadirWorkspaceReader.java    |    6 ++--
 MavenJPackageDepmap.java       |   12 +++++-----
 maven-script-local             |   37 ++----------------------------
 maven-script-rpmbuild          |   47 ++++++++++++++++++++++++++++++++++++++++
 maven.spec                     |   10 +++++++-
 6 files changed, 85 insertions(+), 61 deletions(-)
---
diff --git a/0002-Use-custom-resolver.patch b/0002-Use-custom-resolver.patch
index 10ab008..eec152c 100644
--- a/0002-Use-custom-resolver.patch
+++ b/0002-Use-custom-resolver.patch
@@ -35,7 +35,7 @@ index cae3735..2d11d64 100644
          throws UnresolvableModelException
      {
          Artifact pomArtifact = new DefaultArtifact( groupId, artifactId, "", "pom", version );
-+        if ( System.getProperty("maven.jpp.mode") != null) {
++        if ( System.getProperty("maven.local.mode") != null) {
 +            JavadirWorkspaceReader wReader = new JavadirWorkspaceReader();
 +            File pomFile = wReader.findArtifact(pomArtifact);
 +            // if pom file does not exist continue resolving using different
@@ -55,15 +55,15 @@ index 1f37d4f..d60dab8 100644
              throw new NullPointerException( "artifactId is null" );
          }
 -        if ( version == null )
-+        // in jpp mode we ignore versions because these would only cause
++        // in local mode we ignore versions because these would only cause
 +        // problems
-+        if ( version == null && System.getProperty("maven.jpp.mode") == null )
++        if ( version == null && System.getProperty("maven.local.mode") == null )
          {
              throw new NullPointerException( "version is null" );
          }
  
 -        return groupId + ":" + artifactId + ":" + version;
-+        if( System.getProperty("maven.jpp.mode") == null ) {
++        if( System.getProperty("maven.local.mode") == null ) {
 +            return groupId + ":" + artifactId + ":" + version;
 +        } else {
 +            return versionlessKey(groupId, artifactId);
@@ -88,7 +88,7 @@ index e892ee9..0222b01 100644
          }
  
 +        // Set our own workspace reader to resolve from /usr/share/java
-+        if ( System.getProperty("maven.jpp.mode") != null)
++        if ( System.getProperty("maven.local.mode") != null)
 +        {
 +            session.setWorkspaceReader(new JavadirWorkspaceReader());
 +        }
@@ -127,10 +127,10 @@ index 009635b..7d03748 100644
          }
  
 -        if ( !pluginArtifact.getBaseVersion().equals( pluginDescriptor.getVersion() ) )
-+        // ignore incorrect version in jpp mode (we can have different
++        // ignore incorrect version in local mode (we can have different
 +        // versions in /usr/share/java
 +        if ( !pluginArtifact.getBaseVersion().equals( pluginDescriptor.getVersion() )
-+             && System.getProperty("maven.jpp.mode") == null)
++             && System.getProperty("maven.local.mode") == null)
          {
              errors.add( "Plugin's descriptor contains the wrong version: " + pluginDescriptor.getVersion() );
          }
@@ -142,8 +142,8 @@ index fb074fb..bf2e703 100644
          throws PluginVersionResolutionException
      {
          logger.debug( "Resolving plugin version for " + request.getGroupId() + ":" + request.getArtifactId() );
-+        if (System.getProperty("maven.jpp.mode") != null) {
-+            // in jpp mode we always use "latest" as a resolved version
++        if (System.getProperty("maven.local.mode") != null) {
++            // in local mode we always use "latest" as a resolved version
 +            // (we ignore it anyway)
 +            DefaultPluginVersionResult result = new DefaultPluginVersionResult("latest");
 +            result.setRepository(request.getRepositorySession().getWorkspaceReader().getRepository());
@@ -170,7 +170,7 @@ index 403351a..2351620 100644
          if ( pomFile == null )
          {
              Artifact pomArtifact = new DefaultArtifact( groupId, artifactId, "", "pom", version );
-+            if ( System.getProperty("maven.jpp.mode") != null) {
++            if ( System.getProperty("maven.local.mode") != null) {
 +                JavadirWorkspaceReader wReader = new JavadirWorkspaceReader();
 +                pomFile = wReader.findArtifact(pomArtifact);
 +                // if pom file does not exist continue resolving using different resolvers
@@ -193,7 +193,7 @@ index 066fbf3..a7cbf40 100644
 +        // Seems like plexus-container-default has some quirks that
 +        // cause it to lose version. Needs more looking into and fix it
 +        // properly
-+        if (dependency.getVersion() == null && System.getProperty("maven.jpp.mode") != null) 
++        if (dependency.getVersion() == null && System.getProperty("maven.local.mode") != null) 
 +        {
 +            System.out.println("FIXING NULL VERSION:" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion());
 +            dependency.setVersion("1.0.0");
@@ -210,8 +210,8 @@ index 033211a..eec6caf 100644
                  if ( !management )
                  {
 -                    validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
-+                    // in jpp mode set version to "latest" and validate 
-+                    if(System.getProperty("maven.jpp.mode") != null && d.getVersion() == null)
++                    // in local mode set version to "latest" and validate 
++                    if(System.getProperty("maven.local.mode") != null && d.getVersion() == null)
 +                        d.setVersion("latest");
 +                    else
 +                        validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
@@ -223,8 +223,8 @@ index 033211a..eec6caf 100644
                  validateEffectiveDependency( problems, d, false, prefix, request );
  
 -                validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
-+                // in jpp mode set version to "latest" and validate 
-+                if(System.getProperty("maven.jpp.mode") != null && d.getVersion() == null)
++                // in local mode set version to "latest" and validate 
++                if(System.getProperty("maven.local.mode") != null && d.getVersion() == null)
 +                    d.setVersion("latest");
 +                else
 +                    validateVersion( prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d );
@@ -236,8 +236,8 @@ index 033211a..eec6caf 100644
              validateStringNotEmpty( prefix + "type", problems, Severity.ERROR, d.getType(), d.getManagementKey(), d );
  
 -            validateStringNotEmpty( prefix + "version", problems, Severity.ERROR, d.getVersion(), d.getManagementKey(),
-+            // in jpp mode ignore missing version completely
-+            if(System.getProperty("maven.jpp.mode") == null)
++            // in local mode ignore missing version completely
++            if(System.getProperty("maven.local.mode") == null)
 +                validateStringNotEmpty( prefix + "version", problems, Severity.ERROR, d.getVersion(), d.getManagementKey(),
                                      d );
          }
diff --git a/JavadirWorkspaceReader.java b/JavadirWorkspaceReader.java
index 81dc6b1..0fe02b7 100644
--- a/JavadirWorkspaceReader.java
+++ b/JavadirWorkspaceReader.java
@@ -85,18 +85,18 @@ public class JavadirWorkspaceReader
 
         StringBuffer path = new StringBuffer();
         String fName = groupId.replace(PATH_SEPARATOR, GROUP_SEPARATOR) + "-" + artifactId + ".pom";
-        path.append(System.getProperty("maven.jpp.pom.path", "JPP/maven2/poms")).append("/").append(fName);
+        path.append(System.getProperty("maven.local.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("maven.jpp.default.repo", "/usr/share/maven2/repository") + "/" + path.toString());
+        f = new java.io.File(System.getProperty("maven.local.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("maven.jpp.default.pom.path", "JPP/maven2/default_poms")).append("/").append(fName);
+            path.append(System.getProperty("maven.local.default.pom.path", "JPP/maven2/default_poms")).append("/").append(fName);
         }
         path.insert(0, "/usr/share/maven2/repository/");
         return path;
diff --git a/MavenJPackageDepmap.java b/MavenJPackageDepmap.java
index c65155a..8cd1651 100644
--- a/MavenJPackageDepmap.java
+++ b/MavenJPackageDepmap.java
@@ -51,7 +51,7 @@ public class MavenJPackageDepmap {
 		Hashtable<String, String> jppDep;
 		String idToCheck, jppCombination;
 
-		if (System.getProperty("maven.ignore.versions") == null && System.getProperty("maven.jpp.mode") == null) {
+		if (System.getProperty("maven.ignore.versions") == null && System.getProperty("maven.local.mode") == null) {
 			idToCheck = groupId+","+artifactId+","+version;
 		} else {
 			idToCheck = groupId+","+artifactId;
@@ -86,7 +86,7 @@ public class MavenJPackageDepmap {
 	public boolean shouldEliminate(String groupId, String artifactId, String version) {
 		String idToCheck;
 
-		if (System.getProperty("maven.ignore.versions") == null && System.getProperty("maven.jpp.mode") == null) {
+		if (System.getProperty("maven.ignore.versions") == null && System.getProperty("maven.local.mode") == null) {
 			idToCheck = groupId+","+artifactId+","+version;
 		} else {
 			idToCheck = groupId+","+artifactId;
@@ -98,7 +98,7 @@ public class MavenJPackageDepmap {
 
 	private static void buildJppArtifactMap() {
 
-		if (System.getProperty("maven.ignore.versions") != null || System.getProperty("maven.jpp.mode") != null) {
+		if (System.getProperty("maven.ignore.versions") != null || System.getProperty("maven.local.mode") != null) {
 			debug("Processing file: /usr/share/java-utils/xml/maven2-versionless-depmap.xml");
 			processDepmapFile("/etc/maven/maven2-versionless-depmap.xml");
 		}
@@ -106,7 +106,7 @@ public class MavenJPackageDepmap {
 		debug("Processing file: /usr/share/java-utils/xml/maven2-depmap.xml");
 		processDepmapFile("/etc/maven/maven2-depmap.xml");
 
-		String customFileName = System.getProperty("maven.jpp.depmap.file", null);
+		String customFileName = System.getProperty("maven.local.depmap.file", null);
 		if (customFileName != null) {
 			debug("Processing file: " + customFileName);
 			processDepmapFile(customFileName);
@@ -158,7 +158,7 @@ public class MavenJPackageDepmap {
 			
 			if (jppNodeList.getLength() == 1) {
 				jppAD = getArtifactDefinition((Element) jppNodeList.item(0));
-				if (System.getProperty("maven.ignore.versions") == null && System.getProperty("maven.jpp.mode") == null) {
+				if (System.getProperty("maven.ignore.versions") == null && System.getProperty("maven.local.mode") == null) {
 					debug("*** Adding: " + mavenAD.groupId + "," + mavenAD.artifactId + "," + mavenAD.version + " => "
 							+  jppAD.groupId + "," + jppAD.artifactId + "," + jppAD.version + " to map...");
 
@@ -207,7 +207,7 @@ public class MavenJPackageDepmap {
 
 
 	public static void debug(String msg) {
-		if (System.getProperty("maven.jpp.debug") != null)
+		if (System.getProperty("maven.local.debug") != null)
 			System.err.println(msg);
 	}
 }
diff --git a/maven-script-local b/maven-script-local
index bdbc22e..a5ebc59 100644
--- a/maven-script-local
+++ b/maven-script-local
@@ -5,43 +5,12 @@ if [ -f /usr/share/java-utils/java-functions ] ; then
   set_javacmd
 fi
 
-function install_metadata()
-{
-    mkdir -p "$1"
-    tar xf /usr/share/maven/repo-metadata.tar.xz -C "$1"
-}
-
-
-# add maven.repo.local if it's not defined already
-local_add="-Dmaven.repo.local=$(pwd)/.m2/"
-
-function process_args()
-{
-while [ $# != 0 ]; do
-        flag="$1"
-        case "$flag" in
-             *) ind=`expr match "$flag" -Dmaven.repo.local=`
-                if [[ $ind != 0 ]];then
-                    install_metadata "${flag/-Dmaven.repo.local=/}/"
-                    local_add=""
-                fi
-                ;;
-        esac
-        shift
-done
-}
-
-process_args "$@"
-
-if [ -n "$local_add" ];then
-    install_metadata "${local_add/-Dmaven.repo.local=/}/"
-fi
-
 export M2_HOME=/usr/share/maven
 echo $JAVA_HOME
 export JAVA_HOME
 # can't put it on command line due to
 # http://jira.codehaus.org/browse/SUREFIRE-121
-export MAVEN_OPTS="-Dmaven.jpp.mode ${local_add}"
+export MAVEN_OPTS="-Dmaven.local.mode ${local_add}"
+echo "Running mvn in local mode. Please report bugs to http://bugzilla.redhat.com"
 
-$M2_HOME/bin/mvn -o "$@"
+$M2_HOME/bin/mvn "$@"
diff --git a/maven-script-rpmbuild b/maven-script-rpmbuild
new file mode 100644
index 0000000..3f3c1ae
--- /dev/null
+++ b/maven-script-rpmbuild
@@ -0,0 +1,47 @@
+#!/bin/sh
+if [ -f /usr/share/java-utils/java-functions ] ; then
+  . /usr/share/java-utils/java-functions
+  set_jvm
+  set_javacmd
+fi
+
+function install_metadata()
+{
+    mkdir -p "$1"
+    tar xf /usr/share/maven/repo-metadata.tar.xz -C "$1"
+}
+
+
+# add maven.repo.local if it's not defined already
+local_add="-Dmaven.repo.local=$(pwd)/.m2/"
+
+function process_args()
+{
+while [ $# != 0 ]; do
+        flag="$1"
+        case "$flag" in
+             *) ind=`expr match "$flag" -Dmaven.repo.local=`
+                if [[ $ind != 0 ]];then
+                    install_metadata "${flag/-Dmaven.repo.local=/}/"
+                    local_add=""
+                fi
+                ;;
+        esac
+        shift
+done
+}
+
+process_args "$@"
+
+if [ -n "$local_add" ];then
+    install_metadata "${local_add/-Dmaven.repo.local=/}/"
+fi
+
+export M2_HOME=/usr/share/maven
+echo $JAVA_HOME
+export JAVA_HOME
+# can't put it on command line due to
+# http://jira.codehaus.org/browse/SUREFIRE-121
+export MAVEN_OPTS="-Dmaven.local.mode ${local_add}"
+
+$M2_HOME/bin/mvn -o "$@"
diff --git a/maven.spec b/maven.spec
index c3f6a82..47faca6 100644
--- a/maven.spec
+++ b/maven.spec
@@ -1,7 +1,7 @@
 
 Name:           maven
 Version:        3.0.2
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Java project management and project comprehension tool
 
 Group:          Development/Tools
@@ -17,6 +17,7 @@ Source101:      MavenJPackageDepmap.java
 # 2xx for created non-buildable sources
 Source200:    %{name}-script
 Source201:    %{name}-script-local
+Source202:    %{name}-script-rpmbuild
 
 # Other included files
 Source250:    repo-metadata.tar.xz
@@ -246,6 +247,7 @@ install -dm 755 $RPM_BUILD_ROOT%{_bindir}
 # Wrappers
 cp -af %{SOURCE200} $RPM_BUILD_ROOT%{_bindir}/mvn3
 cp -af %{SOURCE201} $RPM_BUILD_ROOT%{_bindir}/mvn-local
+cp -af %{SOURCE202} $RPM_BUILD_ROOT%{_bindir}/mvn-rpmbuild
 
 ###################
 # Individual jars #
@@ -286,6 +288,7 @@ cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
 %doc LICENSE.txt NOTICE.txt README.txt
 %attr(0755,root,root) %{_bindir}/mvn3
 %attr(0755,root,root) %{_bindir}/mvn-local
+%attr(0755,root,root) %{_bindir}/mvn-rpmbuild
 %dir %{_datadir}/%{name}
 %dir %{_datadir}/%{name}/bin
 %attr(0755,root,root) %{_datadir}/%{name}/bin/mvn
@@ -309,6 +312,11 @@ cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
 
 
 %changelog
+* Thu Feb 10 2011 Stanislav Ochotnicky <sochotnicky at redhat.com> - 3.0.2-2
+- Added mvn-rpmbuild script to be used in spec files
+- mvn-local is now mixed mode (online with javadir priority)
+- Changed mvn.jpp to mvn.local
+
 * Fri Jan 28 2011 Stanislav Ochotnicky <sochotnicky at redhat.com> - 3.0.2-1
 - Update to latest version (3.0.2)
 - Ignore test failures temporarily


More information about the java-sig-commits mailing list