You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2014/03/16 01:53:30 UTC

[52/67] [abbrv] git commit: [flex-flexunit] [refs/heads/master] - FLEX-33572 patch by Yennick Trevels and added a downloads.xml for thirdparty downloads

FLEX-33572 patch by Yennick Trevels and added a downloads.xml for thirdparty downloads


Project: http://git-wip-us.apache.org/repos/asf/flex-flexunit/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-flexunit/commit/82eb1b9d
Tree: http://git-wip-us.apache.org/repos/asf/flex-flexunit/tree/82eb1b9d
Diff: http://git-wip-us.apache.org/repos/asf/flex-flexunit/diff/82eb1b9d

Branch: refs/heads/master
Commit: 82eb1b9dffbce9ca3a4c4432299b8e1bea1425ac
Parents: 6b1ac4a
Author: cyrillzadra <cy...@gmail.com>
Authored: Tue Sep 3 22:20:47 2013 +0400
Committer: cyrillzadra <cy...@gmail.com>
Committed: Tue Sep 3 22:20:47 2013 +0400

----------------------------------------------------------------------
 .gitignore                           |   4 +
 FlexUnit4/build.xml                  |  47 +++++-----
 FlexUnit4AirCIListener/build.xml     |  21 +----
 FlexUnit4AntTasks/build.xml          |  22 +----
 FlexUnit4CIListener/build.xml        |  21 +----
 FlexUnit4FlexCoverListener/build.xml |  21 +----
 FlexUnit4FluintExtensions/build.xml  |  21 +----
 FlexUnit4UIListener/build.xml        |  23 +----
 build.xml                            |  13 ++-
 downloads.xml                        | 150 ++++++++++++++++++++++++++++++
 utils.xml                            | 136 ++++++++++++++++-----------
 11 files changed, 298 insertions(+), 181 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 1abd6d2..b9f0d4d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,8 @@ FlexUnit4FluintExtensions/libs/*
 FlexUnit4CIListener/target/*
 FlexUnit4CIListener/libs/*
 FlexUnit4AirCIListener/bin/*
+FlexUnit4AirCIListener/target/*
+FlexUnit4AirCIListener/libs/*
 FlexUnit4FlexCoverListener/bin/*
 FlexUnit4FlexCoverListener/libs/*
 FlexUnit4FlexCoverListener/target/*
@@ -24,4 +26,6 @@ FlexUnit4UIListener/libs/*
 FlexUnit4UIListener/target/*
 .metadata
 .actionScriptProperties
+.idea
+*.iml
 */.settings
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/FlexUnit4/build.xml
----------------------------------------------------------------------
diff --git a/FlexUnit4/build.xml b/FlexUnit4/build.xml
index de4b462..ff580c9 100644
--- a/FlexUnit4/build.xml
+++ b/FlexUnit4/build.xml
@@ -191,29 +191,28 @@
    </target>
    
    <target name="deploy" depends="package" description="Requires Ant-Contrib and GPG to work.">
-      <!-- Copy artifacts w/o build number for use with sonatype -->
-   	  <copy todir="${sonatype.loc}">
-   	  	<fileset dir="${dist.loc}">
-   	  	   <include name="flexunit*.swc" />
-   	  	</fileset>
-   	  	<filtermapper>
-      	  <replacestring from="-${build.number}-" to="-" />
-		</filtermapper>
-   	  </copy>
-   
-      <!-- prepare sonatype bundle -->
-      <sonatype-bundle dir="${sonatype.loc}" 
-         todir="${sonatype.loc}" 
-         pomTemplate="${basedir}/../pom.template" 
-         artifact="${build.artifactId}" 
-         type="${build.packaging}" 
-         name="${build.deploy.name}" 
-         version="${build.version}" 
-         description="${build.deploy.description}">
-         <includes>
-            <include name="flexunit*.swc" />
-            <include name="pom.xml" />
-         </includes>
-      </sonatype-bundle>
+      <!-- deploy flex swc to sonatype -->
+      <sonatype-deploy
+           binaryFile="${bin.loc}/${build.finalName.flex}.${build.packaging}"
+           todir="${sonatype.loc}/flex"
+           pomTemplate="${basedir}/../pom.template"
+           artifact="${build.artifactId}-flex"
+           type="${build.packaging}"
+           name="${build.deploy.name}"
+           version="${build.version}"
+           description="${build.deploy.description}">
+      </sonatype-deploy>
+
+       <!-- deploy as3 swc to sonatype -->
+       <sonatype-deploy
+           binaryFile="${bin.loc}/${build.finalName.as3}.${build.packaging}"
+           todir="${sonatype.loc}/as3"
+           pomTemplate="${basedir}/../pom.template"
+           artifact="${build.artifactId}-as3"
+           type="${build.packaging}"
+           name="${build.deploy.name}"
+           version="${build.version}"
+           description="${build.deploy.description}">
+       </sonatype-deploy>
    </target>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/FlexUnit4AirCIListener/build.xml
