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/03/26 13:11:37 UTC

svn commit: r1581803 - in /tomee/tomee/trunk/tomee/tomee-deb/src/main: groovy/org/apache/tomee/deb/ resources/control/ resources/init/

Author: tveronezi
Date: Wed Mar 26 12:11:37 2014
New Revision: 1581803

URL: http://svn.apache.org/r1581803
Log:
we can now install more than one version of the server in the same box.

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/control/control.template
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postinst.sh
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/prerm.sh
    tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/init/setenv.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=1581803&r1=1581802&r2=1581803&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 Wed Mar 26 12:11:37 2014
@@ -68,6 +68,19 @@ class PackageBuilder {
         return "${md5} ${file.absolutePath.substring(root.absolutePath.length() + 1)}"
     }
 
+    private void writeTemplate(File file, String templatePath, Map variables) {
+        try {
+            file.withWriter { BufferedWriter out ->
+                def template = new GStringTemplateEngine().createTemplate(
+                        this.class.getResource(templatePath)
+                ).make(variables)
+                out.write(template.toString())
+            }
+        } catch (e) {
+            throw new RuntimeException("Error building $templatePath", e)
+        }
+    }
+
     String createControlDir(String dataDirPath) {
         def dataDir = new File(dataDirPath)
         def controlDir = new File(dataDir.parent, 'control')
@@ -81,27 +94,16 @@ class PackageBuilder {
             }
         }
         Double installedSize = dataDir.directorySize() / 1024
