@Override
    public Object handle(String targetService, List<Object> invokers, Object invocation, Map<String, String> queryMap,
            String serviceInterface) {
        if (!shouldHandle(invokers)) {
            return invokers;
        }

        List<Object> result = getTargetInvokersByRules(invokers, targetService);
        return super.handle(targetService, result, invocation, queryMap, serviceInterface);
    }
@Test
    public void testGetTargetInvokerByTagRulesWithoutPolicySceneTwo() {
        // initialize the routing rule
        RuleInitializationUtils.initAZTagMatchRule();
        List<Object> invokers = new ArrayList<>();
        ApacheInvoker<Object> invoker1 = new ApacheInvoker<>("1.0.0", "az2");
        invokers.add(invoker1);
        ApacheInvoker<Object> invoker2 = new ApacheInvoker<>("1.0.1", "az3");
        invokers.add(invoker2);
        Invocation invocation = new ApacheInvocation();
        Map<String, String> queryMap = new HashMap<>();
        queryMap.put("zone", "az1");
        queryMap.put("interface", "io.sermant.foo.FooTest");
        Map<String, String> parameters = new HashMap<>();
        parameters.putIfAbsent(RouterConstant.META_ZONE_KEY, "az1");
        DubboCache.INSTANCE.setParameters(parameters);
        DubboCache.INSTANCE.putApplication("io.sermant.foo.FooTest", "foo");
        List<Object> targetInvokers = (List<Object>) tagRouteHandler.handle(
                DubboCache.INSTANCE.getApplication("io.sermant.foo.FooTest")
                , invokers, invocation, queryMap, "io.sermant.foo.FooTest");
        Assert.assertEquals(2, targetInvokers.size());
        ConfigCache.getLabel(RouterConstant.DUBBO_CACHE_NAME).resetRouteRule(Collections.emptyMap());
    }