Package com.alibaba.dubbo.registry.integration

Examples of com.alibaba.dubbo.registry.integration.RegistryDirectory


    /**
     * 测试针对某个provider的Override规则
     */
    @Test
    public void testNofityOverrideUrls_Provider(){
        RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140").addParameter("timeout", "1"));//一个一样,一个不一样
        durls.add(SERVICEURL2.setHost("10.20.30.141").addParameter("timeout", "2"));
        registryDirectory.notify(durls);
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://0.0.0.0?timeout=3"));
        durls.add(URL.valueOf("override://10.20.30.141:9092?timeout=4"));
        registryDirectory.notify(durls);
       
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        Invoker<?> aInvoker = invokers.get(0);
        Invoker<?> bInvoker = invokers.get(1);
        Assert.assertEquals("3",aInvoker.getUrl().getParameter("timeout"));
        Assert.assertEquals("4",bInvoker.getUrl().getParameter("timeout"));
    }
View Full Code Here


     * 测试清除override规则,同时下发清除规则和其他override规则
     * 测试是否能够恢复到推送时的providerUrl
     */
    @Test
    public void testNofityOverrideUrls_Clean1(){
        RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140").addParameter("timeout", "1"));
        registryDirectory.notify(durls);
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://0.0.0.0?timeout=1000"));
        registryDirectory.notify(durls);
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://0.0.0.0?timeout=3"));
        durls.add(URL.valueOf("override://0.0.0.0"));
        registryDirectory.notify(durls);
       
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        Invoker<?> aInvoker = invokers.get(0);
        //需要恢复到最初的providerUrl
        Assert.assertEquals("1",aInvoker.getUrl().getParameter("timeout"));
    }
View Full Code Here

     * 测试清除override规则,只下发override清除规则
     * 测试是否能够恢复到推送时的providerUrl
     */
    @Test
    public void testNofityOverrideUrls_CleanOnly(){
        RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140").addParameter("timeout", "1"));
        registryDirectory.notify(durls);
        Assert.assertEquals(null,registryDirectory.getUrl().getParameter("mock"));
       
        //override
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://0.0.0.0?timeout=1000&mock=fail"));
        registryDirectory.notify(durls);
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        Invoker<?> aInvoker = invokers.get(0);
        Assert.assertEquals("1000",aInvoker.getUrl().getParameter("timeout"));
        Assert.assertEquals("fail",registryDirectory.getUrl().getParameter("mock"));
       
        //override clean
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://0.0.0.0/dubbo.test.api.HelloService"));
        registryDirectory.notify(durls);
        invokers = registryDirectory.list(invocation);
        aInvoker = invokers.get(0);
        //需要恢复到最初的providerUrl
        Assert.assertEquals("1",aInvoker.getUrl().getParameter("timeout"));
       
        Assert.assertEquals(null,registryDirectory.getUrl().getParameter("mock"));
    }
View Full Code Here

     * 测试同时推送清除override和针对某个provider的override
     * 看override是否能够生效
     */
    @Test
    public void testNofityOverrideUrls_CleanNOverride(){
        RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140").addParameter("timeout", "1"));
        registryDirectory.notify(durls);
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://0.0.0.0?timeout=3"));
        durls.add(URL.valueOf("override://0.0.0.0"));
        durls.add(URL.valueOf("override://10.20.30.140:9091?timeout=4"));
        registryDirectory.notify(durls);
       
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        Invoker<?> aInvoker = invokers.get(0);
        Assert.assertEquals("4",aInvoker.getUrl().getParameter("timeout"));
    }
View Full Code Here

     * 测试override通过enable=false,禁用所有服务提供者
     * 预期:不能通过override禁用所有服务提供者.
     */
    @Test
    public void testNofityOverrideUrls_disabled_allProvider(){
      RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140"));
        durls.add(SERVICEURL.setHost("10.20.30.141"));
        registryDirectory.notify(durls);
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://0.0.0.0?"+Constants.ENABLED_KEY+"=false"));
        registryDirectory.notify(durls);
       
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        //不能通过override禁用所有服务提供者.
        Assert.assertEquals(2,invokers.size());
    }
View Full Code Here

     * 测试override通过enable=false,禁用指定服务提供者
     * 预期:可以禁用指定的服务提供者。
     */
    @Test
    public void testNofityOverrideUrls_disabled_specifiedProvider(){
      RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140"));
        durls.add(SERVICEURL.setHost("10.20.30.141"));
        registryDirectory.notify(durls);
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://10.20.30.140?"+Constants.DISABLED_KEY+"=true"));
        registryDirectory.notify(durls);
       
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        Assert.assertEquals(1,invokers.size());
        Assert.assertEquals("10.20.30.141", invokers.get(0).getUrl().getHost());
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("empty://0.0.0.0?"+Constants.DISABLED_KEY+"=true&"+Constants.CATEGORY_KEY+"="+Constants.CONFIGURATORS_CATEGORY));
        registryDirectory.notify(durls);
        List<Invoker<?>> invokers2 = registryDirectory.list(invocation);
        Assert.assertEquals(2,invokers2.size());
    }
