Merge branch 'feature/collector-modelization' of https://github.com/OpenSkywalking/skywalking into feature/collector-modelization
This commit is contained in:
commit
d8ba62e90b
|
|
@ -18,10 +18,5 @@
|
|||
<artifactId>gson</artifactId>
|
||||
<version>2.8.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.bytebuddy</groupId>
|
||||
<artifactId>byte-buddy</artifactId>
|
||||
<version>1.7.8</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ public class BootstrapFlow {
|
|||
}
|
||||
}
|
||||
logger.info("start the provider {} in {} module.", provider.name(), provider.getModuleName());
|
||||
provider.start(configuration.getModuleConfiguration(provider.getModuleName()).getProviderConfiguration(provider.name()));
|
||||
|
||||
provider.requiredCheck(provider.getModule().services());
|
||||
|
||||
provider.start(configuration.getModuleConfiguration(provider.getModuleName()).getProviderConfiguration(provider.name()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ import java.util.ServiceLoader;
|
|||
*/
|
||||
public class ModuleManager {
|
||||
private Map<String, Module> loadedModules = new HashMap<>();
|
||||
private boolean isServiceInstrument = true;
|
||||
|
||||
/**
|
||||
* Init the given modules
|
||||
|
|
@ -81,12 +80,4 @@ public class ModuleManager {
|
|||
return module;
|
||||
throw new ModuleNotFoundException(moduleName + " missing.");
|
||||
}
|
||||
|
||||
public boolean isServiceInstrument() {
|
||||
return isServiceInstrument;
|
||||
}
|
||||
|
||||
public void setServiceInstrument(boolean serviceInstrument) {
|
||||
isServiceInstrument = serviceInstrument;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ package org.skywalking.apm.collector.core.module;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import org.skywalking.apm.collector.core.module.instrument.ServiceInstrumentation;
|
||||
|
||||
/**
|
||||
* The <code>ModuleProvider</code> is an implementation of a {@link Module}.
|
||||
|
|
@ -95,9 +94,6 @@ public abstract class ModuleProvider {
|
|||
protected final void registerServiceImplementation(Class<? extends Service> serviceType,
|
||||
Service service) throws ServiceNotProvidedException {
|
||||
if (serviceType.isInstance(service)) {
|
||||
if (manager.isServiceInstrument()) {
|
||||
// service = ServiceInstrumentation.INSTANCE.buildServiceUnderMonitor(module.name(), name(), service);
|
||||
}
|
||||
this.services.put(serviceType, service);
|
||||
} else {
|
||||
throw new ServiceNotProvidedException(serviceType + " is not implemented by " + service);
|
||||
|
|
|
|||
|
|
@ -34,10 +34,10 @@ public class ModuleAProvider extends ModuleProvider {
|
|||
|
||||
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
|
||||
this.registerServiceImplementation(BaseModuleA.ServiceABusiness1.class, new ModuleABusiness1Impl());
|
||||
this.registerServiceImplementation(BaseModuleA.ServiceABusiness2.class, new ModuleABusiness2Impl());
|
||||
}
|
||||
|
||||
@Override public void start(Properties config) throws ServiceNotProvidedException {
|
||||
this.registerServiceImplementation(BaseModuleA.ServiceABusiness2.class, new ModuleABusiness2Impl());
|
||||
}
|
||||
|
||||
@Override public void notifyAfterCompleted() throws ServiceNotProvidedException {
|
||||
|
|
|
|||
|
|
@ -34,10 +34,10 @@ public class ModuleBProvider extends ModuleProvider {
|
|||
|
||||
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
|
||||
this.registerServiceImplementation(BaseModuleB.ServiceBBusiness1.class, new ModuleBBusiness1Impl());
|
||||
this.registerServiceImplementation(BaseModuleB.ServiceBBusiness2.class, new ModuleBBusiness2Impl());
|
||||
}
|
||||
|
||||
@Override public void start(Properties config) throws ServiceNotProvidedException {
|
||||
this.registerServiceImplementation(BaseModuleB.ServiceBBusiness2.class, new ModuleBBusiness2Impl());
|
||||
}
|
||||
|
||||
@Override public void notifyAfterCompleted() throws ServiceNotProvidedException {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ package org.skywalking.apm.collector.core.module;
|
|||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.skywalking.apm.collector.core.module.instrument.TracedService;
|
||||
|
||||
/**
|
||||
* @author wu-sheng
|
||||
|
|
@ -39,38 +38,4 @@ public class ModuleManagerTest {
|
|||
BaseModuleA.ServiceABusiness1 serviceABusiness1 = manager.find("BaseA").provider().getService(BaseModuleA.ServiceABusiness1.class);
|
||||
Assert.assertTrue(serviceABusiness1 != null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInstrument() throws ServiceNotProvidedException, ModuleNotFoundException, ProviderNotFoundException, DuplicateProviderException {
|
||||
ApplicationConfiguration configuration = new ApplicationConfiguration();
|
||||
configuration.addModule("Test").addProviderConfiguration("TestModule-Provider", null);
|
||||
configuration.addModule("BaseA").addProviderConfiguration("P-A", null);
|
||||
configuration.addModule("BaseB").addProviderConfiguration("P-B", null);
|
||||
|
||||
ModuleManager manager = new ModuleManager();
|
||||
manager.setServiceInstrument(true);
|
||||
manager.init(configuration);
|
||||
|
||||
BaseModuleA.ServiceABusiness1 serviceABusiness1 = manager.find("BaseA").getService(BaseModuleA.ServiceABusiness1.class);
|
||||
|
||||
Assert.assertTrue(serviceABusiness1 instanceof TracedService);
|
||||
|
||||
// for (int i = 0; i < 10000; i++)
|
||||
// serviceABusiness1.print();
|
||||
//
|
||||
// try {
|
||||
// Thread.sleep(60 * 1000L);
|
||||
// } catch (InterruptedException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// for (int i = 0; i < 10000; i++)
|
||||
// serviceABusiness1.print();
|
||||
//
|
||||
// try {
|
||||
// Thread.sleep(120 * 1000L);
|
||||
// } catch (InterruptedException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ 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
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>apm-collector</artifactId>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<version>3.2.4-2017</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>apm-collector-instrument</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>apm-collector-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.bytebuddy</groupId>
|
||||
<artifactId>byte-buddy</artifactId>
|
||||
<version>1.7.8</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
* Project repository: https://github.com/OpenSkywalking/skywalking
|
||||
*/
|
||||
|
||||
package org.skywalking.apm.collector.core.module.instrument;
|
||||
package org.skywalking.apm.collector.instrument;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
* Project repository: https://github.com/OpenSkywalking/skywalking
|
||||
*/
|
||||
|
||||
package org.skywalking.apm.collector.core.module.instrument;
|
||||
package org.skywalking.apm.collector.instrument;
|
||||
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
* Project repository: https://github.com/OpenSkywalking/skywalking
|
||||
*/
|
||||
|
||||
package org.skywalking.apm.collector.core.module.instrument;
|
||||
package org.skywalking.apm.collector.instrument;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.concurrent.Callable;
|
||||
|
|
@ -16,13 +16,10 @@
|
|||
* Project repository: https://github.com/OpenSkywalking/skywalking
|
||||
*/
|
||||
|
||||
package org.skywalking.apm.collector.core.module.instrument;
|
||||
|
||||
import org.skywalking.apm.collector.core.module.ModuleManager;
|
||||
package org.skywalking.apm.collector.instrument;
|
||||
|
||||
/**
|
||||
* The <code>TracedService</code> implementation are dynamic class, generated by {@link ServiceInstrumentation}, when
|
||||
* {@link ModuleManager#isServiceInstrument} is true.
|
||||
* The <code>TracedService</code> implementation are dynamic class, generated by {@link ServiceInstrumentation}.
|
||||
*
|
||||
* By that, all the services metrics are collected, and report in the certain cycle through console.
|
||||
*
|
||||
|
|
@ -45,6 +45,7 @@
|
|||
<module>apm-collector-remote</module>
|
||||
<module>apm-collector-stream</module>
|
||||
<module>apm-collector-queue</module>
|
||||
<module>apm-collector-instrument</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
|
|
@ -83,4 +84,4 @@
|
|||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
</project>
|
||||
|
|
|
|||
Loading…
Reference in New Issue