I had a quick look at the code and we could have a very simpl interface like
BroadcastGroupConfiguration getBroadcastGroupConfiguration(String name);
the RA would define 3 additional properties:
* bgcLocatorMethod (similar to the tm locator properties)
when the RA is started it will locate the bgclocator instance (can be null if the props are not set)
then if the broadcastGroupConfigurationName is set and there is locator, the RA calls it to get the BroadcastGroupConfiguration object to use
There is no need to introduce anything specific to JGroups here, it will work both for the UDP or JGroups implementation
on the AS7 side, I'll have to implement this locator interface and set the bgcLocatorClass & bgcLocatorMethod when the RA is setup by the PooledConnectionFactoryService
later, when the RA will call the locator, I'll have all the information I need to pass it the correct BroadcastGroupConfiguration instance
Also connectionPoolName was only added on the RA. What is the equivalent on the regular non RA connection factories?
also: HOrnetQResourceAdapter:createHornetQConnectionFActory seems broken to me...
What this means?
if (connectorClassName == null)????
you basically removed the setting for discoveryAddress!= null.. There is at least one test failing with a NPE.
OK I'll make the change as suggested. Thanks
connectionPoolName is only used by RA. I haven't thought of normal CF thou. It could be use the same locator mechanism.
I rearranged the if-else logic here in hope of making it simpler. Must be some flaw that I made during the change.
Take a look to my PR which has supposedly fixed it.
Talked to Jeff, he'd like to take this burden to fix it. Thanks.