diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml
index 9f6b7e9c7f687076677fdfa602a7decd6a401995..5ec0b19dd69f2783bebfeda00b27c79f8d7747e9 100644
--- a/apm-collector/apm-collector-boot/pom.xml
+++ b/apm-collector/apm-collector-boot/pom.xml
@@ -29,4 +29,51 @@
apm-collector-boot
jar
+
+
+
+ org.yaml
+ snakeyaml
+ 1.18
+
+
+ org.skywalking
+ apm-collector-core
+ ${project.version}
+
+
+
+ org.skywalking
+ collector-cluster-redis-provider
+ ${project.version}
+
+
+ org.skywalking
+ collector-cluster-standalone-provider
+ ${project.version}
+
+
+ org.skywalking
+ collector-cluster-zookeeper-provider
+ ${project.version}
+
+
+
+
+ org.skywalking
+ collector-grpc-manager-provider
+ ${project.version}
+
+
+ org.skywalking
+ collector-jetty-manager-provider
+ ${project.version}
+
+
+
+ org.skywalking
+ collector-ui-jetty-provider
+ ${project.version}
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java
new file mode 100644
index 0000000000000000000000000000000000000000..9724ce9767b083f41bd8728e8f7f37cc08f73f26
--- /dev/null
+++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.collector.boot;
+
+import org.skywalking.apm.collector.boot.config.ApplicationConfigLoader;
+import org.skywalking.apm.collector.boot.config.ConfigFileNotFoundException;
+import org.skywalking.apm.collector.core.module.ApplicationConfiguration;
+import org.skywalking.apm.collector.core.module.ModuleManager;
+import org.skywalking.apm.collector.core.module.ModuleNotFoundException;
+import org.skywalking.apm.collector.core.module.ProviderNotFoundException;
+import org.skywalking.apm.collector.core.module.ServiceNotProvidedException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author peng-yongsheng
+ */
+public class CollectorBootStartUp {
+
+ public static void main(String[] args) {
+ final Logger logger = LoggerFactory.getLogger(CollectorBootStartUp.class);
+
+ ApplicationConfigLoader configLoader = new ApplicationConfigLoader();
+ ModuleManager manager = new ModuleManager();
+ try {
+ ApplicationConfiguration applicationConfiguration = configLoader.load();
+ manager.init(applicationConfiguration);
+ } catch (ConfigFileNotFoundException e) {
+ logger.error(e.getMessage(), e);
+ } catch (ModuleNotFoundException e) {
+ logger.error(e.getMessage(), e);
+ } catch (ProviderNotFoundException e) {
+ logger.error(e.getMessage(), e);
+ } catch (ServiceNotProvidedException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ApplicationConfigLoader.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ApplicationConfigLoader.java
new file mode 100644
index 0000000000000000000000000000000000000000..4b6b6a77e3753f9c00673c62342df937f690024b
--- /dev/null
+++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ApplicationConfigLoader.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.collector.boot.config;
+
+import java.io.FileNotFoundException;
+import java.io.Reader;
+import java.util.Map;
+import java.util.Properties;
+import org.skywalking.apm.collector.core.module.ApplicationConfiguration;
+import org.skywalking.apm.collector.core.util.ResourceUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.yaml.snakeyaml.Yaml;
+
+/**
+ * @author peng-yongsheng
+ */
+public class ApplicationConfigLoader implements ConfigLoader {
+
+ private final Logger logger = LoggerFactory.getLogger(ApplicationConfigLoader.class);
+
+ private final Yaml yaml = new Yaml();
+
+ @Override public ApplicationConfiguration load() throws ConfigFileNotFoundException {
+ ApplicationConfiguration configuration = new ApplicationConfiguration();
+ this.loadConfig(configuration);
+ this.loadDefaultConfig(configuration);
+ return configuration;
+ }
+
+ private void loadConfig(ApplicationConfiguration configuration) throws ConfigFileNotFoundException {
+ try {
+ Reader applicationReader = ResourceUtils.read("application.yml");
+ Map>> moduleConfig = yaml.loadAs(applicationReader, Map.class);
+ moduleConfig.forEach((moduleName, providerConfig) -> {
+ if (providerConfig.size() > 0) {
+ logger.info("Get a module define from application.yml, module name: {}", moduleName);
+ ApplicationConfiguration.ModuleConfiguration moduleConfiguration = configuration.addModule(moduleName);
+ providerConfig.forEach((name, propertiesConfig) -> {
+ logger.info("Get a provider define belong to {} module, provider name: {}", moduleName, name);
+ Properties properties = new Properties();
+ if (propertiesConfig != null) {
+ propertiesConfig.forEach((key, value) -> {
+ properties.put(key, value);
+ logger.info("The property with key: {}, value: {}, in {} provider", key, value, name);
+ });
+ }
+ moduleConfiguration.addProviderConfiguration(name, properties);
+ });
+ } else {
+ logger.warn("Get a module define from application.yml, but no provider define, use default, module name: {}", moduleName);
+ }
+ });
+ } catch (FileNotFoundException e) {
+ throw new ConfigFileNotFoundException(e.getMessage(), e);
+ }
+ }
+
+ private void loadDefaultConfig(ApplicationConfiguration configuration) throws ConfigFileNotFoundException {
+ try {
+ Reader applicationReader = ResourceUtils.read("application-default.yml");
+ Map>> moduleConfig = yaml.loadAs(applicationReader, Map.class);
+ moduleConfig.forEach((moduleName, providerConfig) -> {
+ if (!configuration.has(moduleName)) {
+ logger.warn("The {} module did't define in application.yml, use default", moduleName);
+ ApplicationConfiguration.ModuleConfiguration moduleConfiguration = configuration.addModule(moduleName);
+ providerConfig.forEach((name, propertiesConfig) -> {
+ Properties properties = new Properties();
+ if (propertiesConfig != null) {
+ propertiesConfig.forEach(properties::put);
+ }
+ moduleConfiguration.addProviderConfiguration(name, properties);
+ });
+ }
+ });
+ } catch (FileNotFoundException e) {
+ throw new ConfigFileNotFoundException(e.getMessage(), e);
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ConfigFileNotFoundException.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ConfigFileNotFoundException.java
new file mode 100644
index 0000000000000000000000000000000000000000..335ca7015fd88f4620cbd6c785a17eb595ac9ee1
--- /dev/null
+++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ConfigFileNotFoundException.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.collector.boot.config;
+
+import org.skywalking.apm.collector.core.CollectorException;
+
+/**
+ * @author peng-yongsheng
+ */
+public class ConfigFileNotFoundException extends CollectorException {
+
+ public ConfigFileNotFoundException(String message) {
+ super(message);
+ }
+
+ public ConfigFileNotFoundException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ConfigLoader.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ConfigLoader.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff089fc034e432a29f88bcc7fdfecb75cab7a70e
--- /dev/null
+++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/config/ConfigLoader.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.collector.boot.config;
+
+/**
+ * @author peng-yongsheng
+ */
+public interface ConfigLoader {
+ T load() throws ConfigFileNotFoundException;
+}
diff --git a/apm-collector/apm-collector-boot/src/main/resources/application.yml b/apm-collector/apm-collector-boot/src/main/resources/application.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fa6855ba0fc13f28d9baed46ccc79b08c77fb7d0
--- /dev/null
+++ b/apm-collector/apm-collector-boot/src/main/resources/application.yml
@@ -0,0 +1,40 @@
+cluster:
+ zookeeper:
+ hostPort: localhost:2181
+ sessionTimeout: 100000
+#agent_server:
+# jetty:
+# host: localhost
+# port: 10800
+# context_path: /
+#agent_stream:
+# grpc:
+# host: localhost
+# port: 11800
+# jetty:
+# host: localhost
+# port: 12800
+# context_path: /
+# config:
+# buffer_offset_max_file_size: 10M
+# buffer_segment_max_file_size: 500M
+ui:
+ jetty:
+ host: localhost
+ port: 12800
+ context_path: /
+#collector_inside:
+# grpc:
+# host: localhost
+# port: 11800
+#storage:
+# elasticsearch:
+# cluster_name: CollectorDBCluster
+# cluster_transport_sniffer: true
+# cluster_nodes: localhost:9300
+# index_shards_number: 2
+# index_replicas_number: 0
+#storage:
+# h2:
+# url: jdbc:h2:tcp://localhost/~/test
+# user_name: sa
\ No newline at end of file
diff --git a/apm-collector/apm-collector-boot/src/main/resources/log4j2.xml b/apm-collector/apm-collector-boot/src/main/resources/log4j2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a76ab8c13034643898799c80431670a2550fcb20
--- /dev/null
+++ b/apm-collector/apm-collector-boot/src/main/resources/log4j2.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java b/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java
index 5491382880be00a0ea0a5e31e2b649fb46781545..30a2df87b0e5a6aff5e6940ab4fa3fff0da44bfa 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java
+++ b/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java
@@ -18,6 +18,7 @@
package org.skywalking.apm.collector.cluster;
+import org.skywalking.apm.collector.cluster.service.ModuleListenerService;
import org.skywalking.apm.collector.cluster.service.ModuleRegisterService;
import org.skywalking.apm.collector.cluster.service.ModuleRegistrationGetService;
import org.skywalking.apm.collector.core.module.Module;
@@ -28,13 +29,13 @@ import org.skywalking.apm.collector.core.module.Service;
*/
public class ClusterModule extends Module {
- public static final String NAME = "Cluster";
+ public static final String NAME = "cluster";
@Override public String name() {
return NAME;
}
@Override public Class extends Service>[] services() {
- return new Class[] {ModuleRegisterService.class, ModuleRegistrationGetService.class};
+ return new Class[] {ModuleListenerService.class, ModuleRegisterService.class, ModuleRegistrationGetService.class};
}
}
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegisterService.java b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegisterService.java
index c067d8d3d62b7fbf309b48765c925e0d0bd269aa..084958d319cbdfb06861e3eebb1b5b39101e5e8b 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegisterService.java
+++ b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegisterService.java
@@ -18,6 +18,7 @@
package org.skywalking.apm.collector.cluster.redis.service;
+import org.skywalking.apm.collector.cluster.ModuleRegistration;
import org.skywalking.apm.collector.cluster.service.ModuleRegisterService;
/**
@@ -25,7 +26,7 @@ import org.skywalking.apm.collector.cluster.service.ModuleRegisterService;
*/
public class RedisModuleRegisterService implements ModuleRegisterService {
- @Override public void register(String moduleName, String providerName, String address, String others) {
+ @Override public void register(String moduleName, String providerName, ModuleRegistration registration) {
}
}
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegisterService.java b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegisterService.java
index 0538d51c793c4210f59a9e10c80a566afa84e098..13d1f491dc90ff9d563b00f18b69b569982c54cf 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegisterService.java
+++ b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegisterService.java
@@ -18,6 +18,7 @@
package org.skywalking.apm.collector.cluster.standalone.service;
+import org.skywalking.apm.collector.cluster.ModuleRegistration;
import org.skywalking.apm.collector.cluster.service.ModuleRegisterService;
/**
@@ -25,7 +26,7 @@ import org.skywalking.apm.collector.cluster.service.ModuleRegisterService;
*/
public class StandaloneModuleRegisterService implements ModuleRegisterService {
- @Override public void register(String moduleName, String providerName, String address, String others) {
-
+ @Override public void register(String moduleName, String providerName, ModuleRegistration registration) {
+
}
}
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java
index f8411bb9ca6f64c21b527876a52567da10642e6b..1b0037f2c248fd37133a2741085add8b51599e20 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java
+++ b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java
@@ -55,8 +55,8 @@ public class ClusterModuleZookeeperProvider extends ModuleProvider {
dataMonitor = new ClusterZKDataMonitor();
final String hostPort = config.getProperty(HOST_PORT);
- final String sessionTimeout = config.getProperty(SESSION_TIMEOUT);
- ZookeeperClient zookeeperClient = new ZookeeperClient(hostPort, Integer.valueOf(sessionTimeout), dataMonitor);
+ final int sessionTimeout = (Integer)config.get(SESSION_TIMEOUT);
+ ZookeeperClient zookeeperClient = new ZookeeperClient(hostPort, sessionTimeout, dataMonitor);
dataMonitor.setClient(zookeeperClient);
this.registerServiceImplementation(ModuleListenerService.class, new ZookeeperModuleListenerService(dataMonitor));
diff --git a/apm-collector/apm-collector-core/pom.xml b/apm-collector/apm-collector-core/pom.xml
index 5c19df2da02291e98b5663a52f7c6ac91ef2a9dc..4cb512837614de4922671024b581691d645b6535 100644
--- a/apm-collector/apm-collector-core/pom.xml
+++ b/apm-collector/apm-collector-core/pom.xml
@@ -13,11 +13,6 @@
jar
-
- org.yaml
- snakeyaml
- 1.18
-
com.google.code.gson
gson
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ApplicationConfiguration.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ApplicationConfiguration.java
index db1fb0af030a5c06057863ca3fd588aa919124db..e41786381991d3f4ff29560b2de73a254bbafe6a 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ApplicationConfiguration.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ApplicationConfiguration.java
@@ -24,7 +24,7 @@ import java.util.Properties;
/**
* Modulization configurations. The {@link ModuleManager} is going to start, lookup, start modules based on this.
*
- * @author wu-sheng
+ * @author wu-sheng, peng-yongsheng
*/
public class ApplicationConfiguration {
private HashMap modules = new HashMap<>();
@@ -39,6 +39,10 @@ public class ApplicationConfiguration {
return newModule;
}
+ public boolean has(String moduleName) {
+ return modules.containsKey(moduleName);
+ }
+
public ModuleConfiguration getModuleConfiguration(String name) {
return modules.get(name);
}
@@ -56,6 +60,10 @@ public class ApplicationConfiguration {
return providers.get(name).getProperties();
}
+ public boolean has(String name) {
+ return providers.containsKey(name);
+ }
+
public ModuleConfiguration addProviderConfiguration(String name, Properties properties) {
ProviderConfiguration newProvider = new ProviderConfiguration(properties);
providers.put(name, newProvider);
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java
index 9fb70de587fcb24a5fcb42b12b120e00a008ffbe..fc99c9a1f91b397f4dd51e527d3c261c3642198c 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java
@@ -21,6 +21,8 @@ package org.skywalking.apm.collector.core.module;
import java.util.LinkedList;
import java.util.List;
import java.util.ServiceLoader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A module definition.
@@ -28,6 +30,9 @@ import java.util.ServiceLoader;
* @author wu-sheng, peng-yongsheng
*/
public abstract class Module {
+
+ private final Logger logger = LoggerFactory.getLogger(Module.class);
+
private LinkedList loadedProviders = new LinkedList<>();
/**
@@ -52,6 +57,10 @@ public abstract class Module {
ServiceLoader moduleProviderLoader = ServiceLoader.load(ModuleProvider.class);
boolean providerExist = false;
for (ModuleProvider provider : moduleProviderLoader) {
+ if (!configuration.has(provider.name())) {
+ continue;
+ }
+
providerExist = true;
if (provider.module().equals(getClass())) {
ModuleProvider newProvider;
@@ -69,10 +78,11 @@ public abstract class Module {
}
if (!providerExist) {
- throw new ProviderNotFoundException("no provider exists.");
+ throw new ProviderNotFoundException(this.name() + " module no provider exists.");
}
for (ModuleProvider moduleProvider : loadedProviders) {
+ logger.info("Prepare the {} provider in {} module.", moduleProvider.name(), this.name());
moduleProvider.prepare(configuration.getProviderConfiguration(moduleProvider.name()));
}
}
@@ -105,7 +115,7 @@ public abstract class Module {
*/
final List providers() throws ProviderNotFoundException {
if (loadedProviders.size() == 0) {
- throw new ProviderNotFoundException("no provider exists.");
+ throw new ProviderNotFoundException(this.name() + " module no provider exists.");
}
return loadedProviders;
@@ -113,9 +123,9 @@ public abstract class Module {
final ModuleProvider provider() throws ProviderNotFoundException, DuplicateProviderException {
if (loadedProviders.size() == 0) {
- throw new ProviderNotFoundException("no provider exists.");
+ throw new ProviderNotFoundException(this.name() + " module no provider exists.");
} else if (loadedProviders.size() > 1) {
- throw new DuplicateProviderException("exist " + loadedProviders.size() + " providers");
+ throw new DuplicateProviderException(this.name() + " module exist " + loadedProviders.size() + " providers");
}
return loadedProviders.getFirst();
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleProvider.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleProvider.java
index 43e52ef8056e167575b8b3b5d483146d6102b892..2b48ecbec7f1681e6b42a208054f815c79c2a9f3 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleProvider.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleProvider.java
@@ -121,7 +121,7 @@ public abstract class ModuleProvider {
}
if (requiredServices.length != services.size()) {
- throw new ServiceNotProvidedException("Provide more service implementations than Module requirements.");
+ throw new ServiceNotProvidedException("The " + this.name() + " provider in " + module.name() + " module provide more service implementations than Module requirements.");
}
}
diff --git a/apm-collector/apm-collector-core/src/main/resources/application-default.yml b/apm-collector/apm-collector-core/src/main/resources/application-default.yml
new file mode 100644
index 0000000000000000000000000000000000000000..047e4dff949d55032aab714b300dd8e1b620669d
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/resources/application-default.yml
@@ -0,0 +1,39 @@
+cluster:
+ h2:
+ hostPort: localhost:2181
+ sessionTimeout: 100000
+#agent_server:
+# jetty:
+# host: localhost
+# port: 10800
+# context_path: /
+#agent_stream:
+# grpc:
+# host: localhost
+# port: 11800
+# jetty:
+# host: localhost
+# port: 12800
+# context_path: /
+# config:
+# buffer_offset_max_file_size: 10M
+# buffer_segment_max_file_size: 500M
+ui:
+ jetty:
+ host: localhost
+ port: 12800
+ context_path: /
+server_manager:
+ jetty:
+ gRPC:
+#collector_inside:
+# grpc:
+# host: localhost
+# port: 11800
+#storage:
+# elasticsearch:
+# cluster_name: CollectorDBCluster
+# cluster_transport_sniffer: true
+# cluster_nodes: localhost:9300
+# index_shards_number: 2
+# index_replicas_number: 0
\ No newline at end of file
diff --git a/apm-collector/apm-collector-server-manager/collector-grpc-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/grpc/ServerManagerModuleGRPCProvider.java b/apm-collector/apm-collector-server-manager/collector-grpc-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/grpc/ServerManagerModuleGRPCProvider.java
index 2554f269cd64dc43a5e5c3dbc1c9d55b58fb424a..e760b30bd8900c1fba022774a89ea6378cf68825 100644
--- a/apm-collector/apm-collector-server-manager/collector-grpc-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/grpc/ServerManagerModuleGRPCProvider.java
+++ b/apm-collector/apm-collector-server-manager/collector-grpc-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/grpc/ServerManagerModuleGRPCProvider.java
@@ -32,7 +32,7 @@ import org.skywalking.apm.collector.server.manager.service.GRPCServerManagerServ
public class ServerManagerModuleGRPCProvider extends ModuleProvider {
@Override public String name() {
- return "Google_RPC";
+ return "gRPC";
}
@Override public Class extends Module> module() {
@@ -43,7 +43,11 @@ public class ServerManagerModuleGRPCProvider extends ModuleProvider {
this.registerServiceImplementation(GRPCServerManagerService.class, new GRPCServerService());
}
- @Override public void init(Properties config) throws ServiceNotProvidedException {
+ @Override public void start(Properties config) throws ServiceNotProvidedException {
+
+ }
+
+ @Override public void notifyAfterCompleted() throws ServiceNotProvidedException {
}
diff --git a/apm-collector/apm-collector-server-manager/collector-jetty-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/jetty/ServerManagerModuleJettyProvider.java b/apm-collector/apm-collector-server-manager/collector-jetty-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/jetty/ServerManagerModuleJettyProvider.java
index f1780a99d9db5f65332c975d82ceb82c9007cdbe..7ebc153d573e4c7158517c92ea6e3b510ddcf4a7 100644
--- a/apm-collector/apm-collector-server-manager/collector-jetty-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/jetty/ServerManagerModuleJettyProvider.java
+++ b/apm-collector/apm-collector-server-manager/collector-jetty-manager-provider/src/main/java/org/skywalking/apm/collector/server/manager/jetty/ServerManagerModuleJettyProvider.java
@@ -32,7 +32,7 @@ import org.skywalking.apm.collector.server.manager.service.JettyServerManagerSer
public class ServerManagerModuleJettyProvider extends ModuleProvider {
@Override public String name() {
- return "Jetty";
+ return "jetty";
}
@Override public Class extends Module> module() {
@@ -43,7 +43,11 @@ public class ServerManagerModuleJettyProvider extends ModuleProvider {
this.registerServiceImplementation(JettyServerManagerService.class, new JettyServerService());
}
- @Override public void init(Properties config) throws ServiceNotProvidedException {
+ @Override public void start(Properties config) throws ServiceNotProvidedException {
+
+ }
+
+ @Override public void notifyAfterCompleted() throws ServiceNotProvidedException {
}
diff --git a/apm-collector/apm-collector-server-manager/collector-server-manager-define/src/main/java/org/skywalking/apm/collector/server/manager/ServerManagerModule.java b/apm-collector/apm-collector-server-manager/collector-server-manager-define/src/main/java/org/skywalking/apm/collector/server/manager/ServerManagerModule.java
index affdd437a158ef15599ddfb032f9e2d4474977ba..286ff4404ffb70e6544d56a594f0b7ad179b748c 100644
--- a/apm-collector/apm-collector-server-manager/collector-server-manager-define/src/main/java/org/skywalking/apm/collector/server/manager/ServerManagerModule.java
+++ b/apm-collector/apm-collector-server-manager/collector-server-manager-define/src/main/java/org/skywalking/apm/collector/server/manager/ServerManagerModule.java
@@ -27,7 +27,7 @@ import org.skywalking.apm.collector.server.manager.service.JettyServerManagerSer
*/
public class ServerManagerModule extends Module {
- public static final String NAME = "Server_Manager";
+ public static final String NAME = "server_manager";
@Override public String name() {
return NAME;
diff --git a/apm-collector/apm-collector-ui/collector-ui-define/src/main/java/org/skywalking/apm/collector/ui/UIModule.java b/apm-collector/apm-collector-ui/collector-ui-define/src/main/java/org/skywalking/apm/collector/ui/UIModule.java
index 7ce129a9fc2c74d8fc64da88688676b6c3e63177..ff50629ab755c0a1f106b04ca744fd44e60b8a88 100644
--- a/apm-collector/apm-collector-ui/collector-ui-define/src/main/java/org/skywalking/apm/collector/ui/UIModule.java
+++ b/apm-collector/apm-collector-ui/collector-ui-define/src/main/java/org/skywalking/apm/collector/ui/UIModule.java
@@ -25,7 +25,7 @@ import org.skywalking.apm.collector.core.module.Module;
*/
public class UIModule extends Module {
- public static final String NAME = "Naming";
+ public static final String NAME = "ui";
@Override public String name() {
return NAME;
diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java
index dbcf3158a3fce9b1541379983711cbc4a943b970..06ea4663079d2e2c79554da1e35c9bf623ac0bee 100644
--- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java
+++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java
@@ -40,8 +40,10 @@ public class UIModuleJettyProvider extends ModuleProvider {
private static final String PORT = "port";
private static final String CONTEXT_PATH = "context_path";
+ private JettyServerConfig serverConfig;
+
@Override public String name() {
- return "Jetty";
+ return "jetty";
}
@Override public Class extends Module> module() {
@@ -50,10 +52,12 @@ public class UIModuleJettyProvider extends ModuleProvider {
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
String host = config.getProperty(HOST);
- String port = config.getProperty(PORT);
+ Integer port = (Integer)config.get(PORT);
String contextPath = config.getProperty(CONTEXT_PATH);
- JettyServerConfig serverConfig = new JettyServerConfig(host, Integer.valueOf(port), contextPath);
+ serverConfig = new JettyServerConfig(host, port, contextPath);
+ }
+ @Override public void start(Properties config) throws ServiceNotProvidedException {
try {
JettyServerManagerService managerService = getManager().find(ServerManagerModule.NAME).getService(JettyServerManagerService.class);
Server jettyServer = managerService.getElseCreateServer(serverConfig);
@@ -64,10 +68,6 @@ public class UIModuleJettyProvider extends ModuleProvider {
}
}
- @Override public void start(Properties config) throws ServiceNotProvidedException {
-
- }
-
@Override public void notifyAfterCompleted() throws ServiceNotProvidedException {
}