----------------------------------------------------------------------
diff --git a/FlexUnit4AirCIListener/build.xml b/FlexUnit4AirCIListener/build.xml
index c92da2d..24f4e3d 100644
--- a/FlexUnit4AirCIListener/build.xml
+++ b/FlexUnit4AirCIListener/build.xml
@@ -106,18 +106,9 @@
    </target>
    
    <target name="deploy" depends="package" description="Requires Ant-Contrib and GPG to work.">
-      <!-- Copy artifacts w/o build number for use with sonatype -->
-   	  <copy todir="${sonatype.loc}">
-   	  	<fileset dir="${dist.loc}">
-   	  	   <include name="*.swc" />
-   	  	</fileset>
-   	  	<filtermapper>
-      	  <replacestring from="-${build.number}-" to="-" />
-		</filtermapper>
-   	  </copy>
-   
-      <!-- prepare sonatype bundle -->
-      <sonatype-bundle dir="${sonatype.loc}" 
+      <!-- deploy to sonatype repo -->
+      <sonatype-deploy
+         binaryFile="${bin.loc}/${build.finalName}.${build.packaging}"
          todir="${sonatype.loc}" 
          pomTemplate="${basedir}/../pom.template" 
          artifact="${build.artifactId}" 
@@ -125,10 +116,6 @@
          name="${build.deploy.name}" 
          version="${build.version}" 
          description="${build.deploy.description}">
-         <includes>
-            <include name="*.swc" />
-            <include name="pom.xml" />
-         </includes>
-      </sonatype-bundle>
+      </sonatype-deploy>
    </target>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/FlexUnit4AntTasks/build.xml
----------------------------------------------------------------------
diff --git a/FlexUnit4AntTasks/build.xml b/FlexUnit4AntTasks/build.xml
index 7bb004e..1a4773a 100644
--- a/FlexUnit4AntTasks/build.xml
+++ b/FlexUnit4AntTasks/build.xml
@@ -94,18 +94,10 @@
    </target>
    
    <target name="deploy" depends="package" description="Requires Ant-Contrib and GPG to work.">
-      <!-- Copy artifacts w/o build number for use with sonatype -->
-   	  <copy todir="${sonatype.loc}">
-   	  	<fileset dir="${dist.loc}">
-   	  	   <include name="*.jar" />
-   	  	</fileset>
-   	  	<filtermapper>
-      	  <replacestring from="-${build.number}" to="" />
-		</filtermapper>
-   	  </copy>
-   
-      <!-- prepare sonatype bundle -->
-      <sonatype-bundle dir="${sonatype.loc}" 
+      <sonatype-deploy
+         binaryFile="${dist.loc}/${build.finalName}.${build.packaging}"
+         sourcesFile="${dist.loc}/${build.finalName}-sources.${build.packaging}"
+         docFile="${dist.loc}/${build.finalName}-javadoc.${build.packaging}"
          todir="${sonatype.loc}" 
          pomTemplate="${basedir}/../pom.template" 
          artifact="${build.artifactId}" 
@@ -113,10 +105,6 @@
          name="${build.deploy.name}" 
          version="${build.version}" 
          description="${build.deploy.description}">
-         <includes>
-            <include name="*.jar" />
-            <include name="pom.xml" />
-         </includes>
-      </sonatype-bundle>
+      </sonatype-deploy>
    </target>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/FlexUnit4CIListener/build.xml
