summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2011-02-07 22:17:00 +0000
committerRobert Gemmell <robbie@apache.org>2011-02-07 22:17:00 +0000
commit527c6d224ef3facb92c1ecb15cc02fff69d1bf7d (patch)
tree539a136f008b8d388384015f7c49b76ede29628f /qpid/java
parenteb8e7cf77d382f4233d01cd6c4f96acb3c68f390 (diff)
downloadqpid-python-527c6d224ef3facb92c1ecb15cc02fff69d1bf7d.tar.gz
QPID-1916: updates to allow creation of maven artifacts for client+common modules during the release process
Applied patches from Emmanuel Bourg <ebourg@apache.org> git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1068178 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/build.xml4
-rwxr-xr-xqpid/java/genpom30
-rw-r--r--qpid/java/lib/maven-ant-tasks-2.1.1.jarbin0 -> 1314262 bytes
-rw-r--r--qpid/java/module.xml44
4 files changed, 71 insertions, 7 deletions
diff --git a/qpid/java/build.xml b/qpid/java/build.xml
index 6ed2992a68..9031166d76 100644
--- a/qpid/java/build.xml
+++ b/qpid/java/build.xml
@@ -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>
diff --git a/qpid/java/genpom b/qpid/java/genpom
index 92822a08ae..3974078556 100755
--- a/qpid/java/genpom
+++ b/qpid/java/genpom
@@ -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" encoding="UTF-8"?>
<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>
"""
diff --git a/qpid/java/lib/maven-ant-tasks-2.1.1.jar b/qpid/java/lib/maven-ant-tasks-2.1.1.jar
new file mode 100644
index 0000000000..7810a541b8
--- /dev/null
+++ b/qpid/java/lib/maven-ant-tasks-2.1.1.jar
Binary files differ
diff --git a/qpid/java/module.xml b/qpid/java/module.xml
index e05fdf0f14..474a1f1937 100644
--- a/qpid/java/module.xml
+++ b/qpid/java/module.xml
@@ -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>