Author: hibou Date: Fri Jan 30 10:29:21 2009 New Revision: 739228 URL: http://svn.apache.org/viewvc?rev=739228&view=rev Log: IVYDE-156: make the publishing of the release into the updatesite more automatic, so there won't be mess around version numbers
Modified: ant/ivy/updatesite/trunk/build.xml Modified: ant/ivy/updatesite/trunk/build.xml URL: http://svn.apache.org/viewvc/ant/ivy/updatesite/trunk/build.xml?rev=739228&r1=739227&r2=739228&view=diff ============================================================================== --- ant/ivy/updatesite/trunk/build.xml (original) +++ ant/ivy/updatesite/trunk/build.xml Fri Jan 30 10:29:21 2009 @@ -72,11 +72,47 @@ <!-- =================================================================================================================== - Target to generate the Ivy feature and put it in the updatesite + Targets to install the plugins into the updatesite =================================================================================================================== --> - <target name="generate-ivy-feature" description="Generate the Eclipse feature for Ivy"> - <fail message="You have to specify the version of the ivy" unless="ivy.version" /> + + <macrodef name="osgi-version"> + <attribute name="jar" /> + <attribute name="outputproperty" /> + <sequential> + <tstamp> + <format property="tsta...@{jar}" pattern="yyyyMMddhhmmss" locale="en,UK" /> + </tstamp> + <property name="work.d...@{jar}" value="${work.dir}/${tsta...@{jar}}" /> + <mkdir dir="${work.d...@{jar}}/jar" /> + <unzip overwrite="true" src="@{jar}" dest="${work.d...@{jar}}" /> + <loadfile property="@{outputproperty}" srcFile="${work.d...@{jar}}/META-INF/MANIFEST.MF"> + <filterchain> + <linecontains> + <contains value="Bundle-Version:" /> + </linecontains> + <tokenfilter> + <replaceregex pattern="Bundle-Version: (.*)" replace="\1" flags="gi" /> + </tokenfilter> + <striplinebreaks /> + </filterchain> + </loadfile> + <delete dir="${work.d...@{jar}}" /> + </sequential> + </macrodef> + + <target name="install-ivy" description="Install an Ivy bundle into the updatesite"> + <fail message="You have to specify the path to the jar via the property ivy.jar" unless="ivy.jar" /> + <!-- get the real OSGi version of the bundle --> + <osgi-version jar="${ivy.jar}" outputproperty="ivy.version" /> + <!-- delete previously installed ivy bundles --> + <delete dir="${updatesite.dir}"> + <include name="plugins/org.apache.ivy_*" /> + <include name="features/org.apache.ivy_*" /> + </delete> + <!-- install the plugin --> + <copy file="${ivy.jar}" tofile="${updatesite.dir}/plugins/org.apache.ivy_${ivy.version}.jar" overwrite="true" /> + <!-- now take care of the generation of the Ivy feature --> <!-- first generate a feature descriptor with the proper version --> <delete file="${work.dir}/feature.xml" /> <copy file="ivy-feature-template/feature.xml" todir="${work.dir}"> @@ -95,6 +131,41 @@ <include name="feature.xml" /> </fileset> </jar> + <!-- update the site.xml --> + <copy file="${updatesite.dir}/site.xml" tofile="${work.dir}/site.xml" overwrite="true"> + <filterchain> + <replaceregex pattern="org\.apache\.ivy\.feature_(.*)\.jar\" id=\"org\.apache\.ivy\.feature\" version=\"(.*)\"" replace="org.apache.ivy.feature_${ivy.version}.jar" id="org.apache.ivy.feature" version="${ivy.version}"" flags="gi" /> + </filterchain> + </copy> + <copy file="${work.dir}/site.xml" tofile="${updatesite.dir}/site.xml" overwrite="true" /> + </target> + + <target name="install-ivyde" description="Install IvyDE into the updatesite"> + <fail message="You have to specify the path to the zip of the IvyDE distribution via the property ivyde.zip" unless="ivyde.zip" /> + <!-- delete previously installed ivy bundles --> + <delete dir="${updatesite.dir}"> + <include name="plugins/org.apache.ivyde*" /> + <include name="features/org.apache.ivyde*" /> + </delete> + <!-- install the plugin --> + <unzip src="${ivyde.zip}" dest="${updatesite.dir}" /> + <!-- get the path to the ivyde plugin --> + <path id="ivyde.plugin.path.id"> + <first count="1"> + <fileset dir="${updatesite.dir}/plugins" includes="org.apache.ivyde*.jar" /> + </first> + </path> + <!-- turn the path into a property --> + <property name="ivyde.plugin.path" refid="ivyde.plugin.path.id" /> + <!-- get the real OSGi version of the bundle --> + <osgi-version jar="${ivyde.plugin.path}" outputproperty="ivyde.version" /> + <!-- update the site.xml --> + <copy file="${updatesite.dir}/site.xml" tofile="${work.dir}/site.xml" overwrite="true"> + <filterchain> + <replaceregex pattern="org\.apache\.ivyde\.feature_(.*)\.jar\" id=\"org\.apache\.ivyde\.feature\" version=\"(.*)\"" replace="org.apache.ivyde.feature_${ivyde.version}.jar" id="org.apache.ivyde.feature" version="${ivyde.version}"" flags="gi" /> + </filterchain> + </copy> + <copy file="${work.dir}/site.xml" tofile="${updatesite.dir}/site.xml" overwrite="true" /> </target> <!--