----------------------------------------------------------------------
diff --git a/FlexUnit4CIListener/build.xml b/FlexUnit4CIListener/build.xml
index 73b8ad0..137760c 100644
--- a/FlexUnit4CIListener/build.xml
+++ b/FlexUnit4CIListener/build.xml
@@ -100,18 +100,9 @@
    </target>
    
    <target name="deploy" depends="package" description="Requires Ant-Contrib and GPG to work.">
-      <!-- Copy artifacts w/o build number for use with sonatype -->
-   	  <copy todir="${sonatype.loc}">
-   	  	<fileset dir="${dist.loc}">
-   	  	   <include name="*.swc" />
-   	  	</fileset>
-   	  	<filtermapper>
-      	  <replacestring from="-${build.number}-" to="-" />
-		</filtermapper>
-   	  </copy>
-   
-      <!-- prepare sonatype bundle -->
-      <sonatype-bundle dir="${sonatype.loc}" 
+      <!-- deploy to sonatype repo -->
+      <sonatype-deploy
+         binaryFile="${bin.loc}/${build.finalName}.${build.packaging}"
          todir="${sonatype.loc}" 
          pomTemplate="${basedir}/../pom.template" 
          artifact="${build.artifactId}" 
@@ -119,10 +110,6 @@
          name="${build.deploy.name}" 
          version="${build.version}" 
          description="${build.deploy.description}">
-         <includes>
-            <include name="*.swc" />
-            <include name="pom.xml" />
-         </includes>
-      </sonatype-bundle>
+      </sonatype-deploy>
    </target>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/FlexUnit4FlexCoverListener/build.xml
----------------------------------------------------------------------
diff --git a/FlexUnit4FlexCoverListener/build.xml b/FlexUnit4FlexCoverListener/build.xml
index daee11b..ef23325 100644
--- a/FlexUnit4FlexCoverListener/build.xml
+++ b/FlexUnit4FlexCoverListener/build.xml
@@ -113,18 +113,9 @@
 	</target>
 
 	<target name="deploy" depends="package" description="Requires Ant-Contrib and GPG to work.">
-		<!-- Copy artifacts w/o build number for use with sonatype -->
-		<copy todir="${sonatype.loc}">
-			<fileset dir="${dist.loc}">
-				<include name="*.swc" />
-			</fileset>
-			<filtermapper>
-				<replacestring from="-${build.number}-" to="-" />
-			</filtermapper>
-		</copy>
-
-		<!-- prepare sonatype bundle -->
-		<sonatype-bundle dir="${sonatype.loc}" 
+      <!-- deploy to sonatype repo -->
+      <sonatype-deploy
+         binaryFile="${bin.loc}/${build.finalName}.${build.packaging}"
          todir="${sonatype.loc}" 
          pomTemplate="${basedir}/../pom.template" 
          artifact="${build.artifactId}" 
@@ -132,10 +123,6 @@
          name="${build.deploy.name}" 
          version="${build.version}" 
          description="${build.deploy.description}">
-			<includes>
-				<include name="*.swc" />
-				<include name="pom.xml" />
-			</includes>
-		</sonatype-bundle>
+	  </sonatype-deploy>
 	</target>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/FlexUnit4FluintExtensions/build.xml
----------------------------------------------------------------------
diff --git a/FlexUnit4FluintExtensions/build.xml b/FlexUnit4FluintExtensions/build.xml
index d1aeba9..a73d11e 100644
--- a/FlexUnit4FluintExtensions/build.xml
+++ b/FlexUnit4FluintExtensions/build.xml
@@ -107,18 +107,9 @@
    </target>
    
    <target name="deploy" depends="package" description="Requires Ant-Contrib and GPG to work.">
