public boolean isMatch()

in dubbo-cluster-extensions/dubbo-cluster-router-mesh/src/main/java/org/apache/dubbo/rpc/cluster/router/mesh/rule/virtualservice/match/DubboAttachmentMatch.java [45:72]


    public boolean isMatch(Invocation invocation, Set<TracingContextProvider> contextProviders) {
        // Match Dubbo Context
        if (dubboContext != null) {
            for (Map.Entry<String, StringMatch> entry : dubboContext.entrySet()) {
                String key = entry.getKey();
                if (!entry.getValue().isMatch(invocation.getAttachment(key))) {
                    return false;
                }
            }
        }

        // Match Tracing Context
        if (tracingContext != null) {
            for (Map.Entry<String, StringMatch> entry : tracingContext.entrySet()) {
                String key = entry.getKey();
                boolean match = false;
                for (TracingContextProvider contextProvider : contextProviders) {
                    if (entry.getValue().isMatch(contextProvider.getValue(invocation, key))) {
                        match = true;
                    }
                }
                if (!match) {
                    return false;
                }
            }
        }
        return true;
    }