From 4d42096361df2b3c09a547dc6d53c21aa57cc02e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Sun, 15 Jul 2012 13:03:07 +0000
Subject: [PATCH] - used a macrodef instead of the onejar target

---
 build.xml | 149 ++++++++++++++++++++++++++----------------------------
 1 file changed, 72 insertions(+), 77 deletions(-)

diff --git a/build.xml b/build.xml
index 8e0120c5..432ee7d9 100644
--- a/build.xml
+++ b/build.xml
@@ -144,6 +144,52 @@
   <!-- cover: emma seems really difficult
   <taskdef resource="emma_ant.properties" classpathref="emma.lib" /-->
 
+  <macrodef name="onejar" description="utility macro for JAR packaging">
+    <attribute name="group" description="Maven group ID" />
+    <attribute name="file" description="Artifact name" />
+    <attribute name="desc" description="Description" />
+    <attribute name="main" description="Main class to call" default=""/>
+    <attribute name="pack" description="Exported packages" />
+    <attribute name="impt" description="Imported packages" default="" />
+    <attribute name="path" description="Class path" default="" />
+    <attribute name="contentid" description="The fileset Id of the files to include" />
+    <sequential>
+      <delete file="lib/@{file}.jar"/>
+      <!-- it may even be easier to generate the pom -->
+      <copy file="distrib/@{file}.pom" toFile="lib/@{file}.pom">
+	<filterset>
+	  <filter token="GROUPID" value="@{group}"/>
+	  <filter token="ARTID" value="@{file}"/>
+	  <filter token="VERS" value="${version}"/>
+	  <filter token="DATE" value="${date}"/>
+	  <filter token="REV" value="${svn.rev}"/>
+	  <filter token="COPYYEAR" value="${copyyear}"/>
+	</filterset>
+      </copy>
+      <jar jarfile="lib/@{file}.jar">
+	<manifest>
+	  <attribute name="Built-Date" value="${date}"/>
+          <attribute name="Main-Class" value="@{main}"/>
+          <attribute name="Class-Path" value="@{path}"/>
+	  <attribute name="Specification-Title" value="@{desc}"/>
+	  <attribute name="Specification-Version" value="${version} (${svn.rev})"/>
+	  <attribute name="Bundle-Name" value="@{desc}"/>
+	  <attribute name="Bundle-SymbolicName" value="@{file}"/>
+	  <attribute name="Bundle-Version" value="${version} (${svn.rev})"/>
+	  <attribute name="Bundle-Copyright" value="INRIA, ${copyyear}"/>
+	  <attribute name="Bundle-Date" value="${date}"/>
+	  <attribute name="Bundle-License" value="GNU Lesser General Public License 2.1 or above"/>
+	  <attribute name="Export-package" value="@{pack}"/>
+	  <attribute name="Import-package" value="@{impt}"/>
+	</manifest>
+	<!-- This should be achieved with a metainf tag, but not working -->
+	<zipfileset file="classes/LICENSE.TXT" fullpath="META-INF/LICENSE.TXT" />
+	<zipfileset file="lib/@{file}.pom" fullpath="META-INF/maven/@{group}/@{file}/pom.xml" />
+	<fileset refid="@{contentid}" />
+      </jar>
+    </sequential>
+  </macrodef>
+
   <!-- tested -->
   <target name="jar" depends="compile" description="Create jar archives">
     <echo message="Jarchiving..."/>
@@ -153,16 +199,11 @@
     <fileset id="alignset" dir="classes">
       <include name="org/semanticweb/owl/align/*.class"/>
     </fileset>
