You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by il...@apache.org on 2018/07/12 05:54:59 UTC
[incubator-dubbo] branch master updated: bugfix init reference dead
lock (#2053)
This is an automated email from the ASF dual-hosted git repository.
iluo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new bea020f bugfix init reference dead lock (#2053)
bea020f is described below
commit bea020f801cc353a183fb09aaf5d039df91d49dd
Author: yunxiyi <yu...@outlook.com>
AuthorDate: Thu Jul 12 13:54:53 2018 +0800
bugfix init reference dead lock (#2053)
* bugfix init reference dead lock
* add test
* bugfix init reference dead lock #2053
* remove not reference package
---
.../dubbo/config/spring/extension/SpringExtensionFactory.java | 11 ++++++++---
.../config/spring/extension/SpringExtensionFactoryTest.java | 7 +++++++
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java
index 9490bb3..11dd6a6 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java
@@ -16,17 +16,16 @@
*/
package org.apache.dubbo.config.spring.extension;
+import java.util.Set;
import org.apache.dubbo.common.extension.ExtensionFactory;
+import org.apache.dubbo.common.extension.SPI;
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.utils.ConcurrentHashSet;
-
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
import org.springframework.context.ApplicationContext;
-import java.util.Set;
-
/**
* SpringExtensionFactory
*/
@@ -51,6 +50,12 @@ public class SpringExtensionFactory implements ExtensionFactory {
@Override
@SuppressWarnings("unchecked")
public <T> T getExtension(Class<T> type, String name) {
+
+ //SPI should be get from SpiExtensionFactory
+ if (type.isInterface() && type.isAnnotationPresent(SPI.class)) {
+ return null;
+ }
+
for (ApplicationContext context : contexts) {
if (context.containsBean(name)) {
Object bean = context.getBean(name);
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactoryTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactoryTest.java
index 73ca2eb..134b50b 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactoryTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactoryTest.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.config.spring.api.HelloService;
import org.apache.dubbo.config.spring.impl.DemoServiceImpl;
import org.apache.dubbo.config.spring.impl.HelloServiceImpl;
+import org.apache.dubbo.rpc.Protocol;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -50,6 +51,12 @@ public class SpringExtensionFactoryTest {
}
@Test
+ public void testGetExtensionBySPI() {
+ Protocol protocol = springExtensionFactory.getExtension(Protocol.class, "protocol");
+ Assert.assertNull(protocol);
+ }
+
+ @Test
public void testGetExtensionByName() {
DemoService bean = springExtensionFactory.getExtension(DemoService.class, "bean1");
Assert.assertNotNull(bean);