Skip to content

Commit

Permalink
Expose way to add config filter (#10236)
Browse files Browse the repository at this point in the history
* expose way to add config filter

* add @SInCE

* fix since time
  • Loading branch information
Daydreamer-ia authored Apr 6, 2023
1 parent 06a2ea7 commit 34cdb08
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
10 changes: 10 additions & 0 deletions api/src/main/java/com/alibaba/nacos/api/config/ConfigService.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package com.alibaba.nacos.api.config;

import com.alibaba.nacos.api.config.filter.IConfigFilter;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;

Expand Down Expand Up @@ -143,6 +144,15 @@ boolean publishConfigCas(String dataId, String group, String content, String cas
* @return whether health
*/
String getServerStatus();

/**
* add config filter.
* It is recommended to use {@link com.alibaba.nacos.api.config.filter.AbstractConfigFilter} to expand the filter.
*
* @param configFilter filter
* @since 2.3.0
*/
void addConfigFilter(IConfigFilter configFilter);

/**
* Shutdown the resource service.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.alibaba.nacos.api.common.Constants;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.ConfigType;
import com.alibaba.nacos.api.config.filter.IConfigFilter;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.client.config.filter.impl.ConfigFilterChainManager;
Expand Down Expand Up @@ -247,7 +248,12 @@ public String getServerStatus() {
return DOWN;
}
}


@Override
public void addConfigFilter(IConfigFilter configFilter) {
configFilterChainManager.addFilter(configFilter);
}

@Override
public void shutDown() throws NacosException {
worker.shutdown();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,13 @@
public class ConfigFilterChainManager implements IConfigFilterChain {

private final List<IConfigFilter> filters = new ArrayList<>();

private final Properties initProperty;

public ConfigFilterChainManager(Properties properties) {
this.initProperty = properties;
ServiceLoader<IConfigFilter> configFilters = ServiceLoader.load(IConfigFilter.class);
for (IConfigFilter configFilter : configFilters) {
configFilter.init(properties);
addFilter(configFilter);
}
}
Expand All @@ -51,6 +53,8 @@ public ConfigFilterChainManager(Properties properties) {
* @return this
*/
public synchronized ConfigFilterChainManager addFilter(IConfigFilter filter) {
// init
filter.init(this.initProperty);
// ordered by order value
int i = 0;
while (i < this.filters.size()) {
Expand Down

0 comments on commit 34cdb08

Please sign in to comment.