-      <!-- Copy artifacts w/o build number for use with sonatype -->
-   	  <copy todir="${sonatype.loc}">
-   	  	<fileset dir="${dist.loc}">
-   	  	   <include name="*.swc" />
-   	  	</fileset>
-   	  	<filtermapper>
-      	  <replacestring from="-${build.number}-" to="-" />
-		</filtermapper>
-   	  </copy>
-   
-      <!-- prepare sonatype bundle -->
-      <sonatype-bundle dir="${sonatype.loc}" 
+      <!-- deploy to sonatype repo -->
+      <sonatype-deploy
+         binaryFile="${bin.loc}/${build.finalName}.${build.packaging}"
          todir="${sonatype.loc}" 
          pomTemplate="${basedir}/../pom.template" 
          artifact="${build.artifactId}" 
@@ -126,10 +117,6 @@
          name="${build.deploy.name}" 
          version="${build.version}" 
          description="${build.deploy.description}">
-         <includes>
-            <include name="*.swc" />
-            <include name="pom.xml" />
-         </includes>
-      </sonatype-bundle>
+      </sonatype-deploy>
    </target>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/FlexUnit4UIListener/build.xml
----------------------------------------------------------------------
diff --git a/FlexUnit4UIListener/build.xml b/FlexUnit4UIListener/build.xml
index e24c618..1c71479 100644
--- a/FlexUnit4UIListener/build.xml
+++ b/FlexUnit4UIListener/build.xml
@@ -117,7 +117,7 @@
          <jvmarg value="-Xmx256M" />
          <arg line="+flexlib '${FLEX_HOME}/frameworks'" />
          <arg line="-compatibility-version=3.0.0" />
-         <arg line="-namespace http://www.adobe.com/2006/mxml ${FLEX_HOME}/frameworks/mxml-manifest.xml" />
+         <arg line="-namespace http://www.adobe.com/2006/mxml '${FLEX_HOME}/frameworks/mxml-manifest.xml'" />
          <arg line="-namespace ${build.namespace} ${src.loc}/FlexUnit4UIRunner-manifest.xml" />
          <arg line="-include-namespaces ${build.namespace}" />
          <arg line="-include-classes ${src.class-list}" />
@@ -160,18 +160,9 @@
    </target>
    
    <target name="deploy" depends="package" description="Requires Ant-Contrib and GPG to work.">
-      <!-- Copy artifacts w/o build number for use with sonatype -->
-   	  <copy todir="${sonatype.loc}">
-   	  	<fileset dir="${dist.loc}">
-   	  	   <include name="*.swc" />
-   	  	</fileset>
-   	  	<filtermapper>
-      	  <replacestring from="-${build.number}-" to="-" />
-		</filtermapper>
-   	  </copy>
-   
-      <!-- prepare sonatype bundle -->
-      <sonatype-bundle dir="${sonatype.loc}" 
+      <!-- deploy to sonatype repo -->
+      <sonatype-deploy
+         binaryFile="${bin.loc}/${build.finalName}.${build.packaging}"
          todir="${sonatype.loc}" 
          pomTemplate="${basedir}/../pom.template" 
          artifact="${build.artifactId}" 
@@ -179,10 +170,6 @@
          name="${build.deploy.name}" 
          version="${build.version}" 
          description="${build.deploy.description}">
-         <includes>
-            <include name="*.swc" />
-            <include name="pom.xml" />
-         </includes>
-      </sonatype-bundle>
+      </sonatype-deploy>
    </target>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index fe36267..0e1ac56 100644
--- a/build.xml
+++ b/build.xml
@@ -49,6 +49,13 @@ to contribute to our CI process.
    <property name="turnkey.loc" location="${basedir}/FlexUnit4TurnKey" />
    <property name="sampleCI.loc" location="${basedir}/FlexUnit4SampleCIProject" />
    
+   <!-- xml namespace which is used to deploy the artifacts with maven -->
+   <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
+            uri="antlib:org.apache.maven.artifact.ant"
+            classpath="lib/maven-ant-tasks-2.1.3.jar"/>
+   <taskdef resource="net/sf/antcontrib/antcontrib.properties"
+            classpath="lib/ant-contrib-1.0b3.jar"/>
+   
     <!--
         Optional jars but should be in place for a real release build.
 
@@ -82,6 +89,10 @@ to contribute to our CI process.
          </fileset>
       </delete>
    </target>
+   
+    <target name="prebuild">
+		<ant antfile="${basedir}/downloads.xml" dir="${basedir}" />
+    </target>
 
    <!-- Builds the FlexUnit4AntTasks project -->
    <target name="anttasks">
