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/25 20:57:56 UTC

svn commit: r1590101 - in /tomee/tomee/trunk/tomee/tomee-deb/src/main: groovy/org/apache/tomee/deb/PackageBuilder.groovy resources/init/setenv.sh resources/init/tomee-instance.sh resources/init/tomee.sh

Author: tveronezi
Date: Fri Apr 25 18:57:55 2014
New Revision: 1590101

URL: http://svn.apache.org/r1590101
Log:
-masking codeless jars [lintian violation]
-adding "-e" option in all bash scripts
-adding build date to the version number of SNAPSHOTs

Yay! No more lint violations!

Modified:
    tomee/tomee/trunk/tomee/tomee-deb/src/main/groovy/org/apache/tomee/deb/PackageBuilder.groovy
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/setenv.sh
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee-instance.sh
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee.sh

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=1590101&r1=1590100&r2=1590101&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 Fri Apr 25 18:57:55 2014
@@ -21,6 +21,7 @@ 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.io.FileType
 import groovy.text.GStringTemplateEngine
 import org.apache.commons.codec.digest.DigestUtils
 import org.apache.commons.compress.archivers.ar.ArArchiveEntry
@@ -28,6 +29,7 @@ import org.apache.commons.compress.archi
 import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream
 import org.apache.commons.compress.compressors.gzip.GzipParameters
 
+import java.text.SimpleDateFormat
 import java.util.concurrent.TimeUnit
 import java.util.zip.Deflater
 
@@ -38,6 +40,14 @@ class PackageBuilder {
     def ant = new AntBuilder()
     def properties
 
+    private String executionDate = ''
+
+    PackageBuilder() {
+        def dft = new SimpleDateFormat('yyyy-MM-dd-HH-mm-ss')
+        dft.timeZone = TimeZone.getTimeZone('GMT-0')
+        executionDate = dft.format(new Date())
+    }
+
     def getJiraData = {
         def restClient = null
         try {
@@ -189,9 +199,13 @@ class PackageBuilder {
             }
         }
         Double installedSize = dataDir.directorySize() / 1024
+        String version = properties.tomeeVersion
+        if (version.toLowerCase().endsWith('-snapshot')) {
+            version += "-${executionDate}"
+        }
         writeTemplate(new File(controlDir, 'control'), '/control/control.template', [
                 classifier  : classifier,
-                tomeeVersion: properties.tomeeVersion,
+                tomeeVersion: version,
                 inMB        : installedSize.longValue()
         ])
         def priority
@@ -308,6 +322,43 @@ class PackageBuilder {
         dataDir.absolutePath
     }
 
+    void maskCodelessJars(String classifier, String dataDirPath) {
+        def jars = []
+        new File(dataDirPath).eachFileRecurse(FileType.FILES) {
+            if (it.name.endsWith('.jar')) {
+                jars << it
+            }
+        }
+        def codelessJars = jars.findAll { jar ->
+            def explodedJar = new File(properties.workDir as String, "unjar/${classifier}/${jar.name}")
+            ant.unjar(src: jar, dest: explodedJar)
+            def dotClassFiles = []
+            explodedJar.eachFileRecurse(FileType.FILES) {
+                if (it.name.endsWith('.class')) {
+                    dotClassFiles << it
+                }
+            }
+            explodedJar.listFiles(
+                    { dir, file -> file ==~ /.*?\.class/ } as FilenameFilter
+            )
+            def result = dotClassFiles.size() == 0
+            if (!result) {
+                ant.delete(dir: explodedJar)
+            }
+            result
+        }
+        codelessJars.each { jar ->
+            ant.echo(message: "Masking codeless jar: ${jar.absolutePath}")
+            def explodedJar = new File(properties.workDir as String, "unjar/${classifier}/${jar.name}")
+            jar.delete()
+            ant.zip(destfile: jar.absolutePath) {
+                fileset(dir: explodedJar.absolutePath) {
+                    exclude(name: '**/META-INF/MANIFEST.MF')
+                }
+            }
+        }
+    }
+
     private File createTarGz(String classifier, String path) {
         def dataDir = new File(path)
         def tarFile = new File(dataDir.parent, "${dataDir.name}.tar")
@@ -369,6 +420,7 @@ class PackageBuilder {
         def filePath = new File(properties.workDir as String, fileName).absolutePath
         def explodedPath = unzip(classifier, filePath)
         def dataDir = createDataDir(classifier, explodedPath)
+        maskCodelessJars(classifier, dataDir)
         def controlDir = createControlDir(classifier, dataDir)
         def deb = compressFiles(classifier, controlDir, dataDir)
         deb.renameTo(new File(properties.buildDir as String, deb.name))

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/setenv.sh
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/setenv.sh?rev=1590101&r1=1590100&r2=1590101&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/setenv.sh (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/setenv.sh Fri Apr 25 18:57:55 2014
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/sh -e
 
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee-instance.sh
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee-instance.sh?rev=1590101&r1=1590100&r2=1590101&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee-instance.sh (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee-instance.sh Fri Apr 25 18:57:55 2014
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
 
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee.sh
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee.sh?rev=1590101&r1=1590100&r2=1590101&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee.sh (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/tomee.sh Fri Apr 25 18:57:55 2014
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
 
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with