Change the format of ability table key to string, less time for format conversion when saving.
This commit is contained in:
parent
5cbfc524a9
commit
5ec1d1f8b5
@ -25,7 +25,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
/**.
|
/**.
|
||||||
* @author Daydreamer
|
* @author Daydreamer
|
||||||
* @description Ability key constant.
|
* @description Ability key constant. It is used to constrain the ability key.
|
||||||
* @date 2022/8/31 12:27
|
* @date 2022/8/31 12:27
|
||||||
**/
|
**/
|
||||||
public enum AbilityKey {
|
public enum AbilityKey {
|
||||||
|
@ -38,13 +38,13 @@ public class RequestMeta {
|
|||||||
|
|
||||||
private Map<String, String> labels = new HashMap<>();
|
private Map<String, String> labels = new HashMap<>();
|
||||||
|
|
||||||
private Map<AbilityKey, Boolean> abilityTable;
|
private Map<String, Boolean> abilityTable;
|
||||||
|
|
||||||
public AbilityStatus getConnectionAbility(AbilityKey abilityKey) {
|
public AbilityStatus getConnectionAbility(AbilityKey abilityKey) {
|
||||||
if (abilityTable == null) {
|
if (abilityTable == null || !abilityTable.containsKey(abilityKey.getName())) {
|
||||||
return AbilityStatus.UNKNOWN;
|
return AbilityStatus.UNKNOWN;
|
||||||
}
|
}
|
||||||
return abilityTable.getOrDefault(abilityKey, false) ? AbilityStatus.SUPPORTED : AbilityStatus.NOT_SUPPORTED;
|
return abilityTable.get(abilityKey.getName()) ? AbilityStatus.SUPPORTED : AbilityStatus.NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -52,7 +52,7 @@ public class RequestMeta {
|
|||||||
*
|
*
|
||||||
* @param abilityTable property value of clientVersion
|
* @param abilityTable property value of clientVersion
|
||||||
*/
|
*/
|
||||||
public void setAbilityTable(Map<AbilityKey, Boolean> abilityTable) {
|
public void setAbilityTable(Map<String, Boolean> abilityTable) {
|
||||||
this.abilityTable = abilityTable;
|
this.abilityTable = abilityTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@ public class ClientAbilityControlManager extends AbstractAbilityControlManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Map<AbilityKey, Boolean> initCurrentNodeAbilities() {
|
protected Map<String, Boolean> initCurrentNodeAbilities() {
|
||||||
return ClientAbilities.getStaticAbilities();
|
return AbilityKey.mapStr(ClientAbilities.getStaticAbilities());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -61,8 +61,8 @@ public class AbilityTest {
|
|||||||
|
|
||||||
{
|
{
|
||||||
super.abilityTable = new HashMap<>();
|
super.abilityTable = new HashMap<>();
|
||||||
super.abilityTable.put(AbilityKey.TEST_1, true);
|
super.abilityTable.put(AbilityKey.TEST_1.getName(), true);
|
||||||
super.abilityTable.put(AbilityKey.TEST_2, false);
|
super.abilityTable.put(AbilityKey.TEST_2.getName(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -65,7 +65,7 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
/**.
|
/**.
|
||||||
* ability current node running
|
* ability current node running
|
||||||
*/
|
*/
|
||||||
protected final Map<AbilityKey, Boolean> currentRunningAbility = new ConcurrentHashMap<>();
|
protected final Map<String, Boolean> currentRunningAbility = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private final ReentrantLock lockForHandlerMappings = new ReentrantLock();
|
private final ReentrantLock lockForHandlerMappings = new ReentrantLock();
|
||||||
|
|
||||||
@ -75,18 +75,18 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
currentRunningAbility.putAll(initCurrentNodeAbilities());
|
currentRunningAbility.putAll(initCurrentNodeAbilities());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**.
|
||||||
* . Turn on the ability whose key is <p>abilityKey</p>
|
* Turn on the ability whose key is <p>abilityKey</p>
|
||||||
*
|
*
|
||||||
* @param abilityKey ability key
|
* @param abilityKey ability key{@link AbilityKey}
|
||||||
* @return if turn success
|
* @return if turn success
|
||||||
*/
|
*/
|
||||||
public boolean enableCurrentNodeAbility(AbilityKey abilityKey) {
|
public boolean enableCurrentNodeAbility(AbilityKey abilityKey) {
|
||||||
return doTurn(true, abilityKey);
|
return doTurn(true, abilityKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**.
|
||||||
* . Turn off the ability whose key is <p>abilityKey</p>
|
* Turn off the ability whose key is <p>abilityKey</p> {@link AbilityKey}
|
||||||
*
|
*
|
||||||
* @param abilityKey ability key
|
* @param abilityKey ability key
|
||||||
* @return if turn success
|
* @return if turn success
|
||||||
@ -95,8 +95,14 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
return doTurn(false, abilityKey);
|
return doTurn(false, abilityKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**.
|
||||||
|
* Whether current node support
|
||||||
|
*
|
||||||
|
* @param abilityKey ability key from {@link AbilityKey}
|
||||||
|
* @return whether support
|
||||||
|
*/
|
||||||
public boolean isCurrentNodeAbilityRunning(AbilityKey abilityKey) {
|
public boolean isCurrentNodeAbilityRunning(AbilityKey abilityKey) {
|
||||||
return currentRunningAbility.getOrDefault(abilityKey, false);
|
return currentRunningAbility.getOrDefault(abilityKey.getName(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**.
|
/**.
|
||||||
@ -104,14 +110,14 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
*
|
*
|
||||||
* @return current node abilities
|
* @return current node abilities
|
||||||
*/
|
*/
|
||||||
protected abstract Map<AbilityKey, Boolean> initCurrentNodeAbilities();
|
protected abstract Map<String, Boolean> initCurrentNodeAbilities();
|
||||||
|
|
||||||
/**.
|
/**.
|
||||||
* Return the abilities current node
|
* Return the abilities current node
|
||||||
*
|
*
|
||||||
* @return current abilities
|
* @return current abilities
|
||||||
*/
|
*/
|
||||||
public Map<AbilityKey, Boolean> getCurrentNodeAbilities() {
|
public Map<String, Boolean> getCurrentNodeAbilities() {
|
||||||
return Collections.unmodifiableMap(currentRunningAbility);
|
return Collections.unmodifiableMap(currentRunningAbility);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,7 +129,7 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
* @return if turn success
|
* @return if turn success
|
||||||
*/
|
*/
|
||||||
private boolean doTurn(boolean isOn, AbilityKey abilityKey) {
|
private boolean doTurn(boolean isOn, AbilityKey abilityKey) {
|
||||||
Boolean isEnabled = currentRunningAbility.get(abilityKey);
|
Boolean isEnabled = currentRunningAbility.get(abilityKey.getName());
|
||||||
// if not supporting this key
|
// if not supporting this key
|
||||||
if (isEnabled == null) {
|
if (isEnabled == null) {
|
||||||
LOGGER.warn("[AbilityControlManager] Attempt to turn on/off a not existed ability!");
|
LOGGER.warn("[AbilityControlManager] Attempt to turn on/off a not existed ability!");
|
||||||
@ -133,7 +139,7 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// turn on/off
|
// turn on/off
|
||||||
currentRunningAbility.put(abilityKey, isOn);
|
currentRunningAbility.put(abilityKey.getName(), isOn);
|
||||||
// handler mappings
|
// handler mappings
|
||||||
triggerHandlerMappingAsyn(abilityKey, isOn, this.handlerMappings);
|
triggerHandlerMappingAsyn(abilityKey, isOn, this.handlerMappings);
|
||||||
// notify event
|
// notify event
|
||||||
@ -192,20 +198,6 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
LOGGER.warn("[DefaultAbilityControlManager] - Destruction of the end");
|
LOGGER.warn("[DefaultAbilityControlManager] - Destruction of the end");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**.
|
|
||||||
* Combine with current node abilities, in order to get abilities current node provides
|
|
||||||
*
|
|
||||||
* @param abilities combined ability table
|
|
||||||
*/
|
|
||||||
public void combine(Map<AbilityKey, Boolean> abilities) {
|
|
||||||
currentRunningAbility.forEach((k, v) -> {
|
|
||||||
Boolean isCurrentSupport = currentRunningAbility.get(k);
|
|
||||||
if (isCurrentSupport != null) {
|
|
||||||
abilities.put(k, abilities.getOrDefault(k, false) && isCurrentSupport);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**.
|
/**.
|
||||||
* hook for subclass
|
* hook for subclass
|
||||||
*/
|
*/
|
||||||
@ -260,8 +252,8 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
*/
|
*/
|
||||||
protected void doRegisterComponent(AbilityKey abilityKey, HandlerMapping handlerMapping,
|
protected void doRegisterComponent(AbilityKey abilityKey, HandlerMapping handlerMapping,
|
||||||
Map<AbilityKey, List<HandlerWithPriority>> handlerMappings, Lock lockForHandlerMappings,
|
Map<AbilityKey, List<HandlerWithPriority>> handlerMappings, Lock lockForHandlerMappings,
|
||||||
int priority, Map<AbilityKey, Boolean> abilityTable) {
|
int priority, Map<String, Boolean> abilityTable) {
|
||||||
if (!currentRunningAbility.containsKey(abilityKey)) {
|
if (!currentRunningAbility.containsKey(abilityKey.getName())) {
|
||||||
LOGGER.warn("[AbilityHandlePostProcessor] Failed to register processor: {}, because illegal key!",
|
LOGGER.warn("[AbilityHandlePostProcessor] Failed to register processor: {}, because illegal key!",
|
||||||
handlerMapping.getClass().getSimpleName());
|
handlerMapping.getClass().getSimpleName());
|
||||||
}
|
}
|
||||||
@ -275,7 +267,7 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
handlerMappings.put(abilityKey, handlers);
|
handlerMappings.put(abilityKey, handlers);
|
||||||
// choose behavior
|
// choose behavior
|
||||||
// enable default
|
// enable default
|
||||||
if (abilityTable.getOrDefault(abilityKey, false)) {
|
if (abilityTable.getOrDefault(abilityKey.getName(), false)) {
|
||||||
handlerMapping.enable();
|
handlerMapping.enable();
|
||||||
} else {
|
} else {
|
||||||
handlerMapping.disable();
|
handlerMapping.disable();
|
||||||
@ -384,15 +376,15 @@ public abstract class AbstractAbilityControlManager {
|
|||||||
|
|
||||||
private boolean isOn;
|
private boolean isOn;
|
||||||
|
|
||||||
private Map<AbilityKey, Boolean> table;
|
private Map<String, Boolean> table;
|
||||||
|
|
||||||
private AbilityUpdateEvent(){}
|
private AbilityUpdateEvent(){}
|
||||||
|
|
||||||
public Map<AbilityKey, Boolean> getAbilityTable() {
|
public Map<String, Boolean> getAbilityTable() {
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTable(Map<AbilityKey, Boolean> abilityTable) {
|
public void setTable(Map<String, Boolean> abilityTable) {
|
||||||
this.table = abilityTable;
|
this.table = abilityTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ public abstract class Connection implements Requester {
|
|||||||
|
|
||||||
protected RpcClient.ServerInfo serverInfo;
|
protected RpcClient.ServerInfo serverInfo;
|
||||||
|
|
||||||
protected Map<AbilityKey, Boolean> abilityTable;
|
protected Map<String, Boolean> abilityTable;
|
||||||
|
|
||||||
public Connection(RpcClient.ServerInfo serverInfo) {
|
public Connection(RpcClient.ServerInfo serverInfo) {
|
||||||
this.serverInfo = serverInfo;
|
this.serverInfo = serverInfo;
|
||||||
@ -52,13 +52,13 @@ public abstract class Connection implements Requester {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public AbilityStatus getConnectionAbility(AbilityKey abilityKey) {
|
public AbilityStatus getConnectionAbility(AbilityKey abilityKey) {
|
||||||
if (abilityTable == null) {
|
if (abilityTable == null || !abilityTable.containsKey(abilityKey.getName())) {
|
||||||
return AbilityStatus.UNKNOWN;
|
return AbilityStatus.UNKNOWN;
|
||||||
}
|
}
|
||||||
return abilityTable.getOrDefault(abilityKey, false) ? AbilityStatus.SUPPORTED : AbilityStatus.NOT_SUPPORTED;
|
return abilityTable.get(abilityKey.getName()) ? AbilityStatus.SUPPORTED : AbilityStatus.NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAbilityTable(Map<AbilityKey, Boolean> abilityTable) {
|
public void setAbilityTable(Map<String, Boolean> abilityTable) {
|
||||||
this.abilityTable = abilityTable;
|
this.abilityTable = abilityTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -356,14 +356,10 @@ public abstract class GrpcClient extends RpcClient {
|
|||||||
grpcConn.setConnectionId(connectionId);
|
grpcConn.setConnectionId(connectionId);
|
||||||
// if not supported, it will be null
|
// if not supported, it will be null
|
||||||
if (serverCheckResponse.getAbilities() != null) {
|
if (serverCheckResponse.getAbilities() != null) {
|
||||||
Map<AbilityKey, Boolean> abilityTable = mapAndFilter(serverCheckResponse.getAbilities());
|
|
||||||
// mark
|
// mark
|
||||||
markForSetup.put(serverCheckResponse.getConnectionId(), new CountDownLatch(1));
|
markForSetup.put(serverCheckResponse.getConnectionId(), new CountDownLatch(1));
|
||||||
// combine with current node abilities
|
|
||||||
// in order to get abilities current node provides
|
|
||||||
NacosAbilityManagerHolder.getInstance().combine(abilityTable);
|
|
||||||
// set server abilities to connection
|
// set server abilities to connection
|
||||||
grpcConn.setAbilityTable(abilityTable);
|
grpcConn.setAbilityTable(serverCheckResponse.getAbilities());
|
||||||
}
|
}
|
||||||
|
|
||||||
//create stream request and bind connection event to this connection.
|
//create stream request and bind connection event to this connection.
|
||||||
@ -378,7 +374,7 @@ public abstract class GrpcClient extends RpcClient {
|
|||||||
conSetupRequest.setClientVersion(VersionUtils.getFullClientVersion());
|
conSetupRequest.setClientVersion(VersionUtils.getFullClientVersion());
|
||||||
conSetupRequest.setLabels(super.getLabels());
|
conSetupRequest.setLabels(super.getLabels());
|
||||||
// set ability table
|
// set ability table
|
||||||
conSetupRequest.setAbilityTable(serverCheckResponse.getAbilities());
|
conSetupRequest.setAbilityTable(NacosAbilityManagerHolder.getInstance().getCurrentNodeAbilities());
|
||||||
conSetupRequest.setTenant(super.getTenant());
|
conSetupRequest.setTenant(super.getTenant());
|
||||||
grpcConn.sendRequest(conSetupRequest);
|
grpcConn.sendRequest(conSetupRequest);
|
||||||
// wait for response
|
// wait for response
|
||||||
@ -404,32 +400,6 @@ public abstract class GrpcClient extends RpcClient {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**.
|
|
||||||
* filter the ability current node not support, map to enum
|
|
||||||
*
|
|
||||||
* @param originClientAbilities origin client abilities
|
|
||||||
* @return enum map
|
|
||||||
*/
|
|
||||||
private Map<AbilityKey, Boolean> mapAndFilter(Map<String, Boolean> originClientAbilities) {
|
|
||||||
Map<AbilityKey, Boolean> res = new HashMap<>(originClientAbilities.size());
|
|
||||||
Iterator<Map.Entry<String, Boolean>> iterator = originClientAbilities.entrySet().iterator();
|
|
||||||
|
|
||||||
// filter ability current node not support
|
|
||||||
AbstractAbilityControlManager instance = NacosAbilityManagerHolder.getInstance();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
Map.Entry<String, Boolean> next = iterator.next();
|
|
||||||
AbilityKey anEnum = AbilityKey.getEnum(next.getKey());
|
|
||||||
if (anEnum != null) {
|
|
||||||
// whether support
|
|
||||||
boolean isRunning = instance.isCurrentNodeAbilityRunning(anEnum) && next.getValue();
|
|
||||||
res.put(anEnum, isRunning);
|
|
||||||
// if not support
|
|
||||||
originClientAbilities.replace(next.getKey(), isRunning);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterReset(ConnectResetRequest request) {
|
protected void afterReset(ConnectResetRequest request) {
|
||||||
String connectionId = request.getConnectionId();
|
String connectionId = request.getConnectionId();
|
||||||
|
@ -38,16 +38,16 @@ public class ServerAbilityControlManager extends AbstractAbilityControlManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Map<AbilityKey, Boolean> initCurrentNodeAbilities() {
|
protected Map<String, Boolean> initCurrentNodeAbilities() {
|
||||||
// static abilities
|
// static abilities
|
||||||
Map<AbilityKey, Boolean> staticAbilities = ServerAbilities.getStaticAbilities();
|
Map<String, Boolean> staticAbilities = AbilityKey.mapStr(ServerAbilities.getStaticAbilities());
|
||||||
// all function server can support
|
// all function server can support
|
||||||
Set<AbilityKey> abilityKeys = staticAbilities.keySet();
|
Set<String> abilityKeys = staticAbilities.keySet();
|
||||||
Map<AbilityKey, Boolean> abilityTable = new HashMap<>(abilityKeys.size());
|
Map<String, Boolean> abilityTable = new HashMap<>(abilityKeys.size());
|
||||||
// if not define in config, then load from ServerAbilities
|
// if not define in config, then load from ServerAbilities
|
||||||
Set<AbilityKey> unIncludedInConfig = new HashSet<>();
|
Set<String> unIncludedInConfig = new HashSet<>();
|
||||||
abilityKeys.forEach(abilityKey -> {
|
abilityKeys.forEach(abilityKey -> {
|
||||||
String key = AbilityConfigs.PREFIX + abilityKey.getName();
|
String key = AbilityConfigs.PREFIX + abilityKey;
|
||||||
try {
|
try {
|
||||||
Boolean property = EnvUtil.getProperty(key, Boolean.class);
|
Boolean property = EnvUtil.getProperty(key, Boolean.class);
|
||||||
// if not null
|
// if not null
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
package com.alibaba.nacos.core.remote;
|
package com.alibaba.nacos.core.remote;
|
||||||
|
|
||||||
import com.alibaba.nacos.api.ability.ClientAbilities;
|
import com.alibaba.nacos.api.ability.ClientAbilities;
|
||||||
import com.alibaba.nacos.api.ability.constant.AbilityKey;
|
|
||||||
import com.alibaba.nacos.api.remote.Requester;
|
import com.alibaba.nacos.api.remote.Requester;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -33,7 +32,7 @@ public abstract class Connection implements Requester {
|
|||||||
|
|
||||||
private boolean traced = false;
|
private boolean traced = false;
|
||||||
|
|
||||||
private Map<AbilityKey, Boolean> abilityTable;
|
private Map<String, Boolean> abilityTable;
|
||||||
|
|
||||||
private ClientAbilities abilities;
|
private ClientAbilities abilities;
|
||||||
|
|
||||||
@ -55,11 +54,11 @@ public abstract class Connection implements Requester {
|
|||||||
this.traced = traced;
|
this.traced = traced;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAbilityTable(Map<AbilityKey, Boolean> abilityTable) {
|
public void setAbilityTable(Map<String, Boolean> abilityTable) {
|
||||||
this.abilityTable = abilityTable;
|
this.abilityTable = abilityTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<AbilityKey, Boolean> getAbilityTable() {
|
public Map<String, Boolean> getAbilityTable() {
|
||||||
return this.abilityTable;
|
return this.abilityTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,9 +126,7 @@ public class GrpcBiStreamRequestAcceptor extends BiRequestStreamGrpc.BiRequestSt
|
|||||||
// null if supported
|
// null if supported
|
||||||
if (setUpRequest.getAbilityTable() != null) {
|
if (setUpRequest.getAbilityTable() != null) {
|
||||||
// map to table
|
// map to table
|
||||||
Map<AbilityKey, Boolean> clientAbilities = AbilityKey
|
connection.setAbilityTable(setUpRequest.getAbilityTable());
|
||||||
.mapEnum(setUpRequest.getAbilityTable());
|
|
||||||
connection.setAbilityTable(clientAbilities);
|
|
||||||
}
|
}
|
||||||
boolean rejectSdkOnStarting = metaInfo.isSdkSource() && !ApplicationUtils.isStarted();
|
boolean rejectSdkOnStarting = metaInfo.isSdkSource() && !ApplicationUtils.isStarted();
|
||||||
|
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package com.alibaba.nacos.core.remote.grpc;
|
package com.alibaba.nacos.core.remote.grpc;
|
||||||
|
|
||||||
import com.alibaba.nacos.api.ability.constant.AbilityKey;
|
|
||||||
import com.alibaba.nacos.api.exception.NacosException;
|
import com.alibaba.nacos.api.exception.NacosException;
|
||||||
import com.alibaba.nacos.api.grpc.auto.Payload;
|
import com.alibaba.nacos.api.grpc.auto.Payload;
|
||||||
import com.alibaba.nacos.api.grpc.auto.RequestGrpc;
|
import com.alibaba.nacos.api.grpc.auto.RequestGrpc;
|
||||||
@ -91,8 +90,8 @@ public class GrpcRequestAcceptor extends RequestGrpc.RequestImplBase {
|
|||||||
// server check.
|
// server check.
|
||||||
if (ServerCheckRequest.class.getSimpleName().equals(type)) {
|
if (ServerCheckRequest.class.getSimpleName().equals(type)) {
|
||||||
Payload serverCheckResponseP = GrpcUtils.convert(new ServerCheckResponse(CONTEXT_KEY_CONN_ID.get(),
|
Payload serverCheckResponseP = GrpcUtils.convert(new ServerCheckResponse(CONTEXT_KEY_CONN_ID.get(),
|
||||||
// to str map
|
// abilities current node supporting
|
||||||
AbilityKey.mapStr(NacosAbilityManagerHolder.getInstance().getCurrentNodeAbilities())));
|
NacosAbilityManagerHolder.getInstance().getCurrentNodeAbilities()));
|
||||||
traceIfNecessary(serverCheckResponseP, false);
|
traceIfNecessary(serverCheckResponseP, false);
|
||||||
responseObserver.onNext(serverCheckResponseP);
|
responseObserver.onNext(serverCheckResponseP);
|
||||||
responseObserver.onCompleted();
|
responseObserver.onCompleted();
|
||||||
|
@ -39,8 +39,8 @@ public class AbilityControlManagerTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void inject() {
|
public void inject() {
|
||||||
Map<AbilityKey, Boolean> newTable = new HashMap<>();
|
Map<String, Boolean> newTable = new HashMap<>();
|
||||||
newTable.put(AbilityKey.TEST_1, true);
|
newTable.put(AbilityKey.TEST_1.getName(), true);
|
||||||
serverAbilityControlManager.setCurrentSupportingAbility(newTable);
|
serverAbilityControlManager.setCurrentSupportingAbility(newTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,18 +88,18 @@ public class AbilityControlManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCurrentNodeAbility() {
|
public void testCurrentNodeAbility() {
|
||||||
Set<AbilityKey> keySet = serverAbilityControlManager.getCurrentNodeAbilities().keySet();
|
Set<String> keySet = serverAbilityControlManager.getCurrentNodeAbilities().keySet();
|
||||||
// diable all
|
// diable all
|
||||||
keySet.forEach(key -> serverAbilityControlManager.disableCurrentNodeAbility(key));
|
keySet.forEach(key -> serverAbilityControlManager.disableCurrentNodeAbility(AbilityKey.getEnum(key)));
|
||||||
// get all
|
// get all
|
||||||
keySet.forEach(key -> {
|
keySet.forEach(key -> {
|
||||||
Assert.assertFalse(serverAbilityControlManager.isCurrentNodeAbilityRunning(key));
|
Assert.assertFalse(serverAbilityControlManager.isCurrentNodeAbilityRunning(AbilityKey.getEnum(key)));
|
||||||
});
|
});
|
||||||
// enable all
|
// enable all
|
||||||
keySet.forEach(key -> serverAbilityControlManager.enableCurrentNodeAbility(key));
|
keySet.forEach(key -> serverAbilityControlManager.enableCurrentNodeAbility(AbilityKey.getEnum(key)));
|
||||||
// get all
|
// get all
|
||||||
keySet.forEach(key -> {
|
keySet.forEach(key -> {
|
||||||
Assert.assertTrue(serverAbilityControlManager.isCurrentNodeAbilityRunning(key));
|
Assert.assertTrue(serverAbilityControlManager.isCurrentNodeAbilityRunning(AbilityKey.getEnum(key)));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ import java.util.Map;
|
|||||||
public class TestServerAbilityControlManager extends ServerAbilityControlManager {
|
public class TestServerAbilityControlManager extends ServerAbilityControlManager {
|
||||||
|
|
||||||
@JustForTest
|
@JustForTest
|
||||||
public void setCurrentSupportingAbility(Map<AbilityKey, Boolean> ability) {
|
public void setCurrentSupportingAbility(Map<String, Boolean> ability) {
|
||||||
currentRunningAbility.clear();
|
currentRunningAbility.clear();
|
||||||
currentRunningAbility.putAll(ability);
|
currentRunningAbility.putAll(ability);
|
||||||
}
|
}
|
||||||
|
@ -60,9 +60,9 @@ public class AbilityConfigsTest {
|
|||||||
|
|
||||||
void inject(AbilityConfigs abilityConfigs) {
|
void inject(AbilityConfigs abilityConfigs) {
|
||||||
TestServerAbilityControlManager serverAbilityControlManager = new TestServerAbilityControlManager();
|
TestServerAbilityControlManager serverAbilityControlManager = new TestServerAbilityControlManager();
|
||||||
Map<AbilityKey, Boolean> newTable = new HashMap<>();
|
Map<String, Boolean> newTable = new HashMap<>();
|
||||||
newTable.put(AbilityKey.TEST_1, true);
|
newTable.put(AbilityKey.TEST_1.getName(), true);
|
||||||
newTable.put(AbilityKey.TEST_2, true);
|
newTable.put(AbilityKey.TEST_2.getName(), true);
|
||||||
serverAbilityControlManager.setCurrentSupportingAbility(newTable);
|
serverAbilityControlManager.setCurrentSupportingAbility(newTable);
|
||||||
abilityConfigs.setAbilityHandlerRegistry(serverAbilityControlManager);
|
abilityConfigs.setAbilityHandlerRegistry(serverAbilityControlManager);
|
||||||
this.serverAbilityControlManager = serverAbilityControlManager;
|
this.serverAbilityControlManager = serverAbilityControlManager;
|
||||||
|
Loading…
Reference in New Issue
Block a user