[jboss-cvs] JBossAS SVN: r108405 - in projects/service-binding/trunk/core/src: test/java/org/jboss/test/services/binding/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Oct 1 12:38:21 EDT 2010


Author: rachmatowicz at jboss.com
Date: 2010-10-01 12:38:20 -0400 (Fri, 01 Oct 2010)
New Revision: 108405

Modified:
   projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceConfig.java
   projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceImpl.java
   projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java
   projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/ServiceBindingTestBase.java
   projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/StringReplacementServiceBindingValueSourceUnitTestCase.java
Log:
Modifications for IPv6 address literal substitution into URLs (SVCBIND-5)

Modified: projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceConfig.java
===================================================================
--- projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceConfig.java	2010-10-01 15:49:26 UTC (rev 108404)
+++ projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceConfig.java	2010-10-01 16:38:20 UTC (rev 108405)
@@ -32,19 +32,22 @@
 public class StringReplacementServiceBindingValueSourceConfig
 {
    public static final String DEFAULT_HOST_MARKER = "${host}";
+   public static final String DEFAULT_HOSTFORURL_MARKER = "${hostforurl}";
    public static final String DEFAULT_PORT_MARKER = "${port}";
    
    private String portMarker;
    private String hostMarker;
+   private String hostforurlMarker;
    
    public StringReplacementServiceBindingValueSourceConfig()
    {
-      this(DEFAULT_HOST_MARKER, DEFAULT_PORT_MARKER);
+      this(DEFAULT_HOST_MARKER, DEFAULT_HOSTFORURL_MARKER, DEFAULT_PORT_MARKER);
    }
    
-   public StringReplacementServiceBindingValueSourceConfig(String hostMarker, String portMarker)
+   public StringReplacementServiceBindingValueSourceConfig(String hostMarker, String hostforurlMarker, String portMarker)
    {
       this.hostMarker = (hostMarker == null ? DEFAULT_HOST_MARKER : hostMarker);
+      this.hostforurlMarker = (hostforurlMarker == null ? DEFAULT_HOSTFORURL_MARKER : hostforurlMarker);
       this.portMarker = (portMarker == null ? DEFAULT_PORT_MARKER : portMarker);
    }
 
@@ -58,4 +61,9 @@
       return hostMarker;
    }
    
+   public String getHostforurlMarker()
+   {
+      return hostforurlMarker;
+   }
+   
 }

Modified: projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceImpl.java
===================================================================
--- projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceImpl.java	2010-10-01 15:49:26 UTC (rev 108404)
+++ projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/StringReplacementServiceBindingValueSourceImpl.java	2010-10-01 16:38:20 UTC (rev 108405)
@@ -52,7 +52,7 @@
       }
       
       StringReplacementServiceBindingValueSourceConfig config = getConfig(binding);
-      return replaceHostAndPort(input, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getPortMarker());
+      return replaceHostAndPort(input, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getHostforurlMarker(), config.getPortMarker());
    }  
       
 
@@ -69,7 +69,7 @@
       
       editor.setValue(input);
       String text = editor.getAsText();
-      text = replaceHostAndPort(text, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getPortMarker());
+      text = replaceHostAndPort(text, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getHostforurlMarker(), config.getPortMarker());
       editor.setAsText(text);
       return (Element) editor.getValue();
    }
@@ -84,7 +84,7 @@
       try
       {
          String content = Util.getContentAsString(input);
-         String transformed = replaceHostAndPort(content, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getPortMarker());
+         String transformed = replaceHostAndPort(content, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getHostforurlMarker(), config.getPortMarker());
          return Util.writeToTempFile(transformed).getAbsolutePath();
       }
       catch (IOException e)
@@ -104,7 +104,7 @@
       try
       {
          String content = Util.getContentAsString(input);
-         String transformed = replaceHostAndPort(content, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getPortMarker());
+         String transformed = replaceHostAndPort(content, binding.getHostName(), binding.getPort(), config.getHostMarker(), config.getHostforurlMarker(), config.getPortMarker());
          return Util.writeToTempFile(transformed).toURL();
       }
       catch (IOException e)
@@ -159,7 +159,7 @@
       }
    }
    
-   private String replaceHostAndPort(String text, String host, int port, String hostMarker, String portMarker)
+   private String replaceHostAndPort(String text, String host, int port, String hostMarker, String hostforurlMarker, String portMarker)
    {
       if( text == null )
          return null;
@@ -169,6 +169,10 @@
       String portStr = String.valueOf(port);
 
       text = text.replace(hostMarker, host);
+      if (host.contains(":"))   // host is an IPv6 address literal
+          text = text.replace(hostforurlMarker, "[" + host + "]");
+      else
+          text = text.replace(hostforurlMarker, host);
       return text.replace(portMarker, portStr);
    }
 

Modified: projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java
===================================================================
--- projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java	2010-10-01 15:49:26 UTC (rev 108404)
+++ projects/service-binding/trunk/core/src/main/java/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java	2010-10-01 16:38:20 UTC (rev 108405)
@@ -249,6 +249,13 @@
          if (host != null)
          {
             transformer.setParameter("host", host);
+            
+            String hostforurl = null ;
+            if (host.contains(":"))    // check if IPv6 address
+            	hostforurl = "[" + host + "]";
+            else
+            	hostforurl = host;
+            transformer.setParameter("hostforurl", hostforurl);
          }
    
          // Check for any arbitrary attributes

