You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2011/01/13 09:03:52 UTC
svn commit: r1058450 -
/openejb/trunk/openejb3/assembly/itest-runner/src/test/groovy/commands/SetupCommand.groovy
Author: jlmonteiro
Date: Thu Jan 13 08:03:52 2011
New Revision: 1058450
URL: http://svn.apache.org/viewvc?rev=1058450&view=rev
Log:
Fix some issues under Cygwin and Windows at least.
Modified:
openejb/trunk/openejb3/assembly/itest-runner/src/test/groovy/commands/SetupCommand.groovy
Modified: openejb/trunk/openejb3/assembly/itest-runner/src/test/groovy/commands/SetupCommand.groovy
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/itest-runner/src/test/groovy/commands/SetupCommand.groovy?rev=1058450&r1=1058449&r2=1058450&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/itest-runner/src/test/groovy/commands/SetupCommand.groovy (original)
+++ openejb/trunk/openejb3/assembly/itest-runner/src/test/groovy/commands/SetupCommand.groovy Thu Jan 13 08:03:52 2011
@@ -26,177 +26,185 @@ import java.io.File
import org.apache.openejb.tomcat.installer.Installer;
import org.apache.openejb.tomcat.installer.Paths;
-class SetupCommand
-{
- def log
- def ant
- def project
-
- def SetupCommand(source) {
- this.log = source.log
- this.project = source.project
- this.ant = new AntBuilder()
- }
-
- def get(name) {
- assert name != null
-
- def value = project.properties.getProperty(name)
-
- log.debug("Get property: $name=$value")
-
- return value
- }
-
- def get(name, defaultValue) {
- def value = get(name)
-
- if (value == null) {
- value = defaultValue
- }
-
- return value
- }
-
- def getBoolean(name, defaultValue) {
- def value = get(name, defaultValue)
- return Boolean.valueOf("$value")
- }
-
- def require(name) {
- assert name != null
-
- log.debug("Require property: $name")
-
- if (!project.properties.containsKey(name) && !System.properties.containsKey(name)) {
- throw new Exception("Missing required property: $name")
- }
-
- def value = get(name)
-
- if (value == 'null') {
- throw new Exception("Missing required property: $name (resolved to null)")
- }
-
- return value
- }
-
- def isWindows() {
- def os = System.getProperty("os.name").toLowerCase()
- return (os.indexOf("win") >= 0)
- }
-
- def execute() {
- execute("6.0.29")
- execute("7.0.5")
- }
-
- def execute(tomcatVersion) {
- def localRepo = require('localRepository')
- def openejbHome = require('openejb.home')
- def extension = ".sh"
- def stopPort = get('tomcat.port.stop', '18005')
- def httpPort = get('tomcat.port.http', '18080')
- def ajpPort = get('tomcat.port.ajp', '18009')
-
- if (isWindows()) {
- extension = ".bat"
- }
-
- if (getBoolean('skipTests', false)) {
- log.info('Skipping itests.')
- return
- }
-
- def source = ""
- if (tomcatVersion != "testonly") {
- if (tomcatVersion =~ /^7\./) {
- source = "http://archive.apache.org/dist/tomcat/tomcat-7/v${tomcatVersion}-beta/bin/apache-tomcat-${tomcatVersion}.zip"
- }
-
- if (tomcatVersion =~ /^6\./) {
- source = "http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcatVersion}/bin/apache-tomcat-${tomcatVersion}.zip"
- }
-
- if (tomcatVersion =~ /^5\.5/) {
- source = "http://archive.apache.org/dist/tomcat/tomcat-5/v${tomcatVersion}/bin/apache-tomcat-${tomcatVersion}.zip"
- }
-
- def dest = "${project.build.directory}/apache-tomcat-${tomcatVersion}.zip"
- ant.get(src: source, dest: dest)
-
- ant.unzip(src: dest, dest: "${project.build.directory}")
-
- ant.echo("Deploying the openejb war")
- ant.unzip(src: "${localRepo}/org/apache/openejb/openejb-tomcat-webapp/${project.version}/openejb-tomcat-webapp-${project.version}.war",
- dest: "${project.build.directory}/apache-tomcat-${tomcatVersion}/webapps/openejb")
-
-
- def catalinaHome = "${project.build.directory}/apache-tomcat-${tomcatVersion}"
- ant.echo("Installing to: ${catalinaHome}")
-
- System.setProperty("catalina.home", "${catalinaHome}")
- System.setProperty("catalina.base", "${catalinaHome}")
- Paths paths = new Paths(new File("${catalinaHome}/webapps/openejb"))
- Installer installer = new Installer(paths, true)
- installer.installAll()
-
- ant.echo("Assigning execute privileges to scripts in Tomcat bin directory")
- ant.chmod(dir: "${project.build.directory}/apache-tomcat-${tomcatVersion}/bin", perm: "u+x", includes: "**/*.sh")
-
- ant.echo("Deploying the itests war")
- ant.unzip(src: "${localRepo}/org/apache/openejb/openejb-itests-web/${project.version}/openejb-itests-web-${project.version}.war",
- dest: "${project.build.directory}/apache-tomcat-${tomcatVersion}/webapps/itests")
-
- def alerts = new Alerts()
- def file = new File("${project.build.directory}/apache-tomcat-${tomcatVersion}/conf/server.xml")
- def fileContent = Installers.readAll(file, alerts)
- fileContent = fileContent.replaceAll("Server port=\"8005\"", "Server port=\"" + stopPort + "\"");
- fileContent = fileContent.replaceAll("Connector port=\"8080\"", "Connector port=\"" + httpPort + "\"");
- fileContent = fileContent.replaceAll("Connector port=\"8009\"", "Connector port=\"" + ajpPort + "\"");
- Installers.writeAll(file, fileContent, alerts)
-
- ant.echo("Starting Tomcat...")
- ant.exec(executable: "${project.build.directory}/apache-tomcat-${tomcatVersion}/bin/startup${extension}") {
- //env(key: "JPDA_SUSPEND", value: "y")
- //arg(line: "jpda start")
- arg(line: "start")
- }
-
- ant.waitfor(maxwait: 1, maxwaitunit: "minute") {
- ant.and() {
- ant.socket(server: "localhost", port: httpPort)
- ant.socket(server: "localhost", port: stopPort)
- ant.socket(server: "localhost", port: ajpPort)
- }
- }
-
- ant.echo("Tomcat started. Running itests...")
- }
-
- ant.java(jar: "${localRepo}/org/apache/openejb/openejb-itests-standalone-client/${project.version}/openejb-itests-standalone-client-${project.version}.jar", fork: "yes") {
- sysproperty(key: "openejb.home", value: "${openejbHome}")
- sysproperty(key: "openejb.server.uri", value: "http://127.0.0.1:" + httpPort + "/openejb/ejb")
-
- //sysproperty(key:"DEBUG", value:"true")
- //jvmarg(value:"-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888")
- arg(value: "tomcat")
- }
-
- ant.echo("Tomcat itests complete, stopping Tomcat")
- ant.exec(executable: "${project.build.directory}/apache-tomcat-${tomcatVersion}/bin/shutdown${extension}")
- ant.waitfor(maxwait: 1, maxwaitunit: "minute") {
- ant.not() {
- ant.or() {
- ant.socket(server: "localhost", port: httpPort)
- ant.socket(server: "localhost", port: stopPort)
- ant.socket(server: "localhost", port: ajpPort)
- ant.socket(server: "localhost", port: "61616")
- }
- }
- }
-
- ant.echo("Tomcat stopped, itest run complete")
+class SetupCommand {
+ def log
+ def ant
+ def project
+
+ def SetupCommand(source) {
+ this.log = source.log
+ this.project = source.project
+ this.ant = new AntBuilder()
+ }
+
+ def get(name) {
+ assert name != null
+
+ def value = project.properties.getProperty(name)
+
+ log.debug("Get property: $name=$value")
+
+ return value
+ }
+
+ def get(name, defaultValue) {
+ def value = get(name)
+
+ if (value == null) {
+ value = defaultValue
+ }
+
+ return value
+ }
+
+ def getBoolean(name, defaultValue) {
+ def value = get(name, defaultValue)
+ return Boolean.valueOf("$value")
+ }
+
+ def require(name) {
+ assert name != null
+
+ log.debug("Require property: $name")
+
+ if (!project.properties.containsKey(name) && !System.properties.containsKey(name)) {
+ throw new Exception("Missing required property: $name")
+ }
+
+ def value = get(name)
+
+ if (value == 'null') {
+ throw new Exception("Missing required property: $name (resolved to null)")
+ }
+
+ return value
+ }
+
+ def isWindows() {
+ def os = System.getProperty("os.name").toLowerCase()
+ return (os.indexOf("win") >= 0)
+ }
+
+ def execute() {
+ execute("6.0.29")
+ execute("7.0.5")
+ }
+
+ def execute(tomcatVersion) {
+ def localRepo = require('localRepository')
+ def openejbHome = require('openejb.home')
+ def extension = ".sh"
+ def stopPort = get('tomcat.port.stop', '18005')
+ def httpPort = get('tomcat.port.http', '18080')
+ def ajpPort = get('tomcat.port.ajp', '18009')
+
+ if (isWindows()) {
+ extension = ".bat"
+ }
+
+ if (getBoolean('skipTests', false)) {
+ log.info('Skipping itests.')
+ return
+ }
+
+ def source = ""
+ def dest = "${project.build.directory}/apache-tomcat-${tomcatVersion}.zip"
+ def catalinaHome = "${project.build.directory}/apache-tomcat-${tomcatVersion}"
+
+ if (tomcatVersion != "testonly") {
+ if (tomcatVersion =~ /^7\./) {
+ source = "http://archive.apache.org/dist/tomcat/tomcat-7/v${tomcatVersion}-beta/bin/apache-tomcat-${tomcatVersion}.zip"
+ }
+
+ if (tomcatVersion =~ /^6\./) {
+ source = "http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcatVersion}/bin/apache-tomcat-${tomcatVersion}.zip"
+ }
+
+ if (tomcatVersion =~ /^5\.5/) {
+ source = "http://archive.apache.org/dist/tomcat/tomcat-5/v${tomcatVersion}/bin/apache-tomcat-${tomcatVersion}.zip"
+ }
+
+ ant.get(src: source, dest: dest)
+
+ ant.unzip(src: dest, dest: "${project.build.directory}")
+
+ ant.echo("Deploying the openejb war")
+ ant.unzip(src: "${localRepo}/org/apache/openejb/openejb-tomcat-webapp/${project.version}/openejb-tomcat-webapp-${project.version}.war",
+ dest: "${project.build.directory}/apache-tomcat-${tomcatVersion}/webapps/openejb")
+
+ ant.echo("Installing to: ${catalinaHome}")
+
+ System.setProperty("catalina.home", "${catalinaHome}")
+ System.setProperty("catalina.base", "${catalinaHome}")
+ Paths paths = new Paths(new File("${catalinaHome}/webapps/openejb"))
+ Installer installer = new Installer(paths, true)
+ installer.installAll()
+
+ ant.echo("Assigning execute privileges to scripts in Tomcat bin directory")
+ ant.chmod(dir: "${project.build.directory}/apache-tomcat-${tomcatVersion}/bin", perm: "u+x", includes: "**/*.sh")
+
+ ant.echo("Deploying the itests war")
+ ant.unzip(src: "${localRepo}/org/apache/openejb/openejb-itests-web/${project.version}/openejb-itests-web-${project.version}.war",
+ dest: "${project.build.directory}/apache-tomcat-${tomcatVersion}/webapps/itests")
+
+ def alerts = new Alerts()
+ def file = new File("${project.build.directory}/apache-tomcat-${tomcatVersion}/conf/server.xml")
+ def fileContent = Installers.readAll(file, alerts)
+ fileContent = fileContent.replaceAll("Server port=\"8005\"", "Server port=\"" + stopPort + "\"");
+ fileContent = fileContent.replaceAll("Connector port=\"8080\"", "Connector port=\"" + httpPort + "\"");
+ fileContent = fileContent.replaceAll("Connector port=\"8009\"", "Connector port=\"" + ajpPort + "\"");
+ Installers.writeAll(file, fileContent, alerts)
+
+ ant.exec(executable: "${project.build.directory}/apache-tomcat-${tomcatVersion}/bin/startup${extension}",
+ spawn: true) {
+ env(key: "CATALINA_HOME", value: "${catalinaHome}")
+ env(key: "CATALINA_BASE", value: "${catalinaHome}")
+ //env(key: "JPDA_SUSPEND", value: "y")
+ //arg(line: "jpda start")
+ arg(line: "start")
+ }
+
+ ant.waitfor(maxwait: 1, maxwaitunit: "minute") {
+ ant.and() {
+ ant.socket(server: "localhost", port: httpPort)
+ ant.socket(server: "localhost", port: stopPort)
+ ant.socket(server: "localhost", port: ajpPort)
+ }
+ }
+
+ ant.echo("Tomcat started. Running itests...")
+ }
+
+ ant.java(jar: "${localRepo}/org/apache/openejb/openejb-itests-standalone-client/${project.version}/openejb-itests-standalone-client-${project.version}.jar", fork: "yes") {
+ sysproperty(key: "openejb.home", value: "${openejbHome}")
+ sysproperty(key: "openejb.server.uri", value: "http://127.0.0.1:" + httpPort + "/openejb/ejb")
+
+ //sysproperty(key:"DEBUG", value:"true")
+ //jvmarg(value:"-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888")
+ arg(value: "tomcat")
+ }
+
+ if (tomcatVersion != "testonly") {
+ ant.echo("Tomcat itests complete, stopping Tomcat...")
+ ant.exec(executable: "${project.build.directory}/apache-tomcat-${tomcatVersion}/bin/shutdown${extension}",
+ spawn: true) {
+ env(key: "CATALINA_HOME", value: "${catalinaHome}")
+ env(key: "CATALINA_BASE", value: "${catalinaHome}")
+ }
+
+ ant.waitfor(maxwait: 1, maxwaitunit: "minute") {
+ ant.not() {
+ ant.or() {
+ ant.socket(server: "localhost", port: httpPort)
+ ant.socket(server: "localhost", port: stopPort)
+ ant.socket(server: "localhost", port: ajpPort)
+ ant.socket(server: "localhost", port: "61616")
+ }
+ }
+ }
+ ant.echo("Tomcat stopped")
}
+ ant.echo("itest run complete")
+ }
}