-        new File(controlDir, 'control').withWriter { BufferedWriter out ->
-            def template = new GStringTemplateEngine().createTemplate(
-                    this.class.getResource('/control/control.template')
-            ).make([
-                    tomeeVersion: properties.tomeeVersion,
-                    inMB        : installedSize.longValue()
-            ])
-            out.write(template.toString())
-        }
-        new File(controlDir, 'postinst').withWriter { BufferedWriter out ->
-            out.write(this.class.getResource('/control/postinst.sh').text)
-        }
-        new File(controlDir, 'prerm').withWriter { BufferedWriter out ->
-            out.write(this.class.getResource('/control/prerm.sh').text)
-        }
-        new File(controlDir, 'postrm').withWriter { BufferedWriter out ->
-            out.write(this.class.getResource('/control/postrm.sh').text)
-        }
+        writeTemplate(new File(controlDir, 'control'), '/control/control.template', [
+                tomeeVersion: properties.tomeeVersion,
+                inMB        : installedSize.longValue()
+        ])
+        writeTemplate(new File(controlDir, 'postinst'), '/control/postinst.sh', [tomeeVersion: properties.tomeeVersion])
+        writeTemplate(new File(controlDir, 'prerm'), '/control/prerm.sh', [tomeeVersion: properties.tomeeVersion])
+        writeTemplate(new File(controlDir, 'postrm'), '/control/postrm.sh', [tomeeVersion: properties.tomeeVersion])
         new File(controlDir, 'conffiles').withWriter { BufferedWriter out ->
-            new File(dataDir, 'etc/tomee').eachFile {
-                out.writeLine("/etc/tomee/${it.name}")
+            new File(dataDir, "etc/tomee/${properties.tomeeVersion}").eachFile {
+                out.writeLine("/etc/tomee/${properties.tomeeVersion}/${it.name}")
             }
             out.writeLine('/etc/init.d/tomee')
         }
@@ -113,47 +115,44 @@ class PackageBuilder {
         def outputDir = new File(exploded.parent, 'output')
         def dataDir = new File(outputDir, 'data')
         dataDir.mkdirs()
-        def distributionTomeeDir = new File(dataDir, 'usr/share/tomee')
+        def distributionTomeeDir = new File(dataDir, "usr/share/tomee/${properties.tomeeVersion}")
         ant.move(todir: distributionTomeeDir.absolutePath) {
             fileset(dir: explodedPath) {
                 include(name: "**/*")
             }
         }
-        ant.move(todir: new File(dataDir, 'etc/tomee').absolutePath) {
+        ant.move(todir: new File(dataDir, "etc/tomee/${properties.tomeeVersion}").absolutePath) {
             fileset(dir: new File(distributionTomeeDir, 'conf')) {
                 include(name: "**/*")
             }
         }
         def initd = new File(dataDir, 'etc/init.d/')
         initd.mkdirs()
-        new File(initd, 'tomee').withWriter { BufferedWriter out ->
-            out.write(this.class.getResource('/init/tomee.sh').text)
-        }
-        ant.move(todir: new File(dataDir, 'usr/share/doc/tomee/').absolutePath) {
+        writeTemplate(new File(initd, 'tomee'), '/init/tomee.sh', [
+                tomeeVersion: properties.tomeeVersion
+        ])
+        ant.move(todir: new File(dataDir, "usr/share/doc/tomee/${properties.tomeeVersion}/").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)
         }
-        new File(dataDir, 'var/log/tomee').mkdirs()
-        new File(dataDir, 'var/lib/tomee/temp').mkdirs()
-        new File(dataDir, 'var/lib/tomee/work').mkdirs()
-        new File(dataDir, 'var/lib/tomee/webapps').mkdirs()
+        new File(dataDir, "var/log/tomee/${properties.tomeeVersion}").mkdirs()
+        new File(dataDir, "var/lib/tomee/${properties.tomeeVersion}/temp").mkdirs()
+        new File(dataDir, "var/lib/tomee/${properties.tomeeVersion}/work").mkdirs()
+        new File(dataDir, "var/lib/tomee/${properties.tomeeVersion}/webapps").mkdirs()
         new File(distributionTomeeDir, 'conf').delete() // add link from "/usr/lib/tomee/conf" to "/etc/tomee"
         new File(distributionTomeeDir, 'logs').delete() // add link from "/usr/lib/tomee/logs" to "/var/log/tomee"
         new File(distributionTomeeDir, 'temp').delete() // add link from "/usr/lib/tomee/temp" to "/var/lib/tomee/temp"
         new File(distributionTomeeDir, 'work').delete() // add link from "/usr/lib/tomee/work" to "/var/lib/tomee/work"
-        new File(dataDir, 'usr/share/doc/tomee/copyright').withWriter { BufferedWriter out ->
-            def template = new GStringTemplateEngine().createTemplate(
-                    this.class.getResource('/copyright.template')
-            ).make([
-                    formattedDate: new Date().toString()
-            ])
-            out.write(template.toString())
-        }
-        new File(distributionTomeeDir, 'bin/setenv.sh').withWriter { BufferedWriter out ->
-            out.write(this.class.getResource('/init/setenv.sh').text)
-        }
+        writeTemplate(
+                new File(dataDir, "usr/share/doc/tomee/${properties.tomeeVersion}/copyright"),
+                '/copyright.template',
+                [formattedDate: new Date().toString()]
+        )
+        writeTemplate(new File(distributionTomeeDir, 'bin/setenv.sh'), '/init/setenv.sh', [
+                tomeeVersion: properties.tomeeVersion
+        ])
         exploded.delete()
         dataDir.absolutePath
     }

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/control.template
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/control.template?rev=1581803&r1=1581802&r2=1581803&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/control.template (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/control.template Wed Mar 26 12:11:37 2014
@@ -1,4 +1,5 @@
-Package: tomee
+Package: tomee-${tomeeVersion}
+Provides: tomee
 Version: ${tomeeVersion}
 Section: java
 Priority: optional

Modified: tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postinst.sh
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postinst.sh?rev=1581803&r1=1581802&r2=1581803&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postinst.sh (original)
+++ tomee/tomee/trunk/tomee/tomee-deb/src/main/resources/control/postinst.sh Wed Mar 26 12:11:37 2014
@@ -1,17 +1,17 @@
 #!/bin/sh
 
-ln -sf /etc/tomee /usr/share/tomee/conf
-ln -sf /var/log/tomee /usr/share/tomee/logs
-ln -sf /var/lib/tomee/temp /usr/share/tomee/temp
-ln -sf /var/lib/tomee/work /usr/share/tomee/work
-ln -sf /var/lib/tomee/webapps /usr/share/tomee/webapps
+ln -sf /etc/tomee/${tomeeVersion} /usr/share/tomee/${tomeeVersion}/conf
+ln -sf /var/log/tomee/${tomeeVersion} /usr/share/tomee/${tomeeVersion}/logs
+ln -sf /var/lib/tomee/${tomeeVersion}/temp /usr/share/tomee/${tomeeVersion}/temp
+ln -sf /var/lib/tomee/${tomeeVersion}/work /usr/share/tomee/${tomeeVersion}/work
+ln -sf /var/lib/tomee/${tomeeVersion}/webapps /usr/share/tomee/${tomeeVersion}/webapps
 
 groupadd apachetomee
 useradd apachetomee -g apachetomee
 
-chown -R apachetomee:apachetomee /usr/share/tomee
-chown -R apachetomee:apachetomee /var/log/tomee
-chown -R apachetomee:apachetomee /var/lib/tomee
+chown -R apachetomee:apachetomee /usr/share/tomee/${tomeeVersion}
+chown -R apachetomee:apachetomee /var/log/tomee/${tomeeVersion}
+chown -R apachetomee:apachetomee /var/lib/tomee/${tomeeVersion}
 
 update-rc.d tomee defaults
-echo "Reboot your machine or run 'service tomee start' to start the Apache TomEE server"
\ No newline at end of file
+echo "Reboot your machine or run 'service tomee start' to start the Apache TomEE server (version: ${tomeeVersion})"
\ No newline at end of file

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=1581803&r1=1581802&r2=1581803&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 Wed Mar 26 12:11:37 2014
@@ -1,13 +1,13 @@
 #!/bin/sh
 
-CATALINA_HOME=/usr/share/tomee
-su - apachetomee -c "$CATALINA_HOME/bin/shutdown.sh -force"
+CATALINA_HOME=/usr/share/tomee/${tomeeVersion}
+su - apachetomee -c "\$CATALINA_HOME/bin/shutdown.sh -force"
 
-rm -f /usr/share/tomee/conf
-rm -f /usr/share/tomee/logs
-rm -f /usr/share/tomee/temp
-rm -f /usr/share/tomee/work
-rm -f /usr/share/tomee/webapps
+rm -f /usr/share/tomee/${tomeeVersion}/conf
+rm -f /usr/share/tomee/${tomeeVersion}/logs
+rm -f /usr/share/tomee/${tomeeVersion}/temp
+rm -f /usr/share/tomee/${tomeeVersion}/work
+rm -f /usr/share/tomee/${tomeeVersion}/webapps
 
-rm -Rf /var/lib/tomee/*
-rm -Rf /var/log/tomee/*
+rm -Rf /var/lib/tomee/${tomeeVersion}/*
+rm -Rf /var/log/tomee/${tomeeVersion}/*

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=1581803&r1=1581802&r2=1581803&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 Wed Mar 26 12:11:37 2014
@@ -1,2 +1,2 @@
 #!/bin/sh
-export CATALINA_PID=/usr/share/tomee/temp/tomee.pid
\ No newline at end of file
+export CATALINA_PID=/usr/share/tomee/${tomeeVersion}/temp/tomee.pid
\ No newline at end of file

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=1581803&r1=1581802&r2=1581803&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 Wed Mar 26 12:11:37 2014
@@ -1,28 +1,28 @@
 #!/bin/bash
 ### BEGIN INIT INFO
 # Provides:          tomee
-# Short-Description: Apache TomEE
+# Short-Description: Apache TomEE ${tomeeVersion}
 # Description:       Manages the Apache TomEE server.
 ### END INIT INFO
-CATALINA_HOME=/usr/share/tomee
+CATALINA_HOME=/usr/share/tomee/${tomeeVersion}
 TOMCAT_USER=apachetomee
 
 RETVAL=0
 start(){
-   echo "Starting TomEE: "
-   su - $TOMCAT_USER -c "$CATALINA_HOME/bin/catalina.sh start"
-   RETVAL=$?
-   return $RETVAL
+   echo "Starting TomEE ${properties.tomeeVersion}: "
+   su - \$TOMCAT_USER -c "\$CATALINA_HOME/bin/catalina.sh start"
+   RETVAL=\$?
+   return \$RETVAL
 }
 
 stop(){
-   echo "Shutting down TomEE: "
-   su - $TOMCAT_USER -c "$CATALINA_HOME/bin/shutdown.sh -force"
-   RETVAL=$?
-   return $RETVAL
+   echo "Shutting down TomEE ${properties.tomeeVersion}: "
+   su - \$TOMCAT_USER -c "\$CATALINA_HOME/bin/shutdown.sh -force"
+   RETVAL=\$?
+   return \$RETVAL
 }
 
-case "$1" in
+case "\$1" in
    start)
       start
       ;;
@@ -34,8 +34,8 @@ case "$1" in
       start
       ;;
    *)
-      echo $"Usage: $0 {start|stop|restart}"
+      echo \$"Usage: \$0 {start|stop|restart}"
       exit 1
       ;;
 esac
-exit $?
\ No newline at end of file
+exit \$?
\ No newline at end of file