@@ -72,13 +72,7 @@ public boolean registerService(ServiceEndpoint serviceEndpoint) {
72
72
boolean success = serviceEndpoints .putIfAbsent (serviceEndpoint .id (), serviceEndpoint ) == null ;
73
73
if (success ) {
74
74
LOGGER .log (Level .DEBUG , "ServiceEndpoint registered: {0}" , serviceEndpoint );
75
- serviceEndpoint
76
- .serviceReferences ()
77
- .forEach (
78
- sr -> {
79
- populateServiceReferences (sr .qualifier (), sr );
80
- populateServiceReferences (sr .oldQualifier (), sr );
81
- });
75
+ serviceEndpoint .serviceReferences ().forEach (this ::populateServiceReferences );
82
76
}
83
77
return success ;
84
78
}
@@ -93,13 +87,9 @@ public ServiceEndpoint unregisterService(String endpointId) {
93
87
serviceReferencesByQualifier .values ().stream ()
94
88
.flatMap (Collection ::stream )
95
89
.filter (sr -> sr .endpointId ().equals (endpointId ))
96
- .collect ( Collectors . toList () );
90
+ .toList ();
97
91
98
- serviceReferencesOfEndpoint .forEach (
99
- sr -> {
100
- computeServiceReferences (sr .qualifier (), sr );
101
- computeServiceReferences (sr .oldQualifier (), sr );
102
- });
92
+ serviceReferencesOfEndpoint .forEach (this ::cleanServiceReferences );
103
93
}
104
94
return serviceEndpoint ;
105
95
}
@@ -158,13 +148,11 @@ public void registerService(ServiceInfo serviceInfo) {
158
148
serviceInfo .level ());
159
149
160
150
methodInvokers .put (methodInfo .qualifier (), methodInvoker );
161
- methodInvokers .put (methodInfo .oldQualifier (), methodInvoker );
162
151
}));
163
152
}
164
153
165
154
private void checkMethodInvokerDoesntExist (MethodInfo methodInfo ) {
166
- if (methodInvokers .containsKey (methodInfo .qualifier ())
167
- || methodInvokers .containsKey (methodInfo .oldQualifier ())) {
155
+ if (methodInvokers .containsKey (methodInfo .qualifier ())) {
168
156
LOGGER .log (Level .ERROR , "MethodInvoker already exists, methodInfo: {0}" , methodInfo );
169
157
throw new IllegalStateException ("MethodInvoker already exists" );
170
158
}
@@ -180,20 +168,20 @@ public List<ServiceInfo> listServices() {
180
168
return serviceInfos ;
181
169
}
182
170
183
- private void populateServiceReferences (String qualifier , ServiceReference serviceReference ) {
171
+ private void populateServiceReferences (ServiceReference sr ) {
184
172
serviceReferencesByQualifier
185
- .computeIfAbsent (qualifier , key -> new CopyOnWriteArrayList <>())
186
- .add (serviceReference );
173
+ .computeIfAbsent (sr . qualifier () , key -> new CopyOnWriteArrayList <>())
174
+ .add (sr );
187
175
}
188
176
189
- private void computeServiceReferences ( String qualifier , ServiceReference serviceReference ) {
177
+ private void cleanServiceReferences ( ServiceReference sr ) {
190
178
serviceReferencesByQualifier .compute (
191
- qualifier ,
179
+ sr . qualifier () ,
192
180
(key , list ) -> {
193
181
if (list == null || list .isEmpty ()) {
194
182
return null ;
195
183
}
196
- list .remove (serviceReference );
184
+ list .remove (sr );
197
185
return !list .isEmpty () ? list : null ;
198
186
});
199
187
}
0 commit comments