diff --git a/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ApplicationConfiguration.java b/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ApplicationConfiguration.java index 3e7c952aebf8184f7416dd55211554dde45183fa..5984f32a05e58b1a7a7edacdecf0fa21a1efd7b9 100644 --- a/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ApplicationConfiguration.java +++ b/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ApplicationConfiguration.java @@ -28,10 +28,19 @@ public class ApplicationConfiguration { return modules.keySet().toArray(new String[0]); } + public ModuleConfiguration addModule(String moduleName) { + ModuleConfiguration newModule = new ModuleConfiguration(); + modules.put(moduleName, newModule); + return newModule; + } + public ModuleConfiguration getModuleConfiguration(String name) { return modules.get(name); } + /** + * The configurations about a certain module. + */ public class ModuleConfiguration { private HashMap providers = new HashMap<>(); @@ -40,6 +49,9 @@ public class ApplicationConfiguration { } } + /** + * The configuration about a certain provider of a module. + */ public class ProviderConfiguration { private Properties properties; } diff --git a/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/Module.java b/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/Module.java index cebc7b88345ad69c8da1495bdafe979a4ab3c531..fd0d18b5a8abec5960839d14732dbda1a5f1a322 100644 --- a/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/Module.java +++ b/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/Module.java @@ -18,7 +18,6 @@ package org.skywalking.apm.collector.modulization; -import java.lang.reflect.InvocationTargetException; import java.util.LinkedList; import java.util.List; import java.util.ServiceLoader; diff --git a/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ModuleProvider.java b/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ModuleProvider.java index abd5fecd6452d31eda7d56a03176d28809efd0aa..74bc182654e47f4b3d7558abc59f66fa64022980 100644 --- a/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ModuleProvider.java +++ b/apm-collector/apm-collector-modulization-core/src/main/java/org/skywalking/apm/collector/modulization/ModuleProvider.java @@ -76,6 +76,7 @@ public abstract class ModuleProvider { /** * Register a implementation for the service of this module provider. + * * @param serviceType * @param service */ @@ -83,6 +84,12 @@ public abstract class ModuleProvider { this.services.put(serviceType, service); } + /** + * Make sure all required services have been implemented. + * + * @param requiredServices must be implemented by the module. + * @throws ServiceNotProvidedException when exist unimplemented service. + */ void requiredCheck(Class[] requiredServices) throws ServiceNotProvidedException { if (requiredServices == null) return;