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