You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2011/02/07 23:17:01 UTC

svn commit: r1068178 - in /qpid/trunk/qpid: bin/release.sh java/build.xml java/genpom java/lib/maven-ant-tasks-2.1.1.jar java/module.xml

Author: robbie
Date: Mon Feb  7 22:17:00 2011
New Revision: 1068178

URL: http://svn.apache.org/viewvc?rev=1068178&view=rev
Log:
QPID-1916: updates to allow creation of maven artifacts for client+common modules during the release process

Applied patches from Emmanuel Bourg <eb...@apache.org>

Added:
    qpid/trunk/qpid/java/lib/maven-ant-tasks-2.1.1.jar
Modified:
    qpid/trunk/qpid/bin/release.sh
    qpid/trunk/qpid/java/build.xml
    qpid/trunk/qpid/java/genpom
    qpid/trunk/qpid/java/module.xml

Modified: qpid/trunk/qpid/bin/release.sh
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/bin/release.sh?rev=1068178&r1=1068177&r2=1068178&view=diff
==============================================================================
--- qpid/trunk/qpid/bin/release.sh (original)
+++ qpid/trunk/qpid/bin/release.sh Mon Feb  7 22:17:00 2011
@@ -208,7 +208,7 @@ fi
 
 if [ "JAVA" == "$JAVA" ] ; then
   pushd qpid-${VER}/java
