From d4906566a5084e21a42739e844fe3f9b1cf3c35b Mon Sep 17 00:00:00 2001 From: "chao.liuc" Date: Tue, 10 Jan 2012 08:09:36 +0000 Subject: [PATCH] =?UTF-8?q?DUBBO-169=20=E6=89=A9=E5=B1=95=E7=82=B9?= =?UTF-8?q?=E7=9A=84set=E6=96=B9=E6=B3=95=E4=B8=8D=E6=98=AF=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E7=82=B9=E6=97=B6=E5=BF=BD=E7=95=A5set=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=EF=BC=8C=E4=B8=8D=E8=A6=81=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@826 1a56cb94-b969-4eaa-88fa-be21384802f2 --- .../alibaba/dubbo/common/ExtensionLoader.java | 2 +- .../extensionloader/ExtensionLoaderTest.java | 12 ++++++-- .../ext6_inject/impl/Ext6Impl1.java | 19 +++++++++---- dubbo-common/src/test/resources/log4j.xml | 28 ------------------- 4 files changed, 25 insertions(+), 36 deletions(-) delete mode 100644 dubbo-common/src/test/resources/log4j.xml diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/ExtensionLoader.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/ExtensionLoader.java index b4479e9a8..a5ae47087 100644 --- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/ExtensionLoader.java +++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/ExtensionLoader.java @@ -234,7 +234,7 @@ public class ExtensionLoader { && method.getParameterTypes().length == 1 && Modifier.isPublic(method.getModifiers())) { Class pt = method.getParameterTypes()[0]; - if (pt.isInterface()) { + if (pt.isInterface() && pt.isAnnotationPresent(Extension.class)) { try { Object adaptive = getExtensionLoader(pt).getAdaptiveExtension(); method.invoke(instance, adaptive); diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java index c1c0e189b..a711ed198 100644 --- a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ExtensionLoaderTest.java @@ -28,6 +28,8 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; + +import junit.framework.Assert; import org.junit.Test; @@ -46,6 +48,7 @@ import com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Wrapper2; import com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6; import com.alibaba.dubbo.common.extensionloader.ext6_inject.impl.Ext6Impl2; import com.alibaba.dubbo.common.extensionloader.ext7.Ext7; +import com.alibaba.dubbo.common.utils.LogUtil; /** * @author ding.lid @@ -401,16 +404,21 @@ public class ExtensionLoaderTest { } @Test - public void test_getAdaptiveExtension_inject() throws Exception { + public void test_getAdaptiveExtension_inject() throws Exception { + LogUtil.start(); Ext6 ext = ExtensionLoader.getExtensionLoader(Ext6.class).getAdaptiveExtension(); URL url = new URL("p1", "1.2.3.4", 1010, "path1"); url = url.addParameters("ext6", "impl1"); assertEquals("Ext6Impl1-echo-Ext1Impl1-echo", ext.echo(url, "ha")); + + Assert.assertTrue("can not find error.", LogUtil.checkNoError()); + LogUtil.stop(); url = url.addParameters("ext1", "impl2"); - assertEquals("Ext6Impl1-echo-Ext1Impl2-echo", ext.echo(url, "ha")); + assertEquals("Ext6Impl1-echo-Ext1Impl2-echo", ext.echo(url, "ha")); + } @Test diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java index 6da0c3ced..d2f1cb052 100644 --- a/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/extensionloader/ext6_inject/impl/Ext6Impl1.java @@ -15,17 +15,22 @@ */ package com.alibaba.dubbo.common.extensionloader.ext6_inject.impl; -import com.alibaba.dubbo.common.Extension; -import com.alibaba.dubbo.common.URL; -import com.alibaba.dubbo.common.extensionloader.ext1.Ext1; -import com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6; +import com.alibaba.dubbo.common.Extension; +import com.alibaba.dubbo.common.URL; +import com.alibaba.dubbo.common.extensionloader.ext1.Ext1; +import com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6; /** * @author ding.lid */ @Extension(value = "impl1") public class Ext6Impl1 implements Ext6 { - Ext1 ext1; + Ext1 ext1; + Dao obj; + + public void setDao(Dao obj){ + this.obj = obj; + } public void setExt1(Ext1 ext1) { this.ext1 = ext1; @@ -33,6 +38,10 @@ public class Ext6Impl1 implements Ext6 { public String echo(URL url, String s) { return "Ext6Impl1-echo-" + ext1.echo(url, s); + } + + public static interface Dao{ + } } \ No newline at end of file diff --git a/dubbo-common/src/test/resources/log4j.xml b/dubbo-common/src/test/resources/log4j.xml deleted file mode 100644 index b3394a4c0..000000000 --- a/dubbo-common/src/test/resources/log4j.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file -- GitLab