18
18
19
19
package org .apache .skywalking .oap .server .configuration .apollo ;
20
20
21
+ import java .util .Map ;
22
+ import java .util .concurrent .ConcurrentHashMap ;
23
+ import lombok .extern .slf4j .Slf4j ;
21
24
import org .apache .skywalking .oap .server .configuration .api .ConfigChangeWatcher ;
22
25
import org .apache .skywalking .oap .server .configuration .api .ConfigurationModule ;
23
26
import org .apache .skywalking .oap .server .configuration .api .DynamicConfigurationService ;
27
+ import org .apache .skywalking .oap .server .configuration .api .GroupConfigChangeWatcher ;
24
28
import org .apache .skywalking .oap .server .library .module .ModuleConfig ;
25
29
import org .apache .skywalking .oap .server .library .module .ModuleDefine ;
26
30
import org .apache .skywalking .oap .server .library .module .ModuleProvider ;
27
31
import org .apache .skywalking .oap .server .library .module .ModuleStartException ;
28
32
import org .apache .skywalking .oap .server .library .module .ServiceNotProvidedException ;
29
- import org .slf4j .Logger ;
30
- import org .slf4j .LoggerFactory ;
31
33
34
+ @ Slf4j
32
35
public class ApolloConfigurationTestProvider extends ModuleProvider {
33
- private static final Logger LOGGER = LoggerFactory .getLogger (ApolloConfigurationTestProvider .class );
34
-
35
36
ConfigChangeWatcher watcher ;
37
+ GroupConfigChangeWatcher groupWatcher ;
36
38
37
39
@ Override
38
40
public String name () {
@@ -57,7 +59,7 @@ public void prepare() throws ServiceNotProvidedException, ModuleStartException {
57
59
58
60
@ Override
59
61
public void notify (ConfigChangeWatcher .ConfigChangeEvent value ) {
60
- LOGGER .info ("ConfigChangeWatcher.ConfigChangeEvent: {}" , value );
62
+ log .info ("ConfigChangeWatcher.ConfigChangeEvent: {}" , value );
61
63
if (EventType .DELETE .equals (value .getEventType ())) {
62
64
testValue = null ;
63
65
} else {
@@ -70,18 +72,44 @@ public String value() {
70
72
return testValue ;
71
73
}
72
74
};
75
+
76
+ groupWatcher = new GroupConfigChangeWatcher (ApolloConfigurationTestModule .NAME , this , "testKeyGroup" ) {
77
+ private Map <String , String > config = new ConcurrentHashMap <>();
78
+
79
+ @ Override
80
+ public void notifyGroup (Map <String , ConfigChangeEvent > groupItems ) {
81
+ log .info ("GroupConfigChangeWatcher.ConfigChangeEvents: {}" , groupItems );
82
+ groupItems .forEach ((groupItemName , event ) -> {
83
+ if (EventType .DELETE .equals (event .getEventType ())) {
84
+ config .remove (groupItemName );
85
+ } else {
86
+ config .put (groupItemName , event .getNewValue ());
87
+ }
88
+ });
89
+ }
90
+
91
+ @ Override
92
+ public Map <String , String > groupItems () {
93
+ return config ;
94
+ }
95
+ };
73
96
}
74
97
75
98
@ Override
76
- public void start () throws ServiceNotProvidedException , ModuleStartException {
99
+ public void start () throws ServiceNotProvidedException {
77
100
getManager ().find (ConfigurationModule .NAME )
78
101
.provider ()
79
102
.getService (DynamicConfigurationService .class )
80
103
.registerConfigChangeWatcher (watcher );
104
+
105
+ getManager ().find (ConfigurationModule .NAME )
106
+ .provider ()
107
+ .getService (DynamicConfigurationService .class )
108
+ .registerConfigChangeWatcher (groupWatcher );
81
109
}
82
110
83
111
@ Override
84
- public void notifyAfterCompleted () throws ServiceNotProvidedException , ModuleStartException {
112
+ public void notifyAfterCompleted () throws ServiceNotProvidedException {
85
113
86
114
}
87
115
0 commit comments