@@ -238,7 +249,7 @@ to contribute to our CI process.
       </zip>
    </target>
    
-   <target name="sonatype" description="Target used to generate bundles for deployment to Sonatype.">
+   <target name="sonatype" depends="prebuild" description="Target used to generate bundles for deployment to Sonatype.">
       <ant dir="${anttasks.loc}" target="deploy" inheritall="false">
          <propertyset>
             <propertyref prefix="build" />

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/downloads.xml
----------------------------------------------------------------------
diff --git a/downloads.xml b/downloads.xml
new file mode 100644
index 0000000..4890a8b
--- /dev/null
+++ b/downloads.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+
+-->
+
+<project name="downloads" default="main" basedir=".">
+	
+    <pathconvert property="compiler.tests" dirsep="/">
+        <path location="${basedir}"/>
+    </pathconvert>
+
+    <property name="lib.dir" value="${compiler.tests}/lib"/>
+    
+	<property name="download.dir" value="${compiler.tests}/in"/>
+    
+	<!-- 
+	   Notes:
+	       For Apache, the JARS must be removed from the repository.
+	       
+	       Licenses:
+            Maven Ant Tasks (2.1.3) - ?
+			Ant Contrib (1.0b3) - ?
+	-->
+		     
+    <!-- 
+        Because the downloads requires a network connection and the JARs don't change very often, 
+        they are each downloaded only if they don't already exist. 
+    -->
+    
+	<target name="main" depends="prepare, maven-ant-tasks-jar, ant-contrib-jar"
+		    description="Downloads all the required thirdparty JARs"/>
+
+    <target name="prepare" >
+        <mkdir dir="${lib.dir}" />
+    </target>
+    
+    <!--
+		Cleanup
+	-->
+	
+    <target name="clean" 
+            description="Removes thirdparty downloads.">
+        <delete includeEmptyDirs="true" failonerror="false">
+            <fileset dir="${download.dir}">
+                <include name="junit*/**"/>
+				<include name="ant*/**"/>
+				<include name="dom4j*/**"/>
+				<include name="jaxen*/**"/>
+            </fileset>
+        </delete>
+    </target>
+    
+    <!--
+	    Download thirdparty JARs    
+	-->
+
+    <!--
+        Download a jar file and optionally verify the checksum.
+        If the checksum fails, this script fails.
+        
+        Params are:
+            srcUrl
+            srcJarFile
+            destJarFile
+            [md5]
+    -->
+    <target name="download-jar" 
+            description="Downloads jar, and optionally verifies checksum.">                    
+        <get src="${srcUrl}/${srcJarFile}" dest="${destJarFile}"/>
+        <checksum file="${destJarFile}" algorithm="MD5" property="${we.failed}"/>
+        <antcall target="fail-with-message">
+            <param name="message" value="Checksum mismatch for ${destJarFile}"/>
+        </antcall>
+    </target>
+
+    <target name="fail-with-message" if="we.failed" 
+            description="Conditionally fails with the specified message">                
+        <fail message="${message}"/>
+    </target>
+        
+    <!--
+        junit
+    -->
+    
+    <target name="maven-ant-tasks-jar-check" description="Checks if Maven Ant Tasks JAR exists.">
+    	<condition property="maven.ant.tasks.jar.exists">
+    	    <and>
+    	        <available file="${lib.dir}/maven-ant-tasks-2.1.3.jar"/>
+    	    </and>
+        </condition>
+    </target>
+    
+    <target name="maven-ant-tasks-jar" depends="maven-ant-tasks-jar-check" unless="maven.ant.tasks.jar.exists"
+            description="Copies the Maven Ant Tasks JAR to the lib directory.">
+        <echo message="Obtaining lib/maven-ant-tasks-2.1.3.jar"/>
+        <antcall target="maven-ant-tasks-download-jar"/>
+    </target>
+    
+    <target name="maven-ant-tasks-download-jar" depends="maven-ant-tasks-jar-check" unless="maven.ant.tasks.jar.exists"
+            description="Downloads the Maven Ant Tasks jar.">
+        <antcall target="download-jar">
+            <param name="srcUrl" value="http://search.maven.org/remotecontent?filepath=org/apache/maven/maven-ant-tasks/2.1.3"/>
+            <param name="srcJarFile" value="maven-ant-tasks-2.1.3.jar"/>
+            <param name="destJarFile" value="${lib.dir}/maven-ant-tasks-2.1.3.jar"/>
+        </antcall>
+    </target>
+	
+	<!--
+        ant contrib
+    -->
+    
+    <target name="ant-contrib-check" description="Checks if AntContrib JAR exists.">
+    	<condition property="ant.contrib.jar.exists">
+    	    <and>
+    	        <available file="${lib.dir}/ant-contrib-1.0b3.jar"/>
+    	    </and>
+        </condition>
+    </target>
+    
+    <target name="ant-contrib-jar" depends="ant-contrib-check" unless="ant.contrib.jar.exists"
+            description="Copies the Ant Contrib JAR to the lib directory.">
+        <echo message="Obtaining lib/ant-contrib-1.0b3.jar"/>
+        <antcall target="ant-contrib-download-jar"/>
+    </target>
+    
+    <target name="ant-contrib-download-jar" depends="ant-contrib-check" unless="ant.contrib.jar.exists"
+            description="Downloads the Ant Contrib jar.">
+        <antcall target="download-jar">
+            <param name="srcUrl" value="http://search.maven.org/remotecontent?filepath=ant-contrib/ant-contrib/1.0b3"/>
+            <param name="srcJarFile" value="ant-contrib-1.0b3.jar"/>
+            <param name="destJarFile" value="${lib.dir}/ant-contrib-1.0b3.jar"/>
+        </antcall>
+    </target>
+	
+</project>

