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

mikexue pushed a commit to branch eventmesh-function
in repository https://gitbox.apache.org/repos/asf/eventmesh.git

commit e97cf82f5958f4452e87a317ca08924de81ae158
Author: sodaRyCN <[email protected]>
AuthorDate: Wed May 29 10:34:17 2024 +0800

    [ISSUE #4931]Add Registry Module for Discovery AdminServer
---
 .../registry/AbstractRegistryListener.java         |  14 ---
 .../org/apache/eventmesh/registry/NotifyEvent.java |  30 +++++++
 .../eventmesh/registry/RegisterServerInfo.java     |  13 +++
 .../org/apache/eventmesh/registry/Registry.java    |  76 ----------------
 .../apache/eventmesh/registry/RegistryFactory.java |  28 ++++++
 .../eventmesh/registry/RegistryListener.java       |   2 +-
 .../apache/eventmesh/registry/RegistryService.java |   1 -
 .../registry/nacos/NacosDiscoveryService.java      | 100 ++++++++++++++++-----
 .../registry/nacos/NacosRegistryConfiguration.java |  23 ++---
 .../org.apache.eventmesh.registry.RegistryService  |  16 ++++
 10 files changed, 177 insertions(+), 126 deletions(-)

diff --git 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/AbstractRegistryListener.java
 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/AbstractRegistryListener.java
deleted file mode 100644
index f5e36677c..000000000
--- 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/AbstractRegistryListener.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.apache.eventmesh.registry;
-
-public abstract class AbstractRegistryListener<T> implements RegistryListener {
-    protected abstract boolean checkType(Object data);
-    @Override
-    @SuppressWarnings("unchecked")
-    public void onChange(Object data) {
-        if (!checkType(data)) {
-            return;
-        }
-        process((T)data);
-    }
-    protected abstract void process(T data);
-}
diff --git 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/NotifyEvent.java
 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/NotifyEvent.java
new file mode 100644
index 000000000..7b27a2295
--- /dev/null
+++ 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/NotifyEvent.java
@@ -0,0 +1,30 @@
+package org.apache.eventmesh.registry;
+
+import lombok.Getter;
+
+import java.util.List;
+
+public class NotifyEvent {
+
+    public NotifyEvent(){
+
+    }
+
+    public NotifyEvent(List<RegisterServerInfo> instances) {
+        this(instances, false);
+    }
+
+    public NotifyEvent(List<RegisterServerInfo> instances, boolean 
isIncrement) {
+        this.isIncrement = isIncrement;
+        this.instances = instances;
+    }
+
+
+
+    // means whether it is an increment data
+    @Getter
+    private boolean isIncrement;
+
+    @Getter
+    private List<RegisterServerInfo> instances;
+}
diff --git 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegisterServerInfo.java
 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegisterServerInfo.java
index a46b846df..5ad4f288c 100644
--- 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegisterServerInfo.java
+++ 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegisterServerInfo.java
@@ -38,4 +38,17 @@ public class RegisterServerInfo {
     public void addMetadata(String key, String value) {
         this.metadata.put(key, value);
     }
+
+    public void setExtFields(Map<String, Object> extFields) {
+        if (extFields == null) {
+            this.extFields.clear();
+            return;
+        }
+
+        this.extFields = extFields;
+    }
+
+    public void addExtFields(String key, Object value) {
+        this.extFields.put(key, value);
+    }
 }
diff --git 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/Registry.java
 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/Registry.java
deleted file mode 100644
index 5a48f8c94..000000000
--- 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/Registry.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.apache.eventmesh.registry;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.eventmesh.registry.exception.RegistryException;
-import org.apache.eventmesh.spi.EventMeshExtensionFactory;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-@Slf4j
-public class Registry implements RegistryService {
-    private static final Map<String, Registry> META_CACHE = new HashMap<>(16);
-    private RegistryService registryService;
-
-    private final AtomicBoolean initFlag = new AtomicBoolean(false);
-    private final AtomicBoolean shutdownFlag = new AtomicBoolean(false);
-
-    public static Registry getInstance(String registryPluginType) {
-        return META_CACHE.computeIfAbsent(registryPluginType, 
Registry::registryBuilder);
-    }
-
-    private static Registry registryBuilder(String registryPluginType) {
-        RegistryService registryServiceExt = 
EventMeshExtensionFactory.getExtension(RegistryService.class, 
registryPluginType);
-        if (registryServiceExt == null) {
-            String errorMsg = "can't load the metaService plugin, please 
check.";
-            log.error(errorMsg);
-            throw new RuntimeException(errorMsg);
-        }
-        Registry metaStorage = new Registry();
-        metaStorage.registryService = registryServiceExt;
-
-        return metaStorage;
-    }
-
-    @Override
-    public void init() throws RegistryException {
-        if (initFlag.compareAndSet(false, true)) {
-            return;
-        }
-        this.registryService.init();
-    }
-
-    @Override
-    public void shutdown() throws RegistryException {
-        if (shutdownFlag.compareAndSet(false, true)) {
-            this.registryService.shutdown();
-        }
-    }
-
-    @Override
-    public void subscribe(RegistryListener registryListener, String 
serviceName) {
-        this.registryService.subscribe(registryListener, serviceName);
-    }
-
-    @Override
-    public void unsubscribe(RegistryListener registryListener, String 
serviceName) {
-        this.registryService.unsubscribe(registryListener, serviceName);
-    }
-
-    @Override
-    public List<RegisterServerInfo> selectInstances(QueryInstances serverInfo) 
{
-        return this.registryService.selectInstances(serverInfo);
-    }
-
-    @Override
-    public boolean register(RegisterServerInfo registerInfo) throws 
RegistryException {
-        return this.registryService.register(registerInfo);
-    }
-
-    @Override
-    public boolean unRegister(RegisterServerInfo unRegisterInfo) throws 
RegistryException {
-        return this.registryService.unRegister(unRegisterInfo);
-    }
-}
diff --git 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryFactory.java
 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryFactory.java
new file mode 100644
index 000000000..ff135b0b2
--- /dev/null
+++ 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryFactory.java
@@ -0,0 +1,28 @@
+package org.apache.eventmesh.registry;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.eventmesh.spi.EventMeshExtensionFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+public class RegistryFactory {
+    private static final Map<String, RegistryService> META_CACHE = new 
HashMap<>(16);
+
+    public static RegistryService getInstance(String registryPluginType) {
+        return META_CACHE.computeIfAbsent(registryPluginType, 
RegistryFactory::registryBuilder);
+    }
+
+    private static RegistryService registryBuilder(String registryPluginType) {
+        RegistryService registryServiceExt = 
EventMeshExtensionFactory.getExtension(RegistryService.class, 
registryPluginType);
+        if (registryServiceExt == null) {
+            String errorMsg = "can't load the registry plugin, please check.";
+            log.error(errorMsg);
+            throw new RuntimeException(errorMsg);
+        }
+        log.info("build registry plugin [{}] by type [{}] success", 
registryServiceExt.getClass().getSimpleName(),
+                registryPluginType);
+        return registryServiceExt;
+    }
+}
diff --git 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryListener.java
 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryListener.java
index 4f53e4b76..32d542ba2 100644
--- 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryListener.java
+++ 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryListener.java
@@ -1,5 +1,5 @@
 package org.apache.eventmesh.registry;
 
 public interface RegistryListener {
-    void onChange(Object data);
+    void onChange(NotifyEvent event) throws Exception;
 }
diff --git 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryService.java
 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryService.java
index f549e136d..72536a08b 100644
--- 
a/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryService.java
+++ 
b/eventmesh-registry/eventmesh-registry-api/src/main/java/org/apache/eventmesh/registry/RegistryService.java
@@ -9,7 +9,6 @@ import java.util.List;
 
 @EventMeshSPI(eventMeshExtensionType = EventMeshExtensionType.REGISTRY)
 public interface RegistryService {
-    String ConfigurationKey = "registry";
     void init() throws RegistryException;
 
     void shutdown() throws RegistryException;
diff --git 
a/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosDiscoveryService.java
 
b/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosDiscoveryService.java
index dbb9a140c..13b75df61 100644
--- 
a/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosDiscoveryService.java
+++ 
b/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosDiscoveryService.java
@@ -4,16 +4,18 @@ import com.alibaba.nacos.api.NacosFactory;
 import com.alibaba.nacos.api.PropertyKeyConst;
 import com.alibaba.nacos.api.exception.NacosException;
 import com.alibaba.nacos.api.naming.NamingService;
+import com.alibaba.nacos.api.naming.listener.AbstractEventListener;
+import com.alibaba.nacos.api.naming.listener.Event;
 import com.alibaba.nacos.api.naming.listener.EventListener;
+import com.alibaba.nacos.api.naming.listener.NamingEvent;
 import com.alibaba.nacos.api.naming.pojo.Instance;
 import com.alibaba.nacos.api.naming.pojo.ServiceInfo;
 import com.alibaba.nacos.api.naming.utils.NamingUtils;
 import com.alibaba.nacos.client.naming.utils.UtilAndComs;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.eventmesh.common.config.CommonConfiguration;
 import org.apache.eventmesh.common.config.ConfigService;
-import org.apache.eventmesh.common.utils.ConfigurationContextUtil;
+import org.apache.eventmesh.registry.NotifyEvent;
 import org.apache.eventmesh.registry.QueryInstances;
 import org.apache.eventmesh.registry.RegisterServerInfo;
 import org.apache.eventmesh.registry.RegistryListener;
@@ -28,6 +30,10 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.Properties;
+import java.util.concurrent.Executor;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
@@ -35,9 +41,8 @@ import java.util.stream.Collectors;
 
 @Slf4j
 public class NacosDiscoveryService implements RegistryService {
-    private final AtomicBoolean initFlag = new AtomicBoolean(false);
 
-    private CommonConfiguration configuration;
+    private final AtomicBoolean initFlag = new AtomicBoolean(false);
 
     private NacosRegistryConfiguration nacosConf;
 
@@ -45,18 +50,23 @@ public class NacosDiscoveryService implements 
RegistryService {
 
     private final Map<String, Map<RegistryListener, EventListener>> listeners 
= new HashMap<>();
 
+    private static final Executor notifyExecutor = new ThreadPoolExecutor(1, 
1, 60L, TimeUnit.SECONDS,
+         new LinkedBlockingQueue<>(20), r -> {
+             Thread t = new Thread(r);
+             t.setName("org.apache.eventmesh.registry.nacos.executor");
+             t.setDaemon(true);
+             return t;
+         }, new ThreadPoolExecutor.DiscardOldestPolicy()
+    );
+
     private final Lock lock = new ReentrantLock();
-    private static final String GROUP_NAME = "admin";
+
 
     @Override
     public void init() throws RegistryException {
         if (!initFlag.compareAndSet(false, true)) {
             return;
         }
-        configuration = 
ConfigurationContextUtil.get(RegistryService.ConfigurationKey);
-        if (configuration == null ) {
-            throw new RegistryException("registry config instance is null");
-        }
         nacosConf = 
ConfigService.getInstance().buildConfigInstance(NacosRegistryConfiguration.class);
         if (nacosConf == null) {
             log.info("nacos registry configuration is null");
@@ -73,12 +83,13 @@ public class NacosDiscoveryService implements 
RegistryService {
 
     private Properties buildProperties() {
         Properties properties = new Properties();
-        properties.setProperty(PropertyKeyConst.SERVER_ADDR, 
configuration.getRegistryAddr());
-        properties.setProperty(PropertyKeyConst.USERNAME, 
configuration.getEventMeshRegistryPluginUsername());
-        properties.setProperty(PropertyKeyConst.PASSWORD, 
configuration.getEventMeshRegistryPluginPassword());
         if (nacosConf == null) {
             return properties;
         }
+        properties.setProperty(PropertyKeyConst.SERVER_ADDR, 
nacosConf.getRegistryAddr());
+        properties.setProperty(PropertyKeyConst.USERNAME, 
nacosConf.getEventMeshRegistryPluginUsername());
+        properties.setProperty(PropertyKeyConst.PASSWORD, 
nacosConf.getEventMeshRegistryPluginPassword());
+
         String endpoint = nacosConf.getEndpoint();
         if (Objects.nonNull(endpoint) && endpoint.contains(":")) {
             int index = endpoint.indexOf(":");
@@ -87,7 +98,8 @@ public class NacosDiscoveryService implements RegistryService 
{
         } else {
             Optional.ofNullable(endpoint).ifPresent(value -> 
properties.put(PropertyKeyConst.ENDPOINT, endpoint));
             String endpointPort = nacosConf.getEndpointPort();
-            Optional.ofNullable(endpointPort).ifPresent(value -> 
properties.put(PropertyKeyConst.ENDPOINT_PORT, endpointPort));
+            Optional.ofNullable(endpointPort).ifPresent(value -> 
properties.put(PropertyKeyConst.ENDPOINT_PORT,
+                    endpointPort));
         }
         String accessKey = nacosConf.getAccessKey();
         Optional.ofNullable(accessKey).ifPresent(value -> 
properties.put(PropertyKeyConst.ACCESS_KEY, accessKey));
@@ -96,7 +108,8 @@ public class NacosDiscoveryService implements 
RegistryService {
         String clusterName = nacosConf.getClusterName();
         Optional.ofNullable(clusterName).ifPresent(value -> 
properties.put(PropertyKeyConst.CLUSTER_NAME, clusterName));
         String logFileName = nacosConf.getLogFileName();
-        Optional.ofNullable(logFileName).ifPresent(value -> 
properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME, logFileName));
+        Optional.ofNullable(logFileName).ifPresent(value -> 
properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME,
+                logFileName));
         String logLevel = nacosConf.getLogLevel();
         Optional.ofNullable(logLevel).ifPresent(value -> 
properties.put(UtilAndComs.NACOS_NAMING_LOG_LEVEL, logLevel));
         Integer pollingThreadCount = nacosConf.getPollingThreadCount();
@@ -122,19 +135,54 @@ public class NacosDiscoveryService implements 
RegistryService {
         lock.lock();
         try {
             ServiceInfo serviceInfo = ServiceInfo.fromKey(serviceName);
-            Map<RegistryListener, EventListener> eventListenerMap = 
listeners.computeIfAbsent(serviceName, k -> new HashMap<>());
+            Map<RegistryListener, EventListener> eventListenerMap = 
listeners.computeIfAbsent(serviceName,
+                    k -> new HashMap<>());
             if (eventListenerMap.containsKey(listener)) {
-                log.warn("already use same listener subscribe service name {}" 
,serviceName);
+                log.warn("already use same listener subscribe service name 
{}", serviceName);
                 return;
             }
-            EventListener eventListener = listener::onChange;
-            List<String> clusters ;
+            EventListener eventListener = new AbstractEventListener() {
+                @Override
+                public Executor getExecutor() {
+                    return notifyExecutor;
+                }
+
+                @Override
+                public void onEvent(Event event) {
+                    if (!(event instanceof NamingEvent)) {
+                        log.warn("received notify event type isn't not as 
expected");
+                        return;
+                    }
+                    try {
+                        NamingEvent namingEvent = (NamingEvent) event;
+                        List<Instance> instances = namingEvent.getInstances();
+                        List<RegisterServerInfo> list = new ArrayList<>();
+                        if (instances != null) {
+                            for (Instance instance : instances) {
+                                RegisterServerInfo info = new 
RegisterServerInfo();
+                                info.setAddress(instance.getIp() + ":" + 
instance.getPort());
+                                info.setMetadata(instance.getMetadata());
+                                info.setHealth(instance.isHealthy());
+                                info.setServiceName(
+                                        
ServiceInfo.getKey(NamingUtils.getGroupedName(namingEvent.getServiceName(),
+                                                        
namingEvent.getGroupName()),
+                                                namingEvent.getClusters()));
+                                list.add(info);
+                            }
+                        }
+                        listener.onChange(new NotifyEvent(list));
+                    } catch (Exception e) {
+                        log.warn("");
+                    }
+                }
+            };
+            List<String> clusters;
             if (serviceInfo.getClusters() == null || 
serviceInfo.getClusters().isEmpty()) {
                 clusters = new ArrayList<>();
             } else {
                 clusters = 
Arrays.stream(serviceInfo.getClusters().split(",")).collect(Collectors.toList());
             }
-            
namingService.subscribe(serviceInfo.getName(),serviceInfo.getGroupName(), 
clusters, eventListener);
+            namingService.subscribe(serviceInfo.getName(), 
serviceInfo.getGroupName(), clusters, eventListener);
             eventListenerMap.put(listener, eventListener);
         } catch (Exception e) {
             log.error("subscribe service name {} fail", serviceName, e);
@@ -152,7 +200,7 @@ public class NacosDiscoveryService implements 
RegistryService {
             if (map == null) {
                 return;
             }
-            List<String> clusters ;
+            List<String> clusters;
             if (serviceInfo.getClusters() == null || 
serviceInfo.getClusters().isEmpty()) {
                 clusters = new ArrayList<>();
             } else {
@@ -177,14 +225,18 @@ public class NacosDiscoveryService implements 
RegistryService {
             if (StringUtils.isNotBlank(serviceInfo.getClusters())) {
                 
clusters.addAll(Arrays.asList(serviceInfo.getClusters().split(",")));
             }
-            List<Instance> instances = 
namingService.selectInstances(serviceInfo.getName(), 
serviceInfo.getGroupName(), clusters, queryInstances.isHealth());
+            List<Instance> instances = 
namingService.selectInstances(serviceInfo.getName(),
+                    serviceInfo.getGroupName(), clusters,
+                    queryInstances.isHealth());
             if (instances != null) {
                 instances.forEach(x -> {
                     RegisterServerInfo instanceInfo = new RegisterServerInfo();
                     instanceInfo.setMetadata(x.getMetadata());
                     instanceInfo.setHealth(x.isHealthy());
                     instanceInfo.setAddress(x.getIp() + ":" + x.getPort());
-                    
instanceInfo.setServiceName(ServiceInfo.getKey(NamingUtils.getGroupedName(x.getServiceName(),
 serviceInfo.getGroupName()), x.getClusterName()));
+                    instanceInfo.setServiceName(
+                            
ServiceInfo.getKey(NamingUtils.getGroupedName(x.getServiceName(),
+                                    serviceInfo.getGroupName()), 
x.getClusterName()));
                     list.add(instanceInfo);
                 });
             }
@@ -228,7 +280,9 @@ public class NacosDiscoveryService implements 
RegistryService {
                 return false;
             }
             ServiceInfo serviceInfo = 
ServiceInfo.fromKey(eventMeshRegisterInfo.getServiceName());
-            namingService.deregisterInstance(serviceInfo.getName(), 
serviceInfo.getGroupName(), ipPort[0], Integer.parseInt(ipPort[1]), 
serviceInfo.getClusters());
+            namingService.deregisterInstance(serviceInfo.getName(), 
serviceInfo.getGroupName(), ipPort[0],
+                    Integer.parseInt(ipPort[1]),
+                    serviceInfo.getClusters());
             return true;
         } catch (Exception e) {
             log.error("unregister instance service {} fail", 
eventMeshRegisterInfo, e);
diff --git 
a/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosRegistryConfiguration.java
 
b/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosRegistryConfiguration.java
index a8c473d27..ffb446edd 100644
--- 
a/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosRegistryConfiguration.java
+++ 
b/eventmesh-registry/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/NacosRegistryConfiguration.java
@@ -21,39 +21,40 @@ import com.alibaba.nacos.api.PropertyKeyConst;
 import com.alibaba.nacos.client.naming.utils.UtilAndComs;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.apache.eventmesh.common.config.CommonConfiguration;
 import org.apache.eventmesh.common.config.Config;
-import org.apache.eventmesh.common.config.ConfigFiled;
+import org.apache.eventmesh.common.config.ConfigField;
 
 @Data
 @NoArgsConstructor
 @Config(prefix = "eventMesh.registry.nacos")
-public class NacosRegistryConfiguration {
+public class NacosRegistryConfiguration extends CommonConfiguration {
 
-    @ConfigFiled(field = PropertyKeyConst.ENDPOINT)
+    @ConfigField(field = PropertyKeyConst.ENDPOINT)
     private String endpoint;
 
-    @ConfigFiled(field = PropertyKeyConst.ENDPOINT_PORT)
+    @ConfigField(field = PropertyKeyConst.ENDPOINT_PORT)
     private String endpointPort;
 
-    @ConfigFiled(field = PropertyKeyConst.ACCESS_KEY)
+    @ConfigField(field = PropertyKeyConst.ACCESS_KEY)
     private String accessKey;
 
-    @ConfigFiled(field = PropertyKeyConst.SECRET_KEY)
+    @ConfigField(field = PropertyKeyConst.SECRET_KEY)
     private String secretKey;
 
-    @ConfigFiled(field = PropertyKeyConst.CLUSTER_NAME)
+    @ConfigField(field = PropertyKeyConst.CLUSTER_NAME)
     private String clusterName;
 
-    @ConfigFiled(field = PropertyKeyConst.NAMESPACE)
+    @ConfigField(field = PropertyKeyConst.NAMESPACE)
     private String namespace;
 
-    @ConfigFiled(field = PropertyKeyConst.NAMING_POLLING_THREAD_COUNT)
+    @ConfigField(field = PropertyKeyConst.NAMING_POLLING_THREAD_COUNT)
     private Integer pollingThreadCount = 
Runtime.getRuntime().availableProcessors() / 2 + 1;
 
-    @ConfigFiled(field = UtilAndComs.NACOS_NAMING_LOG_NAME)
+    @ConfigField(field = UtilAndComs.NACOS_NAMING_LOG_NAME)
     private String logFileName;
 
-    @ConfigFiled(field = UtilAndComs.NACOS_NAMING_LOG_LEVEL)
+    @ConfigField(field = UtilAndComs.NACOS_NAMING_LOG_LEVEL)
     private String logLevel;
 
 }
diff --git 
a/eventmesh-registry/eventmesh-registry-nacos/src/main/resources/META-INF/eventmesh/org.apache.eventmesh.registry.RegistryService
 
b/eventmesh-registry/eventmesh-registry-nacos/src/main/resources/META-INF/eventmesh/org.apache.eventmesh.registry.RegistryService
new file mode 100644
index 000000000..3301d56e5
--- /dev/null
+++ 
b/eventmesh-registry/eventmesh-registry-nacos/src/main/resources/META-INF/eventmesh/org.apache.eventmesh.registry.RegistryService
@@ -0,0 +1,16 @@
+# 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.
+
+nacos=org.apache.eventmesh.registry.nacos.NacosDiscoveryService
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to