public static synchronized void join(CustomEnvironmentPluginService customEnvironmentPluginService) {
        if (Objects.isNull(customEnvironmentPluginService)) {
            return;
        }
        SERVICE_LIST.add(customEnvironmentPluginService);
        LOGGER.info("[CustomEnvironmentPluginService] join successfully.");
    }
@Test
    void testJoin() {
        CustomEnvironmentPluginManager.join(new CustomEnvironmentPluginService() {
            @Override
            public Map<String, Object> customValue(Map<String, Object> property) {
                String pwd = (String) property.get("db.password.0");
                property.put("db.password.0", "test" + pwd);
                return property;
            }
            
            @Override
            public Set<String> propertyKey() {
                Set<String> propertyKey = new HashSet<>();
                propertyKey.add("db.password.0");
                return propertyKey;
            }
            
            @Override
            public Integer order() {
                return 0;
            }
            
            @Override
            public String pluginName() {
                return "test";
            }
        });
        assertNotNull(CustomEnvironmentPluginManager.getInstance().getPropertyKeys());
        Map<String, Object> sourcePropertyMap = new HashMap<>();
        sourcePropertyMap.put("db.password.0", "nacos");
        assertNotNull(CustomEnvironmentPluginManager.getInstance().getCustomValues(sourcePropertyMap));
    }