http://git-wip-us.apache.org/repos/asf/flex-flexunit/blob/82eb1b9d/utils.xml
----------------------------------------------------------------------
diff --git a/utils.xml b/utils.xml
index b4915cb..803fe33 100644
--- a/utils.xml
+++ b/utils.xml
@@ -15,58 +15,88 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<project>
-   <macrodef name="gpg">
-      <attribute name="todir" />
-      <attribute name="file" />
-      <sequential>
-         <exec executable="gpg" dir="@{todir}">
-            <arg line="-ab @{file}" />
-         </exec>
-      </sequential>
-   </macrodef>
-   
-   <macrodef name="sonatype-bundle">
-      <attribute name="dir" />
-      <attribute name="todir" />
-      <attribute name="pomTemplate" />
-      <attribute name="artifact" />
-      <attribute name="type" />
-      <attribute name="name" />
-      <attribute name="version" />
-      <attribute name="description" />
-      <element name="includes" />
-      
-      <sequential>
-         <taskdef resource="net/sf/antcontrib/antlib.xml"/>
+<project xmlns:artifact="antlib:org.apache.maven.artifact.ant">
+
+    <!-- xml namespace which is used to deploy the artifacts with maven -->
+    <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
+             uri="antlib:org.apache.maven.artifact.ant"
+             classpath="lib/maven-ant-tasks-2.1.3.jar"/>
+
+    <taskdef resource="net/sf/antcontrib/antcontrib.properties"
+             classpath="lib/ant-contrib-0.6.jar"/>
+
+    <!-- defined maven snapshots and staging repository id and url -->
+    <property name="maven-staging-repository-id" value="sonatype-nexus-staging" />
+    <property name="maven-staging-repository-url" value="https://oss.sonatype.org/service/local/staging/deploy/maven2/" />
+
+    <macrodef name="sonatype-deploy">
+        <attribute name="binaryFile"/>
+        <attribute name="sourcesFile" default=""/>
+        <attribute name="docFile" default=""/>
+        <attribute name="todir"/>
+        <attribute name="pomTemplate"/>
+        <attribute name="artifact"/>
+        <attribute name="type"/>
+        <attribute name="name"/>
+        <attribute name="version"/>
+        <attribute name="description"/>
+
+        <sequential>
+            <!-- Create POM from template -->
+            <copy file="@{pomTemplate}" tofile="@{todir}/pom.xml"/>
+            <replace file="@{todir}/pom.xml">
+                <replacefilter token="@ARTIFACT@" value="@{artifact}"/>
+                <replacefilter token="@TYPE@" value="@{type}"/>
+                <replacefilter token="@NAME@" value="@{name}"/>
+                <replacefilter token="@VERSION@" value="@{version}"/>
+                <replacefilter token="@DESCRIPTION@" value="@{description}"/>
+            </replace>
             
