[jbossws-commits] JBossWS SVN: r15947 - shared-testsuite/trunk/src/main/java/org/jboss/wsf/test.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Wed Mar 14 11:03:23 EDT 2012


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;



More information about the jbossws-commits mailing list