Modified: projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/ServiceBindingTestBase.java
===================================================================
--- projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/ServiceBindingTestBase.java	2010-10-01 15:49:26 UTC (rev 108404)
+++ projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/ServiceBindingTestBase.java	2010-10-01 16:38:20 UTC (rev 108405)
@@ -59,8 +59,10 @@
    protected static final String SVC_NAME = "SVC";
    protected static final String BINDING_NAME = "BIND"; 
    protected static final String HOST = "192.168.0.10";
+   protected static final String HOST6 = "3ffe:ffff:100:f101::1";
    protected static final int PORT = 999;
    protected static final String HOST_MARKER = "${host}";
+   protected static final String HOSTFORURL_MARKER = "${hostforurl}";
    protected static final String PORT_MARKER = "${port}";   
    protected static final String ELEMENT_INPUT = "<element host=\"" + HOST_MARKER + "\">" + PORT_MARKER + "</element>";
 

Modified: projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/StringReplacementServiceBindingValueSourceUnitTestCase.java
===================================================================
--- projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/StringReplacementServiceBindingValueSourceUnitTestCase.java	2010-10-01 15:49:26 UTC (rev 108404)
+++ projects/service-binding/trunk/core/src/test/java/org/jboss/test/services/binding/test/StringReplacementServiceBindingValueSourceUnitTestCase.java	2010-10-01 16:38:20 UTC (rev 108405)
@@ -27,6 +27,7 @@
 import java.net.URL;
 
 import org.jboss.services.binding.ServiceBinding;
+import org.jboss.services.binding.ServiceBindingMetadata;
 import org.jboss.services.binding.impl.StringReplacementServiceBindingValueSourceConfig;
 import org.jboss.services.binding.impl.StringReplacementServiceBindingValueSourceImpl;
 import org.w3c.dom.Element;
@@ -41,11 +42,16 @@
 {
    private static final String INPUT = HOST_MARKER + ":" + PORT_MARKER;
    private static final String ALT_HOST_MARKER = "${alt.host}";
+   private static final String ALT_HOSTFORURL_MARKER = "${alt.hostforurl}";
    private static final String ALT_PORT_MARKER = "${alt.port}";
    private static final String ALT_INPUT = ALT_HOST_MARKER + ":" + ALT_PORT_MARKER;
    private static final String OUTPUT = HOST + ":" + PORT;
    private static final String ALT_ELEMENT_INPUT = "<element host=\"" + ALT_HOST_MARKER + "\">" + ALT_PORT_MARKER + "</element>";
    
+   private static final String URL_INPUT = "http://" + HOSTFORURL_MARKER + ":" + PORT_MARKER;
+   private static final String URL_OUTPUT4 = "http://" + HOST + ":" + PORT;   
+   private static final String URL_OUTPUT6 = "http://" + "[" + HOST6 + "]" + ":" + PORT;   
+   
    private StringReplacementServiceBindingValueSourceImpl testee;
    private StringReplacementServiceBindingValueSourceConfig config;
    
@@ -59,7 +65,7 @@
       super.setUp();
       
       testee = new StringReplacementServiceBindingValueSourceImpl();
-      config = new StringReplacementServiceBindingValueSourceConfig(ALT_HOST_MARKER, ALT_PORT_MARKER);
+      config = new StringReplacementServiceBindingValueSourceConfig(ALT_HOST_MARKER, ALT_HOSTFORURL_MARKER, ALT_PORT_MARKER);
    }
 
    /**
@@ -89,6 +95,29 @@
    }
 
    /**
+    * Test method for {@link org.jboss.services.binding.impl.StringReplacementServiceBindingValueSourceImpl#getStringServiceBindingValue(org.jboss.bindings.ServiceBinding, java.lang.String)}.
+    */
+   public void testGetStringServiceBindingValueWithURLInputIPv4Address() throws Exception
+   {
+	  ServiceBindingMetadata bindingMetadata4 = new ServiceBindingMetadata(SVC_NAME, BINDING_NAME, HOST, PORT, false, false);
+	  ServiceBinding binding4 = new ServiceBinding(bindingMetadata, HOST, 0);
+
+      assertEquals(URL_OUTPUT4, testee.getStringServiceBindingValue(binding4, URL_INPUT));
+   }   
+
+   /**
+    * Test method for {@link org.jboss.services.binding.impl.StringReplacementServiceBindingValueSourceImpl#getStringServiceBindingValue(org.jboss.bindings.ServiceBinding, java.lang.String)}.
+    */
+   public void testGetStringServiceBindingValueWithURLInputIPv6Address() throws Exception
+   {
+	  ServiceBindingMetadata bindingMetadata6 = new ServiceBindingMetadata(SVC_NAME, BINDING_NAME, HOST6, PORT, false, false);
+	  ServiceBinding binding6 = new ServiceBinding(bindingMetadata, HOST6, 0);
+
+      assertEquals(URL_OUTPUT6, testee.getStringServiceBindingValue(binding6, URL_INPUT));
+   }   
+   
+   
+   /**
     * Test method for {@link org.jboss.services.binding.impl.StringReplacementServiceBindingValueSourceImpl#getElementServiceBindingValue(org.jboss.bindings.ServiceBinding, org.w3c.dom.Element)}.
     */
    public void testGetElementServiceBindingValue() throws Exception



More information about the jboss-cvs-commits mailing list