private Configuration createConfiguration(Bus b,
EndpointReferenceType ref,
boolean isServer) {
ConfigurationBuilder cb = ConfigurationBuilderFactory.getBuilder(null);
Configuration busConfiguration = b.getConfiguration();
Configuration parent = null;
String configURI;
String configID;
if (isServer) {
configURI = JMSConstants.JMS_SERVER_CONFIGURATION_URI;
configID = JMSConstants.JMS_SERVER_CONFIG_ID;
parent = busConfiguration
.getChild(JMSConstants.ENDPOINT_CONFIGURATION_URI,
EndpointReferenceUtils.getServiceName(ref).toString());
} else {
configURI = JMSConstants.JMS_CLIENT_CONFIGURATION_URI;
configID = JMSConstants.JMS_CLIENT_CONFIG_ID;
String id = EndpointReferenceUtils.getServiceName(ref).toString()
+ "/" + EndpointReferenceUtils.getPortName(ref);
parent = busConfiguration
.getChild(JMSConstants.PORT_CONFIGURATION_URI, id);
}
assert null != parent;
Configuration cfg = cb.getConfiguration(configURI, configID, parent);
if (null == cfg) {
cfg = cb.buildConfiguration(configURI, configID, parent);
}
// register the additional provider
if (null != port) {
cfg.getProviders().add(new WsdlJMSConfigurationProvider(port, false));
}
return cfg;
}