-  ant build release release-bin -Dsvnversion.output=${REV}
+  ant build release release-bin release-mvn -Dsvnversion.output=${REV}
   popd
 
   cp qpid-${VER}/java/release/*.tar.gz  artifacts/qpid-java-${VER}.tar.gz
@@ -216,6 +216,10 @@ if [ "JAVA" == "$JAVA" ] ; then
   cp qpid-${VER}/java/client/release/*.tar.gz artifacts/qpid-java-client-${VER}.tar.gz
   #cp qpid-${VER}/java/client/example/release/*.tar.gz 
   cp qpid-${VER}/java/management/eclipse-plugin/release/*.tar.gz qpid-${VER}/java/management/eclipse-plugin/release/*.zip artifacts/
+
+  # copy the Maven artifacts
+  cp qpid-${VER}/java/client/release/maven artifacts/
+  cp qpid-${VER}/java/common/release/maven artifacts/
 fi
 
 if [ "DOTNET" == "$DOTNET" ] ; then

Modified: qpid/trunk/qpid/java/build.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/build.xml?rev=1068178&r1=1068177&r2=1068178&view=diff
==============================================================================
--- qpid/trunk/qpid/java/build.xml (original)
+++ qpid/trunk/qpid/java/build.xml Mon Feb  7 22:17:00 2011
@@ -66,6 +66,10 @@
     <iterate target="pom"/>
   </target>
 
+  <target name="release-mvn" description="Install the artifacts into the local repository">
+    <iterate target="release-mvn"/>
+  </target>
+
   <target name="compile" description="compile sources">
     <iterate target="compile"/>
   </target>

Modified: qpid/trunk/qpid/java/genpom
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/genpom?rev=1068178&r1=1068177&r2=1068178&view=diff
==============================================================================
--- qpid/trunk/qpid/java/genpom (original)
+++ qpid/trunk/qpid/java/genpom Mon Feb  7 22:17:00 2011
@@ -32,6 +32,8 @@ parser.add_option("-a", "--artifact")
 parser.add_option("-v", "--version")
 parser.add_option("-d", "--description", default="")
 parser.add_option("-u", "--url", default="")
+parser.add_option("-m", "--modules", help="modules dependencies")
+parser.add_option("-p", "--prefix", help="prefix of the project's artifacts names")
 parser.add_option("-i", "--ignore", action="store_true", help="ignore missing poms")
 parser.add_option("-s", "--search-path", action="append",
                   help="the path to search for poms")
@@ -62,6 +64,9 @@ if opts.version is None:
 if opts.name is None and opts.artifact is None:
   die("one of name or artifact must be supplied")
 
+if opts.prefix is not None:
+  opts.artifact = opts.prefix + "-" + opts.artifact
+
 if opts.name is None:
   opts.name = opts.artifact
 
@@ -90,6 +95,24 @@ for s in opts.scope:
   scopes[m.group(1)] = m.group(2)
 
 deps = []
+module_depends = []
+if opts.modules is not None:
+  module_depends = opts.modules.replace("/", "-").split();
+  
+for module in module_depends:
+  if opts.prefix is None:
+     artifactId = module
+  else:
+     artifactId = opts.prefix + "-" + module
+  
+  deps.append("""
+    <dependency>
+      <groupId>%s</groupId>
+      <artifactId>%s</artifactId>
+      <version>%s</version>
+    </dependency>
+""" % (opts.group, artifactId, opts.version))
+
 for jar in jars:
   base, ext = os.path.splitext(os.path.basename(jar))
   pom = search(expanded_path, "%s.pom" % base)
@@ -119,22 +142,27 @@ TEMPLATE = """<?xml version="1.0" encodi
   <groupId>%(group)s</groupId>
   <artifactId>%(artifact)s</artifactId>
   <version>%(version)s</version>
+
   <name>%(name)s</name>
   <url>%(url)s</url>
   <description>%(description)s</description>
+
   <organization>
     <name>The Apache Software Foundation</name>
     <url>http://www.apache.org</url>
   </organization>
+
   <licenses>
     <license>
       <name>The Apache Software License, Version 2.0</name>
-      <url>/LICENSE.txt</url>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
     </license>
   </licenses>
+
   <dependencies>
     %(dependencies)s
   </dependencies>
+
 </project>
 """
 

Added: qpid/trunk/qpid/java/lib/maven-ant-tasks-2.1.1.jar
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/lib/maven-ant-tasks-2.1.1.jar?rev=1068178&view=auto
==============================================================================
Files qpid/trunk/qpid/java/lib/maven-ant-tasks-2.1.1.jar (added) and qpid/trunk/qpid/java/lib/maven-ant-tasks-2.1.1.jar Mon Feb  7 22:17:00 2011 differ

Modified: qpid/trunk/qpid/java/module.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/module.xml?rev=1068178&r1=1068177&r2=1068178&view=diff
==============================================================================
--- qpid/trunk/qpid/java/module.xml (original)
+++ qpid/trunk/qpid/java/module.xml Mon Feb  7 22:17:00 2011
@@ -18,10 +18,15 @@
  - under the License.
  -
  -->
-<project name="module">
+<project name="module" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
 
   <import file="common.xml"/>
 
+  <path id="maven-ant-tasks.classpath" path="${project.root}/lib/maven-ant-tasks-2.1.1.jar" />
+  <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
+           uri="antlib:org.apache.maven.artifact.ant"
+           classpathref="maven-ant-tasks.classpath" />
+
   <map property="module" value="${basedir}" split="${path.separator}">
     <globmapper from="${project.root}${file.separator}*" to="*"/>
   </map>
@@ -74,6 +79,9 @@
   <available property="module.etc.exists" file="${module.etc}"/>
   <available property="module.bin.exists" file="${module.bin}"/>
 
+  <property name="module.source.jar"
+            location="${build.lib}/${project.name}-${module.name}-${project.version}-sources.jar"/>
+
   <!-- module.depends and module.test.depends are supplied by the importing file -->
   <property name="module.depends"       value=""/>
   <property name="module.test.depends"  value=""/>
@@ -209,11 +217,11 @@
   <target name="pom" depends="prepare" if="module.genpom">
     <jython path="${mllib.dir}">
       <args>
-        <arg line="${project.root}/genpom"/>
-        <arg line="-s ${project.root}/lib/poms"/>
-        <arg line="-o ${build}/${module.name}.pom"/>
+        <arg line='"${project.root}/genpom"'/>
+        <arg line='-s "${project.root}/lib/poms"'/>
+        <arg line='-o "${build}/qpid-${module.name}.pom"'/>
         <arg line="-g org.apache.qpid"/>
-        <arg line="-a ${module.name}"/>
+        <arg line="-a qpid-${module.name}"/>
         <arg line="-v ${project.version}"/>
         <arg line="${module.genpom.args}"/>
         <arg line="${module.libs}"/>
@@ -221,6 +229,19 @@
     </jython>
   </target>
 
+  <target name="release-mvn" depends="pom" if="module.genpom" description="Install the artifacts into the local repository and prepare the release">
+    <antcall target="build"/>
+
+    <artifact:pom id="module.pom" file="${build}/qpid-${module.name}.pom"/>
+
+    <artifact:install file="${module.jar}" pomRefId="module.pom"/>
+
+    <artifact:deploy file="${module.jar}" pomRefId="module.pom">
+      <attach file="${module.source.jar}" classifier="sources"/>
+      <remoteRepository url="file://${module.release.base}/maven"/>
+    </artifact:deploy>
+  </target>
+
   <target name="precompile"/>
 
   <target name="compile" depends="prepare,precompile" description="compile sources">
@@ -407,7 +428,7 @@
 
   <target name="postbuild" description="run after a build"/>
 
-  <target name="build" depends="jar,jar-tests,libs,copy-bin,copy-etc,postbuild" description="compile and copy resources into build tree"/>
+  <target name="build" depends="jar,jar-tests,jar-sources,libs,copy-bin,copy-etc,postbuild" description="compile and copy resources into build tree"/>
   <target name="jar.manifest" depends="compile" if="module.manifest">
     <jar destfile="${module.jar}" basedir="${module.classes}" manifest="${module.manifest}"/>
   </target>
@@ -424,6 +445,17 @@
     <jar destfile="${module.test.jar}" basedir="${module.test.classes}"/>
   </target>
 
+  <target name="jar-sources" depends="prepare" description="create sources jar">
+    <jar destfile="${module.source.jar}">
+      <fileset dir="${project.root}/resources">
+        <include name="LICENSE"/>
+        <include name="NOTICE"/>
+      </fileset>
+      <fileset dir="${module.src}" includes="**/*.java"/>
+      <fileset dir="${module.precompiled}" includes="**/*.java"/>
+    </jar>
+  </target>
+
   <target name="libs" description="copy dependencies into build tree">
     <copylist todir="${build.lib}" dir="${project.root}" files="${module.libs}"/>
   </target>



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org