diff --git a/common/extension/config_post_processor.go b/common/extension/config_post_processor.go
index 2f0e525ef757083dd690c80f75060c50e73fe095..db126b744d54562a7f45b59aec26ef6e950a23a8 100644
--- a/common/extension/config_post_processor.go
+++ b/common/extension/config_post_processor.go
@@ -17,25 +17,27 @@
package extension
-import "github.com/apache/dubbo-go/config"
+import (
+ "github.com/apache/dubbo-go/config/interfaces"
+)
var (
- processors = make(map[string]config.ConfigPostProcessor)
+ processors = make(map[string]interfaces.ConfigPostProcessor)
)
// SetConfigPostProcessor registers a ConfigPostProcessor with the given name.
-func SetConfigPostProcessor(name string, processor config.ConfigPostProcessor) {
+func SetConfigPostProcessor(name string, processor interfaces.ConfigPostProcessor) {
processors[name] = processor
}
// GetConfigPostProcessor finds a ConfigPostProcessor by name.
-func GetConfigPostProcessor(name string) config.ConfigPostProcessor {
+func GetConfigPostProcessor(name string) interfaces.ConfigPostProcessor {
return processors[name]
}
// GetConfigPostProcessors returns all registered instances of ConfigPostProcessor.
-func GetConfigPostProcessors() []config.ConfigPostProcessor {
- ret := make([]config.ConfigPostProcessor, 0, len(processors))
+func GetConfigPostProcessors() []interfaces.ConfigPostProcessor {
+ ret := make([]interfaces.ConfigPostProcessor, 0, len(processors))
for _, v := range processors {
ret = append(ret, v)
}
diff --git a/config/config_post_processor.go b/config/interfaces/config_post_processor.go
similarity index 79%
rename from config/config_post_processor.go
rename to config/interfaces/config_post_processor.go
index 994b737fcc8efff7085772849150a59f7e4763f0..e678d1cdb2641e55a3c0e526f9149455a36604b3 100644
--- a/config/config_post_processor.go
+++ b/config/interfaces/config_post_processor.go
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package config
+package interfaces
// ConfigPostProcessor is an extension to give users a chance to customize configs against ReferenceConfig and
// ServiceConfig during deployment time.
type ConfigPostProcessor interface {
- // PostProcessReferenceConfig customizes ReferenceConfig
- PostProcessReferenceConfig(rc *ReferenceConfig)
+ // PostProcessReferenceConfig customizes ReferenceConfig's params
+ PostProcessReferenceConfig(params *map[string]string)
- // PostProcessServiceConfig customizes ServiceConfig
- PostProcessServiceConfig(sc *ServiceConfig)
+ // PostProcessServiceConfig customizes ServiceConfig's params
+ PostProcessServiceConfig(params *map[string]string)
}
diff --git a/config/reference_config.go b/config/reference_config.go
index b92a62462442fb953a7b40e8cde0efaeb77e3692..e660890c398b7e012e24843781547b047d3b146e 100644
--- a/config/reference_config.go
+++ b/config/reference_config.go
@@ -254,6 +254,6 @@ func (c *ReferenceConfig) GenericLoad(id string) {
// postProcessConfig asks registered ConfigPostProcessor to post-process the current ReferenceConfig.
func (c *ReferenceConfig) postProcessConfig() {
for _, p := range extension.GetConfigPostProcessors() {
- p.PostProcessReferenceConfig(c)
+ p.PostProcessReferenceConfig(&c.Params)
}
}
diff --git a/config/service_config.go b/config/service_config.go
index 01f8c3a86ac659e1308b4364e871514098fafb24..ec798b1177da2f3838c25deb5b4b55777cc1a290 100644
--- a/config/service_config.go
+++ b/config/service_config.go
@@ -337,6 +337,6 @@ func (c *ServiceConfig) GetExportedUrls() []*common.URL {
// postProcessConfig asks registered ConfigPostProcessor to post-process the current ServiceConfig.
func (c *ServiceConfig) postProcessConfig() {
for _, p := range extension.GetConfigPostProcessors() {
- p.PostProcessServiceConfig(c)
+ p.PostProcessServiceConfig(&c.Params)
}
}