This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 3.0-metadata-refactor
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0-metadata-refactor by this
push:
new 22e7816 fix metadata initialization
22e7816 is described below
commit 22e7816c493edc424beb1fa48ebbe58d9d14ee18
Author: ken.lj <[email protected]>
AuthorDate: Mon Nov 8 14:48:06 2021 +0800
fix metadata initialization
---
.../apache/dubbo/metadata/definition/TypeDefinitionBuilder.java | 9 ++++-----
.../apache/dubbo/metadata/definition/builder/TypeBuilder.java | 3 ++-
.../src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java | 5 +++++
.../org.apache.dubbo.metadata.definition.builder.TypeBuilder | 0
.../java/org/apache/dubbo/metadata/definition/MetadataTest.java | 7 +++++++
.../org.apache.dubbo.metadata.definition.builder.TypeBuilder | 0
.../test/java/org/apache/dubbo/metadata/MetadataInfoTest.java | 6 +++---
7 files changed, 21 insertions(+), 9 deletions(-)
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java
b/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java
index b2758e3..d3029b0 100755
---
a/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java
@@ -16,13 +16,13 @@
*/
package org.apache.dubbo.metadata.definition;
-import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.utils.ClassUtils;
import org.apache.dubbo.metadata.definition.builder.DefaultTypeBuilder;
import org.apache.dubbo.metadata.definition.builder.TypeBuilder;
import org.apache.dubbo.metadata.definition.model.TypeDefinition;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import java.lang.reflect.Type;
import java.util.ArrayList;
@@ -37,11 +37,10 @@ import java.util.Set;
*/
public class TypeDefinitionBuilder {
private static final Logger logger =
LoggerFactory.getLogger(TypeDefinitionBuilder.class);
- static final List<TypeBuilder> BUILDERS;
+ public static List<TypeBuilder> BUILDERS;
- static {
- ExtensionLoader<TypeBuilder> extensionLoader =
ExtensionLoader.getExtensionLoader(TypeBuilder.class);
- Set<TypeBuilder> tbs =
extensionLoader.getSupportedExtensionInstances();
+ public static void initBuilders(FrameworkModel model) {
+ Set<TypeBuilder> tbs =
model.getExtensionLoader(TypeBuilder.class).getSupportedExtensionInstances();
BUILDERS = new ArrayList<>(tbs);
}
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/builder/TypeBuilder.java
b/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/builder/TypeBuilder.java
index 050de3c..8a8f830 100755
---
a/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/builder/TypeBuilder.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/metadata/definition/builder/TypeBuilder.java
@@ -16,6 +16,7 @@
*/
package org.apache.dubbo.metadata.definition.builder;
+import org.apache.dubbo.common.extension.ExtensionScope;
import org.apache.dubbo.common.extension.SPI;
import org.apache.dubbo.common.lang.Prioritized;
import org.apache.dubbo.metadata.definition.model.TypeDefinition;
@@ -26,7 +27,7 @@ import java.util.Map;
/**
* 2015/1/27.
*/
-@SPI
+@SPI(scope = ExtensionScope.FRAMEWORK)
public interface TypeBuilder extends Prioritized {
/**
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java
index 0da272a..536b5be 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.resource.GlobalResourcesRepository;
import org.apache.dubbo.common.utils.Assert;
import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;
import java.util.ArrayList;
import java.util.Collections;
@@ -65,6 +66,7 @@ public class FrameworkModel extends ScopeModel {
public FrameworkModel() {
super(null, ExtensionScope.FRAMEWORK);
+
this.setInternalId(index.getAndIncrement()+"");
// register FrameworkModel instance early
synchronized (globalLock) {
@@ -80,6 +82,9 @@ public class FrameworkModel extends ScopeModel {
@Override
protected void initialize() {
super.initialize();
+
+ TypeDefinitionBuilder.initBuilders(this);
+
serviceRepository = new FrameworkServiceRepository(this);
ExtensionLoader<ScopeModelInitializer> initializerExtensionLoader =
this.getExtensionLoader(ScopeModelInitializer.class);
diff --git
a/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
b/dubbo-common/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
similarity index 100%
rename from
dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
rename to
dubbo-common/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
diff --git
a/dubbo-common/src/test/java/org/apache/dubbo/metadata/definition/MetadataTest.java
b/dubbo-common/src/test/java/org/apache/dubbo/metadata/definition/MetadataTest.java
index a75be44..ee59c62 100644
---
a/dubbo-common/src/test/java/org/apache/dubbo/metadata/definition/MetadataTest.java
+++
b/dubbo-common/src/test/java/org/apache/dubbo/metadata/definition/MetadataTest.java
@@ -23,9 +23,11 @@ import
org.apache.dubbo.metadata.definition.common.ResultWithRawCollections;
import org.apache.dubbo.metadata.definition.common.TestService;
import org.apache.dubbo.metadata.definition.model.ServiceDefinition;
import org.apache.dubbo.metadata.definition.model.TypeDefinition;
+import org.apache.dubbo.rpc.model.FrameworkModel;
import com.google.gson.Gson;
import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
/**
@@ -35,6 +37,11 @@ import org.junit.jupiter.api.Test;
*/
public class MetadataTest {
+ @BeforeAll
+ public static void setup() {
+ TypeDefinitionBuilder.initBuilders(FrameworkModel.defaultModel());
+ }
+
/**
*
*/
diff --git
a/dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
b/dubbo-common/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
similarity index 100%
rename from
dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
rename to
dubbo-common/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
diff --git
a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java
b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java
index 1f78062..4a8cc31 100644
---
a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java
+++
b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataInfoTest.java
@@ -127,14 +127,14 @@ public class MetadataInfoTest {
MetadataInfo metadataInfo = new MetadataInfo("demo");
// export normal url again
- metadataInfo.addService(new MetadataInfo.ServiceInfo(url));
+ metadataInfo.addService(url);
Gson gson = new Gson();
System.out.println(gson.toJson(metadataInfo));
MetadataInfo metadataInfo2 = new MetadataInfo("demo");
// export normal url again
- metadataInfo2.addService(new MetadataInfo.ServiceInfo(url));
- metadataInfo2.addService(new MetadataInfo.ServiceInfo(url2));
+ metadataInfo2.addService(url);
+ metadataInfo2.addService(url2);
System.out.println(gson.toJson(metadataInfo2));
}