Trick OpenESB SE to enable cluster mode

master
Vitaliy Filippov 2015-10-29 20:16:44 +03:00
parent d1bc1a11c9
commit 30ff660b6c
1 changed files with 37 additions and 13 deletions

View File

@ -19,6 +19,7 @@ import net.openesb.security.SecurityProvider;
import net.openesb.standalone.Constants; import net.openesb.standalone.Constants;
import net.openesb.standalone.jmx.JMXService; import net.openesb.standalone.jmx.JMXService;
import net.openesb.standalone.node.Node; import net.openesb.standalone.node.Node;
import net.openesb.standalone.settings.Settings;
/** /**
* Implementation of PlatformContext for OpenESB Standalone. * Implementation of PlatformContext for OpenESB Standalone.
@ -38,10 +39,21 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
new net.openesb.standalone.framework.KeyStoreUtil(); new net.openesb.standalone.framework.KeyStoreUtil();
private final String mInstallRoot; private final String mInstallRoot;
private final String mClusterName;
private final HashSet<String> mServersInCluster;
public PlatformContext() { @Inject
public PlatformContext(Settings settings) {
mInstallRoot = System.getProperty(Constants.OPENESB_WORK_PROP, mInstallRoot = System.getProperty(Constants.OPENESB_WORK_PROP,
System.getProperty(Constants.OPENESB_HOME_PROP)); System.getProperty(Constants.OPENESB_HOME_PROP));
mClusterName = settings.get("cluster.name", null);
mServersInCluster = new HashSet<String>();
if (mClusterName != null) {
String srv;
for (int i = 0; (srv = settings.get("cluster.server"+i, null)) != null; i++) {
mServersInCluster.add(srv);
}
}
} }
/** /**
@ -135,7 +147,7 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public String getTargetName() { public String getTargetName() {
return node.name(); return mClusterName != null ? mClusterName : node.name();
} }
/** /**
@ -147,7 +159,7 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public String getTargetName(String instanceName) { public String getTargetName(String instanceName) {
return instanceName; return mClusterName != null ? mClusterName : instanceName;
} }
/** /**
@ -157,9 +169,12 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public Set<String> getStandaloneServerNames() { public Set<String> getStandaloneServerNames() {
HashSet<String> names = new HashSet<String>(); if (mClusterName == null) {
names.add(node.name()); HashSet<String> names = new HashSet<String>();
return names; names.add(node.name());
return names;
}
return new HashSet<String>();
} }
/** /**
@ -169,7 +184,7 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public Set<String> getClusteredServerNames() { public Set<String> getClusteredServerNames() {
return new HashSet<String>(); return mServersInCluster;
} }
/** /**
@ -179,7 +194,11 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public Set<String> getClusterNames() { public Set<String> getClusterNames() {
return new HashSet<String>(); HashSet<String> names = new HashSet<String>();
if (mClusterName != null) {
names.add(mClusterName);
}
return names;
} }
/** /**
@ -189,6 +208,10 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public Set<String> getServersInCluster(String clusterName) { public Set<String> getServersInCluster(String clusterName) {
HashSet<String> names = new HashSet<String>();
if (mClusterName != null && clusterName.equals(mClusterName)) {
return mServersInCluster;
}
return new HashSet<String>(); return new HashSet<String>();
} }
@ -200,7 +223,8 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public boolean isValidTarget(String targetName) { public boolean isValidTarget(String targetName) {
return node.name().equals(targetName); return node.name().equals(targetName) || mClusterName != null &&
(mClusterName.equals(targetName) || mServersInCluster.contains(targetName));
} }
/** /**
@ -211,7 +235,7 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public boolean isCluster(String targetName) { public boolean isCluster(String targetName) {
return false; return mClusterName != null && mClusterName.equals(targetName);
} }
/** /**
@ -222,7 +246,7 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public boolean isStandaloneServer(String targetName) { public boolean isStandaloneServer(String targetName) {
return node.name().equals(targetName); return mClusterName == null && node.name().equals(targetName);
} }
/** /**
@ -233,7 +257,7 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public boolean isClusteredServer(String targetName) { public boolean isClusteredServer(String targetName) {
return false; return mClusterName != null && mClusterName.equals(targetName);
} }
/** /**
@ -244,7 +268,7 @@ public class PlatformContext implements com.sun.jbi.platform.PlatformContext {
*/ */
@Override @Override
public boolean isInstanceClustered(String instanceName) { public boolean isInstanceClustered(String instanceName) {
return false; return mClusterName != null && mServersInCluster.contains(instanceName);
} }
/** /**