Author: ropalka
Date: 2012-03-14 11:03:22 -0400 (Wed, 14 Mar 2012)
New Revision: 15947
Modified:
shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/AppclientHelper.java
shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/JBossWSTestHelper.java
Log:
[JBWS-3458] fixing appclient framework to be IPv6 compatible
Modified: shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/AppclientHelper.java
===================================================================
---
shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/AppclientHelper.java 2012-03-14
15:02:46 UTC (rev 15946)
+++
shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/AppclientHelper.java 2012-03-14
15:03:22 UTC (rev 15947)
@@ -119,7 +119,14 @@
args.add(appclientArg);
}
}
- ap.process = new ProcessBuilder().command(args).start();
+ final ProcessBuilder pb = new ProcessBuilder().command(args);
+ // always propagate IPv6 related properties
+ final StringBuilder javaOptsValue = new StringBuilder();
+
javaOptsValue.append("\"-Djboss.bind.address=").append(undoIPv6Brackets(System.getProperty("jboss.bind.address",
"localhost"))).append("\" ");
+
javaOptsValue.append("\"-Djava.net.preferIPv4Stack=").append(System.getProperty("java.net.preferIPv4Stack",
"true")).append("\" ");
+
javaOptsValue.append("\"-Djava.net.preferIPv6Addresses=").append(System.getProperty("java.net.preferIPv6Addresses",
"false")).append("\" ");
+ pb.environment().put("JAVA_OPTS", javaOptsValue.toString());
+ ap.process = pb.start();
ap.log = new FileOutputStream(new File(getAppclientOutputDir(), appclientShortName
+ ".log-" + System.currentTimeMillis()));
// appclient out
ap.outTask = new CopyJob(ap.process.getInputStream(),
@@ -132,6 +139,11 @@
return ap;
}
+ private static String undoIPv6Brackets(final String s)
+ {
+ return s.startsWith("[") ? s.substring(1, s.length() - 1) : s;
+ }
+
private static void shutdownAppclient(final String archive, final OutputStream os)
throws IOException, InterruptedException
{
final File killFile = new File(getKillFileName(archive));
Modified: shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/JBossWSTestHelper.java
===================================================================
---
shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/JBossWSTestHelper.java 2012-03-14
15:02:46 UTC (rev 15946)
+++
shared-testsuite/trunk/src/main/java/org/jboss/wsf/test/JBossWSTestHelper.java 2012-03-14
15:03:22 UTC (rev 15947)
@@ -207,6 +207,21 @@
{
try
{
+ if (host.startsWith(":"))
+ {
+ throw new IllegalArgumentException("JBossWS test suite requires IPv6
addresses to be wrapped with [] brackets. Expected format is: [" + host +
"]");
+ }
+ if (host.startsWith("["))
+ {
+ if (System.getProperty("java.net.preferIPv4Stack") == null)
+ {
+ throw new IllegalStateException("always provide
java.net.preferIPv4Stack JVM property when using IPv6 address format");
+ }
+ if (System.getProperty("java.net.preferIPv6Addresses") == null)
+ {
+ throw new IllegalStateException("always provide
java.net.preferIPv6Addresses JVM property when using IPv6 address format");
+ }
+ }
final boolean isIPv6Address = InetAddress.getByName(host) instanceof
Inet6Address;
final boolean isIPv6Formatted = isIPv6Address &&
host.startsWith("[");
return isIPv6Address && !isIPv6Formatted ? "[" + host +
"]" : host;
Show replies by date