You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2008/06/17 21:11:33 UTC
svn commit: r668799 [2/2] - in /geronimo/server/branches/2.1: testsuite/
testsuite/commands-testsuite/ testsuite/commands-testsuite/deploy/
testsuite/commands-testsuite/deploy/src/
testsuite/commands-testsuite/deploy/src/test/ testsuite/commands-testsu...
Added: geronimo/server/branches/2.1/testsupport/testsupport-commands/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/testsupport/testsupport-commands/pom.xml?rev=668799&view=auto
==============================================================================
--- geronimo/server/branches/2.1/testsupport/testsupport-commands/pom.xml (added)
+++ geronimo/server/branches/2.1/testsupport/testsupport-commands/pom.xml Tue Jun 17 12:11:32 2008
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!-- $Rev: 649297 $ $Date: 2008-04-17 17:54:06 -0400 (Thu, 17 Apr 2008) $ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.geronimo.testsupport</groupId>
+ <artifactId>testsupport</artifactId>
+ <version>2.1.2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>testsupport-commands</artifactId>
+ <name>Geronimo Test Support :: Commands</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.testsupport</groupId>
+ <artifactId>testsupport-common</artifactId>
+ <version>${version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.buildsupport</groupId>
+ <artifactId>geronimo-maven-plugin</artifactId>
+ <version>${version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
Propchange: geronimo/server/branches/2.1/testsupport/testsupport-commands/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/server/branches/2.1/testsupport/testsupport-commands/src/main/java/org/apache/geronimo/testsupport/commands/CommandTestSupport.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/testsupport/testsupport-commands/src/main/java/org/apache/geronimo/testsupport/commands/CommandTestSupport.java?rev=668799&view=auto
==============================================================================
--- geronimo/server/branches/2.1/testsupport/testsupport-commands/src/main/java/org/apache/geronimo/testsupport/commands/CommandTestSupport.java (added)
+++ geronimo/server/branches/2.1/testsupport/testsupport-commands/src/main/java/org/apache/geronimo/testsupport/commands/CommandTestSupport.java Tue Jun 17 12:11:32 2008
@@ -0,0 +1,132 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.geronimo.testsupport.commands;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.geronimo.mavenplugins.geronimo.ServerProxy;
+import org.apache.tools.ant.taskdefs.Execute;
+import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
+import org.apache.tools.ant.taskdefs.ExecuteWatchdog;
+import org.apache.tools.ant.taskdefs.PumpStreamHandler;
+import org.apache.tools.ant.taskdefs.condition.Os;
+
+public class CommandTestSupport {
+
+ public static final String GSH = "gsh";
+ public static final String DEPLOY = "deploy";
+
+ protected static final long timeout = 30000;
+ protected static String geronimoHome;
+
+ static {
+ geronimoHome = getGeronimoHome();
+ }
+
+ private static String getGeronimoHome() {
+ ServerProxy server = null;
+ try {
+ server = new ServerProxy("localhost", 1099, "system", "manager");
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to setup ServerProxy", e);
+ }
+
+ String home = server.getGeronimoHome();
+ Throwable exception = server.getLastError();
+
+ server.closeConnection();
+
+ if (exception != null) {
+ throw new RuntimeException("Failed to get Geronimo home", exception);
+ } else {
+ return home;
+ }
+ }
+
+ public CommandTestSupport() {
+ }
+
+ public void execute(String command, String[] args, InputStream in, OutputStream out) throws Exception {
+ execute(command, (args == null) ? null : Arrays.asList(args), in, out);
+ }
+
+ public void execute(String command, List<String> args, InputStream in, OutputStream out) throws Exception {
+ List<String> cmdLine = new ArrayList<String>();
+ if (isWindows()) {
+ cmdLine.add("cmd.exe");
+ cmdLine.add("/c");
+ }
+ cmdLine.add(resolveCommandForOS(command));
+ // add command-specific arguments
+ cmdLine.addAll(getCommandArguments(command));
+ // add user arguments
+ if (args != null) {
+ cmdLine.addAll(args);
+ }
+
+ ExecuteWatchdog watchdog = new ExecuteWatchdog( timeout );
+ ExecuteStreamHandler streamHandler = new PumpStreamHandler( out, out, in );
+ Execute exec = new Execute( streamHandler, watchdog );
+ exec.setCommandline( cmdLine.toArray(new String[] {}) );
+ List<String> env = getCommandEnvironment(command);
+ if (!env.isEmpty()) {
+ exec.setEnvironment(env.toArray(new String[] {}) );
+ }
+ exec.execute();
+ }
+
+ protected List<String> getCommandArguments(String command) {
+ if (GSH.equals(command)) {
+ return Arrays.asList("-T", "false");
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ protected List<String> getCommandEnvironment(String command) {
+ if (DEPLOY.equals(command)) {
+ //this makes the output can be captured in Linux
+ return Arrays.asList("JAVA_OPTS=-Djline.terminal=jline.UnsupportedTerminal");
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ protected String resolveCommandForOS(String command) {
+ if (isWindows()) {
+ return geronimoHome + "/bin/" + command + ".bat";
+ } else {
+ if (GSH.equals(command)) {
+ return geronimoHome + "/bin/" + command;
+ } else {
+ return geronimoHome + "/bin/" + command + ".sh";
+ }
+ }
+ }
+
+ public boolean isWindows() {
+ return Os.isFamily("windows");
+ }
+
+}
Propchange: geronimo/server/branches/2.1/testsupport/testsupport-commands/src/main/java/org/apache/geronimo/testsupport/commands/CommandTestSupport.java
------------------------------------------------------------------------------
svn:eol-style = native