[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