From a980d618a85e3cd6931c2c0cd09946f542e342e0 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Fri, 18 May 2007 13:50:59 +0000 Subject: QPID-401 Integrated python tests with maven tested on windows CMD.exe and linux FC5 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2@539470 13f79535-47bb-0310-9956-ffa450edef68 --- java/broker/pom.xml | 47 ++++++++ java/broker/python-test.xml | 32 +++++ .../src/main/java/org/apache/qpid/server/Main.java | 8 +- .../apache/qpid/server/RunBrokerWithCommand.java | 130 +++++++++++++++++++++ 4 files changed, 215 insertions(+), 2 deletions(-) create mode 100755 java/broker/python-test.xml create mode 100644 java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java (limited to 'java') diff --git a/java/broker/pom.xml b/java/broker/pom.xml index 2cf8a563f0..dbdb9daba6 100644 --- a/java/broker/pom.xml +++ b/java/broker/pom.xml @@ -120,6 +120,7 @@ + org.apache.maven.plugins maven-jar-plugin @@ -145,6 +146,52 @@ + + + + org.apache.maven.plugins + maven-antrun-plugin + ${antrun.version} + + + ant + ant-nodeps + 1.6.5 + + + + + + python_test + test + + + + + + + + + + + + + + + + + run + + + + + + + + diff --git a/java/broker/python-test.xml b/java/broker/python-test.xml new file mode 100755 index 0000000000..c539013061 --- /dev/null +++ b/java/broker/python-test.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/broker/src/main/java/org/apache/qpid/server/Main.java b/java/broker/src/main/java/org/apache/qpid/server/Main.java index c345b43aeb..5b0645ff3d 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/Main.java +++ b/java/broker/src/main/java/org/apache/qpid/server/Main.java @@ -24,6 +24,7 @@ import java.io.File; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.BindException; import java.util.Collection; import java.util.List; import java.util.StringTokenizer; @@ -160,7 +161,8 @@ public class Main } else if (commandLine.hasOption("v")) { - String ver = "Qpid 0.9.0.0"; + String ver = QpidProperties.getVersionString(); + StringBuilder protocol = new StringBuilder("AMQP version(s) [major.minor]: "); boolean first = true; @@ -333,7 +335,7 @@ public class Main } } - protected void bind(int port, ConnectorConfiguration connectorConfig) + protected void bind(int port, ConnectorConfiguration connectorConfig) throws BindException { String bindAddr = commandLine.getOptionValue("b"); if (bindAddr == null) @@ -401,6 +403,8 @@ public class Main catch (Exception e) { _logger.error("Unable to bind service to registry: " + e, e); + //fixme this need tidying up + throw new BindException(e.getMessage()); } } diff --git a/java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java b/java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java new file mode 100644 index 0000000000..1ebecbacb6 --- /dev/null +++ b/java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java @@ -0,0 +1,130 @@ +/* + * 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.qpid.server; + +import org.apache.log4j.Logger; +import org.apache.log4j.Level; + +import java.io.InputStream; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.IOException; + +public class RunBrokerWithCommand +{ + public static void main(String[] args) + { + //Start broker + + try + { + + String[] fudge = new String[1]; + fudge[0] = "-v"; + new Main(fudge).startup(); + } + catch (Exception e) + { + System.out.println("Unable to start broker due to: " + e.getMessage()); + + e.printStackTrace(); + exit(1); + } + + Logger.getRootLogger().setLevel(Level.ERROR); + + //run command + try + { + Process task = Runtime.getRuntime().exec(args[0]); + System.out.println("Started Proccess: " + args[0]); + + InputStream inputStream = task.getInputStream(); + + InputStream errorStream = task.getErrorStream(); + + Thread out = new Thread(new Outputter("[OUT]", new BufferedReader(new InputStreamReader(inputStream)))); + Thread err = new Thread(new Outputter("[ERR]", new BufferedReader(new InputStreamReader(errorStream)))); + + out.start(); + err.start(); + + out.join(); + err.join(); + + System.out.println("Waiting for process to exit: " + args[0]); + task.waitFor(); + System.out.println("Done Proccess: " + args[0]); + + } + catch (IOException e) + { + System.out.println("Proccess had problems: " + e.getMessage()); + exit(1); + } + catch (InterruptedException e) + { + System.out.println("Proccess had problems: " + e.getMessage()); + + exit(1); + } + + + exit(0); + } + + private static void exit(int i) + { + Logger.getRootLogger().setLevel(Level.INFO); + System.exit(i); + } + + static class Outputter implements Runnable + { + + BufferedReader reader; + String prefix; + + Outputter(String s, BufferedReader r) + { + prefix = s; + reader = r; + } + + public void run() + { + String line; + try + { + while ((line = reader.readLine()) != null) + { + System.out.println(prefix + line); + } + } + catch (IOException e) + { + System.out.println("Error occured reading; " + e.getMessage()); + } + } + + } + +} -- cgit v1.2.1