You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2013/08/26 16:44:41 UTC
svn commit: r1517548 -
/cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/EmbeddedJMSBrokerLauncher.java
Author: dkulp
Date: Mon Aug 26 14:44:41 2013
New Revision: 1517548
URL: http://svn.apache.org/r1517548
Log:
Check the service itself and the binding for the various JMS spec extensors and adjust those url's as well.
Modified:
cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/EmbeddedJMSBrokerLauncher.java
Modified: cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/EmbeddedJMSBrokerLauncher.java
URL: http://svn.apache.org/viewvc/cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/EmbeddedJMSBrokerLauncher.java?rev=1517548&r1=1517547&r2=1517548&view=diff
==============================================================================
--- cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/EmbeddedJMSBrokerLauncher.java (original)
+++ cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/EmbeddedJMSBrokerLauncher.java Mon Aug 26 14:44:41 2013
@@ -94,42 +94,12 @@ public class EmbeddedJMSBrokerLauncher e
for (Object o : map.values()) {
Service service = (Service)o;
Map<?, ?> ports = service.getPorts();
+ adjustExtensibilityElements(service.getExtensibilityElements(), url, encodedUrl);
+
for (Object p : ports.values()) {
Port port = (Port)p;
- List<?> l = port.getExtensibilityElements();
- for (Object e : l) {
- if (e instanceof SOAPAddress) {
- String add = ((SOAPAddress)e).getLocationURI();
- int idx = add.indexOf("jndiURL=");
- if (idx != -1) {
- int idx2 = add.indexOf("&", idx);
- add = add.substring(0, idx)
- + "jndiURL=" + encodedUrl
- + (idx2 == -1 ? "" : add.substring(idx2));
- ((SOAPAddress)e).setLocationURI(add);
- }
- } else {
- try {
- Field f = e.getClass().getDeclaredField("jmsNamingProperty");
- ReflectionUtil.setAccessible(f);
- List<?> props = (List<?>)f.get(e);
- for (Object prop : props) {
- f = prop.getClass().getDeclaredField("name");
- ReflectionUtil.setAccessible(f);
- if ("java.naming.provider.url".equals(f.get(prop))) {
- f = prop.getClass().getDeclaredField("value");
- ReflectionUtil.setAccessible(f);
- String value = (String)f.get(prop);
- if (value == null || !value.startsWith("classpath")) {
- f.set(prop, url);
- }
- }
- }
- } catch (Exception ex) {
- //ignore
- }
- }
- }
+ adjustExtensibilityElements(port.getExtensibilityElements(), url, encodedUrl);
+ adjustExtensibilityElements(port.getBinding().getExtensibilityElements(), url, encodedUrl);
}
}
} catch (Exception e) {
@@ -137,6 +107,49 @@ public class EmbeddedJMSBrokerLauncher e
}
}
+ private static void adjustExtensibilityElements(List<?> l,
+ String url,
+ String encodedUrl) {
+ for (Object e : l) {
+ if (e instanceof SOAPAddress) {
+ String add = ((SOAPAddress)e).getLocationURI();
+ int idx = add.indexOf("jndiURL=");
+ if (idx != -1) {
+ int idx2 = add.indexOf("&", idx);
+ add = add.substring(0, idx)
+ + "jndiURL=" + encodedUrl
+ + (idx2 == -1 ? "" : add.substring(idx2));
+ ((SOAPAddress)e).setLocationURI(add);
+ }
+ } else if (e.getClass().getSimpleName().startsWith("JndiURLType")) {
+ try {
+ e.getClass().getMethod("setValue", String.class).invoke(e, url);
+ } catch (Exception ex) {
+ //ignore
+ }
+ } else {
+ try {
+ Field f = e.getClass().getDeclaredField("jmsNamingProperty");
+ ReflectionUtil.setAccessible(f);
+ List<?> props = (List<?>)f.get(e);
+ for (Object prop : props) {
+ f = prop.getClass().getDeclaredField("name");
+ ReflectionUtil.setAccessible(f);
+ if ("java.naming.provider.url".equals(f.get(prop))) {
+ f = prop.getClass().getDeclaredField("value");
+ ReflectionUtil.setAccessible(f);
+ String value = (String)f.get(prop);
+ if (value == null || !value.startsWith("classpath")) {
+ f.set(prop, url);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ //ignore
+ }
+ }
+ }
+ }
public void stop() throws Exception {
tearDown();
}