Skip to content

Commit bef8f6d

Browse files
qinliujieJeff-Lv
authored andcommitted
[Feature] add AppendParametersComponent (#3583)
* feature:add AppendParametersComponent to dynamically add some parameters / check config * feature:add AppendParametersComponent to dynamically add some parameters / check config
1 parent 52c549e commit bef8f6d

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The ASF licenses this file to You under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package org.apache.dubbo.config;
18+
19+
import org.apache.dubbo.common.extension.SPI;
20+
21+
/**
22+
* Dynamically add some parameters / check config
23+
*/
24+
25+
@SPI
26+
public interface AppendParametersComponent {
27+
default void appendReferParameters(ReferenceConfig referenceConfig) {
28+
29+
}
30+
31+
default void appendExportParameters(ServiceConfig serviceConfig) {
32+
33+
}
34+
}

dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,13 @@ public void checkAndUpdateSubConfigs() {
214214
resolveFile();
215215
checkApplication();
216216
checkMetadataReport();
217+
appendParameters();
218+
}
219+
220+
private void appendParameters() {
221+
URL appendParametersUrl = URL.valueOf("appendParameters://");
222+
List<AppendParametersComponent> appendParametersComponents = ExtensionLoader.getExtensionLoader(AppendParametersComponent.class).getActivateExtension(appendParametersUrl, (String[]) null);
223+
appendParametersComponents.forEach(component -> component.appendReferParameters(this));
217224
}
218225

219226
public synchronized T get() {

dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,13 @@ public void checkAndUpdateSubConfigs() {
322322
}
323323
checkStubAndLocal(interfaceClass);
324324
checkMock(interfaceClass);
325+
appendParameters();
326+
}
327+
328+
private void appendParameters() {
329+
URL appendParametersUrl = URL.valueOf("appendParameters://");
330+
List<AppendParametersComponent> appendParametersComponents = ExtensionLoader.getExtensionLoader(AppendParametersComponent.class).getActivateExtension(appendParametersUrl, (String[]) null);
331+
appendParametersComponents.forEach(component -> component.appendExportParameters(this));
325332
}
326333

327334
public synchronized void export() {

0 commit comments

Comments
 (0)