You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2014/04/10 14:12:52 UTC

svn commit: r1586278 - in /tomee/tomee/trunk/tomee/tomee-deb: pom.xml src/main/groovy/org/apache/tomee/deb/PackageBuilder.groovy src/main/resources/changelog.template src/main/resources/control/postrm.sh src/main/resources/control/prerm.sh

Author: tveronezi
Date: Thu Apr 10 12:12:52 2014
New Revision: 1586278

URL: http://svn.apache.org/r1586278
Log:
* creating changelog file
* update-alternatives should go to prerm

Added:
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/changelog.template
Modified:
    tomee/tomee/trunk/tomee/tomee-deb/pom.xml
    tomee/tomee/trunk/tomee/tomee-deb/src/main/groovy/org/apache/tomee/deb/PackageBuilder.groovy
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postrm.sh
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/prerm.sh

Modified: tomee/tomee/trunk/tomee/tomee-deb/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/pom.xml?rev=1586278&r1=1586277&r2=1586278&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/pom.xml (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/pom.xml Thu Apr 10 12:12:52 2014
@@ -41,6 +41,19 @@
                 <updatePolicy>daily</updatePolicy>
             </snapshots>
         </repository>
+        <repository>
+            <id>atlassian-public</id>
+            <url>https://m2proxy.atlassian.com/repository/public</url>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>daily</updatePolicy>
+                <checksumPolicy>warn</checksumPolicy>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+                <checksumPolicy>warn</checksumPolicy>
+            </releases>
+        </repository>
     </repositories>
     <dependencies>
         <dependency>
@@ -115,6 +128,11 @@
             <artifactId>openejb-hsql</artifactId>
             <version>${openejb.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.atlassian.jira</groupId>
+            <artifactId>jira-rest-java-client-core</artifactId>
+            <version>2.0.0-m26</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/groovy/org/apache/tomee/deb/PackageBuilder.groovy
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/groovy/org/apache/tomee/deb/PackageBuilder.groovy?rev=1586278&r1=1586277&r2=1586278&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/groovy/org/apache/tomee/deb/PackageBuilder.groovy (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/groovy/org/apache/tomee/deb/PackageBuilder.groovy Thu Apr 10 12:12:52 2014
@@ -18,15 +18,81 @@
 
 package org.apache.tomee.deb
 
+import com.atlassian.jira.rest.client.api.domain.Issue
+import com.atlassian.jira.rest.client.auth.AnonymousAuthenticationHandler
+import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory
 import groovy.text.GStringTemplateEngine
 import org.apache.commons.codec.digest.DigestUtils
 import org.apache.commons.compress.archivers.ar.ArArchiveEntry
 import org.apache.commons.compress.archivers.ar.ArArchiveOutputStream
 
+import java.util.concurrent.TimeUnit
+
 class PackageBuilder {
+
+    static final JIRA_SRV = 'https://issues.apache.org/jira'
+
     def ant = new AntBuilder()
     def properties
 
+    def buildChangelogContent = { String classifier ->
+        def factory = new AsynchronousJiraRestClientFactory()
+        def restClient = factory.create(new URI(JIRA_SRV), new AnonymousAuthenticationHandler())
+        def results = []
+        try {
+            String version = properties.tomeeVersion
+            version = version.replaceAll('-SNAPSHOT$', '')
+            def query = "project = TOMEE AND issuetype in standardIssueTypes() AND affectedVersion in (${version}) AND status in (Resolved, Closed)"
+            def searchResult = restClient.searchClient.searchJql(query).get(1, TimeUnit.MINUTES)
+            def templateFile = this.class.getResource('/changelog.template')
+            searchResult.issues.each { Issue issue ->
+                def urgency
+                switch (issue.priority.name) {
+                    case 'Blocker':
+                        urgency = 'critical'
+                        break
+                    case 'Critical':
+                        urgency = 'emergency'
+                        break
+                    case 'Major':
+                        urgency = 'high'
+                        break
+                    case 'Minor':
+                        urgency = 'medium'
+                        break
+                    default: //Trivial
+                        urgency = 'low'
+                        break
+                }
+                def maintainer = issue.assignee ?: issue.reporter
+                def template = new GStringTemplateEngine().createTemplate(templateFile).make([
+                        classifier          : classifier,
+                        tomeeVersion        : version,
+                        urgency             : urgency,
+                        issueTitle          : issue.summary,
+                        issueID             : issue.key,
+                        issueMaintainer     : maintainer.name,
+                        issueMaintainerEmail: maintainer.emailAddress,
+                        issueFixDate        : issue.updateDate.toString('EEE, d MMM yyyy HH:mm:ss Z')
+                ])
+                results << template.toString()
+            }
+        } finally {
+            restClient?.close()
+        }
+        results
+    }.memoize() // execute it just once per instance
+
+    void buildChangelog(File docDir, String classifier) {
+        def issues = buildChangelogContent(classifier)
+        new File(docDir, 'changelog.txt').withWriter { BufferedWriter writer ->
+            issues.each { String issue ->
+                writer.write(issue)
+                writer.writeLine('')
+            }
+        }
+    }
+
     String unzip(String classifier, String tarPath) {
         def outputDir = new File(new File(tarPath).parent, "exploded-${classifier}")
         ant.delete(includeemptydirs: true, dir: outputDir.absolutePath) // remove old files
@@ -123,12 +189,12 @@ class PackageBuilder {
             }
             out.writeLine("/etc/init.d/tomee-${classifier}")
             new File(dataDir, "var/lib/tomee-${classifier}-${properties.tomeeVersion}/conf").eachFile {
-                if(it.isFile()) {
+                if (it.isFile()) {
                     out.writeLine("/var/lib/tomee-${classifier}-${properties.tomeeVersion}/conf/${it.name}")
                 }
             }
             new File(dataDir, "var/lib/tomee-${classifier}-${properties.tomeeVersion}/conf/conf.d").eachFile {
-                if(it.isFile()) {
+                if (it.isFile()) {
                     out.writeLine("/var/lib/tomee-${classifier}-${properties.tomeeVersion}/conf/conf.d/${it.name}")
                 }
             }
@@ -159,12 +225,14 @@ class PackageBuilder {
                 classifier  : classifier,
                 tomeeVersion: properties.tomeeVersion
         ])
-        ant.move(todir: new File(dataDir, "usr/share/doc/tomee-${classifier}-${properties.tomeeVersion}/").absolutePath) {
+        def docDir = new File(dataDir, "usr/share/doc/tomee-${classifier}-${properties.tomeeVersion}/")
+        ant.move(todir: docDir.absolutePath) {
             fileset(file: new File(distributionTomeeDir, 'LICENSE').absolutePath)
             fileset(file: new File(distributionTomeeDir, 'NOTICE').absolutePath)
             fileset(file: new File(distributionTomeeDir, 'RELEASE-NOTES').absolutePath)
             fileset(file: new File(distributionTomeeDir, 'RUNNING.txt').absolutePath)
         }
+        buildChangelog(docDir, classifier)
         new File(dataDir, "var/log/tomee-${classifier}-${properties.tomeeVersion}").mkdirs()
         def baseConfDir = new File(dataDir, "var/lib/tomee-${classifier}-${properties.tomeeVersion}/conf")
         baseConfDir.mkdirs()

Added: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/changelog.template
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/changelog.template?rev=1586278&view=auto
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/changelog.template (added)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/changelog.template Thu Apr 10 12:12:52 2014
@@ -0,0 +1,5 @@
+tomee-${classifier} (${tomeeVersion}) stable; urgency=${urgency}
+
+  * ${issueTitle}
+    https://issues.apache.org/jira/browse/${issueID}
+  -- ${issueMaintainer} <${issueMaintainerEmail}>  ${issueFixDate}

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postrm.sh
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postrm.sh?rev=1586278&r1=1586277&r2=1586278&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postrm.sh (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postrm.sh Thu Apr 10 12:12:52 2014
@@ -1,4 +1,3 @@
 #!/bin/sh -e
 
-update-alternatives --remove tomee /etc/init.d/tomee-${classifier}
 update-rc.d -f tomee-${classifier} remove

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/prerm.sh
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/prerm.sh?rev=1586278&r1=1586277&r2=1586278&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/prerm.sh (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/prerm.sh Thu Apr 10 12:12:52 2014
@@ -2,6 +2,9 @@
 
 service tomee-${classifier} stop || true
 
+# removing alternative
+update-alternatives --remove tomee /etc/init.d/tomee-${classifier}
+
 # removing link to /var/logs
 rm -f /var/lib/tomee-${classifier}-${tomeeVersion}/logs