• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java ExtensionLoader类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.alibaba.dubbo.common.extension.ExtensionLoader的典型用法代码示例。如果您正苦于以下问题:Java ExtensionLoader类的具体用法?Java ExtensionLoader怎么用?Java ExtensionLoader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ExtensionLoader类属于com.alibaba.dubbo.common.extension包,在下文中一共展示了ExtensionLoader类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: testHessianProtocol

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void testHessianProtocol() {
    HessianServiceImpl server = new HessianServiceImpl();
    Assert.assertFalse(server.isCalled());
    ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
    Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
    URL url = URL.valueOf("hessian://127.0.0.1:5342/" + HessianService.class.getName() + "?version=1.0.0");
    Exporter<HessianService> exporter = protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
    Invoker<HessianService> invoker = protocol.refer(HessianService.class, url);
    HessianService client = proxyFactory.getProxy(invoker);
    String result = client.sayHello("haha");
    Assert.assertTrue(server.isCalled());
    Assert.assertEquals("Hello, haha", result);
    invoker.destroy();
    exporter.unexport();
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:17,代码来源:HessianProtocolTest.java


示例2: test_getAdaptiveExtension_inject

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
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("simple.ext", "impl2");
    assertEquals("Ext6Impl1-echo-Ext1Impl2-echo", ext.echo(url, "ha"));
    
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:18,代码来源:ExtensionLoader_Adaptive_Test.java


示例3: test_getAdaptiveExtension_ExceptionWhenNotAdaptiveMethod

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void test_getAdaptiveExtension_ExceptionWhenNotAdaptiveMethod() throws Exception {
    SimpleExt ext = ExtensionLoader.getExtensionLoader(SimpleExt.class).getAdaptiveExtension();

    Map<String, String> map = new HashMap<String, String>();
    URL url = new URL("p1", "1.2.3.4", 1010, "path1", map);

    try {
        ext.bang(url, 33);
        fail();
    } catch (UnsupportedOperationException expected) {
        assertThat(expected.getMessage(), containsString("method "));
        assertThat(
                expected.getMessage(),
                containsString("of interface com.alibaba.dubbo.common.extensionloader.ext1.SimpleExt is not adaptive method!"));
    }
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:18,代码来源:ExtensionLoader_Adaptive_Test.java


示例4: test_getExtension_WithWrapper

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void test_getExtension_WithWrapper() throws Exception {
    WrappedExt impl1 = ExtensionLoader.getExtensionLoader(WrappedExt.class).getExtension("impl1");
    assertThat(impl1, anyOf(instanceOf(Ext5Wrapper1.class), instanceOf(Ext5Wrapper2.class)));
    
    WrappedExt impl2 = ExtensionLoader.getExtensionLoader(WrappedExt.class).getExtension("impl2") ;
    assertThat(impl2, anyOf(instanceOf(Ext5Wrapper1.class), instanceOf(Ext5Wrapper2.class)));
    
    
    URL url = new URL("p1", "1.2.3.4", 1010, "path1");
    int echoCount1 = Ext5Wrapper1.echoCount.get();
    int echoCount2 = Ext5Wrapper2.echoCount.get();

    assertEquals("Ext5Impl1-echo", impl1.echo(url, "ha"));
    assertEquals(echoCount1 + 1, Ext5Wrapper1.echoCount.get());
    assertEquals(echoCount2 + 1, Ext5Wrapper2.echoCount.get());
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:18,代码来源:ExtensionLoaderTest.java


示例5: testHttpClient

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void testHttpClient() {
    HessianServiceImpl server = new HessianServiceImpl();
    Assert.assertFalse(server.isCalled());
    ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
    Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
    URL url = URL.valueOf("hessian://127.0.0.1:5342/" + HessianService.class.getName() + "?version=1.0.0&client=httpclient");
    Exporter<HessianService> exporter = protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
    Invoker<HessianService> invoker = protocol.refer(HessianService.class, url);
    HessianService client = proxyFactory.getProxy(invoker);
    String result = client.sayHello("haha");
    Assert.assertTrue(server.isCalled());
    Assert.assertEquals("Hello, haha", result);
    invoker.destroy();
    exporter.unexport();
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:17,代码来源:HessianProtocolTest.java


示例6: testLoadDefaultActivateExtension

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void testLoadDefaultActivateExtension() throws Exception {
    // test default
    URL url = URL.valueOf("test://localhost/test?ext=order1,default");
    List<ActivateExt1> list = ExtensionLoader.getExtensionLoader(ActivateExt1.class)
            .getActivateExtension(url, "ext", "default_group");
    Assert.assertEquals(2, list.size());
    Assert.assertTrue(list.get(0).getClass() == OrderActivateExtImpl1.class);
    Assert.assertTrue(list.get(1).getClass() == ActivateExt1Impl1.class);
    
    url = URL.valueOf("test://localhost/test?ext=default,order1");
    list = ExtensionLoader.getExtensionLoader(ActivateExt1.class)
            .getActivateExtension(url, "ext", "default_group");
    Assert.assertEquals(2, list.size());
    Assert.assertTrue(list.get(0).getClass() == ActivateExt1Impl1.class);
    Assert.assertTrue(list.get(1).getClass() == OrderActivateExtImpl1.class);
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:18,代码来源:ExtensionLoaderTest.java


示例7: init

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Override
public void init() throws ServletException {
    super.init();
    INSTANCE = this;
    String config = getServletConfig().getInitParameter("pages");
    Collection<String> names;
    if (config != null && config.length() > 0) {
        names = Arrays.asList(Constants.COMMA_SPLIT_PATTERN.split(config));
    } else {
        names = ExtensionLoader.getExtensionLoader(PageHandler.class).getSupportedExtensions();
    }
    for (String name : names) {
        PageHandler handler = ExtensionLoader.getExtensionLoader(PageHandler.class).getExtension(name);
        pages.put(ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler), handler);
        Menu menu = handler.getClass().getAnnotation(Menu.class);
        if (menu != null) {
            menus.add(handler);
        }
    }
    Collections.sort(menus, new MenuComparator());
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:22,代码来源:PageServlet.java


示例8: checkMultiExtension

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
protected static void checkMultiExtension(Class<?> type, String property, String value) {
    checkMultiName(property, value);
    if (value != null && value.length() > 0) {
        String[] values = value.split("\\s*[,]+\\s*");
        for (String v : values) {
            if (v.startsWith(Constants.REMOVE_VALUE_PREFIX)) {
                v = v.substring(1);
            }
            if (Constants.DEFAULT_KEY.equals(v)) {
            	continue;
            }
            if (! ExtensionLoader.getExtensionLoader(type).hasExtension(v)) {
                throw new IllegalStateException("No such extension " + v + " for " + property + "/" + type.getName());
            }
        }
    }
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:18,代码来源:AbstractConfig.java


示例9: test_destroyWontCloseAllProtocol

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void test_destroyWontCloseAllProtocol() throws Exception {
    Protocol autowireProtocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
    
    Protocol InjvmProtocol = ExtensionLoader.getExtensionLoader(Protocol.class).getExtension("injvm");
    
    InjvmProtocol.export(invoker);
    
    Invoker<IEcho> refer = InjvmProtocol.refer(IEcho.class, url);
    IEcho echoProxy = proxyFactory.getProxy(refer);
    
    assertEquals("ok", echoProxy.echo("ok"));
    
    try {
        autowireProtocol.destroy();
    } catch (UnsupportedOperationException expected) {
        assertThat(expected.getMessage(), containsString("of interface com.alibaba.dubbo.rpc.Protocol is not adaptive method!"));
    }
    
    assertEquals("ok2", echoProxy.echo("ok2"));
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:22,代码来源:ProtocolTest.java


示例10: testCustomException

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void testCustomException() {
    HessianServiceImpl server = new HessianServiceImpl();
    ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
    Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
    URL url = URL.valueOf("hessian://127.0.0.1:5342/" + HessianService.class.getName() + "?version=1.0.0");
    Exporter<HessianService> exporter = protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
    Invoker<HessianService> invoker = protocol.refer(HessianService.class, url);
    HessianService client = proxyFactory.getProxy(invoker);
    try {
        client.customException();
        fail();
    } catch (MyException expected) {
    }
    invoker.destroy();
    exporter.unexport();
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:18,代码来源:HessianProtocolTest.java


示例11: writeMenu

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
protected final void writeMenu(HttpServletRequest request, PrintWriter writer, String nav) {
    writer.println("<table>");
    writer.println("<thead>");
    writer.println("    <tr>");
    for (PageHandler handler : menus) {
        String uri = ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);
        Menu menu = handler.getClass().getAnnotation(Menu.class);
        writer.println("        <th><a href=\"" + uri + ".html\">" + menu.name() + "</a></th>");
    }
    writer.println("    </tr>");
    writer.println("</thead>");
    writer.println("<tbody>");
    writer.println("    <tr>");
    writer.println("        <td style=\"text-align: left\" colspan=\"" + menus.size() + "\">");
    writer.println(nav);
    writer.println("        </td>");
    writer.println("    </tr>");
    writer.println("</tbody>");
    writer.println("</table>");
    writer.println("<br/>");
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:22,代码来源:PageServlet.java


示例12: invoke

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
public Result invoke(final Invocation invocation) throws RpcException {

        checkWheatherDestoried();

        LoadBalance loadbalance;
        
        List<Invoker<T>> invokers = list(invocation);
        if (invokers != null && invokers.size() > 0) {
            loadbalance = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(invokers.get(0).getUrl()
                    .getMethodParameter(invocation.getMethodName(),Constants.LOADBALANCE_KEY, Constants.DEFAULT_LOADBALANCE));
        } else {
            loadbalance = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(Constants.DEFAULT_LOADBALANCE);
        }
        RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);
        return doInvoke(invocation, invokers, loadbalance);
    }
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:17,代码来源:AbstractClusterInvoker.java


示例13: test_getAdaptiveExtension_customizeAdaptiveKey

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void test_getAdaptiveExtension_customizeAdaptiveKey() throws Exception {
    SimpleExt ext = ExtensionLoader.getExtensionLoader(SimpleExt.class).getAdaptiveExtension();

    Map<String, String> map = new HashMap<String, String>();
    map.put("key2", "impl2");
    URL url = new URL("p1", "1.2.3.4", 1010, "path1", map);

    String echo = ext.yell(url, "haha");
    assertEquals("Ext1Impl2-yell", echo);

    url = url.addParameter("key1", "impl3"); // 注意: URL是值类型
    echo = ext.yell(url, "haha");
    assertEquals("Ext1Impl3-yell", echo);
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:16,代码来源:ExtensionLoader_Adaptive_Test.java


示例14: destroyAll

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
public static void destroyAll() {
    AbstractRegistryFactory.destroyAll();
    ExtensionLoader<Protocol> loader = ExtensionLoader.getExtensionLoader(Protocol.class);
    for (String protocolName : loader.getLoadedExtensions()) {
        try {
            Protocol protocol = loader.getLoadedExtension(protocolName);
            if (protocol != null) {
                protocol.destroy();
            }
        } catch (Throwable t) {
            logger.warn(t.getMessage(), t);
        }
    }
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:15,代码来源:ProtocolConfig.java


示例15: test_replaceExtension_Adaptive

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void test_replaceExtension_Adaptive() throws Exception {
    ExtensionLoader<AddExt3> loader = ExtensionLoader.getExtensionLoader(AddExt3.class);

    AddExt3 adaptive = loader.getAdaptiveExtension();
    assertFalse(adaptive instanceof AddExt3_ManualAdaptive);

    loader.replaceExtension(null, AddExt3_ManualAdaptive.class);

    adaptive = loader.getAdaptiveExtension();
    assertTrue(adaptive instanceof AddExt3_ManualAdaptive);
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:13,代码来源:ExtensionLoaderTest.java


示例16: refer

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {
    if (Constants.REGISTRY_PROTOCOL.equals(url.getProtocol())) {
        return protocol.refer(type, url);
    }
    return new ListenerInvokerWrapper<T>(protocol.refer(type, url), 
            Collections.unmodifiableList(
                    ExtensionLoader.getExtensionLoader(InvokerListener.class)
                    .getActivateExtension(url, Constants.INVOKER_LISTENER_KEY)));
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:10,代码来源:ProtocolListenerWrapper.java


示例17: testLoadActivateExtension

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void testLoadActivateExtension() throws Exception {
    // test default
    URL url = URL.valueOf("test://localhost/test");
    List<ActivateExt1> list = ExtensionLoader.getExtensionLoader(ActivateExt1.class)
            .getActivateExtension(url, new String[]{}, "default_group");
    Assert.assertEquals(1, list.size());
    Assert.assertTrue(list.get(0).getClass() == ActivateExt1Impl1.class);

    // test group
    url = url.addParameter(Constants.GROUP_KEY, "group1");
    list = ExtensionLoader.getExtensionLoader(ActivateExt1.class)
            .getActivateExtension(url, new String[]{}, "group1");
    Assert.assertEquals(1, list.size());
    Assert.assertTrue(list.get(0).getClass() == GroupActivateExtImpl.class);

    // test value
    url = url.removeParameter(Constants.GROUP_KEY);
    url = url.addParameter(Constants.GROUP_KEY, "value");
    url = url.addParameter("value", "value");
    list = ExtensionLoader.getExtensionLoader(ActivateExt1.class)
            .getActivateExtension(url, new String[]{}, "value");
    Assert.assertEquals(1, list.size());
    Assert.assertTrue(list.get(0).getClass() == ValueActivateExtImpl.class);

    // test order
    url = URL.valueOf("test://localhost/test");
    url = url.addParameter(Constants.GROUP_KEY, "order");
    list = ExtensionLoader.getExtensionLoader(ActivateExt1.class)
            .getActivateExtension(url, new String[]{}, "order");
    Assert.assertEquals(2, list.size());
    Assert.assertTrue(list.get(0).getClass() == OrderActivateExtImpl1.class);
    Assert.assertTrue(list.get(1).getClass() == OrderActivateExtImpl2.class);
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:35,代码来源:ExtensionLoaderTest.java


示例18: testGenerateMethodResultClassNameThrift

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void testGenerateMethodResultClassNameThrift() {
    Assert.assertEquals( com.alibaba.dubbo.rpc.gen.thrift.Demo.echoString_result.class.getName(),
                         ThriftUtils.generateMethodResultClassNameThrift(
                                 com.alibaba.dubbo.rpc.gen.thrift.Demo.Iface.class.getName(),
                                 "echoString" ) );

    Assert.assertEquals( com.alibaba.dubbo.rpc.gen.thrift.Demo.echoString_result.class.getName(),
                         ExtensionLoader.getExtensionLoader( ClassNameGenerator.class )
                                 .getExtension( ThriftClassNameGenerator.NAME ).generateResultClassName(
                                 com.alibaba.dubbo.rpc.gen.thrift.Demo.Iface.class.getName(),
                                 "echoString" ) );

}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:15,代码来源:ThriftUtilsTest.java


示例19: WrappedChannelHandler

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
public WrappedChannelHandler(ChannelHandler handler, URL url) {
    this.handler = handler;
    this.url = url;
    executor = (ExecutorService) ExtensionLoader.getExtensionLoader(ThreadPool.class).getAdaptiveExtension().getExecutor(url);

    String componentKey = Constants.EXECUTOR_SERVICE_COMPONENT_KEY;
    if (Constants.CONSUMER_SIDE.equalsIgnoreCase(url.getParameter(Constants.SIDE_KEY))) {
        componentKey = Constants.CONSUMER_SIDE;
    }
    DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();
    dataStore.put(componentKey, Integer.toString(url.getPort()), executor);
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:13,代码来源:WrappedChannelHandler.java


示例20: test_getExtensionLoader_NotSpiAnnotation

import com.alibaba.dubbo.common.extension.ExtensionLoader; //导入依赖的package包/类
@Test
public void test_getExtensionLoader_NotSpiAnnotation() throws Exception {
    try {
        ExtensionLoader.getExtensionLoader(NoSpiExt.class);
        fail();
    } catch (IllegalArgumentException expected) {
        assertThat(expected.getMessage(),
                allOf(containsString("com.alibaba.dubbo.common.extensionloader.NoSpiExt"),
                        containsString("is not extension"),
                        containsString("WITHOUT @SPI Annotation")));
    }
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:13,代码来源:ExtensionLoaderTest.java



注:本文中的com.alibaba.dubbo.common.extension.ExtensionLoader类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ScrollingView类代码示例发布时间:2022-05-21
下一篇:
Java TreePrint类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap