diff options
author | Artur Signell <artur@vaadin.com> | 2013-02-18 21:31:32 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2013-02-19 15:07:44 +0000 |
commit | f09c12fd97cbafd10b31c79a55bd90dfef02f4a9 (patch) | |
tree | 5030cc74358b7615eaf81833eed41ecf6c9e519d | |
parent | 9da1979af798324cbe1eea2b6adde0886774f73b (diff) | |
download | vaadin-framework-f09c12fd97cbafd10b31c79a55bd90dfef02f4a9.tar.gz vaadin-framework-f09c12fd97cbafd10b31c79a55bd90dfef02f4a9.zip |
Imported and updated release notes builder (#10918)
Change-Id: Ie21d448f89d0fab6b7732a0137c80172e9da8e69
Ticket: 10918
-rw-r--r-- | all/build.xml | 6 | ||||
-rw-r--r-- | build/bin/closed-to-rn.py | 16 | ||||
-rw-r--r-- | buildhelpers/build.xml | 7 | ||||
-rw-r--r-- | buildhelpers/ivy.xml | 4 | ||||
-rw-r--r-- | buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java | 46 | ||||
-rw-r--r-- | client-compiled/build.xml | 3 | ||||
-rw-r--r-- | common.xml | 34 | ||||
-rw-r--r-- | uitest/build.xml | 4 |
8 files changed, 97 insertions, 23 deletions
diff --git a/all/build.xml b/all/build.xml index ef8ac71c4d..40d82b3d47 100644 --- a/all/build.xml +++ b/all/build.xml @@ -35,6 +35,9 @@ </target> <target name="javadoc" depends="copy-jars"> + <!-- Ensure filtered webcontent files are available --> + <antcall target="common.filter.webcontent" /> + <!-- Unpack all source files to javadoc.temp.dir--> <antcontrib:foreach list="${modules.to.publish.to.maven}" target="unzip.to.javadoctemp" param="module" /> @@ -76,6 +79,9 @@ </target> <target name="zip" depends="copy-jars, javadoc"> + <!-- Ensure filtered webcontent files are available --> + <antcall target="common.filter.webcontent" /> + <zip destfile="${zip.file}"> <fileset dir="${temp.dir}"> <!-- Avoid conflicts with servlet and portlet API. They are provided by the container --> diff --git a/build/bin/closed-to-rn.py b/build/bin/closed-to-rn.py deleted file mode 100644 index 0928877e1c..0000000000 --- a/build/bin/closed-to-rn.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/python - -import sys,string - -filename = sys.argv[1] - -fin = open(filename, "r") -lines = fin.readlines() -fin.close() - -for line in lines: - fields = string.split(line, "\t") - - if fields[0] != "id": - ticketid = "<a href=\"http://dev.vaadin.com/ticket/%s\">#%s</a>" % (fields[0],fields[0]) - print " <li>%s: %s</li>" % (ticketid, fields[1]) diff --git a/buildhelpers/build.xml b/buildhelpers/build.xml index c7b9eba9d3..b56209f6cc 100644 --- a/buildhelpers/build.xml +++ b/buildhelpers/build.xml @@ -36,6 +36,13 @@ </antcall> </target> + <target name="fetch-release-notes-tickets"> + <antcall target="common.exec-buildhelper"> + <param name="main.class" value="com.vaadin.buildhelpers.FetchReleaseNotesTickets" /> + <param name="output" value="${output}" /> + </antcall> + </target> + <target name="tests" depends="checkstyle"> <!--<antcall target="common.tests.run" />--> <echo>WHAT? No JUnit tests for ${module.name}!</echo> diff --git a/buildhelpers/ivy.xml b/buildhelpers/ivy.xml index ba44ebfc3f..d8e4457296 100644 --- a/buildhelpers/ivy.xml +++ b/buildhelpers/ivy.xml @@ -27,6 +27,8 @@ <artifact type="pom" ext="pom" /> </publications> - <dependencies /> + <dependencies> + <dependency org="commons-io" name="commons-io" rev="1.4" /> + </dependencies> </ivy-module> diff --git a/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java new file mode 100644 index 0000000000..76952bb329 --- /dev/null +++ b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java @@ -0,0 +1,46 @@ +package com.vaadin.buildhelpers; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; + +import org.apache.commons.io.IOUtils; + +public class FetchReleaseNotesTickets { + private static final String queryURL = "http://dev.vaadin.com/query?status=closed&milestone=Vaadin+@version@&resolution=fixed&format=tab&order=id"; + private static final String ticketTemplate = " <li><a href=\"http://dev.vaadin.com/ticket/@ticket@\">#@ticket@</a>: @description@</li>"; + + public static void main(String[] args) throws IOException { + String version = System.getProperty("vaadin.version"); + if (version == null || version.equals("")) { + usage(); + } + + URL url = new URL(queryURL.replace("@version@", version)); + URLConnection connection = url.openConnection(); + InputStream urlStream = connection.getInputStream(); + + @SuppressWarnings("unchecked") + List<String> tickets = IOUtils.readLines(urlStream); + + for (String ticket : tickets) { + String[] fields = ticket.split("\t"); + if ("id".equals(fields[0])) { + // This is the header + continue; + } + System.out.println(ticketTemplate.replace("@ticket@", fields[0]) + .replace("@description@", fields[1])); + } + urlStream.close(); + } + + private static void usage() { + System.err.println("Usage: " + + FetchReleaseNotesTickets.class.getSimpleName() + + " -Dvaadin.version=<version>"); + System.exit(1); + } +} diff --git a/client-compiled/build.xml b/client-compiled/build.xml index d1f3eda674..1a78b17a7f 100644 --- a/client-compiled/build.xml +++ b/client-compiled/build.xml @@ -98,6 +98,9 @@ </target> <target name="client-compiled-cache.jar" depends="default-widgetset-cache"> + <!-- Ensure filtered webcontent files are available --> + <antcall target="common.filter.webcontent" /> + <jar file="${compiled-cache.jar}" compress="true"> <fileset dir="${gwtar.dir}"> <include name="**/*.gwtar" /> diff --git a/common.xml b/common.xml index ff82b6b7ec..7a3f2f17c6 100644 --- a/common.xml +++ b/common.xml @@ -27,9 +27,12 @@ <union id="empty.reference" /> <property name="filtered.webcontent.dir" location="${vaadin.basedir}/result/filteredWebContent" /> + <property name="release-notes-tickets-file" location="${vaadin.basedir}/result/release-notes-tickets.html" /> - <target name="filter.webcontent" unless="webcontent.filtered"> + <target name="filter.webcontent" unless="webcontent.filtered" depends="fetch-release-notes-tickets"> <property name="webcontent.filtered" value="true" /> + <!-- Running without build.release-notes will cause an error, which is ignored --> + <loadfile property="release-notes-tickets" srcFile="${release-notes-tickets-file}" failonerror="false" /> <delete dir="${filtered.webcontent.dir}" /> <copy todir="${filtered.webcontent.dir}"> @@ -57,11 +60,20 @@ <replacetokens begintoken="@" endtoken="@"> <token key="builddate" value="${build.date}" /> </replacetokens> + <replacetokens begintoken="@" endtoken="@"> + <token key="release-notes-tickets" value="${release-notes-tickets}" /> + </replacetokens> </filterchain> </copy> + </target> - + <target name="fetch-release-notes-tickets" unless="built.release-notes" if="build.release-notes"> + <subant buildpath="${vaadin.basedir}/buildhelpers" target="fetch-release-notes-tickets" antfile="build.xml" inheritall="true"> + <property name="output" location="${release-notes-tickets-file}" /> + </subant> + <property name="built.release-notes" value="1" /> </target> + <fileset dir="${filtered.webcontent.dir}" id="common.files.for.all.jars"> <patternset> <include name="release-notes.html" /> @@ -110,7 +122,7 @@ </target> - <target name="sources.jar" depends="compile"> + <target name="sources.jar" depends="compile, filter.webcontent"> <fail unless="result.dir" message="No result.dir parameter given" /> <fail unless="module.name" message="No module.name parameter given" /> <fail unless="src" message="No src directory parameter given" /> @@ -132,7 +144,7 @@ </target> - <target name="javadoc.jar" depends="dependencies"> + <target name="javadoc.jar" depends="dependencies, filter.webcontent"> <fail unless="result.dir" message="No result.dir parameter given" /> <fail unless="module.name" message="No module.name parameter given" /> <property name="src" location="{$result.dir}/../src" /> @@ -157,7 +169,7 @@ </target> - <target name="jar" depends="compile, pom.xml"> + <target name="jar" depends="compile, pom.xml, filter.webcontent"> <fail unless="result.dir" message="No result.dir parameter given" /> <fail unless="module.name" message="No module.name parameter given" /> @@ -261,6 +273,16 @@ </javac> </target> + <target name="exec-buildhelper" depends="compile"> + <fail unless="main.class" message="No main class given in 'main.class'" /> + <fail unless="output" message="No output file given in 'output'" /> + <java classname="${main.class}" output="${output}" failonerror="true" fork="yes"> + <classpath refid="vaadin.buildhelpers.classpath" /> + <classpath refid="classpath.compile.dependencies" /> + <jvmarg value="-Dvaadin.version=${vaadin.version}" /> + </java> + </target> + <target name="directories"> <property name="result.dir" location="result" /> <property name="src" location="${result.dir}/../src" /> @@ -321,7 +343,7 @@ </copy> </target> - <target name="dependencies" description="Resolves dependencies needed by this module" depends="filter.webcontent"> + <target name="dependencies" description="Resolves dependencies needed by this module"> <property name='conf' value="build, build-provided" /> <ivy:resolve resolveid="common" conf="${conf}" /> <ivy:cachepath pathid="classpath.compile.dependencies" conf="${conf}" /> diff --git a/uitest/build.xml b/uitest/build.xml index ee2b2c6124..53da0ae2e9 100644 --- a/uitest/build.xml +++ b/uitest/build.xml @@ -106,6 +106,10 @@ <path refid="classpath.runtime.dependencies" /> </copy> + + <!-- Ensure filtered webcontent files are available --> + <antcall target="common.filter.webcontent" /> + <war destfile="${result.war}" duplicate="fail" index="true"> <fileset refid="common.files.for.all.jars" /> <fileset dir="${result.dir}"> |