View Full Code Here

     * 测试override通过enable=false,禁用指定服务提供者
     * 预期:可以禁用指定的服务提供者。
     */
    @Test
    public void testNofity_To_Decrease_provider(){
        RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140"));
        durls.add(SERVICEURL.setHost("10.20.30.141"));
        registryDirectory.notify(durls);
       
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        Assert.assertEquals(2,invokers.size());
       
        durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140"));
        registryDirectory.notify(durls);
        List<Invoker<?>> invokers2 = registryDirectory.list(invocation);
        Assert.assertEquals(1,invokers2.size());
        Assert.assertEquals("10.20.30.140", invokers.get(0).getUrl().getHost());
       
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("empty://0.0.0.0?"+Constants.DISABLED_KEY+"=true&"+Constants.CATEGORY_KEY+"="+Constants.CONFIGURATORS_CATEGORY));
        registryDirectory.notify(durls);
        List<Invoker<?>> invokers3 = registryDirectory.list(invocation);
        Assert.assertEquals(1,invokers3.size());
    }
View Full Code Here

     * 测试override通过enable=false,禁用指定服务提供者
     * 预期:可以禁用指定的服务提供者。
     */
    @Test
    public void testNofity_disabled_specifiedProvider(){
      RegistryDirectory registryDirectory = getRegistryDirectory();
        invocation = new RpcInvocation();
       
        // 初始就禁用
        List<URL> durls = new ArrayList<URL>();
        durls.add(SERVICEURL.setHost("10.20.30.140").addParameter(Constants.ENABLED_KEY, "false"));
        durls.add(SERVICEURL.setHost("10.20.30.141"));
        registryDirectory.notify(durls);
       
        List<Invoker<?>> invokers = registryDirectory.list(invocation);
        Assert.assertEquals(1,invokers.size());
        Assert.assertEquals("10.20.30.141", invokers.get(0).getUrl().getHost());
       
        // 通过覆盖规则启用
        durls = new ArrayList<URL>();
        durls.add(URL.valueOf("override://10.20.30.140?"+Constants.DISABLED_KEY+"=false"));
        registryDirectory.notify(durls);
        List<Invoker<?>> invokers2 = registryDirectory.list(invocation);
        Assert.assertEquals(2,invokers2.size());
    }
View Full Code Here

    }

    @Test
    public void testNotifyRouterUrls_Clean() {
        if (isScriptUnsupported) return;
        RegistryDirectory registryDirectory = getRegistryDirectory();
        URL routerurl = URL.valueOf(Constants.ROUTE_PROTOCOL + "://127.0.0.1:9096/").addParameter(Constants.ROUTER_KEY,
                                                                                                     "javascript").addParameter(Constants.RULE_KEY,
                                                                                                                                "function test1(){}").addParameter(Constants.ROUTER_KEY,
                                                                                                                                                                   "script"); // FIX
                                                                                                                                                                              // BAD

        List<URL> serviceUrls = new ArrayList<URL>();
        // without ROUTER_KEY, the first router should not be created.
        serviceUrls.add(routerurl);
        registryDirectory.notify(serviceUrls);
        List routers = registryDirectory.getRouters();
        Assert.assertEquals(1 + 1, routers.size());

        serviceUrls.clear();
        serviceUrls.add(routerurl.addParameter(Constants.ROUTER_KEY, Constants.ROUTER_TYPE_CLEAR));
        registryDirectory.notify(serviceUrls);
        routers = registryDirectory.getRouters();
        Assert.assertEquals(0 + 1, routers.size());
    }
View Full Code Here

    /**
     * 测试mock provider下发
     */
    @Test
    public void testNotify_MockProviderOnly() {
      RegistryDirectory registryDirectory = getRegistryDirectory();
     
      List<URL> serviceUrls = new ArrayList<URL>();
        serviceUrls.add(SERVICEURL.addParameter("methods", "getXXX1"));
        serviceUrls.add(SERVICEURL2.addParameter("methods", "getXXX1,getXXX2"));
        serviceUrls.add(SERVICEURL.setProtocol(Constants.MOCK_PROTOCOL));

        registryDirectory.notify(serviceUrls);
        Assert.assertEquals(true, registryDirectory.isAvailable());
        invocation = new RpcInvocation();

        List invokers = registryDirectory.list(invocation);
        Assert.assertEquals(2, invokers.size());
     
        RpcInvocation mockinvocation = new RpcInvocation();
        mockinvocation.setAttachment(Constants.INVOCATION_NEED_MOCK, "true");
        invokers = registryDirectory.list(mockinvocation);
        Assert.assertEquals(1, invokers.size());
    }
View Full Code Here

TOP

Related Classes of com.alibaba.dubbo.registry.integration.RegistryDirectory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.