diff --git a/backend/pom.xml b/backend/pom.xml
index d9130093ea..a94c8a1ec8 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -224,6 +224,12 @@
0.0.4
+
+ io.github.ningyu
+ jmeter-plugins-dubbo
+ 2.7.7
+
+
org.springframework.boot
@@ -358,6 +364,11 @@
fit2cloud
https://maven.pkg.github.com/fit2cloud/quartz-spring-boot-starter
+
+ github
+ metersphere
+ https://maven.pkg.github.com/metersphere/jmeter-plugins-for-apache-dubbo
+
diff --git a/backend/src/main/java/io/metersphere/api/dubbo/MethodArgument.java b/backend/src/main/java/io/metersphere/api/dubbo/MethodArgument.java
deleted file mode 100644
index a9efb359b8..0000000000
--- a/backend/src/main/java/io/metersphere/api/dubbo/MethodArgument.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 io.metersphere.api.dubbo;
-
-
-import io.metersphere.api.dubbo.utils.JsonUtils;
-import io.metersphere.api.dubbo.utils.StringUtils;
-
-import java.io.Serializable;
-
-
-/**
- * MethodArgument
- */
-public class MethodArgument implements Serializable {
-
- private static final long serialVersionUID = -2567457932227227262L;
- private String paramType;
- private String paramValue;
-
- public MethodArgument(String paramType, String paramValue) {
- setParamType(paramType);
- setParamValue(paramValue);
- }
-
- public String getParamType() {
- return paramType;
- }
-
- public void setParamType(String paramType) {
- this.paramType = (paramType == null ? null : StringUtils.trimAllWhitespace(paramType));
- }
-
- public String getParamValue() {
- return paramValue;
- }
-
- public void setParamValue(String paramValue) {
- this.paramValue = (paramValue == null ? null : StringUtils.trimWhitespace(paramValue));
- }
-
- @Override
- public String toString() {
- return JsonUtils.toJson(this);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((paramType == null) ? 0 : paramType.hashCode());
- result = prime * result + ((paramValue == null) ? 0 : paramValue.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- MethodArgument other = (MethodArgument) obj;
- if (paramType == null) {
- if (other.paramType != null)
- return false;
- } else if (!paramType.equals(other.paramType))
- return false;
- if (paramValue == null) {
- if (other.paramValue != null)
- return false;
- } else if (!paramValue.equals(other.paramValue))
- return false;
- return true;
- }
-
-}
diff --git a/backend/src/main/java/io/metersphere/api/dubbo/ProviderService.java b/backend/src/main/java/io/metersphere/api/dubbo/ProviderService.java
deleted file mode 100644
index 3478a864ac..0000000000
--- a/backend/src/main/java/io/metersphere/api/dubbo/ProviderService.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package io.metersphere.api.dubbo;
-
-import io.metersphere.api.dubbo.utils.Constants;
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.ReferenceConfigBase;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.config.utils.ReferenceConfigCache;
-import org.apache.dubbo.registry.RegistryService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-/**
- * ProviderService
- */
-public class ProviderService implements Serializable {
-
- private static final Logger log = LoggerFactory.getLogger(ProviderService.class);
-
- private static final long serialVersionUID = -750353929981409079L;
- ConcurrentMap> providerUrls = null;
-
- private static ConcurrentMap cache = new ConcurrentHashMap<>();
-
- public static ProviderService get(String key) {
- ProviderService service = cache.get(key);
- if (service == null) {
- cache.putIfAbsent(key, new ProviderService());
- service = cache.get(key);
- }
- return service;
- }
-
- public Map findByService(String serviceName) {
- return providerUrls == null ? null : providerUrls.get(serviceName);
- }
-
- public List getProviders(String protocol, String address, String group) throws RuntimeException {
- if (protocol.equals("zookeeper") || protocol.equals("nacos") || protocol.equals("redis")) {
- return executeRegistry(protocol, address, group);
-// } else if (protocol.equals("none")) {
-// return executeTelnet();
- } else {
- throw new RuntimeException("Registry Protocol please use zookeeper or nacos or redis!");
- }
- }
-
- private List executeTelnet() throws RuntimeException {
- throw new RuntimeException();
- }
-
- private List executeRegistry(String protocol, String address, String group) throws RuntimeException {
- ReferenceConfig reference = new ReferenceConfig();
- // set application
- reference.setApplication(new ApplicationConfig("DubboSample"));
- RegistryConfig registry = null;
- switch (protocol) {
- case Constants.REGISTRY_ZOOKEEPER:
- registry = new RegistryConfig();
- registry.setProtocol(Constants.REGISTRY_ZOOKEEPER);
- registry.setGroup(group);
- registry.setAddress(address);
- reference.setRegistry(registry);
- break;
- case Constants.REGISTRY_NACOS:
- registry = new RegistryConfig();
- registry.setProtocol(Constants.REGISTRY_NACOS);
- registry.setGroup(group);
- registry.setAddress(address);
- reference.setRegistry(registry);
- break;
- case Constants.REGISTRY_REDIS:
- registry = new RegistryConfig();
- registry.setProtocol(Constants.REGISTRY_REDIS);
- registry.setGroup(group);
- registry.setAddress(address);
- reference.setRegistry(registry);
- break;
- }
- reference.setInterface("org.apache.dubbo.registry.RegistryService");
- try {
- ReferenceConfigCache cache = ReferenceConfigCache.getCache(address + "_" + group, new ReferenceConfigCache.KeyGenerator() {
-
- @Override
- public String generateKey(ReferenceConfigBase> referenceConfig) {
- return referenceConfig.toString();
- }
- });
- RegistryService registryService = (RegistryService) cache.get(reference);
- if (registryService == null) {
- throw new RuntimeException("Can't get the interface list, please check if the address is wrong!");
- }
- RegistryServerSync registryServerSync = RegistryServerSync.get(address + "_" + group);
- registryService.subscribe(RegistryServerSync.SUBSCRIBE, registryServerSync);
- List ret = new ArrayList();
- providerUrls = registryServerSync.getRegistryCache().get(com.alibaba.dubbo.common.Constants.PROVIDERS_CATEGORY);
- if (providerUrls != null) ret.addAll(providerUrls.keySet());
- return ret;
- } catch (Exception e) {
- log.error("get provider list is error!", e);
- throw new RuntimeException("Can't get the interface list, please check if the address is wrong!", e);
- }
- }
-}
diff --git a/backend/src/main/java/io/metersphere/api/dubbo/RegistryServerSync.java b/backend/src/main/java/io/metersphere/api/dubbo/RegistryServerSync.java
deleted file mode 100644
index 6a58c8349d..0000000000
--- a/backend/src/main/java/io/metersphere/api/dubbo/RegistryServerSync.java
+++ /dev/null
@@ -1,171 +0,0 @@
-package io.metersphere.api.dubbo;
-
-import io.metersphere.api.dubbo.utils.MD5Util;
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.constants.CommonConstants;
-import org.apache.dubbo.common.constants.RegistryConstants;
-import org.apache.dubbo.common.utils.NetUtils;
-import org.apache.dubbo.common.utils.StringUtils;
-import org.apache.dubbo.registry.Constants;
-import org.apache.dubbo.registry.NotifyListener;
-
-import java.io.Serializable;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-/**
- * RegistryServerSync
- */
-public class RegistryServerSync implements NotifyListener, Serializable {
-
- private static final long serialVersionUID = -1744756264793278229L;
- private static ConcurrentMap cache = new ConcurrentHashMap<>();
-
- public static RegistryServerSync get(String key) {
- RegistryServerSync sync = cache.get(key);
- if (sync == null) {
- cache.putIfAbsent(key, new RegistryServerSync());
- sync = cache.get(key);
- }
- return sync;
- }
-
- public static final URL SUBSCRIBE = new URL(Constants.ADMIN_PROTOCOL, NetUtils.getLocalHost(), 0, "",
- CommonConstants.INTERFACE_KEY, CommonConstants.ANY_VALUE,
- CommonConstants.GROUP_KEY, CommonConstants.ANY_VALUE,
- CommonConstants.VERSION_KEY, CommonConstants.ANY_VALUE,
- CommonConstants.CLASSIFIER_KEY, CommonConstants.ANY_VALUE,
- RegistryConstants.CATEGORY_KEY, RegistryConstants.PROVIDERS_CATEGORY,
-// Constants.CATEGORY_KEY, Constants.PROVIDERS_CATEGORY + ","
-// + Constants.CONSUMERS_CATEGORY + ","
-// + Constants.ROUTERS_CATEGORY + ","
-// + Constants.CONFIGURATORS_CATEGORY,
- CommonConstants.ENABLED_KEY, CommonConstants.ANY_VALUE,
- CommonConstants.CHECK_KEY, String.valueOf(false));
-
- // ConcurrentMap>>
- private final ConcurrentMap>>
- registryCache = new ConcurrentHashMap<>();
- /**
- * Make sure ID never changed when the same url notified many times
- */
- private final ConcurrentHashMap URL_IDS_MAPPER = new ConcurrentHashMap<>();
-
- public RegistryServerSync() {
- }
-
- public ConcurrentMap>> getRegistryCache() {
- return registryCache;
- }
-
- @Override
- public void notify(List urls) {
- if (urls == null || urls.isEmpty()) {
- return;
- }
- // Map>>
- final Map>> categories = new HashMap<>();
- String interfaceName = null;
- for (URL url : urls) {
- String category = url.getParameter(RegistryConstants.CATEGORY_KEY, RegistryConstants.PROVIDERS_CATEGORY);
- if (RegistryConstants.EMPTY_PROTOCOL.equalsIgnoreCase(url.getProtocol())) { // NOTE: group and version in empty protocol is *
- ConcurrentMap> services = registryCache.get(category);
- if (services != null) {
- String group = url.getParameter(CommonConstants.GROUP_KEY);
- String version = url.getParameter(CommonConstants.VERSION_KEY);
- // NOTE: group and version in empty protocol is *
- if (!CommonConstants.ANY_VALUE.equals(group) && !CommonConstants.ANY_VALUE.equals(version)) {
- services.remove(url.getServiceKey());
- } else {
- for (Map.Entry> serviceEntry : services.entrySet()) {
- String service = serviceEntry.getKey();
- if (this.getInterface(service).equals(url.getServiceInterface())
- && (CommonConstants.ANY_VALUE.equals(group) || StringUtils.isEquals(group, this.getGroup(service)))
- && (CommonConstants.ANY_VALUE.equals(version) || StringUtils.isEquals(version, this.getVersion(service)))) {
- services.remove(service);
- }
- }
- }
- }
- } else {
- if (StringUtils.isEmpty(interfaceName)) {
- interfaceName = url.getServiceInterface();
- }
- Map> services = categories.get(category);
- if (services == null) {
- services = new HashMap<>();
- categories.put(category, services);
- }
- String service = url.getServiceKey();
- Map ids = services.get(service);
- if (ids == null) {
- ids = new HashMap<>();
- services.put(service, ids);
- }
-
- // Make sure we use the same ID for the same URL
- if (URL_IDS_MAPPER.containsKey(url.toFullString())) {
- ids.put(URL_IDS_MAPPER.get(url.toFullString()), url);
- } else {
- String md5 = MD5Util.MD5_16bit(url.toFullString());
- ids.put(md5, url);
- URL_IDS_MAPPER.putIfAbsent(url.toFullString(), md5);
- }
- }
- }
- if (categories.size() == 0) {
- return;
- }
- for (Map.Entry>> categoryEntry : categories.entrySet()) {
- String category = categoryEntry.getKey();
- ConcurrentMap> services = registryCache.get(category);
- if (services == null) {
- services = new ConcurrentHashMap>();
- registryCache.put(category, services);
- } else {// Fix map can not be cleared when service is unregistered: when a unique “group/service:version” service is unregistered, but we still have the same services with different version or group, so empty protocols can not be invoked.
- Set keys = new HashSet(services.keySet());
- for (String key : keys) {
- if (this.getInterface(key).equals(interfaceName) && !categoryEntry.getValue().entrySet().contains(key)) {
- services.remove(key);
- }
- }
- }
- services.putAll(categoryEntry.getValue());
- }
- }
-
- public String getInterface(String service) {
- if (service != null && service.length() > 0) {
- int i = service.indexOf('/');
- if (i >= 0) {
- service = service.substring(i + 1);
- }
- i = service.lastIndexOf(':');
- if (i >= 0) {
- service = service.substring(0, i);
- }
- }
- return service;
- }
-
- public String getGroup(String service) {
- if (service != null && service.length() > 0) {
- int i = service.indexOf('/');
- if (i >= 0) {
- return service.substring(0, i);
- }
- }
- return null;
- }
-
- public String getVersion(String service) {
- if (service != null && service.length() > 0) {
- int i = service.lastIndexOf(':');
- if (i >= 0) {
- return service.substring(i + 1);
- }
- }
- return null;
- }
-}
diff --git a/backend/src/main/java/io/metersphere/api/dubbo/utils/Constants.java b/backend/src/main/java/io/metersphere/api/dubbo/utils/Constants.java
deleted file mode 100644
index 16ff47dc56..0000000000
--- a/backend/src/main/java/io/metersphere/api/dubbo/utils/Constants.java
+++ /dev/null
@@ -1,614 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 io.metersphere.api.dubbo.utils;
-
-import io.metersphere.api.dubbo.MethodArgument;
-import org.apache.jmeter.testelement.TestElement;
-import org.apache.jmeter.testelement.property.IntegerProperty;
-import org.apache.jmeter.testelement.property.StringProperty;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Constants
- */
-public class Constants {
-
- //Registry Protocol
- public static final String REGISTRY_NONE = "none";
- public static final String REGISTRY_ZOOKEEPER = "zookeeper";
- public static final String REGISTRY_NACOS = "nacos";
- public static final String APOLLO = "apollo";
- public static final String REGISTRY_MULTICAST = "multicast";
- public static final String REGISTRY_REDIS = "redis";
- public static final String REGISTRY_SIMPLE = "simple";
-
- //RPC Protocol
- public static final String RPC_PROTOCOL_DUBBO = "dubbo";
- public static final String RPC_PROTOCOL_RMI = "rmi";
- public static final String RPC_PROTOCOL_HESSIAN = "hessian";
- public static final String RPC_PROTOCOL_HTTP = "http";
- public static final String RPC_PROTOCOL_WEBSERVICE = "webservice";
- public static final String RPC_PROTOCOL_THRIFT = "thrift";
- public static final String RPC_PROTOCOL_MEMCACHED = "memcached";
- public static final String RPC_PROTOCOL_REDIS = "redis";
-
- public static final String ASYNC = "async";
- public static final String SYMBOL = "://";
-
- public static final int INT_DEFAULT = 0;
- public static final double DOUBLE_DEFAULT = 0.0d;
- public static final boolean BOOLEAN_DEFAULT = false;
- public static final char CHAR_DEFAULT = '\u0000';
- public static final float FLOAT_DEFAULT = 0.0f;
- public static final byte BYTE_DEFAULT = 0;
- public static final long LONG_DEFAULT = 0l;
- public static final short SHORT_DEFAULT = 0;
- public static final int[] INT_ARRAY_DEFAULT = null;
- public static final double[] DOUBLE_ARRAY_DEFAULT = null;
- public static final boolean[] BOOLEAN_ARRAY_DEFAULT = null;
- public static final char[] CHAT_ARRAY_DEFAULT = null;
- public static final float[] FLOAT_ARRAY_DEFAULT = null;
- public static final byte[] BYTE_ARRAY_DEFAULT = null;
- public static final long[] LONG_ARRAY_DEFAULT = null;
- public static final short[] SHORT_ARRAY_DEFAULT = null;
-
- public static final String FIELD_DUBBO_REGISTRY_PROTOCOL = "FIELD_DUBBO_REGISTRY_PROTOCOL";
- public static final String FIELD_DUBBO_REGISTRY_GROUP = "FIELD_DUBBO_REGISTRY_GROUP";
- public static final String FIELD_DUBBO_REGISTRY_USER_NAME = "FIELD_DUBBO_REGISTRY_USER_NAME";
- public static final String FIELD_DUBBO_REGISTRY_PASSWORD = "FIELD_DUBBO_REGISTRY_PASSWORD";
- public static final String FIELD_DUBBO_REGISTRY_TIMEOUT = "FIELD_DUBBO_REGISTRY_TIMEOUT";
- public static final String FIELD_DUBBO_CONFIG_CENTER_PROTOCOL = "FIELD_DUBBO_CONFIG_CENTER_PROTOCOL";
- public static final String FIELD_DUBBO_CONFIG_CENTER_GROUP = "FIELD_DUBBO_CONFIG_CENTER_GROUP";
- public static final String FIELD_DUBBO_CONFIG_CENTER_NAMESPACE = "FIELD_DUBBO_CONFIG_CENTER_NAMESPACE";
- public static final String FIELD_DUBBO_CONFIG_CENTER_USER_NAME = "FIELD_DUBBO_CONFIG_CENTER_USER_NAME";
- public static final String FIELD_DUBBO_CONFIG_CENTER_PASSWORD = "FIELD_DUBBO_CONFIG_CENTER_PASSWORD";
- public static final String FIELD_DUBBO_CONFIG_CENTER_TIMEOUT = "FIELD_DUBBO_CONFIG_CENTER_TIMEOUT";
- public static final String FIELD_DUBBO_CONFIG_CENTER_ADDRESS = "FIELD_DUBBO_CONFIG_CENTER_ADDRESS";
- public static final String FIELD_DUBBO_RPC_PROTOCOL = "FIELD_DUBBO_RPC_PROTOCOL";
- public static final String FIELD_DUBBO_ADDRESS = "FIELD_DUBBO_ADDRESS";
- public static final String FIELD_DUBBO_TIMEOUT = "FIELD_DUBBO_TIMEOUT";
- public static final String FIELD_DUBBO_VERSION = "FIELD_DUBBO_VERSION";
- public static final String FIELD_DUBBO_RETRIES = "FIELD_DUBBO_RETRIES";
- public static final String FIELD_DUBBO_CLUSTER = "FIELD_DUBBO_CLUSTER";
- public static final String FIELD_DUBBO_GROUP = "FIELD_DUBBO_GROUP";
- public static final String FIELD_DUBBO_CONNECTIONS = "FIELD_DUBBO_CONNECTIONS";
- public static final String FIELD_DUBBO_LOADBALANCE = "FIELD_DUBBO_LOADBALANCE";
- public static final String FIELD_DUBBO_ASYNC = "FIELD_DUBBO_ASYNC";
- public static final String FIELD_DUBBO_INTERFACE = "FIELD_DUBBO_INTERFACE";
- public static final String FIELD_DUBBO_METHOD = "FIELD_DUBBO_METHOD";
- public static final String FIELD_DUBBO_METHOD_ARGS = "FIELD_DUBBO_METHOD_ARGS";
- public static final String FIELD_DUBBO_METHOD_ARGS_SIZE = "FIELD_DUBBO_METHOD_ARGS_SIZE";
- public static final String FIELD_DUBBO_ATTACHMENT_ARGS = "FIELD_DUBBO_ATTACHMENT_ARGS";
- public static final String FIELD_DUBBO_ATTACHMENT_ARGS_SIZE = "FIELD_DUBBO_ATTACHMENT_ARGS_SIZE";
- public static final String DEFAULT_TIMEOUT = "1000";
- public static final String DEFAULT_VERSION = "1.0";
- public static final String DEFAULT_RETRIES = "0";
- public static final String DEFAULT_CLUSTER = "failfast";
- public static final String DEFAULT_CONNECTIONS = "100";
-
- //冗余配置元件中的address、protocols、group,用于在sample gui获取配置元件中的默认值
- public static String DEFAULT_PANEL_ADDRESS = "";
- public static String DEFAULT_PANEL_PROTOCOLS = "";
- public static String DEFAULT_PANEL_GROUP = "";
-
- public static final void redundancy(TestElement element) {
- DEFAULT_PANEL_ADDRESS = Constants.getAddress(element);
- DEFAULT_PANEL_PROTOCOLS = Constants.getRegistryProtocol(element);
- DEFAULT_PANEL_GROUP = Constants.getRegistryGroup(element);
- }
-
- /**
- * get Registry Protocol
- *
- * @return the protocol
- */
- public static final String getRegistryProtocol(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_REGISTRY_PROTOCOL);
- }
-
- /**
- * set Registry Protocol
- *
- * @param registryProtocol the protocol to set
- */
- public static final void setRegistryProtocol(String registryProtocol, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_REGISTRY_PROTOCOL, StringUtils.trimAllWhitespace(registryProtocol)));
- }
-
- /**
- * get Registry Group
- *
- * @return the group
- */
- public static final String getRegistryGroup(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_REGISTRY_GROUP);
- }
-
- /**
- * set Registry Group
- *
- * @param registryGroup the group to set
- */
- public static final void setRegistryGroup(String registryGroup, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_REGISTRY_GROUP, StringUtils.trimAllWhitespace(registryGroup)));
- }
-
- /**
- * get Registry username
- *
- * @return the username
- */
- public static final String getRegistryUserName(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_REGISTRY_USER_NAME);
- }
-
- /**
- * set Registry username
- *
- * @param username the username to set
- */
- public static final void setRegistryUserName(String username, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_REGISTRY_USER_NAME, StringUtils.trimAllWhitespace(username)));
- }
-
- /**
- * get Registry password
- *
- * @return the password
- */
- public static final String getRegistryPassword(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_REGISTRY_PASSWORD);
- }
-
- /**
- * set Registry password
- *
- * @param password the password to set
- */
- public static final void setRegistryPassword(String password, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_REGISTRY_PASSWORD, StringUtils.trimAllWhitespace(password)));
- }
-
- /**
- * get Registry timeout
- *
- * @return the timeout
- */
- public static final String getRegistryTimeout(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_REGISTRY_TIMEOUT);
- }
-
- /**
- * set Registry timeout
- *
- * @param timeout the group to set
- */
- public static final void setRegistryTimeout(String timeout, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_REGISTRY_TIMEOUT, StringUtils.trimAllWhitespace(timeout)));
- }
-
- /**
- * get ConfigCenter protocol
- *
- * @return the protocol
- */
- public static final String getConfigCenterProtocol(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONFIG_CENTER_PROTOCOL);
- }
-
- /**
- * set ConfigCenter protocol
- *
- * @param protocol the protocol to set
- */
- public static final void setConfigCenterProtocol(String protocol, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONFIG_CENTER_PROTOCOL, StringUtils.trimAllWhitespace(protocol)));
- }
-
- /**
- * get ConfigCenter group
- *
- * @return the group
- */
- public static final String getConfigCenterGroup(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONFIG_CENTER_GROUP);
- }
-
- /**
- * set ConfigCenter group
- *
- * @param group the group to set
- */
- public static final void setConfigCenterGroup(String group, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONFIG_CENTER_GROUP, StringUtils.trimAllWhitespace(group)));
- }
-
- /**
- * get ConfigCenter namespace
- *
- * @return the namespace
- */
- public static final String getConfigCenterNamespace(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONFIG_CENTER_NAMESPACE);
- }
-
- /**
- * set ConfigCenter namespace
- *
- * @param namespace the namespace to set
- */
- public static final void setConfigCenterNamespace(String namespace, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONFIG_CENTER_NAMESPACE, StringUtils.trimAllWhitespace(namespace)));
- }
-
- /**
- * get ConfigCenter username
- *
- * @return the username
- */
- public static final String getConfigCenterUserName(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONFIG_CENTER_USER_NAME);
- }
-
- /**
- * set ConfigCenter username
- *
- * @param username the username to set
- */
- public static final void setConfigCenterUserName(String username, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONFIG_CENTER_USER_NAME, StringUtils.trimAllWhitespace(username)));
- }
-
- /**
- * get ConfigCenter password
- *
- * @return the password
- */
- public static final String getConfigCenterPassword(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONFIG_CENTER_PASSWORD);
- }
-
- /**
- * set ConfigCenter password
- *
- * @param password the password to set
- */
- public static final void setConfigCenterPassword(String password, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONFIG_CENTER_PASSWORD, StringUtils.trimAllWhitespace(password)));
- }
-
- /**
- * get ConfigCenter address
- *
- * @return the address
- */
- public static final String getConfigCenterAddress(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONFIG_CENTER_ADDRESS);
- }
-
- /**
- * set ConfigCenter namespace
- *
- * @param address the address to set
- */
- public static final void setConfigCenterAddress(String address, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONFIG_CENTER_ADDRESS, StringUtils.trimAllWhitespace(address)));
- }
-
- /**
- * get ConfigCenter timeout
- *
- * @return the timeout
- */
- public static final String getConfigCenterTimeout(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONFIG_CENTER_TIMEOUT);
- }
-
- /**
- * set ConfigCenter namespace
- *
- * @param timeout the timeout to set
- */
- public static final void setConfigCenterTimeout(String timeout, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONFIG_CENTER_TIMEOUT, StringUtils.trimAllWhitespace(timeout)));
- }
-
- /**
- * get RPC protocol
- *
- * @return the RPC protocol
- */
- public static final String getRpcProtocol(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_RPC_PROTOCOL);
- }
-
- /**
- * set RPC protocol
- *
- * @param rpcProtocol the protocol to set
- */
- public static final void setRpcProtocol(String rpcProtocol, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_RPC_PROTOCOL, StringUtils.trimAllWhitespace(rpcProtocol)));
- }
-
- /**
- * get address
- *
- * @return the address
- */
- public static final String getAddress(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_ADDRESS);
- }
-
- /**
- * set address
- *
- * @param address the address to set
- */
- public static final void setAddress(String address, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_ADDRESS, StringUtils.trimAllWhitespace(address)));
- }
-
- /**
- * get timeout
- *
- * @return the timeout
- */
- public static final String getTimeout(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_TIMEOUT, DEFAULT_TIMEOUT);
- }
-
- /**
- * set timeout
- *
- * @param timeout the timeout to set
- */
- public static final void setTimeout(String timeout, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_TIMEOUT, StringUtils.trimAllWhitespace(timeout)));
- }
-
- /**
- * get version
- *
- * @return the version
- */
- public static final String getVersion(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_VERSION, DEFAULT_VERSION);
- }
-
- /**
- * set version
- *
- * @param version the version to set
- */
- public static final void setVersion(String version, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_VERSION, StringUtils.trimAllWhitespace(version)));
- }
-
- /**
- * get retries
- *
- * @return the retries
- */
- public static final String getRetries(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_RETRIES, DEFAULT_RETRIES);
- }
-
- /**
- * set retries
- *
- * @param retries the retries to set
- */
- public static final void setRetries(String retries, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_RETRIES, StringUtils.trimAllWhitespace(retries)));
- }
-
- /**
- * get cluster
- *
- * @return the cluster
- */
- public static final String getCluster(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CLUSTER, DEFAULT_CLUSTER);
- }
-
- /**
- * set cluster
- *
- * @param cluster the cluster to set
- */
- public static final void setCluster(String cluster, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CLUSTER, StringUtils.trimAllWhitespace(cluster)));
- }
-
- /**
- * get group
- *
- * @return the group
- */
- public static final String getGroup(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_GROUP, null);
- }
-
- /**
- * set group
- *
- * @param group the group to set
- */
- public static final void setGroup(String group, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_GROUP, StringUtils.trimAllWhitespace(group)));
- }
-
- /**
- * get connections
- *
- * @return the group
- */
- public static final String getConnections(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_CONNECTIONS, DEFAULT_CONNECTIONS);
- }
-
- /**
- * set connections
- *
- * @param connections the connections to set
- */
- public static final void setConnections(String connections, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_CONNECTIONS, StringUtils.trimAllWhitespace(connections)));
- }
-
- /**
- * get loadbalance
- *
- * @return the loadbalance
- */
- public static final String getLoadbalance(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_LOADBALANCE);
- }
-
- /**
- * set loadbalance
- *
- * @param loadbalance the loadbalance to set
- */
- public static final void setLoadbalance(String loadbalance, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_LOADBALANCE, StringUtils.trimAllWhitespace(loadbalance)));
- }
-
- /**
- * get async
- *
- * @return the async
- */
- public static final String getAsync(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_ASYNC);
- }
-
- /**
- * set async
- *
- * @param async the async to set
- */
- public static final void setAsync(String async, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_ASYNC, StringUtils.trimAllWhitespace(async)));
- }
-
- /**
- * get interfaceName
- *
- * @return the interfaceName
- */
- public static final String getInterface(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_INTERFACE);
- }
-
- /**
- * set interfaceName
- *
- * @param interfaceName the interfaceName to set
- */
- public static final void setInterfaceName(String interfaceName, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_INTERFACE, StringUtils.trimAllWhitespace(interfaceName)));
- }
-
- /**
- * get method
- *
- * @return the method
- */
- public static final String getMethod(TestElement element) {
- return element.getPropertyAsString(FIELD_DUBBO_METHOD);
- }
-
- /**
- * set method
- *
- * @param method the method to set
- */
- public static final void setMethod(String method, TestElement element) {
- element.setProperty(new StringProperty(FIELD_DUBBO_METHOD, StringUtils.trimAllWhitespace(method)));
- }
-
- /**
- * get methodArgs
- *
- * @return the methodArgs
- */
- public static final List getMethodArgs(TestElement element) {
- int paramsSize = element.getPropertyAsInt(FIELD_DUBBO_METHOD_ARGS_SIZE, 0);
- List list = new ArrayList();
- for (int i = 1; i <= paramsSize; i++) {
- String paramType = element.getPropertyAsString(FIELD_DUBBO_METHOD_ARGS + "_PARAM_TYPE" + i);
- String paramValue = element.getPropertyAsString(FIELD_DUBBO_METHOD_ARGS + "_PARAM_VALUE" + i);
- MethodArgument args = new MethodArgument(paramType, paramValue);
- list.add(args);
- }
- return list;
- }
-
- /**
- * set methodArgs
- *
- * @param methodArgs the methodArgs to set
- */
- public static final void setMethodArgs(List methodArgs, TestElement element) {
- int size = methodArgs == null ? 0 : methodArgs.size();
- element.setProperty(new IntegerProperty(FIELD_DUBBO_METHOD_ARGS_SIZE, size));
- if (size > 0) {
- for (int i = 1; i <= methodArgs.size(); i++) {
- element.setProperty(new StringProperty(FIELD_DUBBO_METHOD_ARGS + "_PARAM_TYPE" + i, methodArgs.get(i - 1).getParamType()));
- element.setProperty(new StringProperty(FIELD_DUBBO_METHOD_ARGS + "_PARAM_VALUE" + i, methodArgs.get(i - 1).getParamValue()));
- }
- }
- }
-
- /**
- * get attachmentArgs
- *
- * @return the attachmentArgs
- */
- public static final List getAttachmentArgs(TestElement element) {
- int paramsSize = element.getPropertyAsInt(FIELD_DUBBO_ATTACHMENT_ARGS_SIZE, 0);
- List list = new ArrayList();
- for (int i = 1; i <= paramsSize; i++) {
- String paramType = element.getPropertyAsString(FIELD_DUBBO_ATTACHMENT_ARGS + "_KEY" + i);
- String paramValue = element.getPropertyAsString(FIELD_DUBBO_ATTACHMENT_ARGS + "_VALUE" + i);
- MethodArgument args = new MethodArgument(paramType, paramValue);
- list.add(args);
- }
- return list;
- }
-
- /**
- * set attachmentArgs
- *
- * @param methodArgs the attachmentArgs to set
- */
- public static final void setAttachmentArgs(List methodArgs, TestElement element) {
- int size = methodArgs == null ? 0 : methodArgs.size();
- element.setProperty(new IntegerProperty(FIELD_DUBBO_ATTACHMENT_ARGS_SIZE, size));
- if (size > 0) {
- for (int i = 1; i <= methodArgs.size(); i++) {
- element.setProperty(new StringProperty(FIELD_DUBBO_ATTACHMENT_ARGS + "_KEY" + i, methodArgs.get(i - 1).getParamType()));
- element.setProperty(new StringProperty(FIELD_DUBBO_ATTACHMENT_ARGS + "_VALUE" + i, methodArgs.get(i - 1).getParamValue()));
- }
- }
- }
-
-}
diff --git a/backend/src/main/java/io/metersphere/api/dubbo/utils/JsonUtils.java b/backend/src/main/java/io/metersphere/api/dubbo/utils/JsonUtils.java
deleted file mode 100644
index e3022ab121..0000000000
--- a/backend/src/main/java/io/metersphere/api/dubbo/utils/JsonUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package io.metersphere.api.dubbo.utils;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonSyntaxException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.lang.reflect.Type;
-
-/**
- * JsonUtils
- */
-public class JsonUtils {
-
- private static final Logger logger = LoggerFactory.getLogger(JsonUtils.class);
-
- private static final Gson gson = new GsonBuilder()
- .setDateFormat("yyyy-MM-dd HH:mm:ss")
- .setPrettyPrinting()
- .disableHtmlEscaping()
- .serializeNulls()
- .create();
-
- public static String toJson(Object obj) {
- return gson.toJson(obj);
- }
-
- public static String toJson(Object obj, Type type) {
- return gson.toJson(obj, type);
- }
-
- public static T formJson(String json, Class classOfT) {
- try {
- return gson.fromJson(json, classOfT);
- } catch (JsonSyntaxException e) {
- logger.error("json to class[" + classOfT.getName() + "] is error!",
- e);
- }
- return null;
- }
-
- public static T formJson(String json, Type type) {
- try {
- return gson.fromJson(json, type);
- } catch (JsonSyntaxException e) {
- logger.error("json to class[" + type.getClass().getName()
- + "] is error!", e);
- }
- return null;
- }
-}
diff --git a/backend/src/main/java/io/metersphere/api/dubbo/utils/MD5Util.java b/backend/src/main/java/io/metersphere/api/dubbo/utils/MD5Util.java
deleted file mode 100644
index 23786ab5fd..0000000000
--- a/backend/src/main/java/io/metersphere/api/dubbo/utils/MD5Util.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 io.metersphere.api.dubbo.utils;
-
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * MD5Util
- */
-public class MD5Util {
- private static MessageDigest md;
- private static final char[] hexCode = "0123456789ABCDEF".toCharArray();
-
- static {
- try {
- md = MessageDigest.getInstance("MD5");
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
- }
-
- public static String MD5_16bit(String input) {
- String hash = MD5_32bit(input);
- if (hash == null) {
- return null;
- }
- return hash.substring(8, 24);
- }
-
- public static String MD5_32bit(String input) {
- if (input == null || input.length() == 0) {
- return null;
- }
- md.update(input.getBytes());
- byte[] digest = md.digest();
- String hash = convertToString(digest);
- return hash;
- }
-
- private static String convertToString(byte[] data) {
- StringBuilder r = new StringBuilder(data.length * 2);
- for (byte b : data) {
- r.append(hexCode[(b >> 4) & 0xF]);
- r.append(hexCode[(b & 0xF)]);
- }
- return r.toString();
- }
-
-}
diff --git a/backend/src/main/java/io/metersphere/api/dubbo/utils/StringUtils.java b/backend/src/main/java/io/metersphere/api/dubbo/utils/StringUtils.java
deleted file mode 100644
index 5f9f4814d2..0000000000
--- a/backend/src/main/java/io/metersphere/api/dubbo/utils/StringUtils.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package io.metersphere.api.dubbo.utils;
-
-/**
- * StringUtils
- */
-public class StringUtils {
-
- public static boolean hasLength(String str) {
- return str != null && !str.isEmpty();
- }
-
- public static String trimAllWhitespace(String str) {
- if (!hasLength(str)) {
- return str;
- } else {
- int len = str.length();
- StringBuilder sb = new StringBuilder(str.length());
-
- for (int i = 0; i < len; ++i) {
- char c = str.charAt(i);
- if (!Character.isWhitespace(c)) {
- sb.append(c);
- }
- }
-
- return sb.toString();
- }
- }
-
- public static String trimWhitespace(String str) {
- if (!hasLength(str)) {
- return str;
- } else {
- StringBuilder sb = new StringBuilder(str);
-
- while (sb.length() > 0 && Character.isWhitespace(sb.charAt(0))) {
- sb.deleteCharAt(0);
- }
-
- while (sb.length() > 0 && Character.isWhitespace(sb.charAt(sb.length() - 1))) {
- sb.deleteCharAt(sb.length() - 1);
- }
-
- return sb.toString();
- }
- }
-
- public static boolean isBlank(CharSequence cs) {
- int strLen;
- if (cs != null && (strLen = cs.length()) != 0) {
- for (int i = 0; i < strLen; ++i) {
- if (!Character.isWhitespace(cs.charAt(i))) {
- return false;
- }
- }
-
- return true;
- } else {
- return true;
- }
- }
-
- public static boolean isBlank1(String paramValue) {
- if (isBlank(paramValue) || "null".equals(paramValue.toLowerCase())) {
- return true;
- }
- return false;
- }
-}