-         <!-- Create POM from template -->
-         <copy file="@{pomTemplate}" tofile="@{todir}/pom.xml" />
-         <replace file="@{todir}/pom.xml">
-            <replacefilter token="@ARTIFACT@" value="@{artifact}" />
-            <replacefilter token="@TYPE@" value="@{type}" />
-            <replacefilter token="@NAME@" value="@{name}" />
-            <replacefilter token="@VERSION@" value="@{version}" />
-            <replacefilter token="@DESCRIPTION@" value="@{description}" />
-         </replace>
-      
-         <!-- Sign all files using GPG, assumes GPG is installed and configured -->
-         <for param="fileToSign">
-            <fileset dir="@{todir}">
-               <includes />
-            </fileset>
-            <sequential>
-               <gpg todir="@{todir}" file="@{fileToSign}" />
-            </sequential>
-         </for>
-      
-         <!-- Zip into bundle for manual upload -->
-         <zip destfile="@{todir}/sonatype-@{artifact}-@{version}.zip">
-            <zipfileset dir="@{todir}">
-               <includes />
-               <include name="*.asc" />
-            </zipfileset>
-         </zip>
-      </sequential>
-   </macrodef>
+            <copy file="@{binaryFile}" tofile="@{todir}/@{artifact}-@{version}.@{type}" />
+            <if>
+                <equals arg1="@{type}" arg2="jar" />
+                <then>
+                    <copy file="@{sourcesFile}" tofile="@{todir}/@{artifact}-@{version}-sources.@{type}" />
+                    <copy file="@{docFile}" tofile="@{todir}/@{artifact}-@{version}-javadoc.@{type}" />
+                </then>
+            </if>
+
+            <!-- sign and deploy the main artifact -->
+            <artifact:mvn>
+                <artifact:arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
+                <artifact:arg value="-Durl=${maven-staging-repository-url}"/>
+                <artifact:arg value="-DrepositoryId=${maven-staging-repository-id}"/>
+                <artifact:arg value="-DpomFile=@{todir}/pom.xml"/>
+                <artifact:arg value="-Dfile=@{todir}/@{artifact}-@{version}.@{type}"/>
+                <artifact:arg value="-Pgpg"/>
+            </artifact:mvn>
+
+            <if>
+                <equals arg1="@{type}" arg2="jar" />
+                <then>
+                    <!-- sign and deploy the sources artifact -->
+                    <artifact:mvn>
+                        <artifact:arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
+                        <artifact:arg value="-Durl=${maven-staging-repository-url}"/>
+                        <artifact:arg value="-DrepositoryId=${maven-staging-repository-id}"/>
+                        <artifact:arg value="-DpomFile=@{todir}/pom.xml"/>
+                        <artifact:arg value="-Dfile=@{todir}/@{artifact}-@{version}-sources.@{type}"/>
+                        <artifact:arg value="-Dclassifier=sources"/>
+                        <artifact:arg value="-Pgpg"/>
+                    </artifact:mvn>
+
+                    <!-- sign and deploy the javadoc artifact -->
+                    <artifact:mvn>
+                        <artifact:arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
+                        <artifact:arg value="-Durl=${maven-staging-repository-url}"/>
+                        <artifact:arg value="-DrepositoryId=${maven-staging-repository-id}"/>
+                        <artifact:arg value="-DpomFile=@{todir}/pom.xml"/>
+                        <artifact:arg value="-Dfile=@{todir}/@{artifact}-@{version}-javadoc.@{type}"/>
+                        <artifact:arg value="-Dclassifier=javadoc"/>
+                        <artifact:arg value="-Pgpg"/>
+                    </artifact:mvn>
+                </then>
+            </if>
+        </sequential>
+    </macrodef>
 </project>
\ No newline at end of file