-    <antcall target="onejar">
-      <param name="group" value="org.semanticweb.owl" />
-      <param name="file" value="align" />
-      <param name="desc" value="Alignment API" />
-      <param name="main" value="" />
-      <param name="pack" value="org.semanticweb.owl.align" />
-      <param name="impt" value="" />
-      <param name="path" value="" />
-      <reference refid="alignset" torefid="content" />
-    </antcall>
+    <onejar file="align"
+      group="org.semanticweb.owl"
+      desc="Alignment API"
+      pack="org.semanticweb.owl.align"
+      contentid="alignset" />
 
     <!-- ontowrap.jar -->
     <copy file="src/fr/inrialpes/exmo/ontowrap/skoslite/skos.rdf" tofile="classes/fr/inrialpes/exmo/ontowrap/skoslite/skos.rdf" />
@@ -170,16 +211,11 @@
       <include name="fr/inrialpes/exmo/ontowrap/**/*.class" />
       <include name="fr/inrialpes/exmo/ontowrap/**/*.rdf"/>
     </fileset>
-    <antcall target="onejar">
-      <param name="group" value="fr.inrialpes.exmo" />
-      <param name="file" value="ontowrap" />
-      <param name="desc" value="Ontology wrapper" />
-      <param name="impt" value="" />
-      <param name="pack" value="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util" />
-      <param name="impt" value="" />
-      <param name="path" value="" />
-      <reference refid="wrapset" torefid="content" />
-    </antcall>
+    <onejar file="ontowrap"
+      group="fr.inrialpes.exmo"
+      desc="Ontology wrapper"
+      pack="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util"
+      contentid="wrapset" />
 
     <!-- procalign.jar -->
     <fileset id="procset" dir="classes">
@@ -190,70 +226,29 @@
       <include name="fr/inrialpes/exmo/align/gen/**/*.class"/>
       <include name="fr/inrialpes/exmo/align/ling/**/*.class"/>
     </fileset>
-    <antcall target="onejar">
-      <param name="group" value="fr.inrialpes.exmo.align" />
-      <param name="file" value="procalign" />
-      <param name="desc" value="Alignment API implementation" />
-      <param name="main" value="fr.inrialpes.exmo.align.cli.Procalign" />
-      <param name="pack" value="fr.inrialpes.exmo.align.impl,fr.inrialpes.exmo.align.impl.edoal,fr.inrialpes.exmo.align.impl.eval,fr.inrialpes.exmo.align.impl.method,fr.inrialpes.exmo.align.impl.rel,fr.inrialpes.exmo.align.impl.renderer,fr.inrialpes.exmo.align.ling,fr.inrialpes.exmo.align.parser,fr.inrialpes.exmo.align.util,fr.inrialpes.exmo.align.cli,fr.inrialpes.exmo.align.gen" />
-      <param name="impt" value="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util,org.semanticweb.owl.align" />
-      <param name="path" value="${jarclasspath}"/>
-      <reference refid="procset" torefid="content" />
-    </antcall>
+    <onejar file="procalign"
+      group="fr.inrialpes.exmo.align"
+      desc="Alignment API implementation"
+      main="fr.inrialpes.exmo.align.cli.Procalign"
+      pack="fr.inrialpes.exmo.align.impl,fr.inrialpes.exmo.align.impl.edoal,fr.inrialpes.exmo.align.impl.eval,fr.inrialpes.exmo.align.impl.method,fr.inrialpes.exmo.align.impl.rel,fr.inrialpes.exmo.align.impl.renderer,fr.inrialpes.exmo.align.ling,fr.inrialpes.exmo.align.parser,fr.inrialpes.exmo.align.util,fr.inrialpes.exmo.align.cli,fr.inrialpes.exmo.align.gen"
+      impt="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util,org.semanticweb.owl.align"
+      path="${jarclasspath}"
+      contentid="procset" />
 
     <!-- alignsvc.jar -->
+    <copy file="src/fr/inrialpes/exmo/align/service/aserv.wsdl" tofile="classes/fr/inrialpes/exmo/align/service/aserv.wsdl" filtering="false"/>
     <fileset id="servset" dir="classes">
       <include name="fr/inrialpes/exmo/align/service/**/*.class"/>
       <include name="fr/inrialpes/exmo/align/service/**/*.wsdl"/>
       <include name="fr/inrialpes/exmo/queryprocessor/**/*.class"/>
     </fileset>
