stop();
+
+ /**
+ * the timer is stop
+ *
+ * @return true for stop
+ */
+ boolean isStop();
}
\ No newline at end of file
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ArrayUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ArrayUtils.java
new file mode 100644
index 0000000000..a0b62bd402
--- /dev/null
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ArrayUtils.java
@@ -0,0 +1,47 @@
+/*
+ * 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 org.apache.dubbo.common.utils;
+
+/**
+ * Contains some methods to check array.
+ */
+public final class ArrayUtils {
+
+ private ArrayUtils() {
+ }
+
+ /**
+ * Checks if the array is null or empty.
+ *
+ * @param array th array to check
+ * @return {@code true} if the array is null or empty.
+ */
+ public static boolean isEmpty(final Object[] array) {
+ return array == null || array.length == 0;
+ }
+
+ /**
+ * Checks if the array is not null or empty.
+ *
+ * @param array th array to check
+ * @return {@code true} if the array is not null or empty.
+ */
+ public static boolean isNotEmpty(final Object[] array) {
+ return !isEmpty(array);
+ }
+}
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java
index c2c708f0a6..f599218f41 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java
@@ -174,7 +174,7 @@ public final class StringUtils {
* {@code null} if null String input
*/
public static String removeEnd(final String str, final String remove) {
- if (isEmpty(str) || isEmpty(remove)) {
+ if (isAnyEmpty(str, remove)) {
return str;
}
if (str.endsWith(remove)) {
@@ -314,7 +314,7 @@ public final class StringUtils {
* {@code null} if null String input
*/
public static String replace(final String text, final String searchString, final String replacement, int max) {
- if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
+ if (isAnyEmpty(text, searchString) || replacement == null || max == 0) {
return text;
}
int start = 0;
@@ -340,10 +340,7 @@ public final class StringUtils {
}
public static boolean isBlank(String str) {
- if (str == null || str.length() == 0) {
- return true;
- }
- return false;
+ return isEmpty(str);
}
/**
@@ -353,10 +350,57 @@ public final class StringUtils {
* @return is empty.
*/
public static boolean isEmpty(String str) {
- if (str == null || str.length() == 0) {
- return true;
+ return str == null || str.isEmpty();
+ }
+
+ /**
+ * Checks if the strings contain empty or null elements.
+ *
+ *
+ * StringUtils.isNoneEmpty(null) = false
+ * StringUtils.isNoneEmpty("") = false
+ * StringUtils.isNoneEmpty(" ") = true
+ * StringUtils.isNoneEmpty("abc") = true
+ * StringUtils.isNoneEmpty("abc", "def") = true
+ * StringUtils.isNoneEmpty("abc", null) = false
+ * StringUtils.isNoneEmpty("abc", "") = false
+ * StringUtils.isNoneEmpty("abc", " ") = true
+ *
+ *
+ * @param ss the strings to check
+ * @return {@code true} if all strings are not empty or null
+ */
+ public static boolean isNoneEmpty(final String... ss) {
+ if (ArrayUtils.isEmpty(ss)) {
+ return false;
}
- return false;
+ for (final String s : ss){
+ if (isEmpty(s)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Checks if the strings contain at least on empty or null element.
+ *
+ *
+ * StringUtils.isAnyEmpty(null) = true
+ * StringUtils.isAnyEmpty("") = true
+ * StringUtils.isAnyEmpty(" ") = false
+ * StringUtils.isAnyEmpty("abc") = false
+ * StringUtils.isAnyEmpty("abc", "def") = false
+ * StringUtils.isAnyEmpty("abc", null) = true
+ * StringUtils.isAnyEmpty("abc", "") = true
+ * StringUtils.isAnyEmpty("abc", " ") = false
+ *
+ *
+ * @param ss the strings to check
+ * @return {@code true} if at least one in the strings is empty or null
+ */
+ public static boolean isAnyEmpty(final String... ss) {
+ return !isNoneEmpty(ss);
}
/**
@@ -366,7 +410,7 @@ public final class StringUtils {
* @return is not empty.
*/
public static boolean isNotEmpty(String str) {
- return str != null && str.length() > 0;
+ return !isEmpty(str);
}
/**
@@ -391,17 +435,11 @@ public final class StringUtils {
* @return is integer
*/
public static boolean isInteger(String str) {
- if (str == null || str.length() == 0) {
- return false;
- }
- return INT_PATTERN.matcher(str).matches();
+ return isNotEmpty(str) && INT_PATTERN.matcher(str).matches();
}
public static int parseInteger(String str) {
- if (!isInteger(str)) {
- return 0;
- }
- return Integer.parseInt(str);
+ return isInteger(str) ? Integer.parseInt(str) : 0;
}
/**
@@ -409,7 +447,7 @@ public final class StringUtils {
* more info.
*/
public static boolean isJavaIdentifier(String s) {
- if (s.length() == 0 || !Character.isJavaIdentifierStart(s.charAt(0))) {
+ if (isEmpty(s) || !Character.isJavaIdentifierStart(s.charAt(0))) {
return false;
}
for (int i = 1; i < s.length(); i++) {
@@ -421,10 +459,7 @@ public final class StringUtils {
}
public static boolean isContains(String values, String value) {
- if (values == null || values.length() == 0) {
- return false;
- }
- return isContains(Constants.COMMA_SPLIT_PATTERN.split(values), value);
+ return isNotEmpty(values) && isContains(Constants.COMMA_SPLIT_PATTERN.split(values), value);
}
/**
@@ -433,7 +468,7 @@ public final class StringUtils {
* @return contains
*/
public static boolean isContains(String[] values, String value) {
- if (value != null && value.length() > 0 && values != null && values.length > 0) {
+ if (isNotEmpty(value) && ArrayUtils.isNotEmpty(values)) {
for (String v : values) {
if (value.equals(v)) {
return true;
@@ -449,7 +484,7 @@ public final class StringUtils {
}
int sz = str.length();
for (int i = 0; i < sz; i++) {
- if (Character.isDigit(str.charAt(i)) == false) {
+ if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
@@ -494,14 +529,14 @@ public final class StringUtils {
}
/**
- * translat.
+ * translate.
*
* @param src source string.
* @param from src char table.
* @param to target char table.
* @return String.
*/
- public static String translat(String src, String from, String to) {
+ public static String translate(String src, String from, String to) {
if (isEmpty(src)) {
return src;
}
@@ -561,8 +596,8 @@ public final class StringUtils {
* @return String.
*/
public static String join(String[] array) {
- if (array.length == 0) {
- return "";
+ if (ArrayUtils.isEmpty(array)) {
+ return EMPTY;
}
StringBuilder sb = new StringBuilder();
for (String s : array) {
@@ -579,8 +614,8 @@ public final class StringUtils {
* @return String.
*/
public static String join(String[] array, char split) {
- if (array.length == 0) {
- return "";
+ if (ArrayUtils.isEmpty(array)) {
+ return EMPTY;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < array.length; i++) {
@@ -600,8 +635,8 @@ public final class StringUtils {
* @return String.
*/
public static String join(String[] array, String split) {
- if (array.length == 0) {
- return "";
+ if (ArrayUtils.isEmpty(array)) {
+ return EMPTY;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < array.length; i++) {
@@ -614,8 +649,8 @@ public final class StringUtils {
}
public static String join(Collection coll, String split) {
- if (coll.isEmpty()) {
- return "";
+ if (CollectionUtils.isEmpty(coll)) {
+ return EMPTY;
}
StringBuilder sb = new StringBuilder();
@@ -643,7 +678,7 @@ public final class StringUtils {
Map map = new HashMap(tmp.length);
for (int i = 0; i < tmp.length; i++) {
Matcher matcher = KVP_PATTERN.matcher(tmp[i]);
- if (matcher.matches() == false) {
+ if (!matcher.matches()) {
continue;
}
map.put(matcher.group(1), matcher.group(2));
@@ -663,7 +698,7 @@ public final class StringUtils {
* @return Parameters instance.
*/
public static Map parseQueryString(String qs) {
- if (qs == null || qs.length() == 0) {
+ if (isEmpty(qs)) {
return new HashMap();
}
return parseKeyValuePair(qs, "\\&");
@@ -672,12 +707,12 @@ public final class StringUtils {
public static String getServiceKey(Map ps) {
StringBuilder buf = new StringBuilder();
String group = ps.get(Constants.GROUP_KEY);
- if (group != null && group.length() > 0) {
+ if (isNotEmpty(group)) {
buf.append(group).append("/");
}
buf.append(ps.get(Constants.INTERFACE_KEY));
String version = ps.get(Constants.VERSION_KEY);
- if (version != null && version.length() > 0) {
+ if (isNotEmpty(group)) {
buf.append(":").append(version);
}
return buf.toString();
@@ -689,8 +724,7 @@ public final class StringUtils {
for (Map.Entry entry : new TreeMap(ps).entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
- if (key != null && key.length() > 0
- && value != null && value.length() > 0) {
+ if (isNoneEmpty(key, value)) {
if (buf.length() > 0) {
buf.append("&");
}
@@ -704,7 +738,7 @@ public final class StringUtils {
}
public static String camelToSplitName(String camelName, String split) {
- if (camelName == null || camelName.length() == 0) {
+ if (isEmpty(camelName)) {
return camelName;
}
StringBuilder buf = null;
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionLoaderTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionLoaderTest.java
index b141707501..185296fa16 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionLoaderTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionLoaderTest.java
@@ -47,7 +47,8 @@ import org.apache.dubbo.common.extension.ext8_add.impl.AddExt3_ManualAdaptive;
import org.apache.dubbo.common.extension.ext8_add.impl.AddExt4_ManualAdaptive;
import org.apache.dubbo.common.extension.ext9_empty.Ext9Empty;
import org.apache.dubbo.common.extension.ext9_empty.impl.Ext9EmptyImpl;
-
+import org.apache.dubbo.common.extension.injection.InjectExt;
+import org.apache.dubbo.common.extension.injection.impl.InjectExtImpl;
import org.junit.Assert;
import org.junit.Test;
@@ -425,4 +426,14 @@ public class ExtensionLoaderTest {
Assert.assertTrue(list.get(1).getClass() == OrderActivateExtImpl1.class);
}
+ @Test
+ public void testInjectExtension() {
+ // test default
+ InjectExt injectExt = ExtensionLoader.getExtensionLoader(InjectExt.class).getExtension("injection");
+ InjectExtImpl injectExtImpl = (InjectExtImpl) injectExt;
+ Assert.assertNotNull(injectExtImpl.getSimpleExt());
+ Assert.assertNull(injectExtImpl.getSimpleExt1());
+ Assert.assertNull(injectExtImpl.getGenericType());
+ }
+
}
\ No newline at end of file
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/extension/injection/InjectExt.java b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/injection/InjectExt.java
new file mode 100644
index 0000000000..f2ffe41c69
--- /dev/null
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/injection/InjectExt.java
@@ -0,0 +1,27 @@
+/*
+ * 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 org.apache.dubbo.common.extension.injection;
+
+import org.apache.dubbo.common.extension.SPI;
+
+/**
+ *
+ */
+@SPI("injection")
+public interface InjectExt {
+ String echo(String msg);
+}
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/extension/injection/impl/InjectExtImpl.java b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/injection/impl/InjectExtImpl.java
new file mode 100644
index 0000000000..ccff9547f5
--- /dev/null
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/injection/impl/InjectExtImpl.java
@@ -0,0 +1,60 @@
+/*
+ * 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 org.apache.dubbo.common.extension.injection.impl;
+
+import org.apache.dubbo.common.extension.DisableInject;
+import org.apache.dubbo.common.extension.ext1.SimpleExt;
+import org.apache.dubbo.common.extension.injection.InjectExt;
+
+public class InjectExtImpl implements InjectExt {
+
+ private SimpleExt simpleExt;
+
+ private SimpleExt simpleExt1;
+
+ private Object genericType;
+
+ public void setSimpleExt(SimpleExt simpleExt) {
+ this.simpleExt = simpleExt;
+ }
+
+ @DisableInject
+ public void setSimpleExt1(SimpleExt simpleExt1) {
+ this.simpleExt1 = simpleExt1;
+ }
+
+ public void setGenericType(Object genericType) {
+ this.genericType = genericType;
+ }
+
+ @Override
+ public String echo(String msg) {
+ return null;
+ }
+
+ public SimpleExt getSimpleExt() {
+ return simpleExt;
+ }
+
+ public SimpleExt getSimpleExt1() {
+ return simpleExt1;
+ }
+
+ public Object getGenericType() {
+ return genericType;
+ }
+}
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/ArrayUtilsTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/ArrayUtilsTest.java
new file mode 100644
index 0000000000..76fb7884bd
--- /dev/null
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/ArrayUtilsTest.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.apache.dubbo.common.utils;
+
+import static junit.framework.TestCase.assertFalse;
+import static junit.framework.TestCase.assertTrue;
+
+import org.junit.Test;
+
+public class ArrayUtilsTest {
+
+ @Test
+ public void isEmpty() throws Exception {
+ assertTrue(ArrayUtils.isEmpty(null));
+ assertTrue(ArrayUtils.isEmpty(new Object[0]));
+ assertFalse(ArrayUtils.isEmpty(new Object[]{"abc"}));
+ }
+
+ @Test
+ public void isNotEmpty() throws Exception {
+ assertFalse(ArrayUtils.isNotEmpty(null));
+ assertFalse(ArrayUtils.isNotEmpty(new Object[0]));
+ assertTrue(ArrayUtils.isNotEmpty(new Object[]{"abc"}));
+ }
+
+}
\ No newline at end of file
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/StringUtilsTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/StringUtilsTest.java
index fa95bfb834..111544155b 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/StringUtilsTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/StringUtilsTest.java
@@ -111,6 +111,30 @@ public class StringUtilsTest {
assertFalse(StringUtils.isEmpty("abc"));
}
+ @Test
+ public void testIsNoneEmpty() throws Exception {
+ assertFalse(StringUtils.isNoneEmpty(null));
+ assertFalse(StringUtils.isNoneEmpty(""));
+ assertTrue(StringUtils.isNoneEmpty(" "));
+ assertTrue(StringUtils.isNoneEmpty("abc"));
+ assertTrue(StringUtils.isNoneEmpty("abc", "def"));
+ assertFalse(StringUtils.isNoneEmpty("abc", null));
+ assertFalse(StringUtils.isNoneEmpty("abc", ""));
+ assertTrue(StringUtils.isNoneEmpty("abc", " "));
+ }
+
+ @Test
+ public void testIsAnyEmpty() throws Exception {
+ assertTrue(StringUtils.isAnyEmpty(null));
+ assertTrue(StringUtils.isAnyEmpty(""));
+ assertFalse(StringUtils.isAnyEmpty(" "));
+ assertFalse(StringUtils.isAnyEmpty("abc"));
+ assertFalse(StringUtils.isAnyEmpty("abc", "def"));
+ assertTrue(StringUtils.isAnyEmpty("abc", null));
+ assertTrue(StringUtils.isAnyEmpty("abc", ""));
+ assertFalse(StringUtils.isAnyEmpty("abc", " "));
+ }
+
@Test
public void testIsNotEmpty() throws Exception {
assertFalse(StringUtils.isNotEmpty(null));
@@ -200,10 +224,10 @@ public class StringUtilsTest {
}
@Test
- public void testTranslat() throws Exception {
+ public void testTranslate() throws Exception {
String s = "16314";
- assertEquals(StringUtils.translat(s, "123456", "abcdef"), "afcad");
- assertEquals(StringUtils.translat(s, "123456", "abcd"), "acad");
+ assertEquals(StringUtils.translate(s, "123456", "abcdef"), "afcad");
+ assertEquals(StringUtils.translate(s, "123456", "abcd"), "acad");
}
@Test
diff --git a/dubbo-common/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.common.extension.injection.InjectExt b/dubbo-common/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.common.extension.injection.InjectExt
new file mode 100644
index 0000000000..b3d82a05b1
--- /dev/null
+++ b/dubbo-common/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.common.extension.injection.InjectExt
@@ -0,0 +1 @@
+injection=org.apache.dubbo.common.extension.injection.impl.InjectExtImpl
\ No newline at end of file
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/URL.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/URL.java
index 3a6796a786..76b09f43db 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/URL.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/URL.java
@@ -79,71 +79,88 @@ public class URL extends org.apache.dubbo.common.URL {
return org.apache.dubbo.common.URL.decode(value);
}
+ @Override
public String getProtocol() {
return super.getProtocol();
}
+ @Override
public URL setProtocol(String protocol) {
return new URL(protocol, super.getUsername(), super.getPassword(), super.getHost(), super.getPort(), super.getPath(), super.getParameters());
}
+ @Override
public String getUsername() {
return super.getUsername();
}
+ @Override
public URL setUsername(String username) {
return new URL(super.getProtocol(), username, super.getPassword(), super.getHost(), super.getPort(), super.getPath(), super.getParameters());
}
+ @Override
public String getPassword() {
return super.getPassword();
}
+ @Override
public URL setPassword(String password) {
return new URL(super.getProtocol(), super.getUsername(), password, super.getHost(), super.getPort(), super.getPath(), super.getParameters());
}
+ @Override
public String getAuthority() {
return super.getAuthority();
}
+ @Override
public String getHost() {
return super.getHost();
}
+ @Override
public URL setHost(String host) {
return new URL(super.getProtocol(), super.getUsername(), super.getPassword(), host, super.getPort(), super.getPath(), super.getParameters());
}
+ @Override
public String getIp() {
return super.getIp();
}
+ @Override
public int getPort() {
return super.getPort();
}
+ @Override
public URL setPort(int port) {
return new URL(super.getProtocol(), super.getUsername(), super.getPassword(), super.getHost(), port, super.getPath(), super.getParameters());
}
+ @Override
public int getPort(int defaultPort) {
return super.getPort();
}
+ @Override
public String getAddress() {
return super.getAddress();
}
+ @Override
public URL setAddress(String address) {
org.apache.dubbo.common.URL result = super.setAddress(address);
return new URL(result);
}
+ @Override
public String getBackupAddress() {
return super.getBackupAddress();
}
+ @Override
public String getBackupAddress(int defaultPort) {
return super.getBackupAddress(defaultPort);
}
@@ -153,191 +170,238 @@ public class URL extends org.apache.dubbo.common.URL {
// return res.stream().map(url -> new URL(url)).collect(Collectors.toList());
// }
+ @Override
public String getPath() {
return super.getPath();
}
+ @Override
public URL setPath(String path) {
return new URL(super.getProtocol(), super.getUsername(), super.getPassword(), super.getHost(), super.getPort(), path, super.getParameters());
}
+ @Override
public String getAbsolutePath() {
return super.getAbsolutePath();
}
+ @Override
public Map getParameters() {
return super.getParameters();
}
+ @Override
public String getParameterAndDecoded(String key) {
return super.getParameterAndDecoded(key);
}
+ @Override
public String getParameterAndDecoded(String key, String defaultValue) {
- return super.decode(getParameter(key, defaultValue));
+ return org.apache.dubbo.common.URL.decode(getParameter(key, defaultValue));
}
+ @Override
public String getParameter(String key) {
return super.getParameter(key);
}
+ @Override
public String getParameter(String key, String defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public String[] getParameter(String key, String[] defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public URL getUrlParameter(String key) {
org.apache.dubbo.common.URL result = super.getUrlParameter(key);
return new URL(result);
}
+ @Override
public double getParameter(String key, double defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public float getParameter(String key, float defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public long getParameter(String key, long defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public int getParameter(String key, int defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public short getParameter(String key, short defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public byte getParameter(String key, byte defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public float getPositiveParameter(String key, float defaultValue) {
return super.getPositiveParameter(key, defaultValue);
}
+ @Override
public double getPositiveParameter(String key, double defaultValue) {
return super.getPositiveParameter(key, defaultValue);
}
+ @Override
public long getPositiveParameter(String key, long defaultValue) {
return super.getPositiveParameter(key, defaultValue);
}
+ @Override
public int getPositiveParameter(String key, int defaultValue) {
return super.getPositiveParameter(key, defaultValue);
}
+ @Override
public short getPositiveParameter(String key, short defaultValue) {
return super.getPositiveParameter(key, defaultValue);
}
+ @Override
public byte getPositiveParameter(String key, byte defaultValue) {
return super.getPositiveParameter(key, defaultValue);
}
+ @Override
public char getParameter(String key, char defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public boolean getParameter(String key, boolean defaultValue) {
return super.getParameter(key, defaultValue);
}
+ @Override
public boolean hasParameter(String key) {
return super.hasParameter(key);
}
+ @Override
public String getMethodParameterAndDecoded(String method, String key) {
return super.getMethodParameterAndDecoded(method, key);
}
+ @Override
public String getMethodParameterAndDecoded(String method, String key, String defaultValue) {
return super.getMethodParameterAndDecoded(method, key, defaultValue);
}
+ @Override
public String getMethodParameter(String method, String key) {
return super.getMethodParameter(method, key);
}
+ @Override
public String getMethodParameter(String method, String key, String defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public double getMethodParameter(String method, String key, double defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public float getMethodParameter(String method, String key, float defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public long getMethodParameter(String method, String key, long defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public int getMethodParameter(String method, String key, int defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public short getMethodParameter(String method, String key, short defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public byte getMethodParameter(String method, String key, byte defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public double getMethodPositiveParameter(String method, String key, double defaultValue) {
return super.getMethodPositiveParameter(method, key, defaultValue);
}
+ @Override
public float getMethodPositiveParameter(String method, String key, float defaultValue) {
return super.getMethodPositiveParameter(method, key, defaultValue);
}
+ @Override
public long getMethodPositiveParameter(String method, String key, long defaultValue) {
return super.getMethodPositiveParameter(method, key, defaultValue);
}
+ @Override
public int getMethodPositiveParameter(String method, String key, int defaultValue) {
return super.getMethodPositiveParameter(method, key, defaultValue);
}
+ @Override
public short getMethodPositiveParameter(String method, String key, short defaultValue) {
return super.getMethodPositiveParameter(method, key, defaultValue);
}
+ @Override
public byte getMethodPositiveParameter(String method, String key, byte defaultValue) {
return super.getMethodPositiveParameter(method, key, defaultValue);
}
+ @Override
public char getMethodParameter(String method, String key, char defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public boolean getMethodParameter(String method, String key, boolean defaultValue) {
return super.getMethodParameter(method, key, defaultValue);
}
+ @Override
public boolean hasMethodParameter(String method, String key) {
return super.hasMethodParameter(method, key);
}
+ @Override
public boolean isLocalHost() {
return super.isLocalHost();
}
+ @Override
public boolean isAnyHost() {
return super.isAnyHost();
}
+ @Override
public URL addParameterAndEncoded(String key, String value) {
if (value == null || value.length() == 0) {
return this;
@@ -345,38 +409,47 @@ public class URL extends org.apache.dubbo.common.URL {
return addParameter(key, encode(value));
}
+ @Override
public URL addParameter(String key, boolean value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, char value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, byte value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, short value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, int value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, long value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, float value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, double value) {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, Enum> value) {
if (value == null) {
return this;
@@ -384,6 +457,7 @@ public class URL extends org.apache.dubbo.common.URL {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, Number value) {
if (value == null) {
return this;
@@ -391,6 +465,7 @@ public class URL extends org.apache.dubbo.common.URL {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, CharSequence value) {
if (value == null || value.length() == 0) {
return this;
@@ -398,60 +473,72 @@ public class URL extends org.apache.dubbo.common.URL {
return addParameter(key, String.valueOf(value));
}
+ @Override
public URL addParameter(String key, String value) {
org.apache.dubbo.common.URL result = super.addParameter(key, value);
return new URL(result);
}
+ @Override
public URL addParameterIfAbsent(String key, String value) {
org.apache.dubbo.common.URL result = super.addParameterIfAbsent(key, value);
return new URL(result);
}
+ @Override
public URL addParameters(Map parameters) {
org.apache.dubbo.common.URL result = super.addParameters(parameters);
return new URL(result);
}
+ @Override
public URL addParametersIfAbsent(Map parameters) {
org.apache.dubbo.common.URL result = super.addParametersIfAbsent(parameters);
return new URL(result);
}
+ @Override
public URL addParameters(String... pairs) {
org.apache.dubbo.common.URL result = super.addParameters(pairs);
return new URL(result);
}
+ @Override
public URL addParameterString(String query) {
org.apache.dubbo.common.URL result = super.addParameterString(query);
return new URL(result);
}
+ @Override
public URL removeParameter(String key) {
org.apache.dubbo.common.URL result = super.removeParameter(key);
return new URL(result);
}
+ @Override
public URL removeParameters(Collection keys) {
org.apache.dubbo.common.URL result = super.removeParameters(keys);
return new URL(result);
}
+ @Override
public URL removeParameters(String... keys) {
org.apache.dubbo.common.URL result = super.removeParameters(keys);
return new URL(result);
}
+ @Override
public URL clearParameters() {
org.apache.dubbo.common.URL result = super.clearParameters();
return new URL(result);
}
+ @Override
public String getRawParameter(String key) {
return super.getRawParameter(key);
}
+ @Override
public Map toMap() {
return super.toMap();
}
@@ -461,58 +548,72 @@ public class URL extends org.apache.dubbo.common.URL {
return super.toString();
}
+ @Override
public String toString(String... parameters) {
return super.toString(parameters);
}
+ @Override
public String toIdentityString() {
return super.toIdentityString();
}
+ @Override
public String toIdentityString(String... parameters) {
return super.toIdentityString(parameters);
}
+ @Override
public String toFullString() {
return super.toFullString();
}
+ @Override
public String toFullString(String... parameters) {
return super.toFullString(parameters);
}
+ @Override
public String toParameterString() {
return super.toParameterString();
}
+ @Override
public String toParameterString(String... parameters) {
return super.toParameterString(parameters);
}
+ @Override
public java.net.URL toJavaURL() {
return super.toJavaURL();
}
+ @Override
public InetSocketAddress toInetSocketAddress() {
return super.toInetSocketAddress();
}
+ @Override
public String getServiceKey() {
return super.getServiceKey();
}
+ @Override
public String toServiceStringWithoutResolving() {
return super.toServiceStringWithoutResolving();
}
+ @Override
public String toServiceString() {
return super.toServiceString();
}
+ @Override
public String getServiceInterface() {
return super.getServiceInterface();
}
+ @Override
public URL setServiceInterface(String service) {
org.apache.dubbo.common.URL result = super.setServiceInterface(service);
return new URL(result);
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/status/StatusChecker.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/status/StatusChecker.java
index a140547545..3f74c133ff 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/status/StatusChecker.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/status/StatusChecker.java
@@ -20,5 +20,6 @@ package com.alibaba.dubbo.common.status;
@Deprecated
public interface StatusChecker extends org.apache.dubbo.common.status.StatusChecker {
+ @Override
Status check();
}
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java
index 0c25432403..1310d1a203 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java
@@ -20,6 +20,7 @@ package com.alibaba.dubbo.config.spring.context.annotation;
import org.apache.dubbo.config.AbstractConfig;
import org.apache.dubbo.config.spring.context.annotation.CompatibleDubboComponentScan;
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
+
import org.springframework.core.annotation.AliasFor;
import java.lang.annotation.Documented;
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/monitor/Monitor.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/monitor/Monitor.java
index 7444d86573..3d4abb3cd6 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/monitor/Monitor.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/monitor/Monitor.java
@@ -25,6 +25,7 @@ import java.util.stream.Collectors;
@Deprecated
public interface Monitor extends org.apache.dubbo.monitor.Monitor {
+ @Override
com.alibaba.dubbo.common.URL getUrl();
void collect(com.alibaba.dubbo.common.URL statistics);
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/Registry.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/Registry.java
index c5a84231a4..cc9ceb14ee 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/Registry.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/registry/Registry.java
@@ -26,6 +26,7 @@ import java.util.stream.Collectors;
@Deprecated
public interface Registry extends org.apache.dubbo.registry.Registry {
+ @Override
com.alibaba.dubbo.common.URL getUrl();
void register(com.alibaba.dubbo.common.URL url);
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/remoting/Channel.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/remoting/Channel.java
index c1606e7fac..a900047fb9 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/remoting/Channel.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/remoting/Channel.java
@@ -20,7 +20,9 @@ package com.alibaba.dubbo.remoting;
@Deprecated
public interface Channel extends org.apache.dubbo.remoting.Channel {
+ @Override
com.alibaba.dubbo.common.URL getUrl();
+ @Override
com.alibaba.dubbo.remoting.ChannelHandler getChannelHandler();
}
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Exporter.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Exporter.java
index 84ef9fe06f..c1fadeb9d8 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Exporter.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Exporter.java
@@ -20,6 +20,7 @@ package com.alibaba.dubbo.rpc;
@Deprecated
public interface Exporter extends org.apache.dubbo.rpc.Exporter {
+ @Override
Invoker getInvoker();
class CompatibleExporter implements Exporter {
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java
index 8da7202763..4ccde294e3 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Filter.java
@@ -22,6 +22,7 @@ public interface Filter extends org.apache.dubbo.rpc.Filter {
Result invoke(Invoker> invoker, Invocation invocation) throws RpcException;
+ @Override
default org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invoker> invoker,
org.apache.dubbo.rpc.Invocation invocation)
throws org.apache.dubbo.rpc.RpcException {
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invocation.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invocation.java
index 2306e3ecb5..b96d14d1ee 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invocation.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invocation.java
@@ -22,6 +22,7 @@ import java.util.Map;
@Deprecated
public interface Invocation extends org.apache.dubbo.rpc.Invocation {
+ @Override
Invoker> getInvoker();
default org.apache.dubbo.rpc.Invocation getOriginal() {
@@ -71,6 +72,7 @@ public interface Invocation extends org.apache.dubbo.rpc.Invocation {
return new Invoker.CompatibleInvoker(delegate.getInvoker());
}
+ @Override
public org.apache.dubbo.rpc.Invocation getOriginal() {
return delegate;
}
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java
index 3e79676540..55a948083f 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/Invoker.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.common.URL;
@Deprecated
public interface Invoker extends org.apache.dubbo.rpc.Invoker {
+ @Override
Result invoke(org.apache.dubbo.rpc.Invocation invocation) throws RpcException;
default org.apache.dubbo.rpc.Invoker getOriginal() {
@@ -61,6 +62,7 @@ public interface Invoker extends org.apache.dubbo.rpc.Invoker {
invoker.destroy();
}
+ @Override
public org.apache.dubbo.rpc.Invoker getOriginal() {
return invoker;
}
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Directory.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Directory.java
index d883f84abc..6e87c61351 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Directory.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Directory.java
@@ -17,18 +17,19 @@
package com.alibaba.dubbo.rpc.cluster;
-import com.alibaba.dubbo.common.URL;
-
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.RpcException;
+import com.alibaba.dubbo.common.URL;
+
import java.util.List;
import java.util.stream.Collectors;
@Deprecated
public interface Directory extends org.apache.dubbo.rpc.cluster.Directory {
+ @Override
URL getUrl();
List> list(com.alibaba.dubbo.rpc.Invocation invocation) throws com.alibaba.dubbo.rpc.RpcException;
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Router.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Router.java
index f3d5ddca59..8a27503868 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Router.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/rpc/cluster/Router.java
@@ -28,6 +28,7 @@ import java.util.stream.Collectors;
@Deprecated
public interface Router extends org.apache.dubbo.rpc.cluster.Router {
+ @Override
com.alibaba.dubbo.common.URL getUrl();
List> route(List> invokers,
diff --git a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceAnnotationBeanPostProcessor.java b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceAnnotationBeanPostProcessor.java
index 009bd28f80..544b1cb0bd 100644
--- a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceAnnotationBeanPostProcessor.java
+++ b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceAnnotationBeanPostProcessor.java
@@ -16,9 +16,9 @@
*/
package org.apache.dubbo.config.spring.beans.factory.annotation;
-import com.alibaba.dubbo.config.annotation.Reference;
-
import org.apache.dubbo.config.spring.ReferenceBean;
+
+import com.alibaba.dubbo.config.annotation.Reference;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeanUtils;
diff --git a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceBeanBuilder.java b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceBeanBuilder.java
index 924ffcbee3..cb2ba68a51 100644
--- a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceBeanBuilder.java
+++ b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleReferenceBeanBuilder.java
@@ -16,12 +16,12 @@
*/
package org.apache.dubbo.config.spring.beans.factory.annotation;
-import com.alibaba.dubbo.config.annotation.Reference;
-
import org.apache.dubbo.config.ConsumerConfig;
import org.apache.dubbo.config.spring.ReferenceBean;
import org.apache.dubbo.config.spring.convert.converter.StringArrayToMapConverter;
import org.apache.dubbo.config.spring.convert.converter.StringArrayToStringConverter;
+
+import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.context.ApplicationContext;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.support.DefaultConversionService;
diff --git a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleServiceAnnotationBeanPostProcessor.java b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleServiceAnnotationBeanPostProcessor.java
index b2ab6151be..5f4d990352 100644
--- a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleServiceAnnotationBeanPostProcessor.java
+++ b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/CompatibleServiceAnnotationBeanPostProcessor.java
@@ -16,12 +16,12 @@
*/
package org.apache.dubbo.config.spring.beans.factory.annotation;
-import com.alibaba.dubbo.config.annotation.Service;
-
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.config.spring.ServiceBean;
import org.apache.dubbo.config.spring.context.annotation.DubboClassPathBeanDefinitionScanner;
+
+import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.beans.BeansException;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.BeanClassLoaderAware;
diff --git a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/context/annotation/CompatibleDubboComponentScanRegistrar.java b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/context/annotation/CompatibleDubboComponentScanRegistrar.java
index df41b6e131..089bdda8cd 100644
--- a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/context/annotation/CompatibleDubboComponentScanRegistrar.java
+++ b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/context/annotation/CompatibleDubboComponentScanRegistrar.java
@@ -19,6 +19,7 @@ package org.apache.dubbo.config.spring.context.annotation;
import org.apache.dubbo.config.spring.beans.factory.annotation.CompatibleReferenceAnnotationBeanPostProcessor;
import org.apache.dubbo.config.spring.beans.factory.annotation.CompatibleServiceAnnotationBeanPostProcessor;
import org.apache.dubbo.config.spring.util.BeanRegistrar;
+
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
diff --git a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/schema/CompatibleAnnotationBeanDefinitionParser.java b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/schema/CompatibleAnnotationBeanDefinitionParser.java
index c5e7bfaca8..66d6ac2dcc 100644
--- a/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/schema/CompatibleAnnotationBeanDefinitionParser.java
+++ b/dubbo-compatible/src/main/java/org/apache/dubbo/config/spring/schema/CompatibleAnnotationBeanDefinitionParser.java
@@ -17,11 +17,10 @@
package org.apache.dubbo.config.spring.schema;
import org.apache.dubbo.config.spring.AnnotationBean;
-
import org.apache.dubbo.config.spring.beans.factory.annotation.CompatibleReferenceAnnotationBeanPostProcessor;
import org.apache.dubbo.config.spring.beans.factory.annotation.CompatibleServiceAnnotationBeanPostProcessor;
-
import org.apache.dubbo.config.spring.util.BeanRegistrar;
+
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
index 243e8d2b6f..5af184df54 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
@@ -60,7 +60,7 @@ public abstract class AbstractConfig implements Serializable {
private static final Pattern PATTERN_PATH = Pattern.compile("[/\\-$._0-9a-zA-Z]+");
- private static final Pattern PATTERN_NAME_HAS_SYMBOL = Pattern.compile("[:*,/\\-._0-9a-zA-Z]+");
+ private static final Pattern PATTERN_NAME_HAS_SYMBOL = Pattern.compile("[:*,\\s/\\-._0-9a-zA-Z]+");
private static final Pattern PATTERN_KEY = Pattern.compile("[*,\\-._0-9a-zA-Z]+");
private static final Map legacyProperties = new HashMap();
@@ -589,7 +589,8 @@ public abstract class AbstractConfig implements Serializable {
try {
String name = method.getName();
if ((name.startsWith("get") || name.startsWith("is"))
- && !"getClass".equals(name) && !"get".equals(name) && !"is".equals(name)
+ && !"get".equals(name) && !"is".equals(name)
+ && !"getClass".equals(name) && !"getObject".equals(name)
&& Modifier.isPublic(method.getModifiers())
&& method.getParameterTypes().length == 0
&& isPrimitive(method.getReturnType())) {
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
index 391e7c8da7..c726fd5c9a 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
@@ -347,7 +347,36 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
}
}
- protected void checkStubAndMock(Class> interfaceClass) {
+ void checkMock(Class> interfaceClass) {
+ if (ConfigUtils.isEmpty(mock)) {
+ return;
+ }
+
+ String normalizedMock = MockInvoker.normalizeMock(mock);
+ if (normalizedMock.startsWith(Constants.RETURN_PREFIX)) {
+ normalizedMock = normalizedMock.substring(Constants.RETURN_PREFIX.length()).trim();
+ try {
+ MockInvoker.parseMockValue(normalizedMock);
+ } catch (Exception e) {
+ throw new IllegalStateException("Illegal mock return in ");
+ }
+ } else if (normalizedMock.startsWith(Constants.THROW_PREFIX)) {
+ normalizedMock = normalizedMock.substring(Constants.THROW_PREFIX.length()).trim();
+ if (ConfigUtils.isNotEmpty(normalizedMock)) {
+ try {
+ MockInvoker.getThrowable(normalizedMock);
+ } catch (Exception e) {
+ throw new IllegalStateException("Illegal mock throw in ");
+ }
+ }
+ } else {
+ MockInvoker.getMockObject(normalizedMock, interfaceClass);
+ }
+ }
+
+ void checkStub(Class> interfaceClass) {
if (ConfigUtils.isNotEmpty(local)) {
Class> localClass = ConfigUtils.isDefault(local) ? ReflectUtils.forName(interfaceClass.getName() + "Local") : ReflectUtils.forName(local);
if (!interfaceClass.isAssignableFrom(localClass)) {
@@ -370,26 +399,6 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {
throw new IllegalStateException("No such constructor \"public " + localClass.getSimpleName() + "(" + interfaceClass.getName() + ")\" in local implementation class " + localClass.getName());
}
}
- if (ConfigUtils.isNotEmpty(mock)) {
- if (mock.startsWith(Constants.RETURN_PREFIX)) {
- String value = mock.substring(Constants.RETURN_PREFIX.length());
- try {
- MockInvoker.parseMockValue(value);
- } catch (Exception e) {
- throw new IllegalStateException("Illegal mock json value in ");
- }
- } else {
- Class> mockClass = ConfigUtils.isDefault(mock) ? ReflectUtils.forName(interfaceClass.getName() + "Mock") : ReflectUtils.forName(mock);
- if (!interfaceClass.isAssignableFrom(mockClass)) {
- throw new IllegalStateException("The mock implementation class " + mockClass.getName() + " not implement interface " + interfaceClass.getName());
- }
- try {
- mockClass.getConstructor(new Class>[0]);
- } catch (NoSuchMethodException e) {
- throw new IllegalStateException("No such empty constructor \"public " + mockClass.getSimpleName() + "()\" in mock implementation class " + mockClass.getName());
- }
- }
- }
}
/**
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java
index a4acce86c9..a2263b8221 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java
@@ -64,6 +64,19 @@ public abstract class AbstractMethodConfig extends AbstractConfig {
// customized parameters
protected Map parameters;
+ /**
+ * forks for forking cluster
+ */
+ protected Integer forks;
+
+ public Integer getForks() {
+ return forks;
+ }
+
+ public void setForks(Integer forks) {
+ this.forks = forks;
+ }
+
public Integer getTimeout() {
return timeout;
}
@@ -127,8 +140,14 @@ public abstract class AbstractMethodConfig extends AbstractConfig {
}
public void setMock(String mock) {
- if (mock != null && mock.startsWith(Constants.RETURN_PREFIX)) {
+ if (mock == null) {
+ return;
+ }
+
+ if (mock.startsWith(Constants.RETURN_PREFIX) || mock.startsWith(Constants.THROW_PREFIX + " ")) {
checkLength("mock", mock);
+ } else if (mock.startsWith(Constants.FAIL_PREFIX) || mock.startsWith(Constants.FORCE_PREFIX)) {
+ checkNameHasSymbol("mock", mock);
} else {
checkName("mock", mock);
}
@@ -168,4 +187,4 @@ public abstract class AbstractMethodConfig extends AbstractConfig {
this.parameters = parameters;
}
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
index 7e45e4c537..3e9fdcdcbe 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
@@ -476,4 +476,4 @@ public class ProtocolConfig extends AbstractConfig {
public boolean isValid() {
return StringUtils.isNotEmpty(name);
}
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index f98d8c1fab..2512839117 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -256,7 +256,8 @@ public class ReferenceConfig extends AbstractReferenceConfig {
return;
}
initialized = true;
- checkStubAndMock(interfaceClass);
+ checkStub(interfaceClass);
+ checkMock(interfaceClass);
Map map = new HashMap();
resolveAsyncInterface(interfaceClass, map);
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index 394a8f65b6..0133b014db 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -284,7 +284,8 @@ public class ServiceConfig extends AbstractServiceConfig {
throw new IllegalStateException("The stub implementation class " + stubClass.getName() + " not implement interface " + interfaceName);
}
}
- checkStubAndMock(interfaceClass);
+ checkStub(interfaceClass);
+ checkMock(interfaceClass);
}
public synchronized void export() {
@@ -850,6 +851,16 @@ public class ServiceConfig extends AbstractServiceConfig {
}
}
+ @Override
+ public void setMock(Boolean mock) {
+ throw new IllegalArgumentException("mock doesn't support on provider side");
+ }
+
+ @Override
+ public void setMock(String mock) {
+ throw new IllegalArgumentException("mock doesn't support on provider side");
+ }
+
public List getExportedUrls() {
return urls;
}
diff --git a/dubbo-config/dubbo-config-spring/pom.xml b/dubbo-config/dubbo-config-spring/pom.xml
index 995209db45..626556cc32 100644
--- a/dubbo-config/dubbo-config-spring/pom.xml
+++ b/dubbo-config/dubbo-config-spring/pom.xml
@@ -34,11 +34,6 @@
dubbo-config-api
${project.parent.version}