class ServiceProviderIsolationStrategyInterceptor extends AbstractInterceptor {
    @Autowired
    protected PluginAdapter pluginAdapter;

    @Autowired
    protected ServiceStrategyContextHolder serviceStrategyContextHolder;

    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {<FILL_FUNCTION_BODY>}
}

        boolean hasInitBinderAnnotation = getMethod(invocation).isAnnotationPresent(InitBinder.class);
        if (hasInitBinderAnnotation) {
            return invocation.proceed();
        }

        // N_D_SERVICE_GROUP的Header属于上游服务传入
        String groupHeader = serviceStrategyContextHolder.getHeader(DiscoveryConstant.N_D_SERVICE_GROUP);
        if (StringUtils.isEmpty(groupHeader)) {
            // N_D_GROUP的Header属于外部URL调用传入
            groupHeader = serviceStrategyContextHolder.getHeader(DiscoveryConstant.N_D_GROUP);
        }
        String group = pluginAdapter.getGroup();
        String serviceId = pluginAdapter.getServiceId();
        if (!StringUtils.equals(groupHeader, group)) {
            throw new DiscoveryException("Reject to invoke because of isolation with different group for serviceId=" + serviceId);
        }

        return invocation.proceed();
    
<no_super_class>