-    <copy file="src/fr/inrialpes/exmo/align/service/aserv.wsdl" tofile="classes/fr/inrialpes/exmo/align/service/aserv.wsdl" filtering="false"/>
-    <antcall target="onejar">
-      <param name="group" value="fr.inrialpes.exmo.align" />
-      <param name="file" value="alignsvc" />
-      <param name="desc" value="Alignment server" />
-      <param name="main" value="fr.inrialpes.exmo.align.service.AlignmentService" />
-      <param name="pack" value="fr.inrialpes.exmo.align.queryprocessor,fr.inrialpes.exmo.align.service,fr.inrialpes.exmo.align.service.jade,fr.inrialpes.exmo.align.service.jade.messageontology" />
-      <param name="path" value="procalign.jar jade/jade.jar jade/iiop.jar jade/http.jar jdbc/mysql-connector-java.jar jdbc/postgresql-jdbc4.jar servlet/servlet-api.jar jetty/jetty.jar jetty/jetty-util.jar xerces/xercesImpl.jar" />
-      <reference refid="servset" torefid="content" />
-    </antcall>
-  </target>
-
-  <target name="onejar" description="Create jar archives">
-    <echo message="Jarchiving..."/>
-    <delete file="lib/${file}.jar"/>
-    <!-- it may even be easier to generate the pom -->
-    <copy file="distrib/${file}.pom" toFile="lib/${file}.pom">
-      <filterset>
-       <filter token="GROUPID" value="${group}"/>
-       <filter token="ARTID" value="${file}"/>
-       <filter token="VERS" value="${version}"/>
-       <filter token="DATE" value="${date}"/>
-       <filter token="REV" value="${svn.rev}"/>
-       <filter token="COPYYEAR" value="${copyyear}"/>
-      </filterset>
-    </copy>
-    <jar jarfile="lib/${file}.jar">
-      <manifest>
-	<attribute name="Built-Date" value="${date}"/>
-        <attribute name="Main-Class" value="${main}"/>
-        <attribute name="Class-Path" value="${path}"/>
-	<attribute name="Specification-Title" value="${desc}"/>
-	<attribute name="Specification-Version" value="${version} (${svn.rev})"/>
-	<attribute name="Bundle-Name" value="${desc}"/>
-	<attribute name="Bundle-SymbolicName" value="${file}"/>
-	<attribute name="Bundle-Version" value="${version} (${svn.rev})"/>
-	<attribute name="Bundle-Copyright" value="INRIA, ${copyyear}"/>
-	<attribute name="Bundle-Date" value="${date}"/>
-	<attribute name="Bundle-License" value="GNU Lesser General Public License 2.1 or above"/>
-	<attribute name="Export-package" value="${pack}"/>
-	<attribute name="Import-package" value="${impt}"/>
-      </manifest>
-      <!-- This should be achieved with a metainf tag, but not working -->
-      <zipfileset file="classes/LICENSE.TXT" fullpath="META-INF/LICENSE.TXT" />
-      <zipfileset file="lib/${file}.pom" fullpath="META-INF/maven/${group}/${file}/pom.xml" />
-      <fileset refid="content" />
-    </jar>
+    <onejar file="alignsvc"
+      group="fr.inrialpes.exmo.align"
+      desc="Alignment server"
+      main="fr.inrialpes.exmo.align.service.AlignmentService"
+      pack="fr.inrialpes.exmo.align.queryprocessor,fr.inrialpes.exmo.align.service,fr.inrialpes.exmo.align.service.jade,fr.inrialpes.exmo.align.service.jade.messageontology"
+      path="procalign.jar jade/jade.jar jade/iiop.jar jade/http.jar jdbc/mysql-connector-java.jar jdbc/postgresql-jdbc4.jar servlet/servlet-api.jar jetty/jetty.jar jetty/jetty-util.jar xerces/xercesImpl.jar"
+      contentid="servset" />
   </target>
 
   <!-- tested -->
-- 
GitLab