From 479b421ae2a1d30c6a04a6c65e8dfcd89305611c Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Sun, 10 Sep 2017 14:15:15 +0800 Subject: [PATCH] no message --- .../agentjvm/AgentJVMModuleDefine.java | 35 ++--------- .../agentjvm/AgentJVMModuleInstaller.java | 34 +++------- .../AgentRegisterModuleDefine.java | 29 +-------- .../AgentRegisterModuleInstaller.java | 34 +++------- .../agentserver/AgentServerModuleDefine.java | 29 +-------- .../AgentServerModuleInstaller.java | 35 +++-------- .../agentstream/AgentStreamModuleDefine.java | 33 +--------- .../AgentStreamModuleInstaller.java | 38 ++++------- .../apm/collector/boot/CollectorStarter.java | 9 +-- .../cluster/ClusterModuleDefine.java | 29 ++++----- .../cluster/ClusterModuleInstaller.java | 24 +++---- .../zookeeper/ClusterZKDataMonitor.java | 38 +++++++---- .../collector/core/client/DataMonitor.java | 3 +- .../framework/CollectorContextHelper.java | 12 +++- .../apm/collector/core/framework/Define.java | 7 --- .../core/module/ModuleConfigContainer.java | 26 ++++++++ .../collector/core/module/ModuleDefine.java | 6 ++ .../core/module/ModuleInstaller.java | 17 ++++- .../core/module/MultipleModuleInstaller.java | 55 ++++++++++++++++ .../core/module/SingleModuleInstaller.java | 63 +++++++++++++++---- .../collector/core/util/CollectionUtils.java | 4 ++ .../collector/queue/QueueModuleDefine.java | 8 ++- .../collector/queue/QueueModuleInstaller.java | 25 ++++---- .../QueueDataCarrierModuleDefine.java | 7 +-- .../disruptor/QueueDisruptorModuleDefine.java | 7 +-- .../storage/StorageModuleDefine.java | 19 +++--- .../storage/StorageModuleInstaller.java | 23 ++----- .../collector/stream/StreamModuleDefine.java | 33 +--------- .../stream/StreamModuleInstaller.java | 34 +++++----- .../stream/grpc/StreamGRPCModuleDefine.java | 3 +- .../apm/collector/ui/UIModuleDefine.java | 33 +--------- .../apm/collector/ui/UIModuleInstaller.java | 34 +++------- 32 files changed, 335 insertions(+), 451 deletions(-) create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigContainer.java create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/MultipleModuleInstaller.java diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleDefine.java index 29826dd6a..aca1bbaae 100644 --- a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleDefine.java @@ -1,51 +1,24 @@ package org.skywalking.apm.collector.agentjvm; -import java.util.List; -import java.util.Map; -import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; import org.skywalking.apm.collector.core.client.Client; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.client.DataMonitor; import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; -import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; -import org.skywalking.apm.collector.core.config.ConfigParseException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerException; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public abstract class AgentJVMModuleDefine extends ModuleDefine implements ClusterDataListenerDefine { - private final Logger logger = LoggerFactory.getLogger(AgentJVMModuleDefine.class); - - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { - try { - configParser().parse(config); - Server server = server(); - serverHolder.holdServer(server, handlerList()); - - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); - } catch (ConfigParseException | ServerException e) { - throw new AgentJVMModuleException(e.getMessage(), e); - } - } - @Override protected final Client createClient(DataMonitor dataMonitor) { throw new UnsupportedOperationException(""); } + @Override protected void initializeOtherContext() { + + } + @Override public final boolean defaultModule() { return true; } - - public abstract List handlerList(); } diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleInstaller.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleInstaller.java index defe8786e..5eac7dc7e 100644 --- a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleInstaller.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/AgentJVMModuleInstaller.java @@ -1,36 +1,18 @@ package org.skywalking.apm.collector.agentjvm; -import java.util.Iterator; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.module.ModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.skywalking.apm.collector.core.util.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.skywalking.apm.collector.core.framework.Context; +import org.skywalking.apm.collector.core.module.MultipleModuleInstaller; /** * @author pengys5 */ -public class AgentJVMModuleInstaller implements ModuleInstaller { +public class AgentJVMModuleInstaller extends MultipleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(AgentJVMModuleInstaller.class); - - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning agent jvm module install"); - - AgentJVMModuleContext context = new AgentJVMModuleContext(AgentJVMModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return AgentJVMModuleGroupDefine.GROUP_NAME; + } - Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); - while (moduleDefineEntry.hasNext()) { - ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); - logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); - } + @Override public Context moduleContext() { + return new AgentJVMModuleContext(groupName()); } } diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleDefine.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleDefine.java index 976e78472..166721fb0 100644 --- a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleDefine.java +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleDefine.java @@ -1,42 +1,17 @@ package org.skywalking.apm.collector.agentregister; -import java.util.List; -import java.util.Map; -import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; import org.skywalking.apm.collector.core.client.Client; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.client.DataMonitor; import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; -import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; -import org.skywalking.apm.collector.core.config.ConfigParseException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerException; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public abstract class AgentRegisterModuleDefine extends ModuleDefine implements ClusterDataListenerDefine { - private final Logger logger = LoggerFactory.getLogger(AgentRegisterModuleDefine.class); + @Override protected void initializeOtherContext() { - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { - try { - configParser().parse(config); - Server server = server(); - serverHolder.holdServer(server, handlerList()); - - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); - } catch (ConfigParseException | ServerException e) { - throw new AgentRegisterModuleException(e.getMessage(), e); - } } @Override protected final Client createClient(DataMonitor dataMonitor) { @@ -46,6 +21,4 @@ public abstract class AgentRegisterModuleDefine extends ModuleDefine implements @Override public final boolean defaultModule() { return true; } - - public abstract List handlerList(); } diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleInstaller.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleInstaller.java index 0bf2218d1..5567fe9ba 100644 --- a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleInstaller.java +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleInstaller.java @@ -1,36 +1,18 @@ package org.skywalking.apm.collector.agentregister; -import java.util.Iterator; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.module.ModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.skywalking.apm.collector.core.util.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.skywalking.apm.collector.core.framework.Context; +import org.skywalking.apm.collector.core.module.MultipleModuleInstaller; /** * @author pengys5 */ -public class AgentRegisterModuleInstaller implements ModuleInstaller { +public class AgentRegisterModuleInstaller extends MultipleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(AgentRegisterModuleInstaller.class); - - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning agent register module install"); - - AgentRegisterModuleContext context = new AgentRegisterModuleContext(AgentRegisterModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return AgentRegisterModuleGroupDefine.GROUP_NAME; + } - Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); - while (moduleDefineEntry.hasNext()) { - ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); - logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); - } + @Override public Context moduleContext() { + return new AgentRegisterModuleContext(groupName()); } } diff --git a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java index e7e7d829a..84b75c0fc 100644 --- a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java +++ b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java @@ -1,47 +1,20 @@ package org.skywalking.apm.collector.agentserver; -import java.util.List; -import java.util.Map; -import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; import org.skywalking.apm.collector.core.client.Client; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.client.DataMonitor; import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; -import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; -import org.skywalking.apm.collector.core.config.ConfigParseException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerException; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public abstract class AgentServerModuleDefine extends ModuleDefine implements ClusterDataListenerDefine { - private final Logger logger = LoggerFactory.getLogger(AgentServerModuleDefine.class); + @Override protected void initializeOtherContext() { - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { - try { - configParser().parse(config); - Server server = server(); - serverHolder.holdServer(server, handlerList()); - - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); - } catch (ConfigParseException | ServerException e) { - throw new AgentServerModuleException(e.getMessage(), e); - } } @Override protected final Client createClient(DataMonitor dataMonitor) { throw new UnsupportedOperationException(""); } - - public abstract List handlerList(); } diff --git a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java index c63216104..351a8655f 100644 --- a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java +++ b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java @@ -1,37 +1,18 @@ package org.skywalking.apm.collector.agentserver; -import java.util.Iterator; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.module.ModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.skywalking.apm.collector.core.util.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.skywalking.apm.collector.core.framework.Context; +import org.skywalking.apm.collector.core.module.MultipleModuleInstaller; /** * @author pengys5 */ -public class AgentServerModuleInstaller implements ModuleInstaller { +public class AgentServerModuleInstaller extends MultipleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(AgentServerModuleInstaller.class); - - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning agent server module install"); - - AgentServerModuleContext context = new AgentServerModuleContext(AgentServerModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return AgentServerModuleGroupDefine.GROUP_NAME; + } - logger.info("could not configure agent server module, use the default"); - Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); - while (moduleDefineEntry.hasNext()) { - ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); - logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); - } + @Override public Context moduleContext() { + return new AgentServerModuleContext(groupName()); } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java index 153508827..762e6c525 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java @@ -1,44 +1,15 @@ package org.skywalking.apm.collector.agentstream; -import java.util.List; -import java.util.Map; -import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; import org.skywalking.apm.collector.core.client.Client; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.client.DataMonitor; import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; -import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; -import org.skywalking.apm.collector.core.config.ConfigParseException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerException; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public abstract class AgentStreamModuleDefine extends ModuleDefine implements ClusterDataListenerDefine { - private final Logger logger = LoggerFactory.getLogger(AgentStreamModuleDefine.class); - - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { - try { - configParser().parse(config); - Server server = server(); - serverHolder.holdServer(server, handlerList()); - - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); - } catch (ConfigParseException | ServerException e) { - throw new AgentStreamModuleException(e.getMessage(), e); - } - } - @Override protected final Client createClient(DataMonitor dataMonitor) { throw new UnsupportedOperationException(""); } @@ -47,5 +18,7 @@ public abstract class AgentStreamModuleDefine extends ModuleDefine implements Cl return true; } - public abstract List handlerList(); + @Override protected void initializeOtherContext() { + + } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java index bf5227d48..073aa0c78 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java @@ -1,39 +1,27 @@ package org.skywalking.apm.collector.agentstream; -import java.util.Iterator; -import java.util.Map; import org.skywalking.apm.collector.agentstream.worker.storage.PersistenceTimer; -import org.skywalking.apm.collector.core.client.ClientException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.core.config.ConfigException; +import org.skywalking.apm.collector.core.framework.Context; import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.module.ModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.skywalking.apm.collector.core.util.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.skywalking.apm.collector.core.module.MultipleModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerException; /** * @author pengys5 */ -public class AgentStreamModuleInstaller implements ModuleInstaller { +public class AgentStreamModuleInstaller extends MultipleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(AgentStreamModuleInstaller.class); - - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning agent stream module install"); - - AgentStreamModuleContext context = new AgentStreamModuleContext(AgentStreamModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return AgentStreamModuleGroupDefine.GROUP_NAME; + } - Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); - while (moduleDefineEntry.hasNext()) { - ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); - logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); - } + @Override public Context moduleContext() { + return new AgentStreamModuleContext(groupName()); + } + @Override public void install() throws DefineException, ConfigException, ServerException { + super.install(); new PersistenceTimer().start(); } } diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java index 74d041c27..5e1752bcb 100644 --- a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java +++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java @@ -1,7 +1,6 @@ package org.skywalking.apm.collector.boot; import java.util.Map; -import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.config.ConfigException; import org.skywalking.apm.collector.core.framework.DefineException; @@ -34,11 +33,13 @@ public class CollectorStarter implements Starter { Map> moduleDefineMap = defineLoader.load(); ServerHolder serverHolder = new ServerHolder(); - moduleGroupDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME).moduleInstaller().install(configuration.get(ClusterModuleGroupDefine.GROUP_NAME), moduleDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME), serverHolder); - moduleGroupDefineMap.remove(ClusterModuleGroupDefine.GROUP_NAME); +// moduleGroupDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME).moduleInstaller().install(configuration.get(ClusterModuleGroupDefine.GROUP_NAME), moduleDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME), serverHolder); +// moduleGroupDefineMap.remove(ClusterModuleGroupDefine.GROUP_NAME); for (ModuleGroupDefine moduleGroupDefine : moduleGroupDefineMap.values()) { - moduleGroupDefine.moduleInstaller().install(configuration.get(moduleGroupDefine.name()), moduleDefineMap.get(moduleGroupDefine.name()), serverHolder); + moduleGroupDefine.moduleInstaller().injectConfiguration(configuration.get(moduleGroupDefine.name()), moduleDefineMap.get(moduleGroupDefine.name())); + moduleGroupDefine.moduleInstaller().injectServerHolder(serverHolder); + moduleGroupDefine.moduleInstaller().install(); } serverHolder.getServers().forEach(server -> { diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java index 900cf9b3d..dc1880881 100644 --- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java +++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java @@ -1,18 +1,16 @@ package org.skywalking.apm.collector.cluster; -import java.util.Map; +import java.util.List; import org.skywalking.apm.collector.core.client.Client; import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.client.DataMonitor; -import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; -import org.skywalking.apm.collector.core.cluster.ClusterModuleException; import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationReader; -import org.skywalking.apm.collector.core.config.ConfigParseException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.core.framework.Handler; +import org.skywalking.apm.collector.core.framework.UnexpectedException; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleRegistration; import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerHolder; /** * @author pengys5 @@ -22,22 +20,20 @@ public abstract class ClusterModuleDefine extends ModuleDefine { public static final String BASE_CATALOG = "skywalking"; private Client client; + private DataMonitor dataMonitor; - @Override public final void initialize(Map config, ServerHolder serverHolder) throws ClusterModuleException { + @Override protected void initializeOtherContext() { try { - configParser().parse(config); - - DataMonitor dataMonitor = dataMonitor(); + dataMonitor = dataMonitor(); client = createClient(dataMonitor); client.initialize(); dataMonitor.setClient(client); - ClusterModuleRegistrationReader reader = registrationReader(dataMonitor); - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(group())).setDataMonitor(dataMonitor); - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(group())).setReader(reader); - } catch (ConfigParseException | ClientException e) { - throw new ClusterModuleException(e.getMessage(), e); + CollectorContextHelper.INSTANCE.getClusterModuleContext().setDataMonitor(dataMonitor); + CollectorContextHelper.INSTANCE.getClusterModuleContext().setReader(reader); + } catch (ClientException e) { + throw new UnexpectedException(e.getMessage()); } } @@ -49,6 +45,10 @@ public abstract class ClusterModuleDefine extends ModuleDefine { throw new UnsupportedOperationException(""); } + @Override public final List handlerList() { + throw new UnsupportedOperationException(""); + } + @Override protected final ModuleRegistration registration() { throw new UnsupportedOperationException("Cluster module do not need module registration."); } @@ -56,4 +56,5 @@ public abstract class ClusterModuleDefine extends ModuleDefine { public abstract DataMonitor dataMonitor(); public abstract ClusterModuleRegistrationReader registrationReader(DataMonitor dataMonitor); + } diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java index f8992796c..e7af136f1 100644 --- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java +++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java @@ -1,30 +1,22 @@ package org.skywalking.apm.collector.cluster; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; +import org.skywalking.apm.collector.core.framework.Context; import org.skywalking.apm.collector.core.module.SingleModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public class ClusterModuleInstaller extends SingleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(ClusterModuleInstaller.class); - - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning cluster module install"); - - ClusterModuleContext context = new ClusterModuleContext(ClusterModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return ClusterModuleGroupDefine.GROUP_NAME; + } - installSingle(moduleConfig, moduleDefineMap, serverHolder); + @Override public Context moduleContext() { + ClusterModuleContext clusterModuleContext = new ClusterModuleContext(ClusterModuleGroupDefine.GROUP_NAME); + CollectorContextHelper.INSTANCE.putClusterContext(clusterModuleContext); + return clusterModuleContext; } } diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java index da6d99e11..0262005e2 100644 --- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java +++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java @@ -1,5 +1,6 @@ package org.skywalking.apm.collector.cluster.zookeeper; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -12,6 +13,7 @@ import org.skywalking.apm.collector.client.zookeeper.ZookeeperClient; import org.skywalking.apm.collector.client.zookeeper.ZookeeperClientException; import org.skywalking.apm.collector.client.zookeeper.util.PathUtils; import org.skywalking.apm.collector.cluster.ClusterNodeExistException; +import org.skywalking.apm.collector.core.CollectorException; import org.skywalking.apm.collector.core.client.Client; import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.client.DataMonitor; @@ -31,9 +33,11 @@ public class ClusterZKDataMonitor implements DataMonitor, Watcher { private ZookeeperClient client; private Map listeners; + private Map registrations; public ClusterZKDataMonitor() { listeners = new LinkedHashMap<>(); + registrations = new LinkedHashMap<>(); } @Override public void process(WatchedEvent event) { @@ -65,24 +69,32 @@ public class ClusterZKDataMonitor implements DataMonitor, Watcher { this.client = (ZookeeperClient)client; } + @Override public void start() throws CollectorException { + Iterator> entryIterator = registrations.entrySet().iterator(); + while (entryIterator.hasNext()) { + Map.Entry next = entryIterator.next(); + createPath(next.getKey()); + + ModuleRegistration.Value value = next.getValue().buildValue(); + String contextPath = value.getContextPath() == null ? "" : value.getContextPath(); + + client.getChildren(next.getKey(), true); + String serverPath = next.getKey() + "/" + value.getHostPort(); + + if (client.exists(serverPath, false) == null) { + setData(serverPath, contextPath); + } else { + throw new ClusterNodeExistException("current address: " + value.getHostPort() + " has been registered, check the host and port configuration or wait a moment."); + } + } + } + @Override public void addListener(ClusterDataListener listener, ModuleRegistration registration) throws ClientException { String path = PathUtils.convertKey2Path(listener.path()); logger.info("listener path: {}", path); listeners.put(path, listener); - createPath(path); - - ModuleRegistration.Value value = registration.buildValue(); - String contextPath = value.getContextPath() == null ? "" : value.getContextPath(); - - client.getChildren(path, true); - String serverPath = path + "/" + value.getHostPort(); - - if (client.exists(serverPath, false) == null) { - setData(serverPath, contextPath); - } else { - throw new ClusterNodeExistException("current address: " + value.getHostPort() + " has been registered, check the host and port configuration or wait a moment."); - } + registrations.put(path, registration); } @Override public ClusterDataListener getListener(String path) { diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/DataMonitor.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/DataMonitor.java index c5e8d537d..c8b1a5df0 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/DataMonitor.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/DataMonitor.java @@ -1,12 +1,13 @@ package org.skywalking.apm.collector.core.client; import org.skywalking.apm.collector.core.cluster.ClusterDataListener; +import org.skywalking.apm.collector.core.framework.Starter; import org.skywalking.apm.collector.core.module.ModuleRegistration; /** * @author pengys5 */ -public interface DataMonitor { +public interface DataMonitor extends Starter{ void setClient(Client client); void addListener(ClusterDataListener listener, ModuleRegistration registration) throws ClientException; diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java index b0d6e96cf..c2e4891ca 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java @@ -2,6 +2,7 @@ package org.skywalking.apm.collector.core.framework; import java.util.LinkedHashMap; import java.util.Map; +import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; /** * @author pengys5 @@ -9,12 +10,17 @@ import java.util.Map; public enum CollectorContextHelper { INSTANCE; - private Map contexts = new LinkedHashMap(); + private ClusterModuleContext clusterModuleContext; + private Map contexts = new LinkedHashMap<>(); public Context getContext(String moduleGroupName) { return contexts.get(moduleGroupName); } + public ClusterModuleContext getClusterModuleContext() { + return this.clusterModuleContext; + } + public void putContext(Context context) { if (contexts.containsKey(context.getGroupName())) { throw new UnsupportedOperationException("This module context was put, do not allow put a new one"); @@ -22,4 +28,8 @@ public enum CollectorContextHelper { contexts.put(context.getGroupName(), context); } } + + public void putClusterContext(ClusterModuleContext clusterModuleContext) { + this.clusterModuleContext = clusterModuleContext; + } } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java index 69e97e294..21c3b042e 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java @@ -1,15 +1,8 @@ package org.skywalking.apm.collector.core.framework; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; -import org.skywalking.apm.collector.core.server.ServerHolder; - /** * @author pengys5 */ public interface Define { - - void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException; - String name(); } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigContainer.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigContainer.java new file mode 100644 index 000000000..8c416f1d4 --- /dev/null +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigContainer.java @@ -0,0 +1,26 @@ +package org.skywalking.apm.collector.core.module; + +import java.util.Map; + +/** + * @author pengys5 + */ +public abstract class ModuleConfigContainer implements ModuleInstaller { + + private Map moduleConfig; + private Map moduleDefineMap; + + @Override + public final void injectConfiguration(Map moduleConfig, Map moduleDefineMap) { + this.moduleConfig = moduleConfig; + this.moduleDefineMap = moduleDefineMap; + } + + public final Map getModuleConfig() { + return moduleConfig; + } + + public final Map getModuleDefineMap() { + return moduleDefineMap; + } +} diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefine.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefine.java index 49cc7704a..f06583209 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefine.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefine.java @@ -1,8 +1,10 @@ package org.skywalking.apm.collector.core.module; +import java.util.List; import org.skywalking.apm.collector.core.client.Client; import org.skywalking.apm.collector.core.client.DataMonitor; import org.skywalking.apm.collector.core.framework.Define; +import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.server.Server; /** @@ -20,5 +22,9 @@ public abstract class ModuleDefine implements Define { protected abstract Server server(); + public abstract List handlerList(); + protected abstract ModuleRegistration registration(); + + protected abstract void initializeOtherContext(); } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java index 2ec52b90b..563a30b00 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java @@ -2,13 +2,26 @@ package org.skywalking.apm.collector.core.module; import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; +import org.skywalking.apm.collector.core.config.ConfigException; +import org.skywalking.apm.collector.core.framework.Context; import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.server.ServerException; import org.skywalking.apm.collector.core.server.ServerHolder; /** * @author pengys5 */ public interface ModuleInstaller { - void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException; + + void injectServerHolder(ServerHolder serverHolder); + + String groupName(); + + Context moduleContext(); + + void injectConfiguration(Map moduleConfig, Map moduleDefineMap); + + void preInstall() throws DefineException, ConfigException, ServerException; + + void install() throws ClientException, DefineException, ConfigException, ServerException; } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/MultipleModuleInstaller.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/MultipleModuleInstaller.java new file mode 100644 index 000000000..cca15bc04 --- /dev/null +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/MultipleModuleInstaller.java @@ -0,0 +1,55 @@ +package org.skywalking.apm.collector.core.module; + +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import org.skywalking.apm.collector.core.config.ConfigException; +import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.server.ServerException; +import org.skywalking.apm.collector.core.server.ServerHolder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author pengys5 + */ +public abstract class MultipleModuleInstaller extends ModuleConfigContainer { + + private final Logger logger = LoggerFactory.getLogger(MultipleModuleInstaller.class); + + public MultipleModuleInstaller() { + moduleDefines = new LinkedList<>(); + } + + private List moduleDefines; + private ServerHolder serverHolder; + + @Override public final void injectServerHolder(ServerHolder serverHolder) { + this.serverHolder = serverHolder; + } + + @Override public final void preInstall() throws DefineException, ConfigException, ServerException { + Map moduleConfig = getModuleConfig(); + Map moduleDefineMap = getModuleDefineMap(); + + Iterator> moduleDefineIterator = moduleDefineMap.entrySet().iterator(); + while (moduleDefineIterator.hasNext()) { + Map.Entry moduleDefineEntry = moduleDefineIterator.next(); + logger.info("module {} initialize", moduleDefineEntry.getKey()); + moduleDefineEntry.getValue().configParser().parse(moduleConfig.get(moduleDefineEntry.getKey())); + moduleDefines.add(moduleDefineEntry.getValue()); + serverHolder.holdServer(moduleDefineEntry.getValue().server(), moduleDefineEntry.getValue().handlerList()); + } + } + + @Override public void install() throws DefineException, ConfigException, ServerException { + preInstall(); + + CollectorContextHelper.INSTANCE.putContext(moduleContext()); + moduleDefines.forEach(moduleDefine -> { + moduleDefine.initializeOtherContext(); + }); + } +} diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/SingleModuleInstaller.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/SingleModuleInstaller.java index 247282402..9ee19d3fe 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/SingleModuleInstaller.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/SingleModuleInstaller.java @@ -3,7 +3,12 @@ package org.skywalking.apm.collector.core.module; import java.util.Iterator; import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; +import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; +import org.skywalking.apm.collector.core.cluster.ClusterModuleException; +import org.skywalking.apm.collector.core.config.ConfigException; +import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.server.ServerException; import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.core.util.CollectionUtils; import org.slf4j.Logger; @@ -12,28 +17,60 @@ import org.slf4j.LoggerFactory; /** * @author pengys5 */ -public abstract class SingleModuleInstaller implements ModuleInstaller { +public abstract class SingleModuleInstaller extends ModuleConfigContainer { private final Logger logger = LoggerFactory.getLogger(SingleModuleInstaller.class); - protected void installSingle(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - ModuleDefine moduleDefine = null; - if (CollectionUtils.isEmpty(moduleConfig)) { + private ModuleDefine moduleDefine; + private ServerHolder serverHolder; + + @Override public final void injectServerHolder(ServerHolder serverHolder) { + this.serverHolder = serverHolder; + } + + @Override public final void preInstall() throws DefineException, ConfigException, ServerException { + Map moduleConfig = getModuleConfig(); + Map moduleDefineMap = getModuleDefineMap(); + if (CollectionUtils.isNotEmpty(moduleConfig)) { + if (moduleConfig.size() > 1) { + throw new ClusterModuleException("single module, but configure multiple modules"); + } + + Map.Entry configEntry = moduleConfig.entrySet().iterator().next(); + if (moduleDefineMap.containsKey(configEntry.getKey())) { + moduleDefine = moduleDefineMap.get(configEntry.getKey()); + moduleDefine.configParser().parse(configEntry.getValue()); + } else { + throw new ClusterModuleException("module name incorrect, please check the module name in application.yml"); + } + } else { logger.info("could not configure module, use the default"); Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); + + boolean hasDefaultModule = false; while (moduleDefineEntry.hasNext()) { - moduleDefine = moduleDefineEntry.next().getValue(); - if (moduleDefine.defaultModule()) { + if (moduleDefineEntry.next().getValue().defaultModule()) { logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize(null, serverHolder); - break; + if (hasDefaultModule) { + throw new ClusterModuleException("single module, but configure multiple default module"); + } + moduleDefine = moduleDefineEntry.next().getValue(); + moduleDefine.configParser().parse(null); + hasDefaultModule = true; } } - } else { - Map.Entry configEntry = moduleConfig.entrySet().iterator().next(); - moduleDefine = moduleDefineMap.get(configEntry.getKey()); - moduleDefine.initialize(configEntry.getValue(), serverHolder); + } + serverHolder.holdServer(moduleDefine.server(), moduleDefine.handlerList()); + } + + @Override public void install() throws ClientException, DefineException, ConfigException, ServerException { + preInstall(); + moduleDefine.initializeOtherContext(); + + CollectorContextHelper.INSTANCE.putContext(moduleContext()); + if (moduleDefine instanceof ClusterDataListenerDefine) { + ClusterDataListenerDefine listenerDefine = (ClusterDataListenerDefine)moduleDefine; + CollectorContextHelper.INSTANCE.getClusterModuleContext().getDataMonitor().addListener(listenerDefine.listener(), moduleDefine.registration()); } } } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/CollectionUtils.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/CollectionUtils.java index 3566341b3..e7626c24e 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/CollectionUtils.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/CollectionUtils.java @@ -20,6 +20,10 @@ public class CollectionUtils { return !isEmpty(list); } + public static boolean isNotEmpty(Map map) { + return !isEmpty(map); + } + public static boolean isNotEmpty(T[] array) { return array != null && array.length > 0; } diff --git a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleDefine.java b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleDefine.java index 88bbae0c7..3b94c44f0 100644 --- a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleDefine.java +++ b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleDefine.java @@ -1,7 +1,9 @@ package org.skywalking.apm.collector.queue; +import java.util.List; import org.skywalking.apm.collector.core.client.Client; import org.skywalking.apm.collector.core.client.DataMonitor; +import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleConfigParser; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleRegistration; @@ -15,7 +17,7 @@ public abstract class QueueModuleDefine extends ModuleDefine { throw new UnsupportedOperationException(""); } - @Override protected Client createClient(DataMonitor dataMonitor) { + @Override protected final Client createClient(DataMonitor dataMonitor) { throw new UnsupportedOperationException(""); } @@ -26,4 +28,8 @@ public abstract class QueueModuleDefine extends ModuleDefine { @Override protected final Server server() { throw new UnsupportedOperationException(""); } + + @Override public final List handlerList() { + throw new UnsupportedOperationException(""); + } } diff --git a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java index b0ed3238a..1ed4c7996 100644 --- a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java +++ b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java @@ -1,28 +1,29 @@ package org.skywalking.apm.collector.queue; -import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; +import org.skywalking.apm.collector.core.config.ConfigException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.core.framework.Context; import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.SingleModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.skywalking.apm.collector.core.server.ServerException; +import org.skywalking.apm.collector.queue.datacarrier.DataCarrierQueueCreator; /** * @author pengys5 */ public class QueueModuleInstaller extends SingleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(QueueModuleInstaller.class); + @Override public String groupName() { + return QueueModuleGroupDefine.GROUP_NAME; + } - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning queue module install"); - QueueModuleContext context = new QueueModuleContext(QueueModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public Context moduleContext() { + return new QueueModuleContext(groupName()); + } - installSingle(moduleConfig, moduleDefineMap, serverHolder); + @Override public void install() throws ClientException, DefineException, ConfigException, ServerException { + super.install(); + ((QueueModuleContext)CollectorContextHelper.INSTANCE.getContext(groupName())).setQueueCreator(new DataCarrierQueueCreator()); } } diff --git a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java index af5db748a..12cc17463 100644 --- a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java +++ b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java @@ -1,10 +1,6 @@ package org.skywalking.apm.collector.queue.datacarrier; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.queue.QueueModuleContext; import org.skywalking.apm.collector.queue.QueueModuleDefine; import org.skywalking.apm.collector.queue.QueueModuleGroupDefine; @@ -26,8 +22,7 @@ public class QueueDataCarrierModuleDefine extends QueueModuleDefine { return false; } - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { + @Override protected void initializeOtherContext() { ((QueueModuleContext)CollectorContextHelper.INSTANCE.getContext(group())).setQueueCreator(new DataCarrierQueueCreator()); } } diff --git a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java index d74cb2dee..4eeaf0de8 100644 --- a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java +++ b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java @@ -1,10 +1,6 @@ package org.skywalking.apm.collector.queue.disruptor; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.queue.QueueModuleContext; import org.skywalking.apm.collector.queue.QueueModuleDefine; import org.skywalking.apm.collector.queue.QueueModuleGroupDefine; @@ -26,8 +22,7 @@ public class QueueDisruptorModuleDefine extends QueueModuleDefine { return true; } - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { + @Override protected void initializeOtherContext() { ((QueueModuleContext)CollectorContextHelper.INSTANCE.getContext(group())).setQueueCreator(new DisruptorQueueCreator()); } } diff --git a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleDefine.java b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleDefine.java index 57ccb77e9..c088f8aa3 100644 --- a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleDefine.java +++ b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleDefine.java @@ -1,17 +1,17 @@ package org.skywalking.apm.collector.storage; -import java.util.Map; +import java.util.List; import org.skywalking.apm.collector.core.client.Client; import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.cluster.ClusterDataListener; import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; -import org.skywalking.apm.collector.core.config.ConfigParseException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.framework.Handler; +import org.skywalking.apm.collector.core.framework.UnexpectedException; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleRegistration; import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.core.storage.StorageException; import org.skywalking.apm.collector.core.storage.StorageInstaller; import org.slf4j.Logger; @@ -24,11 +24,8 @@ public abstract class StorageModuleDefine extends ModuleDefine implements Cluste private final Logger logger = LoggerFactory.getLogger(StorageModuleDefine.class); - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { + @Override protected void initializeOtherContext() { try { - configParser().parse(config); - StorageModuleContext context = (StorageModuleContext)CollectorContextHelper.INSTANCE.getContext(StorageModuleGroupDefine.GROUP_NAME); Client client = createClient(null); client.initialize(); @@ -36,11 +33,15 @@ public abstract class StorageModuleDefine extends ModuleDefine implements Cluste injectClientIntoDAO(client); storageInstaller().install(client); - } catch (ConfigParseException | StorageException e) { - throw new StorageModuleException(e.getMessage(), e); + } catch (ClientException | StorageException | DefineException e) { + throw new UnexpectedException(e.getMessage()); } } + @Override public final List handlerList() { + throw new UnsupportedOperationException(""); + } + @Override protected final Server server() { throw new UnsupportedOperationException(""); } diff --git a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleInstaller.java b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleInstaller.java index f15b9861c..67e8d217b 100644 --- a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleInstaller.java +++ b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/StorageModuleInstaller.java @@ -1,29 +1,18 @@ package org.skywalking.apm.collector.storage; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; +import org.skywalking.apm.collector.core.framework.Context; import org.skywalking.apm.collector.core.module.SingleModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public class StorageModuleInstaller extends SingleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(StorageModuleInstaller.class); - - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning storage module install"); - - StorageModuleContext context = new StorageModuleContext(StorageModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return StorageModuleGroupDefine.GROUP_NAME; + } - installSingle(moduleConfig, moduleDefineMap, serverHolder); + @Override public Context moduleContext() { + return new StorageModuleContext(groupName()); } } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleDefine.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleDefine.java index 89dad56db..399b6ba66 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleDefine.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleDefine.java @@ -1,45 +1,18 @@ package org.skywalking.apm.collector.stream; -import java.util.List; -import java.util.Map; -import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; -import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; -import org.skywalking.apm.collector.core.config.ConfigParseException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerException; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public abstract class StreamModuleDefine extends ModuleDefine implements ClusterDataListenerDefine { - private final Logger logger = LoggerFactory.getLogger(StreamModuleDefine.class); - - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { - try { - configParser().parse(config); - Server server = server(); - serverHolder.holdServer(server, handlerList()); - - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); - } catch (ConfigParseException | ServerException e) { - throw new StreamModuleException(e.getMessage(), e); - } - } - @Override public final boolean defaultModule() { return true; } - public abstract List handlerList() throws DefineException; + @Override protected final void initializeOtherContext() { + + } } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleInstaller.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleInstaller.java index a1f22c2fa..1c2a7fd21 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleInstaller.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/StreamModuleInstaller.java @@ -1,15 +1,13 @@ package org.skywalking.apm.collector.stream; -import java.util.Iterator; import java.util.List; -import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; +import org.skywalking.apm.collector.core.config.ConfigException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.core.framework.Context; import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.module.ModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.skywalking.apm.collector.core.util.ObjectUtils; +import org.skywalking.apm.collector.core.module.SingleModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerException; import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; import org.skywalking.apm.collector.stream.worker.AbstractRemoteWorkerProvider; import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; @@ -22,25 +20,21 @@ import org.slf4j.LoggerFactory; /** * @author pengys5 */ -public class StreamModuleInstaller implements ModuleInstaller { +public class StreamModuleInstaller extends SingleModuleInstaller { private final Logger logger = LoggerFactory.getLogger(StreamModuleInstaller.class); - @Override public void install(Map moduleConfig, Map moduleDefineMap, - ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning stream module install"); - StreamModuleContext context = new StreamModuleContext(StreamModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return StreamModuleGroupDefine.GROUP_NAME; + } - initializeWorker(context); + @Override public Context moduleContext() { + return new StreamModuleContext(groupName()); + } - logger.info("could not configure cluster module, use the default"); - Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); - while (moduleDefineEntry.hasNext()) { - ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); - logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); - } + @Override public void install() throws ClientException, DefineException, ConfigException, ServerException { + super.install(); + initializeWorker((StreamModuleContext)CollectorContextHelper.INSTANCE.getContext(groupName())); } private void initializeWorker(StreamModuleContext context) throws DefineException { diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/grpc/StreamGRPCModuleDefine.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/grpc/StreamGRPCModuleDefine.java index 1cfa93092..1e3897d51 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/grpc/StreamGRPCModuleDefine.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/grpc/StreamGRPCModuleDefine.java @@ -5,7 +5,6 @@ import java.util.List; import org.skywalking.apm.collector.core.client.Client; import org.skywalking.apm.collector.core.client.DataMonitor; import org.skywalking.apm.collector.core.cluster.ClusterDataListener; -import org.skywalking.apm.collector.core.framework.DefineException; import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleConfigParser; import org.skywalking.apm.collector.core.module.ModuleRegistration; @@ -50,7 +49,7 @@ public class StreamGRPCModuleDefine extends StreamModuleDefine { return new StreamGRPCDataListener(); } - @Override public List handlerList() throws DefineException { + @Override public List handlerList() { List handlers = new ArrayList<>(); handlers.add(new RemoteCommonServiceHandler()); return handlers; diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleDefine.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleDefine.java index 2f43dfeb4..bc7643d7b 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleDefine.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleDefine.java @@ -1,44 +1,15 @@ package org.skywalking.apm.collector.ui; -import java.util.List; -import java.util.Map; -import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; import org.skywalking.apm.collector.core.client.Client; -import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.client.DataMonitor; import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; -import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; -import org.skywalking.apm.collector.core.config.ConfigParseException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.server.Server; -import org.skywalking.apm.collector.core.server.ServerException; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author pengys5 */ public abstract class UIModuleDefine extends ModuleDefine implements ClusterDataListenerDefine { - private final Logger logger = LoggerFactory.getLogger(UIModuleDefine.class); - - @Override - public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { - try { - configParser().parse(config); - Server server = server(); - serverHolder.holdServer(server, handlerList()); - - ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); - } catch (ConfigParseException | ServerException e) { - throw new UIModuleException(e.getMessage(), e); - } - } - @Override protected final Client createClient(DataMonitor dataMonitor) { throw new UnsupportedOperationException(""); } @@ -47,5 +18,7 @@ public abstract class UIModuleDefine extends ModuleDefine implements ClusterData return true; } - public abstract List handlerList(); + @Override protected final void initializeOtherContext() { + + } } diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleInstaller.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleInstaller.java index 4bda90127..4308cf6c9 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleInstaller.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/UIModuleInstaller.java @@ -1,36 +1,18 @@ package org.skywalking.apm.collector.ui; -import java.util.Iterator; -import java.util.Map; -import org.skywalking.apm.collector.core.client.ClientException; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.core.framework.DefineException; -import org.skywalking.apm.collector.core.module.ModuleDefine; -import org.skywalking.apm.collector.core.module.ModuleInstaller; -import org.skywalking.apm.collector.core.server.ServerHolder; -import org.skywalking.apm.collector.core.util.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.skywalking.apm.collector.core.framework.Context; +import org.skywalking.apm.collector.core.module.MultipleModuleInstaller; /** * @author pengys5 */ -public class UIModuleInstaller implements ModuleInstaller { +public class UIModuleInstaller extends MultipleModuleInstaller { - private final Logger logger = LoggerFactory.getLogger(UIModuleInstaller.class); - - @Override public void install(Map moduleConfig, - Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { - logger.info("beginning ui module install"); - - UIModuleContext context = new UIModuleContext(UIModuleGroupDefine.GROUP_NAME); - CollectorContextHelper.INSTANCE.putContext(context); + @Override public String groupName() { + return UIModuleGroupDefine.GROUP_NAME; + } - Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); - while (moduleDefineEntry.hasNext()) { - ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); - logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); - } + @Override public Context moduleContext() { + return new UIModuleContext(groupName()); } } -- GitLab