diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/DefaultSelfUpgradeChecker.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/DefaultSelfUpgradeChecker.java deleted file mode 100644 index ac8ddc9b9..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/DefaultSelfUpgradeChecker.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade; - -import com.alibaba.nacos.naming.core.ServiceManager; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.delay.DoubleWriteDelayTaskEngine; -import com.alibaba.nacos.naming.monitor.MetricsMonitor; - -/** - * Default upgrade checker for self node. - * - * @author xiweng.yy - */ -public class DefaultSelfUpgradeChecker implements SelfUpgradeChecker { - - private static final String DEFAULT = "default"; - - @Override - public String checkType() { - return DEFAULT; - } - - @Override - public boolean isReadyToUpgrade(ServiceManager serviceManager, DoubleWriteDelayTaskEngine taskEngine) { - return checkServiceAndInstanceNumber(serviceManager) && checkDoubleWriteStatus(taskEngine); - } - - private boolean checkServiceAndInstanceNumber(ServiceManager serviceManager) { - boolean result = serviceManager.getServiceCount() == MetricsMonitor.getDomCountMonitor().get(); - result &= serviceManager.getInstanceCount() == MetricsMonitor.getIpCountMonitor().get(); - return result; - } - - private boolean checkDoubleWriteStatus(DoubleWriteDelayTaskEngine taskEngine) { - return taskEngine.isEmpty(); - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/SelfUpgradeChecker.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/SelfUpgradeChecker.java deleted file mode 100644 index e32c1ed09..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/SelfUpgradeChecker.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade; - -import com.alibaba.nacos.naming.core.ServiceManager; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.delay.DoubleWriteDelayTaskEngine; - -/** - * Upgrade checker for self-node to judge whether current node is ready to upgrade. - * - * @author xiweng.yy - */ -public interface SelfUpgradeChecker { - - /** - * Get the check type of this self upgrade checker. - * - * @return type - */ - String checkType(); - - /** - * Judge whether current node is ready to upgrade. - * - * @param serviceManager service manager for v1 mode. - * @param taskEngine double write task engine - * @return {@code true} if current node is ready to upgrade, otherwise {@code false} - */ - boolean isReadyToUpgrade(ServiceManager serviceManager, DoubleWriteDelayTaskEngine taskEngine); -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/SelfUpgradeCheckerSpiHolder.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/SelfUpgradeCheckerSpiHolder.java deleted file mode 100644 index 460fef491..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/SelfUpgradeCheckerSpiHolder.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade; - -import com.alibaba.nacos.common.spi.NacosServiceLoader; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -/** - * SPI holder for self upgrade checker. - * - * @author xiweng.yy - */ -public class SelfUpgradeCheckerSpiHolder { - - private static final SelfUpgradeCheckerSpiHolder INSTANCE = new SelfUpgradeCheckerSpiHolder(); - - private static final DefaultSelfUpgradeChecker DEFAULT_SELF_UPGRADE_CHECKER = new DefaultSelfUpgradeChecker(); - - private final Map selfUpgradeCheckerMap; - - private SelfUpgradeCheckerSpiHolder() { - Collection checkers = NacosServiceLoader.load(SelfUpgradeChecker.class); - selfUpgradeCheckerMap = new HashMap<>(checkers.size()); - for (SelfUpgradeChecker each : checkers) { - selfUpgradeCheckerMap.put(each.checkType(), each); - } - } - - /** - * Find target type self checker. - * - * @param type target type - * @return target {@link SelfUpgradeChecker} if exist, otherwise {@link DefaultSelfUpgradeChecker} - */ - public static SelfUpgradeChecker findSelfChecker(String type) { - return INSTANCE.selfUpgradeCheckerMap.getOrDefault(type, DEFAULT_SELF_UPGRADE_CHECKER); - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/UpgradeJudgement.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/UpgradeJudgement.java deleted file mode 100644 index 688f97aa4..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/UpgradeJudgement.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade; - -import com.alibaba.nacos.common.JustForTest; -import com.alibaba.nacos.common.executor.ExecutorFactory; -import com.alibaba.nacos.common.executor.NameThreadFactory; -import com.alibaba.nacos.common.notify.Event; -import com.alibaba.nacos.common.notify.NotifyCenter; -import com.alibaba.nacos.common.notify.listener.Subscriber; -import com.alibaba.nacos.core.cluster.Member; -import com.alibaba.nacos.core.cluster.MemberMetaDataConstants; -import com.alibaba.nacos.core.cluster.MembersChangeEvent; -import com.alibaba.nacos.core.cluster.ServerMemberManager; -import com.alibaba.nacos.naming.core.ServiceManager; -import com.alibaba.nacos.naming.core.v2.pojo.Service; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.RefreshStorageDataTask; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.delay.DoubleWriteDelayTaskEngine; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.execute.AsyncServicesCheckTask; -import com.alibaba.nacos.naming.misc.Loggers; -import com.alibaba.nacos.naming.misc.NamingExecuteTaskDispatcher; -import com.alibaba.nacos.sys.env.EnvUtil; -import org.codehaus.jackson.Version; -import org.codehaus.jackson.util.VersionUtil; -import org.springframework.stereotype.Component; - -import javax.annotation.PreDestroy; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Ability judgement during upgrading. - * - * @author xiweng.yy - */ -@Component -public class UpgradeJudgement extends Subscriber { - - /** - * Only when all cluster upgrade upper 2.0.0, this features is true. - */ - private final AtomicBoolean useGrpcFeatures = new AtomicBoolean(false); - - /** - * Only when all cluster upgrade upper 1.4.0, this features is true. - */ - private final AtomicBoolean useJraftFeatures = new AtomicBoolean(false); - - private final AtomicBoolean all20XVersion = new AtomicBoolean(false); - - private final ServerMemberManager memberManager; - - private final ServiceManager serviceManager; - - private final DoubleWriteDelayTaskEngine doubleWriteDelayTaskEngine; - - private ScheduledExecutorService upgradeChecker; - - private SelfUpgradeChecker selfUpgradeChecker; - - private static final int MAJOR_VERSION = 2; - - private static final int MINOR_VERSION = 4; - - public UpgradeJudgement(ServerMemberManager memberManager, ServiceManager serviceManager, - UpgradeStates upgradeStates, DoubleWriteDelayTaskEngine doubleWriteDelayTaskEngine) { - this.memberManager = memberManager; - this.serviceManager = serviceManager; - this.doubleWriteDelayTaskEngine = doubleWriteDelayTaskEngine; - Boolean upgraded = upgradeStates.isUpgraded(); - upgraded = upgraded != null && upgraded; - boolean isStandaloneMode = EnvUtil.getStandaloneMode(); - boolean isSupportUpgradeFrom1X = EnvUtil.isSupportUpgradeFrom1X(); - if (isStandaloneMode || upgraded || !isSupportUpgradeFrom1X) { - useGrpcFeatures.set(true); - useJraftFeatures.set(true); - all20XVersion.set(true); - } - if (!isStandaloneMode && isSupportUpgradeFrom1X) { - initUpgradeChecker(); - NotifyCenter.registerSubscriber(this); - } - } - - private void initUpgradeChecker() { - selfUpgradeChecker = SelfUpgradeCheckerSpiHolder - .findSelfChecker(EnvUtil.getProperty("upgrading.checker.type", "default")); - upgradeChecker = ExecutorFactory.newSingleScheduledExecutorService(new NameThreadFactory("upgrading.checker")); - upgradeChecker.scheduleAtFixedRate(() -> { - if (isUseGrpcFeatures()) { - return; - } - boolean canUpgrade = checkForUpgrade(); - Loggers.SRV_LOG.info("upgrade check result {}", canUpgrade); - if (canUpgrade) { - doUpgrade(); - } - }, 100L, 5000L, TimeUnit.MILLISECONDS); - } - - @JustForTest - void setUseGrpcFeatures(boolean value) { - useGrpcFeatures.set(value); - } - - @JustForTest - void setUseJraftFeatures(boolean value) { - useJraftFeatures.set(value); - } - - public boolean isUseGrpcFeatures() { - return useGrpcFeatures.get(); - } - - public boolean isUseJraftFeatures() { - return useJraftFeatures.get(); - } - - public boolean isAll20XVersion() { - return all20XVersion.get(); - } - - @Override - public void onEvent(MembersChangeEvent event) { - if (!event.hasTriggers()) { - Loggers.SRV_LOG - .info("Member change without no trigger. " + "It may be triggered by member lookup on startup. " - + "Skip."); - return; - } - Loggers.SRV_LOG.info("member change, event: {}", event); - for (Member each : event.getTriggers()) { - Object versionStr = each.getExtendVal(MemberMetaDataConstants.VERSION); - // come from below 1.3.0 - if (null == versionStr) { - checkAndDowngrade(false); - all20XVersion.set(false); - return; - } - Version version = VersionUtil.parseVersion(versionStr.toString()); - if (version.getMajorVersion() < MAJOR_VERSION) { - checkAndDowngrade(version.getMinorVersion() >= MINOR_VERSION); - all20XVersion.set(false); - return; - } - } - all20XVersion.set(true); - } - - private void checkAndDowngrade(boolean jraftFeature) { - boolean isDowngradeGrpc = useGrpcFeatures.compareAndSet(true, false); - boolean isDowngradeJraft = useJraftFeatures.getAndSet(jraftFeature); - if (isDowngradeGrpc && isDowngradeJraft && !jraftFeature) { - Loggers.SRV_LOG.info("Downgrade to 1.X"); - NotifyCenter.publishEvent(new UpgradeStates.UpgradeStateChangedEvent(false)); - } - } - - private boolean checkForUpgrade() { - if (!useGrpcFeatures.get()) { - boolean selfCheckResult = selfUpgradeChecker.isReadyToUpgrade(serviceManager, doubleWriteDelayTaskEngine); - Member self = memberManager.getSelf(); - self.setExtendVal(MemberMetaDataConstants.READY_TO_UPGRADE, selfCheckResult); - memberManager.updateMember(self); - if (!selfCheckResult) { - NamingExecuteTaskDispatcher.getInstance().dispatchAndExecuteTask(AsyncServicesCheckTask.class, - new AsyncServicesCheckTask(doubleWriteDelayTaskEngine, this)); - } - } - boolean result = true; - for (Member each : memberManager.allMembers()) { - Object isReadyToUpgrade = each.getExtendVal(MemberMetaDataConstants.READY_TO_UPGRADE); - result &= null != isReadyToUpgrade && (boolean) isReadyToUpgrade; - } - return result; - } - - private void doUpgrade() { - Loggers.SRV_LOG.info("Upgrade to 2.0.X"); - useGrpcFeatures.compareAndSet(false, true); - NotifyCenter.publishEvent(new UpgradeStates.UpgradeStateChangedEvent(true)); - useJraftFeatures.set(true); - refreshPersistentServices(); - } - - private void refreshPersistentServices() { - for (String each : com.alibaba.nacos.naming.core.v2.ServiceManager.getInstance().getAllNamespaces()) { - for (Service service : com.alibaba.nacos.naming.core.v2.ServiceManager.getInstance().getSingletons(each)) { - NamingExecuteTaskDispatcher.getInstance() - .dispatchAndExecuteTask(service, new RefreshStorageDataTask(service)); - } - } - } - - @Override - public Class subscribeType() { - return MembersChangeEvent.class; - } - - /** - * Shut down. - */ - @PreDestroy - public void shutdown() { - if (null != upgradeChecker) { - upgradeChecker.shutdownNow(); - } - NotifyCenter.deregisterSubscriber(this); - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/UpgradeStates.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/UpgradeStates.java deleted file mode 100644 index 548fe5342..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/UpgradeStates.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 1999-2021 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade; - -import com.alibaba.nacos.common.notify.Event; -import com.alibaba.nacos.common.notify.NotifyCenter; -import com.alibaba.nacos.common.notify.listener.Subscriber; -import com.alibaba.nacos.naming.misc.Loggers; -import com.alibaba.nacos.sys.env.EnvUtil; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.file.FileAlreadyExistsException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; -import java.util.Properties; - -/** - * Persist upgrade states to disk. - * - * @author gengtuo.ygt - * on 2021/5/18 - */ -@Component -public class UpgradeStates extends Subscriber { - - private static final String FILE_NAME = "upgrade.state"; - - private static final String UPGRADED_KEY = "upgraded"; - - public static final Path UPGRADE_STATE_FILE = - Paths.get(EnvUtil.getNacosHome() + File.separator + "data" + File.separator + FILE_NAME); - - private final Properties properties = new Properties(); - - @PostConstruct - private void init() throws IOException { - if (Files.isDirectory(UPGRADE_STATE_FILE)) { - throw new IOException(UPGRADE_STATE_FILE + " is a directory"); - } - try { - Files.createDirectories(UPGRADE_STATE_FILE.getParent().toAbsolutePath()); - } catch (FileAlreadyExistsException ignored) { - } - readFromDisk(); - NotifyCenter.registerSubscriber(this); - } - - @PreDestroy - private void destroy() throws IOException { - writeToDisk(); - } - - private void readFromDisk() { - try { - if (Files.notExists(UPGRADE_STATE_FILE)) { - Loggers.SRV_LOG.info("{} file is not exist", FILE_NAME); - return; - } - if (Files.isRegularFile(UPGRADE_STATE_FILE)) { - try (InputStream is = Files.newInputStream(UPGRADE_STATE_FILE)) { - properties.load(is); - } - } - } catch (Exception e) { - Loggers.SRV_LOG.error("Failed to load file " + UPGRADE_STATE_FILE, e); - throw new IllegalStateException(e); - } - } - - private void writeToDisk() throws IOException { - try (OutputStream os = Files.newOutputStream(UPGRADE_STATE_FILE, - StandardOpenOption.CREATE, StandardOpenOption.WRITE)) { - properties.store(os, null); - } - } - - /** - * Cluster has been upgraded at recent process. - * - * @return Has been upgraded - */ - public Boolean isUpgraded() { - String value = properties.getProperty(UPGRADED_KEY); - if (value == null) { - return null; - } - return Boolean.parseBoolean(value); - } - - @Override - public void onEvent(UpgradeStateChangedEvent event) { - properties.setProperty(UPGRADED_KEY, String.valueOf(event.isUpgraded)); - try { - writeToDisk(); - } catch (IOException e) { - Loggers.EVT_LOG.error("Failed to write " + FILE_NAME + " to disk", e); - } - } - - @Override - public Class subscribeType() { - return UpgradeStateChangedEvent.class; - } - - public static class UpgradeStateChangedEvent extends Event { - - private final boolean isUpgraded; - - public UpgradeStateChangedEvent(boolean isUpgraded) { - this.isUpgraded = isUpgraded; - } - - public boolean isUpgraded() { - return isUpgraded; - } - - } - -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/RefreshStorageDataTask.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/RefreshStorageDataTask.java deleted file mode 100644 index 5987ac632..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/RefreshStorageDataTask.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade.doublewrite; - -import com.alibaba.nacos.common.task.AbstractExecuteTask; -import com.alibaba.nacos.naming.core.v2.index.ServiceStorage; -import com.alibaba.nacos.naming.core.v2.pojo.Service; -import com.alibaba.nacos.sys.utils.ApplicationUtils; - -/** - * Refresh service storage cache data when upgrading. - * - * @author xiweng.yy - */ -public class RefreshStorageDataTask extends AbstractExecuteTask { - - private final Service service; - - public RefreshStorageDataTask(Service service) { - this.service = service; - } - - @Override - public void run() { - ApplicationUtils.getBean(ServiceStorage.class).getPushData(service); - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/AsyncServicesCheckTask.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/AsyncServicesCheckTask.java deleted file mode 100644 index 5c765c601..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/AsyncServicesCheckTask.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.execute; - -import com.alibaba.nacos.api.naming.pojo.ServiceInfo; -import com.alibaba.nacos.api.naming.utils.NamingUtils; -import com.alibaba.nacos.common.task.AbstractExecuteTask; -import com.alibaba.nacos.naming.core.Service; -import com.alibaba.nacos.naming.core.ServiceManager; -import com.alibaba.nacos.naming.core.v2.index.ServiceStorage; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.delay.DoubleWriteAction; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.delay.DoubleWriteContent; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.delay.DoubleWriteDelayTaskEngine; -import com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.delay.ServiceChangeV1Task; -import com.alibaba.nacos.naming.misc.Loggers; -import com.alibaba.nacos.sys.utils.ApplicationUtils; - -import java.util.HashMap; -import java.util.Map; - -/** - * Async services check task for upgrading. - * - * @author xiweng.yy - */ -public class AsyncServicesCheckTask extends AbstractExecuteTask { - - private final DoubleWriteDelayTaskEngine doubleWriteDelayTaskEngine; - - private final UpgradeJudgement upgradeJudgement; - - private static final int INITIALCAPACITY = 64; - - public AsyncServicesCheckTask(DoubleWriteDelayTaskEngine doubleWriteDelayTaskEngine, - UpgradeJudgement upgradeJudgement) { - this.doubleWriteDelayTaskEngine = doubleWriteDelayTaskEngine; - this.upgradeJudgement = upgradeJudgement; - } - - @Override - public void run() { - if (upgradeJudgement.isUseGrpcFeatures()) { - return; - } - try { - ServiceManager serviceManager = ApplicationUtils.getBean(ServiceManager.class); - ServiceStorage serviceStorage = ApplicationUtils.getBean(ServiceStorage.class); - Map v1Services = new HashMap<>(INITIALCAPACITY); - for (String each : serviceManager.getAllNamespaces()) { - for (Map.Entry entry : serviceManager.chooseServiceMap(each).entrySet()) { - v1Services.put(buildServiceKey(each, entry.getKey()), entry.getValue()); - checkService(each, entry.getKey(), entry.getValue(), serviceStorage); - } - } - Map v2Services = new HashMap<>(INITIALCAPACITY); - for (String each : com.alibaba.nacos.naming.core.v2.ServiceManager.getInstance().getAllNamespaces()) { - for (com.alibaba.nacos.naming.core.v2.pojo.Service serviceV2 - : com.alibaba.nacos.naming.core.v2.ServiceManager.getInstance().getSingletons(each)) { - v2Services.put(buildServiceKey(each, serviceV2.getGroupedServiceName()), serviceV2); - } - } - // only check v2 services when upgrading. - v2Services.keySet().removeIf(v1Services::containsKey); - if (v2Services.isEmpty()) { - return; - } - if (Loggers.SRV_LOG.isDebugEnabled()) { - Loggers.SRV_LOG.debug("{} service in v2 to removed.", v2Services.size()); - } - for (com.alibaba.nacos.naming.core.v2.pojo.Service service : v2Services.values()) { - deleteV2Service(service); - } - } catch (Exception e) { - Loggers.SRV_LOG.warn("async check for service error", e); - } - } - - private String buildServiceKey(String namespace, String fullServiceName) { - return namespace + "##" + fullServiceName; - } - - private void checkService(String namespace, String fullServiceName, Service serviceV1, - ServiceStorage serviceStorage) { - if (upgradeJudgement.isUseGrpcFeatures()) { - return; - } - String groupName = NamingUtils.getGroupName(serviceV1.getName()); - String serviceName = NamingUtils.getServiceName(fullServiceName); - com.alibaba.nacos.naming.core.v2.pojo.Service serviceV2 = com.alibaba.nacos.naming.core.v2.pojo.Service - .newService(namespace, groupName, serviceName); - ServiceInfo serviceInfo = serviceStorage.getData(serviceV2); - if (serviceV1.allIPs().size() != serviceInfo.getHosts().size()) { - boolean isEphemeral = serviceV1.allIPs(false).isEmpty(); - String key = ServiceChangeV1Task.getKey(namespace, fullServiceName, isEphemeral); - ServiceChangeV1Task task = new ServiceChangeV1Task(namespace, fullServiceName, isEphemeral, - DoubleWriteContent.INSTANCE); - doubleWriteDelayTaskEngine.addTask(key, task); - } - } - - private void deleteV2Service(com.alibaba.nacos.naming.core.v2.pojo.Service serviceV2) { - if (upgradeJudgement.isUseGrpcFeatures()) { - return; - } - String namespace = serviceV2.getNamespace(); - String serviceName = serviceV2.getGroupedServiceName(); - boolean ephemeral = serviceV2.isEphemeral(); - String key = ServiceChangeV1Task.getKey(namespace, serviceName, ephemeral); - ServiceChangeV1Task task = new ServiceChangeV1Task(namespace, serviceName, - ephemeral, DoubleWriteContent.BOTH, DoubleWriteAction.REMOVE); - doubleWriteDelayTaskEngine.addTask(key, task); - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/DefaultInstanceUpgradeHelper.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/DefaultInstanceUpgradeHelper.java deleted file mode 100644 index e1d37ebe6..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/DefaultInstanceUpgradeHelper.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.execute; - -import com.alibaba.nacos.naming.core.Instance; -import org.springframework.beans.BeanUtils; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * A default implementation for instance upgrade/downgrade. - * - * @author gengtuo.ygt - * on 2021/2/25 - */ -public class DefaultInstanceUpgradeHelper implements InstanceUpgradeHelper { - - private static final String IGNORE_PROPERTIES = "metadata"; - - /** - * Fallback to default implementation when no other impls met. - */ - @Configuration - public static class Config { - - /** - * A default impl of instance upgrade helper. - * - * @return default impl of instance upgrade helper - */ - @Bean - @ConditionalOnMissingBean(InstanceUpgradeHelper.class) - public InstanceUpgradeHelper defaultInstanceUpgradeHelper() { - return new DefaultInstanceUpgradeHelper(); - } - - } - - @Override - public Instance toV1(com.alibaba.nacos.api.naming.pojo.Instance v2) { - Instance v1 = new Instance(v2.getIp(), v2.getPort(), v2.getClusterName()); - BeanUtils.copyProperties(v2, v1); - return v1; - } - - @Override - public com.alibaba.nacos.api.naming.pojo.Instance toV2(Instance v1) { - com.alibaba.nacos.api.naming.pojo.Instance v2 = new com.alibaba.nacos.api.naming.pojo.Instance(); - BeanUtils.copyProperties(v1, v2, IGNORE_PROPERTIES); - v2.getMetadata().putAll(v1.getMetadata()); - return v2; - } - -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/DefaultServiceMetadataUpgradeHelper.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/DefaultServiceMetadataUpgradeHelper.java deleted file mode 100644 index c339125fe..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/doublewrite/execute/DefaultServiceMetadataUpgradeHelper.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.core.v2.upgrade.doublewrite.execute; - -import com.alibaba.nacos.naming.core.Cluster; -import com.alibaba.nacos.naming.core.Service; -import com.alibaba.nacos.naming.core.v2.metadata.ClusterMetadata; -import com.alibaba.nacos.naming.core.v2.metadata.ServiceMetadata; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import java.util.Map; - -/** - * A default implementation for service/cluster upgrade/downgrade. - * - * @author gengtuo.ygt - * on 2021/2/25 - */ -public class DefaultServiceMetadataUpgradeHelper implements ServiceMetadataUpgradeHelper { - - /** - * Fallback to default implementation when no other impls met. - */ - @Configuration - public static class Config { - - /** - * A default impl of service/cluster upgrade helper. - * - * @return default impl of service/cluster upgrade helper - */ - @Bean - @ConditionalOnMissingBean(ServiceMetadataUpgradeHelper.class) - public ServiceMetadataUpgradeHelper defaultServiceMetadataUpgradeHelper() { - return new DefaultServiceMetadataUpgradeHelper(); - } - - } - - @Override - public Service toV1Service(Service v1, com.alibaba.nacos.naming.core.v2.pojo.Service v2, ServiceMetadata v2meta) { - if (null == v1) { - v1 = new Service(v2.getGroupedServiceName()); - v1.setGroupName(v2.getGroup()); - v1.setNamespaceId(v2.getNamespace()); - } - v1.setSelector(v2meta.getSelector()); - v1.setProtectThreshold(v2meta.getProtectThreshold()); - v1.setMetadata(v2meta.getExtendData()); - for (Map.Entry entry : v2meta.getClusters().entrySet()) { - if (!v1.getClusterMap().containsKey(entry.getKey())) { - v1.addCluster(toV1Cluster(new Cluster(entry.getKey(), v1), entry.getValue())); - } else { - toV1Cluster(v1.getClusterMap().get(entry.getKey()), entry.getValue()); - } - } - return v1; - } - - @Override - public Cluster toV1Cluster(Cluster v1, ClusterMetadata v2meta) { - v1.setDefCkport(v2meta.getHealthyCheckPort()); - v1.setUseIPPort4Check(v2meta.isUseInstancePortForCheck()); - v1.setHealthChecker(v2meta.getHealthChecker()); - v1.setMetadata(v2meta.getExtendData()); - return v1; - } - - @Override - public ServiceMetadata toV2ServiceMetadata(Service service, boolean ephemeral) { - ServiceMetadata result = new ServiceMetadata(); - result.setEphemeral(ephemeral); - result.setProtectThreshold(service.getProtectThreshold()); - result.setSelector(service.getSelector()); - result.setExtendData(service.getMetadata()); - for (Map.Entry entry : service.getClusterMap().entrySet()) { - result.getClusters().put(entry.getKey(), toV2ClusterMetadata(entry.getValue())); - } - return result; - } - - @Override - public ClusterMetadata toV2ClusterMetadata(Cluster v1) { - ClusterMetadata result = new ClusterMetadata(); - result.setHealthyCheckPort(v1.getDefCkport()); - result.setUseInstancePortForCheck(v1.isUseIPPort4Check()); - result.setExtendData(v1.getMetadata()); - result.setHealthChecker(v1.getHealthChecker()); - result.setHealthyCheckType(v1.getHealthChecker().getType()); - return result; - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckEnableInterceptor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckEnableInterceptor.java index 8e43dd2d4..36ebe6e61 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckEnableInterceptor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckEnableInterceptor.java @@ -16,7 +16,6 @@ package com.alibaba.nacos.naming.healthcheck.interceptor; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.naming.healthcheck.NacosHealthCheckTask; import com.alibaba.nacos.naming.misc.SwitchDomain; import com.alibaba.nacos.sys.utils.ApplicationUtils; @@ -31,8 +30,7 @@ public class HealthCheckEnableInterceptor extends AbstractHealthCheckInterceptor @Override public boolean intercept(NacosHealthCheckTask object) { try { - return !ApplicationUtils.getBean(SwitchDomain.class).isHealthCheckEnabled() || !ApplicationUtils - .getBean(UpgradeJudgement.class).isUseGrpcFeatures(); + return !ApplicationUtils.getBean(SwitchDomain.class).isHealthCheckEnabled(); } catch (Exception e) { return true; } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java b/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java index fce15db72..a9317f4de 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java @@ -19,8 +19,8 @@ package com.alibaba.nacos.naming.push; import com.alibaba.nacos.api.naming.pojo.ServiceInfo; import com.alibaba.nacos.api.remote.PushCallBack; import com.alibaba.nacos.common.utils.JacksonUtils; +import com.alibaba.nacos.naming.constants.Constants; import com.alibaba.nacos.naming.core.Service; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.naming.misc.GlobalExecutor; import com.alibaba.nacos.naming.misc.Loggers; import com.alibaba.nacos.naming.misc.SwitchDomain; @@ -30,19 +30,15 @@ import com.alibaba.nacos.naming.pojo.Subscriber; import com.alibaba.nacos.naming.push.v1.ClientInfo; import com.alibaba.nacos.naming.push.v1.NamingSubscriberServiceV1Impl; import com.alibaba.nacos.naming.push.v1.PushClient; -import com.alibaba.nacos.naming.push.v1.ServiceChangeEvent; import com.alibaba.nacos.naming.remote.udp.AckEntry; import com.alibaba.nacos.naming.remote.udp.AckPacket; import com.alibaba.nacos.naming.remote.udp.UdpConnector; -import com.alibaba.nacos.naming.constants.Constants; -import com.alibaba.nacos.sys.utils.ApplicationUtils; import org.apache.commons.collections.MapUtils; import org.codehaus.jackson.util.VersionUtil; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; -import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; import java.io.ByteArrayOutputStream; @@ -69,7 +65,7 @@ import java.util.zip.GZIPOutputStream; */ @Component @SuppressWarnings("PMD.ThreadPoolCreationRule") -public class UdpPushService implements ApplicationContextAware, ApplicationListener { +public class UdpPushService implements ApplicationContextAware { @Autowired private SwitchDomain switchDomain; @@ -114,80 +110,6 @@ public class UdpPushService implements ApplicationContextAware, ApplicationListe this.applicationContext = applicationContext; } - @Override - public void onApplicationEvent(ServiceChangeEvent event) { - // If upgrade to 2.0.X, do not push for v1. - if (ApplicationUtils.getBean(UpgradeJudgement.class).isUseGrpcFeatures()) { - return; - } - Service service = event.getService(); - String serviceName = service.getName(); - String namespaceId = service.getNamespaceId(); - //merge some change events to reduce the push frequency: - if (futureMap.containsKey(UtilsAndCommons.assembleFullServiceName(namespaceId, serviceName))) { - return; - } - Future future = GlobalExecutor.scheduleUdpSender(() -> { - try { - Loggers.PUSH.info(serviceName + " is changed, add it to push queue."); - ConcurrentMap clients = subscriberServiceV1.getClientMap() - .get(UtilsAndCommons.assembleFullServiceName(namespaceId, serviceName)); - if (MapUtils.isEmpty(clients)) { - return; - } - - Map cache = new HashMap<>(16); - long lastRefTime = System.nanoTime(); - for (PushClient client : clients.values()) { - if (client.zombie()) { - Loggers.PUSH.debug("client is zombie: " + client); - clients.remove(client.toString()); - Loggers.PUSH.debug("client is zombie: " + client); - continue; - } - - AckEntry ackEntry; - Loggers.PUSH.debug("push serviceName: {} to client: {}", serviceName, client); - String key = getPushCacheKey(serviceName, client.getIp(), client.getAgent()); - byte[] compressData = null; - Map data = null; - if (switchDomain.getDefaultPushCacheMillis() >= 20000 && cache.containsKey(key)) { - org.javatuples.Pair pair = (org.javatuples.Pair) cache.get(key); - compressData = (byte[]) (pair.getValue0()); - data = (Map) pair.getValue1(); - - Loggers.PUSH.debug("[PUSH-CACHE] cache hit: {}:{}", serviceName, client.getAddrStr()); - } - - if (compressData != null) { - ackEntry = prepareAckEntry(client, compressData, data, lastRefTime); - } else { - ackEntry = prepareAckEntry(client, prepareHostsData(client), lastRefTime); - if (ackEntry != null) { - cache.put(key, - new org.javatuples.Pair<>(ackEntry.getOrigin().getData(), ackEntry.getData())); - } - } - - Loggers.PUSH.info("serviceName: {} changed, schedule push for: {}, agent: {}, key: {}", - client.getServiceName(), client.getAddrStr(), client.getAgent(), - (ackEntry == null ? null : ackEntry.getKey())); - - udpPush(ackEntry); - } - } catch (Exception e) { - Loggers.PUSH.error("[NACOS-PUSH] failed to push serviceName: {} to client, error: {}", serviceName, e); - - } finally { - futureMap.remove(UtilsAndCommons.assembleFullServiceName(namespaceId, serviceName)); - } - - }, 1000, TimeUnit.MILLISECONDS); - - futureMap.put(UtilsAndCommons.assembleFullServiceName(namespaceId, serviceName), future); - - } - /** * Push Data without callback. * @@ -289,7 +211,6 @@ public class UdpPushService implements ApplicationContextAware, ApplicationListe * @param service service */ public void serviceChanged(Service service) { - this.applicationContext.publishEvent(new ServiceChangeEvent(this, service)); } /** diff --git a/naming/src/main/java/com/alibaba/nacos/naming/push/v1/ServiceChangeEvent.java b/naming/src/main/java/com/alibaba/nacos/naming/push/v1/ServiceChangeEvent.java deleted file mode 100644 index d31fbc876..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/push/v1/ServiceChangeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.push.v1; - -import com.alibaba.nacos.naming.core.Service; -import org.springframework.context.ApplicationEvent; - -/** - * Service change event. - * - * @author pbting - * @date 2019-07-10 5:41 PM - */ -public class ServiceChangeEvent extends ApplicationEvent { - - private Service service; - - public ServiceChangeEvent(Object source, Service service) { - super(source); - this.service = service; - } - - public Service getService() { - return service; - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2Impl.java b/naming/src/main/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2Impl.java index 693f6cf22..b78f394a3 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2Impl.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2Impl.java @@ -28,7 +28,6 @@ import com.alibaba.nacos.naming.core.v2.index.ClientServiceIndexesManager; import com.alibaba.nacos.naming.core.v2.index.ServiceStorage; import com.alibaba.nacos.naming.core.v2.metadata.NamingMetadataManager; import com.alibaba.nacos.naming.core.v2.pojo.Service; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.naming.misc.SwitchDomain; import com.alibaba.nacos.naming.pojo.Subscriber; import com.alibaba.nacos.naming.push.NamingSubscriberService; @@ -58,15 +57,11 @@ public class NamingSubscriberServiceV2Impl extends SmartSubscriber implements Na private final PushDelayTaskExecuteEngine delayTaskEngine; - private final UpgradeJudgement upgradeJudgement; - public NamingSubscriberServiceV2Impl(ClientManagerDelegate clientManager, ClientServiceIndexesManager indexesManager, ServiceStorage serviceStorage, - NamingMetadataManager metadataManager, PushExecutorDelegate pushExecutor, UpgradeJudgement upgradeJudgement, - SwitchDomain switchDomain) { + NamingMetadataManager metadataManager, PushExecutorDelegate pushExecutor, SwitchDomain switchDomain) { this.clientManager = clientManager; this.indexesManager = indexesManager; - this.upgradeJudgement = upgradeJudgement; this.delayTaskEngine = new PushDelayTaskExecuteEngine(clientManager, indexesManager, serviceStorage, metadataManager, pushExecutor, switchDomain); NotifyCenter.registerSubscriber(this, NamingEventPublisherFactory.getInstance()); @@ -117,9 +112,6 @@ public class NamingSubscriberServiceV2Impl extends SmartSubscriber implements Na @Override public void onEvent(Event event) { - if (!upgradeJudgement.isUseGrpcFeatures()) { - return; - } if (event instanceof ServiceEvent.ServiceChangedEvent) { // If service changed, push to all subscribers. ServiceEvent.ServiceChangedEvent serviceChangedEvent = (ServiceEvent.ServiceChangedEvent) event; diff --git a/naming/src/main/java/com/alibaba/nacos/naming/remote/rpc/filter/GrpcRequestFilter.java b/naming/src/main/java/com/alibaba/nacos/naming/remote/rpc/filter/GrpcRequestFilter.java deleted file mode 100644 index 0473f86d2..000000000 --- a/naming/src/main/java/com/alibaba/nacos/naming/remote/rpc/filter/GrpcRequestFilter.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.remote.rpc.filter; - -import com.alibaba.nacos.api.exception.NacosException; -import com.alibaba.nacos.api.naming.remote.request.AbstractNamingRequest; -import com.alibaba.nacos.api.remote.request.Request; -import com.alibaba.nacos.api.remote.request.RequestMeta; -import com.alibaba.nacos.api.remote.response.Response; -import com.alibaba.nacos.core.remote.AbstractRequestFilter; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * Grpc request filter. - * - * @author majorhe - */ -@Component -public class GrpcRequestFilter extends AbstractRequestFilter { - - @Autowired - private UpgradeJudgement upgradeJudgement; - - @Override - protected Response filter(Request request, RequestMeta meta, Class handlerClazz) throws NacosException { - if (request instanceof AbstractNamingRequest && !upgradeJudgement.isUseGrpcFeatures()) { - Response response = getDefaultResponseInstance(handlerClazz); - response.setErrorInfo(NacosException.SERVER_ERROR, - "Nacos cluster is running with 1.X mode, can't accept gRPC request temporarily. Please check the server status or close Double write to force open 2.0 mode. Detail https://nacos.io/en-us/docs/2.0.0-upgrading.html."); - return response; - } - return null; - } -} diff --git a/naming/src/main/java/com/alibaba/nacos/naming/web/DistroTagGeneratorImpl.java b/naming/src/main/java/com/alibaba/nacos/naming/web/DistroTagGeneratorImpl.java index cd2ba4339..2d022a982 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/web/DistroTagGeneratorImpl.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/web/DistroTagGeneratorImpl.java @@ -17,7 +17,6 @@ package com.alibaba.nacos.naming.web; import com.alibaba.nacos.core.utils.ReuseHttpServletRequest; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import org.springframework.stereotype.Component; /** @@ -28,14 +27,9 @@ import org.springframework.stereotype.Component; @Component public class DistroTagGeneratorImpl implements DistroTagGenerator { - private final DistroTagGenerator serviceNameTag = new DistroServiceNameTagGenerator(); - private final DistroTagGenerator ipPortTag = new DistroIpPortTagGenerator(); - private final UpgradeJudgement upgradeJudgement; - - public DistroTagGeneratorImpl(UpgradeJudgement upgradeJudgement) { - this.upgradeJudgement = upgradeJudgement; + public DistroTagGeneratorImpl() { } @Override @@ -47,13 +41,12 @@ public class DistroTagGeneratorImpl implements DistroTagGenerator { * Get tag generator according to cluster member ability. * *

- * If all member is upper than 2.x. Using {@link DistroIpPortTagGenerator}. Otherwise use 1.x {@link - * DistroServiceNameTagGenerator}. + * If all member is upper than 2.x. Using {@link DistroIpPortTagGenerator}. *

* * @return actual tag generator */ private DistroTagGenerator getTagGenerator() { - return upgradeJudgement.isUseGrpcFeatures() ? ipPortTag : serviceNameTag; + return ipPortTag; } } diff --git a/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java b/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java index 2efd054b6..c7ea48747 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java @@ -18,7 +18,6 @@ package com.alibaba.nacos.naming; import com.alibaba.nacos.naming.core.DistroMapper; import com.alibaba.nacos.naming.core.ServiceManager; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.naming.misc.SwitchDomain; import com.alibaba.nacos.naming.push.UdpPushService; import com.alibaba.nacos.sys.env.EnvUtil; @@ -72,9 +71,6 @@ public abstract class BaseTest { @Mock protected UdpPushService pushService; - @Mock - protected UpgradeJudgement upgradeJudgement; - @Spy protected MockEnvironment environment; @@ -95,8 +91,4 @@ public abstract class BaseTest { protected void mockInjectDistroMapper() { doReturn(distroMapper).when(context).getBean(DistroMapper.class); } - - protected void mockInjectUpgradeJudgement() { - doReturn(upgradeJudgement).when(context).getBean(UpgradeJudgement.class); - } } diff --git a/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/v2/DistroClientComponentRegistryTest.java b/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/v2/DistroClientComponentRegistryTest.java index 285ccd1e6..6249d3840 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/v2/DistroClientComponentRegistryTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/v2/DistroClientComponentRegistryTest.java @@ -26,7 +26,6 @@ import com.alibaba.nacos.core.distributed.distro.component.DistroFailedTaskHandl import com.alibaba.nacos.core.distributed.distro.component.DistroTransportAgent; import com.alibaba.nacos.core.distributed.distro.task.DistroTaskEngineHolder; import com.alibaba.nacos.naming.core.v2.client.manager.ClientManagerDelegate; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import junit.framework.TestCase; import org.junit.Assert; import org.junit.Before; @@ -37,55 +36,51 @@ import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class DistroClientComponentRegistryTest extends TestCase { - + private DistroClientComponentRegistry distroClientComponentRegistry; - + @Mock private ServerMemberManager serverMemberManager; - + @Mock private DistroProtocol distroProtocol; - + @Mock private DistroTaskEngineHolder taskEngineHolder; - + @Mock private ClientManagerDelegate clientManager; - + @Mock private ClusterRpcClientProxy clusterRpcClientProxy; - - @Mock - private UpgradeJudgement upgradeJudgement; - + private DistroComponentHolder componentHolder; - + @Before public void setUp() throws Exception { componentHolder = new DistroComponentHolder(); - + distroClientComponentRegistry = new DistroClientComponentRegistry(serverMemberManager, distroProtocol, - componentHolder, taskEngineHolder, - clientManager, clusterRpcClientProxy, - upgradeJudgement); + componentHolder, taskEngineHolder, clientManager, clusterRpcClientProxy); } - + @Test public void testDoRegister() { distroClientComponentRegistry.doRegister(); - + DistroDataStorage dataStorage = componentHolder.findDataStorage(DistroClientDataProcessor.TYPE); Assert.assertNotNull(dataStorage); - + DistroDataProcessor dataProcessor = componentHolder.findDataProcessor(DistroClientDataProcessor.TYPE); Assert.assertNotNull(dataProcessor); - - DistroFailedTaskHandler failedTaskHandler = componentHolder.findFailedTaskHandler(DistroClientDataProcessor.TYPE); + + DistroFailedTaskHandler failedTaskHandler = componentHolder + .findFailedTaskHandler(DistroClientDataProcessor.TYPE); Assert.assertNotNull(failedTaskHandler); - + DistroTransportAgent transportAgent = componentHolder.findTransportAgent(DistroClientDataProcessor.TYPE); Assert.assertNotNull(transportAgent); - + } - -} \ No newline at end of file + +} diff --git a/naming/src/test/java/com/alibaba/nacos/naming/controllers/CatalogControllerTest.java b/naming/src/test/java/com/alibaba/nacos/naming/controllers/CatalogControllerTest.java index ed8ff7393..8661bdfe6 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/controllers/CatalogControllerTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/controllers/CatalogControllerTest.java @@ -21,15 +21,12 @@ import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.naming.core.Cluster; import com.alibaba.nacos.naming.core.Instance; import com.alibaba.nacos.naming.core.Service; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.fasterxml.jackson.databind.node.ObjectNode; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.test.util.ReflectionTestUtils; import java.util.Collections; import java.util.List; @@ -39,9 +36,6 @@ import static org.junit.Assert.assertTrue; @RunWith(MockitoJUnitRunner.class) public class CatalogControllerTest { - @Mock - protected UpgradeJudgement upgradeJudgement; - private CatalogController catalogController; private Service service; @@ -51,7 +45,6 @@ public class CatalogControllerTest { @Before public void setUp() throws NoSuchFieldException, IllegalAccessException, NacosException { catalogController = new CatalogController(); - ReflectionTestUtils.setField(catalogController, "upgradeJudgement", upgradeJudgement); service = new Service(TEST_SERVICE_NAME); service.setNamespaceId(Constants.DEFAULT_NAMESPACE_ID); service.setProtectThreshold(12.34f); diff --git a/naming/src/test/java/com/alibaba/nacos/naming/controllers/ClusterControllerTest.java b/naming/src/test/java/com/alibaba/nacos/naming/controllers/ClusterControllerTest.java index 712c5481e..037ac7bbc 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/controllers/ClusterControllerTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/controllers/ClusterControllerTest.java @@ -31,7 +31,6 @@ import org.springframework.mock.web.MockServletContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; @@ -59,7 +58,6 @@ public class ClusterControllerTest extends BaseTest { mockInjectSwitchDomain(); mockInjectDistroMapper(); mockmvc = MockMvcBuilders.standaloneSetup(clusterController).build(); - ReflectionTestUtils.setField(clusterController, "upgradeJudgement", upgradeJudgement); try { doCallRealMethod().when(serviceManager).checkServiceIsNull(eq(null), anyString(), anyString()); } catch (NacosException e) { diff --git a/naming/src/test/java/com/alibaba/nacos/naming/controllers/HealthControllerTest.java b/naming/src/test/java/com/alibaba/nacos/naming/controllers/HealthControllerTest.java index 6edaa0339..d069e14f7 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/controllers/HealthControllerTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/controllers/HealthControllerTest.java @@ -21,7 +21,6 @@ import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.CommonParams; import com.alibaba.nacos.naming.constants.RequestConstant; import com.alibaba.nacos.naming.core.HealthOperatorV2Impl; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.sys.env.EnvUtil; import org.junit.Assert; import org.junit.Before; @@ -29,7 +28,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.http.ResponseEntity; import org.springframework.mock.env.MockEnvironment; @@ -50,9 +48,6 @@ public class HealthControllerTest { @Mock private HealthOperatorV2Impl healthOperatorV2; - @Mock - private UpgradeJudgement upgradeJudgement; - @Before public void setUp() { EnvUtil.setEnvironment(new MockEnvironment()); @@ -72,8 +67,6 @@ public class HealthControllerTest { servletRequest.addParameter(RequestConstant.PORT_KEY, "8848"); servletRequest.addParameter(RequestConstant.HEALTHY_KEY, "true"); - Mockito.when(upgradeJudgement.isUseGrpcFeatures()).thenReturn(true); - try { ResponseEntity responseEntity = healthController.update(servletRequest); Assert.assertEquals(200, responseEntity.getStatusCodeValue()); diff --git a/naming/src/test/java/com/alibaba/nacos/naming/controllers/InstanceControllerTest.java b/naming/src/test/java/com/alibaba/nacos/naming/controllers/InstanceControllerTest.java index 61c54da15..8317c2738 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/controllers/InstanceControllerTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/controllers/InstanceControllerTest.java @@ -39,7 +39,6 @@ import org.springframework.mock.web.MockServletContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; @@ -72,7 +71,6 @@ public class InstanceControllerTest extends BaseTest { public void before() { super.before(); mockInjectPushServer(); - ReflectionTestUtils.setField(instanceController, "upgradeJudgement", upgradeJudgement); when(instanceUpgradeHelper.toV1(any())).thenReturn(new Instance("1.1.1.1", 9999)); mockmvc = MockMvcBuilders.standaloneSetup(instanceController).build(); } diff --git a/naming/src/test/java/com/alibaba/nacos/naming/controllers/ServiceControllerTest.java b/naming/src/test/java/com/alibaba/nacos/naming/controllers/ServiceControllerTest.java index 414c0bd12..0a574bfab 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/controllers/ServiceControllerTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/controllers/ServiceControllerTest.java @@ -21,7 +21,6 @@ import com.alibaba.nacos.api.naming.CommonParams; import com.alibaba.nacos.naming.BaseTest; import com.alibaba.nacos.naming.core.ServiceOperatorV2Impl; import com.alibaba.nacos.naming.core.SubscribeManager; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.naming.pojo.Subscriber; import com.fasterxml.jackson.databind.node.ObjectNode; import org.junit.Assert; @@ -33,7 +32,6 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.test.util.ReflectionTestUtils; import java.util.Arrays; import java.util.Collections; @@ -47,17 +45,12 @@ public class ServiceControllerTest extends BaseTest { @Mock private ServiceOperatorV2Impl serviceOperatorV2; - @Mock - private UpgradeJudgement upgradeJudgement; - @Mock private SubscribeManager subscribeManager; @Before public void before() { super.before(); - ReflectionTestUtils.setField(serviceController, "upgradeJudgement", upgradeJudgement); - Mockito.when(upgradeJudgement.isUseGrpcFeatures()).thenReturn(true); } @Test @@ -65,7 +58,7 @@ public class ServiceControllerTest extends BaseTest { Mockito.when(serviceOperatorV2.listService(Mockito.anyString(), Mockito.anyString(), Mockito.anyString())) .thenReturn(Collections.singletonList("DEFAULT_GROUP@@providers:com.alibaba.nacos.controller.test:1")); - + MockHttpServletRequest servletRequest = new MockHttpServletRequest(); servletRequest.addParameter("pageNo", "1"); servletRequest.addParameter("pageSize", "10"); @@ -77,7 +70,6 @@ public class ServiceControllerTest extends BaseTest { @Test public void testCreate() { try { - Mockito.when(upgradeJudgement.isUseGrpcFeatures()).thenReturn(true); String res = serviceController.create(TEST_NAMESPACE, TEST_SERVICE_NAME, 0, "", ""); Assert.assertEquals("ok", res); } catch (Exception e) { @@ -128,7 +120,8 @@ public class ServiceControllerTest extends BaseTest { @Test public void testSearchService() { try { - Mockito.when(serviceOperatorV2.searchServiceName(Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean())) + Mockito.when( + serviceOperatorV2.searchServiceName(Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean())) .thenReturn(Collections.singletonList("result")); ObjectNode objectNode = serviceController.searchService(TEST_NAMESPACE, "", true); @@ -139,7 +132,8 @@ public class ServiceControllerTest extends BaseTest { } try { - Mockito.when(serviceOperatorV2.searchServiceName(Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean())) + Mockito.when( + serviceOperatorV2.searchServiceName(Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean())) .thenReturn(Arrays.asList("re1", "re2")); Mockito.when(serviceOperatorV2.listAllNamespace()).thenReturn(Arrays.asList("re1", "re2")); diff --git a/naming/src/test/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckTaskInterceptWrapperTest.java b/naming/src/test/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckTaskInterceptWrapperTest.java index b00391a18..e3e7bdc41 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckTaskInterceptWrapperTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/healthcheck/interceptor/HealthCheckTaskInterceptWrapperTest.java @@ -24,7 +24,6 @@ import com.alibaba.nacos.naming.core.v2.metadata.NamingMetadataManager; import com.alibaba.nacos.naming.core.v2.pojo.HealthCheckInstancePublishInfo; import com.alibaba.nacos.naming.core.v2.pojo.InstancePublishInfo; import com.alibaba.nacos.naming.core.v2.pojo.Service; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.naming.healthcheck.heartbeat.ClientBeatCheckTaskV2; import com.alibaba.nacos.naming.misc.GlobalConfig; import com.alibaba.nacos.naming.misc.SwitchDomain; @@ -77,9 +76,6 @@ public class HealthCheckTaskInterceptWrapperTest { @Mock private ConfigurableApplicationContext applicationContext; - @Mock - private UpgradeJudgement upgradeJudgement; - private IpPortBasedClient client; @Before @@ -88,12 +84,10 @@ public class HealthCheckTaskInterceptWrapperTest { when(applicationContext.getBean(GlobalConfig.class)).thenReturn(globalConfig); when(applicationContext.getBean(SwitchDomain.class)).thenReturn(switchDomain); when(applicationContext.getBean(DistroMapper.class)).thenReturn(distroMapper); - when(applicationContext.getBean(UpgradeJudgement.class)).thenReturn(upgradeJudgement); ApplicationUtils.injectContext(applicationContext); client = new IpPortBasedClient(CLIENT_ID, true); when(switchDomain.isHealthCheckEnabled()).thenReturn(true); when(distroMapper.responsible(client.getResponsibleId())).thenReturn(true); - when(upgradeJudgement.isUseGrpcFeatures()).thenReturn(true); ClientBeatCheckTaskV2 beatCheckTask = new ClientBeatCheckTaskV2(client); taskWrapper = new HealthCheckTaskInterceptWrapper(beatCheckTask); } @@ -169,7 +163,8 @@ public class HealthCheckTaskInterceptWrapperTest { Service service = Service.newService(NAMESPACE, GROUP_NAME, SERVICE_NAME); InstanceMetadata metadata = new InstanceMetadata(); metadata.getExtendData().put(PreservedMetadataKeys.HEART_BEAT_TIMEOUT, 1000L); - when(namingMetadataManager.getInstanceMetadata(service, instance.getMetadataId())).thenReturn(Optional.of(metadata)); + when(namingMetadataManager.getInstanceMetadata(service, instance.getMetadataId())) + .thenReturn(Optional.of(metadata)); when(globalConfig.isExpireInstance()).thenReturn(true); TimeUnit.SECONDS.sleep(1); taskWrapper.run(); diff --git a/naming/src/test/java/com/alibaba/nacos/naming/push/v1/ServiceChangeEventTest.java b/naming/src/test/java/com/alibaba/nacos/naming/push/v1/ServiceChangeEventTest.java deleted file mode 100644 index 8e0d78ce9..000000000 --- a/naming/src/test/java/com/alibaba/nacos/naming/push/v1/ServiceChangeEventTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 1999-2020 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.naming.push.v1; - -import com.alibaba.nacos.naming.core.Service; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; - -@RunWith(MockitoJUnitRunner.class) -public class ServiceChangeEventTest { - - @Mock - private Service service; - - @Mock - private Object object; - - @Test - public void testGetService() { - ServiceChangeEvent serviceChangeEvent = new ServiceChangeEvent(object, service); - Service service = serviceChangeEvent.getService(); - - Assert.assertNotNull(service); - Assert.assertEquals(service, service); - } -} \ No newline at end of file diff --git a/naming/src/test/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2ImplTest.java b/naming/src/test/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2ImplTest.java index eaa809ef0..cb5a7dfb7 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2ImplTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/push/v2/NamingSubscriberServiceV2ImplTest.java @@ -21,7 +21,6 @@ import com.alibaba.nacos.naming.core.v2.client.manager.ClientManagerDelegate; import com.alibaba.nacos.naming.core.v2.event.service.ServiceEvent; import com.alibaba.nacos.naming.core.v2.index.ClientServiceIndexesManager; import com.alibaba.nacos.naming.core.v2.pojo.Service; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; import com.alibaba.nacos.naming.misc.SwitchDomain; import com.alibaba.nacos.naming.pojo.Subscriber; import com.alibaba.nacos.naming.push.v2.task.PushDelayTask; @@ -64,9 +63,6 @@ public class NamingSubscriberServiceV2ImplTest { @Mock private Client client; - @Mock - private UpgradeJudgement upgradeJudgement; - @Mock private SwitchDomain switchDomain; @@ -74,8 +70,8 @@ public class NamingSubscriberServiceV2ImplTest { @Before public void setUp() throws Exception { - subscriberService = new NamingSubscriberServiceV2Impl(clientManager, indexesManager, null, null, null, - upgradeJudgement, switchDomain); + subscriberService = new NamingSubscriberServiceV2Impl(clientManager, indexesManager, null, null, null, + switchDomain); ReflectionTestUtils.setField(subscriberService, "delayTaskEngine", delayTaskEngine); when(indexesManager.getAllClientsSubscribeService(service)).thenReturn(Collections.singletonList(testClientId)); when(indexesManager.getAllClientsSubscribeService(service1)) @@ -89,7 +85,6 @@ public class NamingSubscriberServiceV2ImplTest { new Subscriber("1.1.1.1:1111", "Test", "unknown", "1.1.1.1", "N", service.getGroupedServiceName(), 0)); when(client.getSubscriber(service1)).thenReturn( new Subscriber("1.1.1.1:1111", "Test", "unknown", "1.1.1.1", "N", service1.getGroupedServiceName(), 0)); - when(upgradeJudgement.isUseGrpcFeatures()).thenReturn(true); } @Test diff --git a/naming/src/test/java/com/alibaba/nacos/naming/remote/rpc/filter/GrpcRequestFilterTest.java b/naming/src/test/java/com/alibaba/nacos/naming/remote/rpc/filter/GrpcRequestFilterTest.java deleted file mode 100644 index 8f1c05819..000000000 --- a/naming/src/test/java/com/alibaba/nacos/naming/remote/rpc/filter/GrpcRequestFilterTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 1999-2021 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.alibaba.nacos.naming.remote.rpc.filter; - -import com.alibaba.nacos.api.exception.NacosException; -import com.alibaba.nacos.api.naming.remote.request.InstanceRequest; -import com.alibaba.nacos.api.remote.request.RequestMeta; -import com.alibaba.nacos.api.remote.response.Response; -import com.alibaba.nacos.naming.core.v2.upgrade.UpgradeJudgement; -import com.alibaba.nacos.naming.remote.rpc.handler.InstanceRequestHandler; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -/** - * {@link GrpcRequestFilter} unit test. - * - * @author chenglu - * @date 2021-09-17 16:25 - */ -@RunWith(MockitoJUnitRunner.class) -public class GrpcRequestFilterTest { - - @InjectMocks - private GrpcRequestFilter grpcRequestFilter; - - @Mock - private UpgradeJudgement upgradeJudgement; - - @Test - public void testFilter() throws NacosException { - Mockito.when(upgradeJudgement.isUseGrpcFeatures()).thenReturn(true).thenReturn(false); - Response response = grpcRequestFilter.filter(new InstanceRequest(), new RequestMeta(), InstanceRequestHandler.class); - Assert.assertNull(response); - - try { - grpcRequestFilter.filter(new InstanceRequest(), new RequestMeta(), InstanceRequestHandler.class); - } catch (Exception e) { - Assert.assertTrue(e instanceof NacosException); - } - } -} diff --git a/naming/src/test/resources/META-INF/services/com.alibaba.nacos.naming.core.v2.upgrade.SelfUpgradeChecker b/naming/src/test/resources/META-INF/services/com.alibaba.nacos.naming.core.v2.upgrade.SelfUpgradeChecker deleted file mode 100644 index 468f5031b..000000000 --- a/naming/src/test/resources/META-INF/services/com.alibaba.nacos.naming.core.v2.upgrade.SelfUpgradeChecker +++ /dev/null @@ -1,17 +0,0 @@ -# -# Copyright 1999-2020 Alibaba Group Holding Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -com.alibaba.nacos.naming.core.v2.upgrade.MockSelfUpgradeChecker