This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git


The following commit(s) were added to refs/heads/master by this push:
     new 420d6d6  feat: separate the circuitbreaker and ratelimit filters, to 
make it more decompose to developers (#187)
420d6d6 is described below

commit 420d6d6ab17f437b27f2980364e6af48d679dd00
Author: andrew shan <[email protected]>
AuthorDate: Fri Dec 30 16:08:17 2022 +0800

    feat: separate the circuitbreaker and ratelimit filters, to make it more 
decompose to developers (#187)
    
    * feat:调整filter的引用模式,限流与熔断分开便于用户按需使用
    
    * fix: add license to pom.xml
---
 .../pom.xml                                        |  22 +-
 .../dubbo/filter/dubbo2/CircuitBreakerFilter.java  |   0
 .../META-INF/dubbo/org.apache.dubbo.rpc.Filter     |   1 +
 .../pom.xml                                        |  22 +-
 .../dubbo/filter/dubbo2/RateLimitFilter.java       |   0
 .../META-INF/dubbo/org.apache.dubbo.rpc.Filter     |   1 +
 .../dubbo-filter-polaris-dubbo2/pom.xml            |   5 +
 .../META-INF/dubbo/org.apache.dubbo.rpc.Filter     |   3 -
 .../polaris/PolarisRegistryServiceDiscovery.java   | 227 ---------------------
 .../polaris/PolarisServiceDiscoveryFactory.java    |  30 ---
 .../registry/polaris/filter}/ReportFilter.java     |   2 +-
 ...e.dubbo.registry.client.ServiceDiscoveryFactory |   1 -
 .../dubbo/internal/org.apache.dubbo.rpc.Filter     |   1 +
 .../PolarisRegistryServiceDiscoveryTest.java       | 152 --------------
 14 files changed, 15 insertions(+), 452 deletions(-)

diff --git a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/pom.xml
similarity index 59%
copy from dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml
copy to 
dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/pom.xml
index 65b677f..4abcc6d 100644
--- a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml
+++ 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/pom.xml
@@ -19,28 +19,12 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
-        <artifactId>dubbo-filter-extensions</artifactId>
+        <artifactId>dubbo-filter-polaris-dubbo2</artifactId>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <version>1.0.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-filter-polaris-dubbo2</artifactId>
-    <name>dubbo-filter-polaris-dubbo2</name>
-    <version>1.0.0-SNAPSHOT</version>
-    <description>Dubbo2 filter extension for PolarisMesh, support 
circuitbreaking, ratelimit, metric capabilities.</description>
+    <artifactId>dubbo-filter-polaris-circuitbreaker-dubbo2</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <version>2.7.18</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>com.tencent.polaris</groupId>
-            <artifactId>polaris-adapter-dubbo</artifactId>
-        </dependency>
-    </dependencies>
 </project>
diff --git 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/CircuitBreakerFilter.java
 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/CircuitBreakerFilter.java
similarity index 100%
rename from 
dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/CircuitBreakerFilter.java
rename to 
dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/CircuitBreakerFilter.java
diff --git 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
new file mode 100644
index 0000000..6af9e48
--- /dev/null
+++ 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-circuitbreaker-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
@@ -0,0 +1 @@
+polaris_circuitbreaker=org.apache.dubbo.filter.dubbo2.CircuitBreakerFilter
diff --git a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/pom.xml
similarity index 59%
copy from dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml
copy to 
dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/pom.xml
index 65b677f..88669eb 100644
--- a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml
+++ 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/pom.xml
@@ -19,28 +19,12 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <parent>
-        <artifactId>dubbo-filter-extensions</artifactId>
+        <artifactId>dubbo-filter-polaris-dubbo2</artifactId>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <version>1.0.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>dubbo-filter-polaris-dubbo2</artifactId>
-    <name>dubbo-filter-polaris-dubbo2</name>
-    <version>1.0.0-SNAPSHOT</version>
-    <description>Dubbo2 filter extension for PolarisMesh, support 
circuitbreaking, ratelimit, metric capabilities.</description>
+    <artifactId>dubbo-filter-polaris-ratelimit-dubbo2</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <version>2.7.18</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>com.tencent.polaris</groupId>
-            <artifactId>polaris-adapter-dubbo</artifactId>
-        </dependency>
-    </dependencies>
 </project>
diff --git 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/RateLimitFilter.java
 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/RateLimitFilter.java
similarity index 100%
rename from 
dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/RateLimitFilter.java
rename to 
dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/RateLimitFilter.java
diff --git 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
new file mode 100644
index 0000000..b4ea5c2
--- /dev/null
+++ 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/dubbo-filter-polaris-ratelimit-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
@@ -0,0 +1 @@
+polaris_ratelimit=org.apache.dubbo.filter.dubbo2.RateLimitFilter
diff --git a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml
index 65b677f..bb845ac 100644
--- a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml
+++ b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/pom.xml
@@ -27,9 +27,14 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-filter-polaris-dubbo2</artifactId>
+    <packaging>pom</packaging>
     <name>dubbo-filter-polaris-dubbo2</name>
     <version>1.0.0-SNAPSHOT</version>
     <description>Dubbo2 filter extension for PolarisMesh, support 
circuitbreaking, ratelimit, metric capabilities.</description>
+    <modules>
+        <module>dubbo-filter-polaris-circuitbreaker-dubbo2</module>
+        <module>dubbo-filter-polaris-ratelimit-dubbo2</module>
+    </modules>
 
     <dependencies>
         <dependency>
diff --git 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
 
b/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
deleted file mode 100644
index 2fb8a58..0000000
--- 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
+++ /dev/null
@@ -1,3 +0,0 @@
-polaris_report=org.apache.dubbo.filter.dubbo2.ReportFilter
-polaris_circuitbreaker=org.apache.dubbo.filter.dubbo2.CircuitBreakerFilter
-polaris_ratelimit=org.apache.dubbo.filter.dubbo2.RateLimitFilter
\ No newline at end of file
diff --git 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/PolarisRegistryServiceDiscovery.java
 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/PolarisRegistryServiceDiscovery.java
deleted file mode 100644
index 034da73..0000000
--- 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/PolarisRegistryServiceDiscovery.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.registry.polaris;
-
-import com.tencent.polaris.api.listener.ServiceListener;
-import com.tencent.polaris.api.pojo.Instance;
-import com.tencent.polaris.api.pojo.ServiceInfo;
-import com.tencent.polaris.common.registry.Consts;
-import com.tencent.polaris.common.registry.ConvertUtils;
-import com.tencent.polaris.common.registry.PolarisOperator;
-import com.tencent.polaris.common.utils.ExtensionConsts;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.constants.CommonConstants;
-import org.apache.dubbo.common.extension.ExtensionLoader;
-import org.apache.dubbo.common.logger.Logger;
-import org.apache.dubbo.common.logger.LoggerFactory;
-import org.apache.dubbo.common.utils.ConcurrentHashSet;
-import org.apache.dubbo.common.utils.StringUtils;
-import org.apache.dubbo.metadata.MetadataInfo;
-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;
-import org.apache.dubbo.registry.client.DefaultServiceInstance;
-import org.apache.dubbo.registry.client.ServiceInstance;
-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;
-import 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
-import org.apache.dubbo.registry.polaris.task.FetchTask;
-import org.apache.dubbo.registry.polaris.task.InstancesHandler;
-import org.apache.dubbo.registry.polaris.task.TaskScheduler;
-import org.apache.dubbo.registry.polaris.task.WatchTask;
-import org.apache.dubbo.rpc.Filter;
-import org.apache.dubbo.rpc.cluster.Constants;
-import org.apache.dubbo.rpc.model.ApplicationModel;
-
-public class PolarisRegistryServiceDiscovery extends AbstractServiceDiscovery {
-
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(PolarisRegistryServiceDiscovery.class);
-
-    private final PolarisOperator polarisOperator;
-
-    private static final TaskScheduler taskScheduler = new TaskScheduler();
-
-    private final Set<ServiceInstance> registeredInstances = new 
ConcurrentHashSet<>();
-
-    private final Map<String, ServiceListener> serviceListeners = new 
ConcurrentHashMap<>();
-
-    private final boolean hasCircuitBreaker;
-
-    public PolarisRegistryServiceDiscovery(ApplicationModel applicationModel, 
URL registryURL) {
-        super(applicationModel, registryURL);
-        polarisOperator = 
PolarisRegistryUtils.getOrCreatePolarisOperator(registryURL);
-        ExtensionLoader<Filter> filterExtensionLoader = 
applicationModel.getExtensionDirector()
-            .getExtensionLoader(Filter.class);
-        if (null != filterExtensionLoader) {
-            hasCircuitBreaker = 
filterExtensionLoader.hasExtension(ExtensionConsts.PLUGIN_CIRCUITBREAKER_NAME);
-        } else {
-            hasCircuitBreaker = false;
-        }
-    }
-
-    @Override
-    protected void doRegister(ServiceInstance serviceInstance) throws 
RuntimeException {
-        LOGGER.info(String.format(
-            "[POLARIS] register %s to service %s", 
serviceInstance.getAddress(), serviceInstance.getServiceName()));
-        int weight = Constants.DEFAULT_WEIGHT;
-        String weightValue = serviceInstance.getMetadata(Constants.WEIGHT_KEY);
-        if (StringUtils.isNotBlank(weightValue)) {
-            try {
-                weight = Integer.parseInt(weightValue);
-            } catch (Exception e) {
-                LOGGER.warn(String.format("[POLARIS] fail to parse weight 
value %s", weightValue));
-            }
-        }
-        String applicationName = 
serviceInstance.getMetadata(CommonConstants.APPLICATION_KEY);
-        if (StringUtils.isBlank(applicationName)) {
-            ApplicationModel applicationModel = 
serviceInstance.getApplicationModel();
-            if (null != applicationModel) {
-                applicationName = applicationModel.getApplicationName();
-            }
-            serviceInstance.putExtendParam(CommonConstants.APPLICATION_KEY, 
applicationName);
-        }
-        String version = 
serviceInstance.getMetadata(CommonConstants.VERSION_KEY, "");
-        polarisOperator.register(serviceInstance.getServiceName(), 
serviceInstance.getHost(), serviceInstance.getPort(),
-            "", version, weight, serviceInstance.getAllParams());
-        registeredInstances.add(serviceInstance);
-    }
-
-    @Override
-    protected void doUnregister(ServiceInstance serviceInstance) {
-        LOGGER.info(String.format(
-            "[POLARIS] unregister %s to service %s", 
serviceInstance.getAddress(), serviceInstance.getServiceName()));
-        polarisOperator.deregister(serviceInstance.getServiceName(), 
serviceInstance.getHost(), serviceInstance.getPort());
-        registeredInstances.remove(serviceInstance);
-    }
-
-    @Override
-    protected void doDestroy() {
-        for (ServiceInstance serviceInstance : registeredInstances) {
-            doUnregister(serviceInstance);
-        }
-        PolarisRegistryUtils.removePolarisOperator(getUrl());
-        polarisOperator.destroy();
-        taskScheduler.destroy();
-    }
-
-    @Override
-    public Set<String> getServices() {
-        List<ServiceInfo> services = polarisOperator.getServices();
-        Set<String> svcNames = new HashSet<>();
-        for (ServiceInfo serviceInfo : services) {
-            svcNames.add(serviceInfo.getService());
-        }
-        return svcNames;
-    }
-
-    @Override
-    public List<ServiceInstance> getInstances(String serviceName) throws 
NullPointerException {
-        Instance[] availableInstances = 
polarisOperator.getAvailableInstances(serviceName, !hasCircuitBreaker);
-        List<ServiceInstance> instances = new ArrayList<>();
-        for (Instance availableInstance : availableInstances) {
-            instances.add(instanceToServiceInstance(availableInstance));
-        }
-        return instances;
-    }
-
-    @Override
-    public void 
addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)
-        throws NullPointerException, IllegalArgumentException {
-        PolarisInstancesHandler polarisInstancesHandler = new 
PolarisInstancesHandler(listener);
-        for (String serviceName : listener.getServiceNames()) {
-            LOGGER.info(String.format("[polaris] subscribe service: %s", 
serviceName));
-            FetchTask fetchTask = new FetchTask(serviceName, 
polarisInstancesHandler, polarisOperator, !hasCircuitBreaker);
-            taskScheduler.submitWatchTask(new WatchTask(serviceName, 
fetchTask, taskScheduler));
-        }
-    }
-
-    @Override
-    public void 
removeServiceInstancesChangedListener(ServiceInstancesChangedListener listener) 
{
-        for (String serviceName : listener.getServiceNames()) {
-            LOGGER.info(String.format("[polaris] unsubscribe service: %s", 
serviceName));
-            ServiceListener serviceListener = 
serviceListeners.remove(serviceName);
-            if (null != serviceListener) {
-                polarisOperator.unwatchService(serviceName, serviceListener);
-            }
-        }
-    }
-
-    private ServiceInstance instanceToServiceInstance(Instance instance) {
-        ServiceInstance serviceInstance = new DefaultServiceInstance(
-            instance.getService(), instance.getHost(), instance.getPort(), 
applicationModel);
-        Map<String, String> newMetadata = new 
HashMap<>(instance.getMetadata());
-        boolean hasWeight = false;
-        if (newMetadata.containsKey(Constants.WEIGHT_KEY)) {
-            String weightStr = newMetadata.get(Constants.WEIGHT_KEY);
-            try {
-                int weightValue = Integer.parseInt(weightStr);
-                if (weightValue == instance.getWeight()) {
-                    hasWeight = true;
-                }
-            } catch (Exception ignored) {
-            }
-        }
-        if (!hasWeight) {
-            newMetadata.put(Constants.WEIGHT_KEY, 
Integer.toString(instance.getWeight()));
-        }
-        String applicationName = 
newMetadata.getOrDefault(CommonConstants.APPLICATION_KEY, "" );
-        MetadataInfo.ServiceInfo serviceInfo = new MetadataInfo.ServiceInfo(
-            instance.getService(), CommonConstants.ANY_VALUE,
-            instance.getVersion(),
-            instance.getProtocol(), instance.getPort(),
-            newMetadata.getOrDefault(CommonConstants.PATH_KEY, ""), 
newMetadata);
-        Map<String, MetadataInfo.ServiceInfo> serviceInfoMap = new HashMap<>();
-        serviceInfoMap.put(instance.getService(), serviceInfo);
-        MetadataInfo metadataInfo = new MetadataInfo(applicationName, 
instance.getRevision(), serviceInfoMap);
-        serviceInstance.setServiceMetadata(metadataInfo);
-        serviceInstance.getMetadata().putAll(newMetadata);
-
-        serviceInstance.putExtendParamIfAbsent(Consts.INSTANCE_KEY_ID, 
instance.getId());
-        serviceInstance.putExtendParamIfAbsent(Consts.INSTANCE_KEY_HEALTHY, 
Boolean.toString(instance.isHealthy()));
-        serviceInstance.putExtendParamIfAbsent(Consts.INSTANCE_KEY_ISOLATED, 
Boolean.toString(instance.isIsolated()));
-        
serviceInstance.putExtendParamIfAbsent(Consts.INSTANCE_KEY_CIRCUIT_BREAKER, 
ConvertUtils.circuitBreakersToString(instance));
-        return serviceInstance;
-    }
-
-    private class PolarisInstancesHandler implements InstancesHandler {
-
-        private final ServiceInstancesChangedListener listener;
-
-        public PolarisInstancesHandler(ServiceInstancesChangedListener 
listener) {
-            this.listener = listener;
-        }
-
-        @Override
-        public void onInstances(String serviceName, Instance[] instances) {
-            List<ServiceInstance> serviceInstances = new ArrayList<>();
-            for (Instance instance : instances) {
-                serviceInstances.add(instanceToServiceInstance(instance));
-            }
-            listener.onEvent(new ServiceInstancesChangedEvent(serviceName, 
serviceInstances));
-        }
-
-        @Override
-        public void onWatchSuccess(String serviceName, ServiceListener 
serviceListener) {
-            serviceListeners.put(serviceName, serviceListener);
-        }
-    }
-}
diff --git 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/PolarisServiceDiscoveryFactory.java
 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/PolarisServiceDiscoveryFactory.java
deleted file mode 100644
index 52f9e3a..0000000
--- 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/PolarisServiceDiscoveryFactory.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.registry.polaris;
-
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;
-import org.apache.dubbo.registry.client.ServiceDiscovery;
-
-public class PolarisServiceDiscoveryFactory extends 
AbstractServiceDiscoveryFactory {
-
-    @Override
-    protected ServiceDiscovery createDiscovery(URL registryURL) {
-        return new PolarisRegistryServiceDiscovery(applicationModel, 
registryURL);
-    }
-}
diff --git 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/ReportFilter.java
 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/filter/ReportFilter.java
similarity index 98%
rename from 
dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/ReportFilter.java
rename to 
dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/filter/ReportFilter.java
index 78a81d7..8449db6 100644
--- 
a/dubbo-filter-extensions/dubbo-filter-polaris-dubbo2/src/main/java/org/apache/dubbo/filter/dubbo2/ReportFilter.java
+++ 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/main/java/org/apache/dubbo/registry/polaris/filter/ReportFilter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.dubbo.filter.dubbo2;
+package org.apache.dubbo.registry.polaris.filter;
 
 
 import com.tencent.polaris.api.pojo.RetStatus;
diff --git 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscoveryFactory
 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscoveryFactory
deleted file mode 100644
index e2e23c9..0000000
--- 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscoveryFactory
+++ /dev/null
@@ -1 +0,0 @@
-polaris=org.apache.dubbo.registry.polaris.PolarisServiceDiscoveryFactory
\ No newline at end of file
diff --git 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
new file mode 100644
index 0000000..8169e69
--- /dev/null
+++ 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
@@ -0,0 +1 @@
+polaris_report=org.apache.dubbo.registry.polaris.filter.ReportFilter
diff --git 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/test/java/org/apache/dubbo/registry/polaris/PolarisRegistryServiceDiscoveryTest.java
 
b/dubbo-registry-extensions/dubbo-registry-polaris/src/test/java/org/apache/dubbo/registry/polaris/PolarisRegistryServiceDiscoveryTest.java
deleted file mode 100644
index 084370e..0000000
--- 
a/dubbo-registry-extensions/dubbo-registry-polaris/src/test/java/org/apache/dubbo/registry/polaris/PolarisRegistryServiceDiscoveryTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dubbo.registry.polaris;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.utils.NetUtils;
-import org.apache.dubbo.common.utils.StringUtils;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.registry.NotifyListener;
-import org.apache.dubbo.registry.client.DefaultServiceInstance;
-import org.apache.dubbo.registry.client.ServiceInstance;
-import 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
-import org.apache.dubbo.rpc.model.ApplicationModel;
-import org.apache.dubbo.rpc.model.FrameworkModel;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-public class PolarisRegistryServiceDiscoveryTest {
-
-    private static PolarisRegistryServiceDiscovery 
polarisRegistryServiceDiscovery;
-
-    private static ApplicationModel applicationModel;
-
-    @BeforeAll
-    public static void setup() {
-        Map<String, String> parameters = new HashMap<>();
-        parameters.put("namespace", "dubbo-java-test");
-        parameters.put("persist_enable", "false");
-        URL url = new URL("polaris", "183.47.111.80", 8091, parameters);
-        applicationModel = FrameworkModel.defaultModel().newApplication();
-        applicationModel.getApplicationConfigManager().setApplication(new 
ApplicationConfig("Test"));
-        polarisRegistryServiceDiscovery = new 
PolarisRegistryServiceDiscovery(applicationModel, url);
-    }
-
-    @AfterAll
-    public static void teardown() {
-        if (null != polarisRegistryServiceDiscovery) {
-            polarisRegistryServiceDiscovery.doDestroy();
-        }
-    }
-
-    @Test
-    public void testRegister() {
-        int count = 10;
-        String svcName = "polaris-registry-test-service-register";
-        String host = NetUtils.getLocalHost();
-        List<ServiceInstance> serviceInstances = buildInstanceUrls(svcName, 
host, 11300, count);
-        for (ServiceInstance serviceInstance : serviceInstances) {
-            polarisRegistryServiceDiscovery.doRegister(serviceInstance);
-        }
-        try {
-            Thread.sleep(5000);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-        try {
-            List<ServiceInstance> instances = 
polarisRegistryServiceDiscovery.getInstances(svcName);
-            Assertions.assertEquals(count, countInstanceByHost(host, 
instances));
-        } finally {
-            for (ServiceInstance serviceInstance : serviceInstances) {
-                polarisRegistryServiceDiscovery.doUnregister(serviceInstance);
-            }
-        }
-    }
-
-    private static List<ServiceInstance> buildInstanceUrls(String service, 
String host, int startPort, int count) {
-        List<ServiceInstance> serviceUrls = new ArrayList<>();
-        for (int i = 0; i < count; i++) {
-            ServiceInstance serviceInstance = new 
DefaultServiceInstance(service, host, startPort + i, applicationModel);
-            serviceUrls.add(serviceInstance);
-        }
-        return serviceUrls;
-    }
-
-    @Test
-    public void testSubscribe() {
-        int count = 10;
-        AtomicBoolean notified = new AtomicBoolean(false);
-        String svcName = "polaris-registry-test-service-subscribe";
-        Set<String> services = new HashSet<>();
-        services.add(svcName);
-        ServiceInstancesChangedListener serviceInstancesChangedListener = new 
ServiceInstancesChangedListener(services, polarisRegistryServiceDiscovery);
-        URL consumerUrl = URL.valueOf("consumer://0.0.0.0/" + svcName);
-        NotifyListener listener = new NotifyListener() {
-            @Override
-            public void notify(List<URL> urls) {
-                notified.set(true);
-                //notifiedCount.set(urls.size());
-            }
-
-            public ServiceInstancesChangedListener getServiceListener() {
-                return serviceInstancesChangedListener;
-            }
-
-            public URL getConsumerUrl() {
-                return consumerUrl;
-            }
-        };
-        String host = NetUtils.getLocalHost();
-        serviceInstancesChangedListener.addListenerAndNotify(consumerUrl, 
listener);
-        
polarisRegistryServiceDiscovery.addServiceInstancesChangedListener(serviceInstancesChangedListener);
-        List<ServiceInstance> instances = buildInstanceUrls(svcName, host, 
11300, count);
-        for (ServiceInstance instance : instances) {
-            polarisRegistryServiceDiscovery.doRegister(instance);
-        }
-        try {
-            Thread.sleep(5000);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-        
polarisRegistryServiceDiscovery.removeServiceInstancesChangedListener(serviceInstancesChangedListener);
-        Assertions.assertTrue(notified.get());
-        //Assertions.assertEquals(count, notifiedCount.get());
-        for (ServiceInstance serviceInstance : instances) {
-            polarisRegistryServiceDiscovery.doUnregister(serviceInstance);
-        }
-    }
-
-    private static int countInstanceByHost(String host, List<ServiceInstance> 
instances) {
-        int count = 0;
-        for (ServiceInstance instance : instances) {
-            if (StringUtils.isEquals(host, instance.getHost())) {
-                count++;
-            }
-        }
-        return count;
-    }
-}

Reply via email to