DubboProtocol extends AbstractProtocol { public DubboProtocol() { INSTANCE = this; } DubboProtocol(); static DubboProtocol getDubboProtocol(); Collection<Exporter<?>> getExporters(); Collection<Invoker<?>> getInvokers(); @Override int getDefaultPort(); @Override Exporter<T> export(Invoker<T> invoker); @Override Invoker<T> protocolBindingRefer(Class<T> serviceType, URL url); @Override void destroy(); static final String NAME; static final int DEFAULT_PORT; }
@Test public void testDubboProtocol() throws Exception { DemoService service = new DemoServiceImpl(); int port = NetUtils.getAvailablePort(); protocol.export(proxy.getInvoker(service, DemoService.class, URL.valueOf("dubbo: service = proxy.getProxy(protocol.refer(DemoService.class, URL.valueOf("dubbo: 3000L))); assertEquals(service.enumlength(new Type[]{}), Type.Lower); assertEquals(service.getSize(null), -1); assertEquals(service.getSize(new String[]{"", "", ""}), 3); Map<String, String> map = new HashMap<String, String>(); map.put("aa", "bb"); Set<String> set = service.keys(map); assertEquals(set.size(), 1); assertEquals(set.iterator().next(), "aa"); service.invoke("dubbo: service = proxy.getProxy(protocol.refer(DemoService.class, URL.valueOf("dubbo: 3000L))); StringBuffer buf = new StringBuffer(); for (int i = 0; i < 1024 * 32 + 32; i++) buf.append('A'); System.out.println(service.stringLength(buf.toString())); EchoService echo = proxy.getProxy(protocol.refer(EchoService.class, URL.valueOf("dubbo: 3000L))); assertEquals(echo.$echo(buf.toString()), buf.toString()); assertEquals(echo.$echo("test"), "test"); assertEquals(echo.$echo("abcdefg"), "abcdefg"); assertEquals(echo.$echo(1234), 1234); }