You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by wa...@apache.org on 2018/07/09 06:17:18 UTC
[incubator-dubbo] branch master updated: add test cases for injvm
rpc protocol (#2041)
This is an automated email from the ASF dual-hosted git repository.
wangxin 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 137393c add test cases for injvm rpc protocol (#2041)
137393c is described below
commit 137393c7a76e813f5108fd8e1e4a2ddb57207c38
Author: kimmking <ki...@gmail.com>
AuthorDate: Mon Jul 9 14:17:16 2018 +0800
add test cases for injvm rpc protocol (#2041)
---
.../dubbo/rpc/protocol/injvm/InjvmProtocol.java | 2 +-
.../rpc/protocol/injvm/InjvmProtocolTest.java | 29 +++++++++++++++++++++-
.../dubbo/rpc/protocol/injvm/ProtocolTest.java | 6 +++++
3 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java b/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java
index eff37b8..290e208 100644
--- a/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java
+++ b/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java
@@ -97,7 +97,7 @@ public class InjvmProtocol extends AbstractProtocol implements Protocol {
// Since injvm protocol is configured explicitly, we don't need to set any extra flag, use normal refer process.
if (Constants.LOCAL_PROTOCOL.toString().equals(url.getProtocol())) {
isJvmRefer = false;
- } else if (Constants.SCOPE_LOCAL.equals(scope) || (url.getParameter("injvm", false))) {
+ } else if (Constants.SCOPE_LOCAL.equals(scope) || (url.getParameter(Constants.LOCAL_PROTOCOL, false))) {
// if it's declared as local reference
// 'scope=local' is equivalent to 'injvm=true', injvm will be deprecated in the future release
isJvmRefer = true;
diff --git a/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java b/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
index 8d5c5d2..c6c0bdb 100644
--- a/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
+++ b/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/InjvmProtocolTest.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.common.Constants;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.rpc.Exporter;
+import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Protocol;
import org.apache.dubbo.rpc.ProxyFactory;
@@ -28,9 +29,11 @@ import org.junit.After;
import org.junit.Test;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
@@ -38,6 +41,11 @@ import static org.junit.Assert.assertTrue;
*/
public class InjvmProtocolTest {
+
+ static{
+ InjvmProtocol injvm = InjvmProtocol.getInjvmProtocol();
+ }
+
private Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
private ProxyFactory proxy = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
private List<Exporter<?>> exporters = new ArrayList<Exporter<?>>();
@@ -53,11 +61,17 @@ public class InjvmProtocolTest {
@Test
public void testLocalProtocol() throws Exception {
DemoService service = new DemoServiceImpl();
- Exporter<?> exporter = protocol.export(proxy.getInvoker(service, DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService").addParameter(Constants.INTERFACE_KEY, DemoService.class.getName())));
+ Invoker<?> invoker = proxy.getInvoker(service, DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService").addParameter(Constants.INTERFACE_KEY, DemoService.class.getName()));
+ assertTrue(invoker.isAvailable());
+ Exporter<?> exporter = protocol.export(invoker);
exporters.add(exporter);
service = proxy.getProxy(protocol.refer(DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService").addParameter(Constants.INTERFACE_KEY, DemoService.class.getName())));
assertEquals(service.getSize(new String[]{"", "", ""}), 3);
service.invoke("injvm://127.0.0.1/TestService", "invoke");
+
+ InjvmInvoker injvmInvoker = new InjvmInvoker(DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService"),null,new HashMap<String, Exporter<?>>());
+ assertFalse(injvmInvoker.isAvailable());
+
}
@Test
@@ -74,6 +88,19 @@ public class InjvmProtocolTest {
url = url.addParameter(Constants.GROUP_KEY, "*")
.addParameter(Constants.VERSION_KEY, "*");
assertTrue(InjvmProtocol.getInjvmProtocol().isInjvmRefer(url));
+
+ url = URL.valueOf("fake://127.0.0.1/TestService").addParameter(Constants.SCOPE_KEY, Constants.SCOPE_LOCAL);
+ assertTrue(InjvmProtocol.getInjvmProtocol().isInjvmRefer(url));
+
+ url = URL.valueOf("fake://127.0.0.1/TestService").addParameter(Constants.LOCAL_PROTOCOL,true);
+ assertTrue(InjvmProtocol.getInjvmProtocol().isInjvmRefer(url));
+
+ url = URL.valueOf("fake://127.0.0.1/TestService").addParameter(Constants.SCOPE_KEY, Constants.SCOPE_REMOTE);
+ assertFalse(InjvmProtocol.getInjvmProtocol().isInjvmRefer(url));
+
+ url = URL.valueOf("fake://127.0.0.1/TestService").addParameter(Constants.GENERIC_KEY, true);
+ assertFalse(InjvmProtocol.getInjvmProtocol().isInjvmRefer(url));
+
}
}
\ No newline at end of file
diff --git a/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/ProtocolTest.java b/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/ProtocolTest.java
index e68c423..45ee265 100644
--- a/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/ProtocolTest.java
+++ b/dubbo-rpc/dubbo-rpc-injvm/src/test/java/org/apache/dubbo/rpc/protocol/injvm/ProtocolTest.java
@@ -36,6 +36,10 @@ public class ProtocolTest {
}
};
+ static{
+ InjvmProtocol injvm = InjvmProtocol.getInjvmProtocol();
+ }
+
ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getExtension("javassist");
URL url = URL.valueOf("injvm://localhost:0/org.apache.dubbo.rpc.support.IEcho?interface=org.apache.dubbo.rpc.support.IEcho");
@@ -48,6 +52,8 @@ public class ProtocolTest {
Protocol InjvmProtocol = ExtensionLoader.getExtensionLoader(Protocol.class).getExtension("injvm");
+ assertEquals(0,InjvmProtocol.getDefaultPort());
+
InjvmProtocol.export(invoker);
Invoker<IEcho> refer = InjvmProtocol.refer(IEcho.class, url);