ClusterConfigMetaData clusterMetadata = metadata.getClusterConfig();
String partitionName = getPartitionName(clusterMetadata);
String familyInfoName = getClusterFamilyNamePolicy().getClusterFamilyName(containerName, locator, partitionName);
HAPartition partition = HAPartitionLocator.getHAPartitionLocator().getHAPartition(partitionName, null);
HATarget hatarget = new HATarget(partition, familyInfoName, locator, HATarget.ENABLE_INVOCATIONS);
FamilyWrapper wrapper = new FamilyWrapper(familyInfoName, hatarget.getReplicants());
String lbpClassKey = clusterMetadata.getLoadBalancePolicy();
Class<? extends LoadBalancePolicy> lbPolicyClass = getLoadBalancePolicyClass(lbpClassKey, metadata.isStateful());
lbpClassKey = clusterMetadata.getHomeLoadBalancePolicy();
Class<? extends LoadBalancePolicy> homeLBPolicyClass = getLoadBalancePolicyClass(lbpClassKey, false);
ProxyClusteringInfo info = new ProxyClusteringInfo(containerName, proxyFactoryName, partitionName, wrapper, lbPolicyClass, homeLBPolicyClass, hatarget);
// Place this data in the various maps
registerBeanClusteringInfo(info);
// IMPORTANT: This must be done after the HATarget is instantiated above
// or we will get a notification from our own work instantiating the HATarget
DistributedReplicantManager drm = partition.getDistributedReplicantManager();
drm.registerListener(familyInfoName, this);
// Notify listeners of the addition. We do this after we register
// with the DRM so the listener won't know about the bean until our
// locally initiated DRM events have finished