Author: rwatler
Date: Mon Dec 1 19:23:15 2014
New Revision: 1642738
URL: http://svn.apache.org/r1642738
Log:
JS2-1307: extend Jexl Scriptable Test Case to provide access to test process names and asynchronous close() to initiate parallel shutdown.
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestCase.java
portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestServer.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestCase.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestCase.java?rev=1642738&r1=1642737&r2=1642738&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestCase.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestCase.java Mon Dec 1 19:23:15 2014
@@ -41,6 +41,9 @@ import java.util.Map;
*/
public abstract class AbstractJexlSpringTestCase extends AbstractSpringTestCase {
+ protected static final String SCRIPT_RESULT_LINE_PREFIX = AbstractJexlSpringTestServer.SCRIPT_RESULT_LINE_PREFIX;
+ protected static final String SCRIPT_RESULT_RETURN_VALUE_SEPARATOR = AbstractJexlSpringTestServer.SCRIPT_RESULT_RETURN_VALUE_SEPARATOR;
+
private static final long LOGGING_PUMP_WAIT = 50;
private Logger log = LoggerFactory.getLogger(getClass());
@@ -210,6 +213,7 @@ public abstract class AbstractJexlSpring
private Process process;
private BufferedWriter processInput;
private BufferedReader processOutput;
+ private boolean closed;
/**
* Test program constructor.
@@ -306,7 +310,7 @@ public abstract class AbstractJexlSpring
// read result or messages from process
String resultLine = null;
for (String line; ((line = processOutput.readLine()) != null);) {
- if (! line.startsWith(AbstractJexlSpringTestServer.SCRIPT_RESULT_LINE_PREFIX)) {
+ if (!line.startsWith(SCRIPT_RESULT_LINE_PREFIX)) {
logProcessLine(line);
} else {
resultLine = line;
@@ -320,6 +324,18 @@ public abstract class AbstractJexlSpring
}
/**
+ * Asynchronously close test program process input. Shutdown must still
+ * be invoked which blocks on process termination.
+ *
+ * @throws IOException
+ */
+ public synchronized void close() throws IOException {
+ // close process input to trigger server close
+ processInput.close();
+ closed = true;
+ }
+
+ /**
* Shutdown remote test program process, forcibly if necessary after
* waiting for the specified timeout if it does not stop in its own.
*
@@ -347,7 +363,9 @@ public abstract class AbstractJexlSpring
destroyThread.start();
// close process input to shutdown server and read messages
- processInput.close();
+ if (!closed) {
+ processInput.close();
+ }
for (String line; ((line = processOutput.readLine()) != null);) {
logProcessLine(line);
}
@@ -374,6 +392,14 @@ public abstract class AbstractJexlSpring
log.info("{"+name+"} "+line);
}
}
+
+ public String getName() {
+ return name;
+ }
+
+ public int getIndex() {
+ return index;
+ }
}
/**
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestServer.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestServer.java?rev=1642738&r1=1642737&r2=1642738&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestServer.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/test/AbstractJexlSpringTestServer.java Mon Dec 1 19:23:15 2014
@@ -41,6 +41,7 @@ import java.util.Map;
public abstract class AbstractJexlSpringTestServer {
public static final String SCRIPT_RESULT_LINE_PREFIX = "> ";
+ public static final String SCRIPT_RESULT_RETURN_VALUE_SEPARATOR = " -> ";
protected String baseDir;
protected SpringComponentManager scm;
@@ -123,10 +124,10 @@ public abstract class AbstractJexlSpring
Script jexlScript = ScriptFactory.createScript(scriptLine);
Object result = jexlScript.execute(jexlContext);
if (result != null) {
- resultLine += " -> "+result;
+ resultLine += SCRIPT_RESULT_RETURN_VALUE_SEPARATOR+result;
}
} catch (Exception e) {
- resultLine += " -> "+e;
+ resultLine += SCRIPT_RESULT_RETURN_VALUE_SEPARATOR+e;
}
return resultLine;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.