@Override
public ConnectFuture connect(ResourceAddress address,
IoHandler handler,
IoSessionInitializer<? extends ConnectFuture> initializer) {
boolean useMCP = false;
try {
String uri = address.getExternalURI();
InetAddress inet = InetAddress.getByName(URIUtils.getHost(uri));
if (inet.isMulticastAddress()) {
useMCP = true;
}
} catch (Exception e) {
}
if (useMCP) {
MulticastConnector connector = new MulticastConnector();
connector.setConfiguration(getProperties());
connector.setResourceAddressFactory(resourceAddressFactory);
connector.setBridgeServiceFactory(bridgeServiceFactory);
return connector.connect(address, handler, initializer);
} else {
return super.connect(address, handler, initializer);
}
}