提交 288ced67 编写于 作者: P peng-yongsheng

Merge branch 'feature/collector-modelization' of...

Merge branch 'feature/collector-modelization' of https://github.com/OpenSkywalking/skywalking into feature/collector-modelization

# Conflicts:
#	apm-collector/apm-collector-agent/collector-agent-stream/pom.xml
#	apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml
#	apm-collector/apm-collector-stream/collector-stream-define/pom.xml
......@@ -25,7 +25,7 @@ Sky Walking | [中文](README_ZH.md)
<img src="https://skywalkingtest.github.io/page-resources/3.x-architecture.jpg"/>
# Document
* [WIKI](https://github.com/OpenSkywalking/skywalking/wiki)
[![EN doc](https://img.shields.io/badge/document-English-blue.svg)](docs/README.md) [![cn doc](https://img.shields.io/badge/document-中文-blue.svg)](docs/README_ZH.md)
This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to wu.sheng@foxmail.com.
......
......@@ -28,7 +28,7 @@ Sky Walking | [English](README.md)
<img src="https://skywalkingtest.github.io/page-resources/3.x-architecture.jpg"/>
# Document
* [WIKI](https://github.com/OpenSkywalking/skywalking/wiki)
[![EN doc](https://img.shields.io/badge/document-English-blue.svg)](docs/README.md) [![cn doc](https://img.shields.io/badge/document-中文-blue.svg)](docs/README_ZH.md)
This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to wu.sheng@foxmail.com.
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-application-toolkit</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-application-toolkit</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-application-toolkit</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
/*
* 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.toolkit.log.logback.v1.x.mdc;
import ch.qos.logback.classic.pattern.MDCConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.util.OptionHelper;
/**
* @author zhangkewei
*/
public class LogbackMDCPatternConverter extends MDCConverter {
private static final String CONVERT_KEY = "tid";
private boolean convert4TID = false;
@Override
public void start() {
super.start();
String[] key = OptionHelper.extractDefaultReplacement(getFirstOption());
if (null != key && key.length > 0 && CONVERT_KEY.equals(key[0])) {
convert4TID = true;
}
}
@Override
public String convert(ILoggingEvent iLoggingEvent) {
return convert4TID ? convertTID() : super.convert(iLoggingEvent);
}
public String convertTID() {
return "TID: N/A";
}
}
/*
* 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.toolkit.log.logback.v1.x.mdc;
import ch.qos.logback.classic.PatternLayout;
/**
* Override "X",SuperClass run before Subclass.
* @author zhangkewei
*/
public class TraceIdMDCPatternLogbackLayout extends PatternLayout {
static {
defaultConverterMap.put("X", LogbackMDCPatternConverter.class.getName());
}
}
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-application-toolkit</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -22,7 +22,7 @@
<parent>
<artifactId>apm-application-toolkit</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -21,7 +21,7 @@
<parent>
<artifactId>apm</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>apm-application-toolkit</artifactId>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -60,6 +60,7 @@ public class NodeComponentSpanListener implements EntrySpanListener, ExitSpanLis
}
nodeComponent.setPeerId(spanDecorator.getPeerId());
nodeComponent.setPeer(Const.EMPTY_STRING);
id = id + Const.ID_SPLIT + nodeComponent.getPeerId();
nodeComponent.setId(id);
nodeComponents.add(nodeComponent);
......@@ -81,6 +82,7 @@ public class NodeComponentSpanListener implements EntrySpanListener, ExitSpanLis
}
nodeComponent.setPeerId(applicationId);
nodeComponent.setPeer(Const.EMPTY_STRING);
id = id + Const.ID_SPLIT + String.valueOf(applicationId);
nodeComponent.setId(id);
......
......@@ -51,6 +51,7 @@ public class NodeMappingSpanListener implements RefsListener, FirstSpanListener
NodeMappingDataDefine.NodeMapping nodeMapping = new NodeMappingDataDefine.NodeMapping();
nodeMapping.setApplicationId(applicationId);
nodeMapping.setAddressId(referenceDecorator.getNetworkAddressId());
nodeMapping.setAddress(Const.EMPTY_STRING);
String id = String.valueOf(applicationId) + Const.ID_SPLIT + String.valueOf(nodeMapping.getAddressId());
nodeMapping.setId(id);
nodeMappings.add(nodeMapping);
......
......@@ -53,6 +53,7 @@ public class NodeReferenceSpanListener implements EntrySpanListener, ExitSpanLis
NodeReferenceDataDefine.NodeReference nodeReference = new NodeReferenceDataDefine.NodeReference();
nodeReference.setFrontApplicationId(applicationId);
nodeReference.setBehindApplicationId(spanDecorator.getPeerId());
nodeReference.setBehindPeer(Const.EMPTY_STRING);
nodeReference.setTimeBucket(TimeBucketUtils.INSTANCE.getMinuteTimeBucket(spanDecorator.getStartTime()));
StringBuilder idBuilder = new StringBuilder();
......@@ -79,6 +80,7 @@ public class NodeReferenceSpanListener implements EntrySpanListener, ExitSpanLis
NodeReferenceDataDefine.NodeReference nodeReference = new NodeReferenceDataDefine.NodeReference();
nodeReference.setFrontApplicationId(Const.USER_ID);
nodeReference.setBehindApplicationId(applicationId);
nodeReference.setBehindPeer(Const.EMPTY_STRING);
nodeReference.setTimeBucket(TimeBucketUtils.INSTANCE.getMinuteTimeBucket(spanDecorator.getStartTime()));
String idBuilder = String.valueOf(nodeReference.getTimeBucket()) + Const.ID_SPLIT + nodeReference.getFrontApplicationId() +
......@@ -96,6 +98,7 @@ public class NodeReferenceSpanListener implements EntrySpanListener, ExitSpanLis
NodeReferenceDataDefine.NodeReference referenceSum = new NodeReferenceDataDefine.NodeReference();
referenceSum.setFrontApplicationId(parentApplicationId);
referenceSum.setBehindApplicationId(applicationId);
referenceSum.setBehindPeer(Const.EMPTY_STRING);
references.add(referenceSum);
}
......
......@@ -127,12 +127,15 @@ public class ServiceReferenceSpanListener implements FirstSpanListener, EntrySpa
idBuilder.append(entryServiceId).append(Const.ID_SPLIT);
serviceReference.setEntryServiceId(entryServiceId);
serviceReference.setEntryServiceName(Const.EMPTY_STRING);
idBuilder.append(frontServiceId).append(Const.ID_SPLIT);
serviceReference.setFrontServiceId(frontServiceId);
serviceReference.setFrontServiceName(Const.EMPTY_STRING);
idBuilder.append(behindServiceId);
serviceReference.setBehindServiceId(behindServiceId);
serviceReference.setBehindServiceName(Const.EMPTY_STRING);
serviceReference.setId(idBuilder.toString());
serviceReference.setTimeBucket(timeBucket);
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -24,4 +24,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -18,6 +18,7 @@
package org.skywalking.apm.collector.queue.disruptor;
import com.lmax.disruptor.ExceptionHandler;
import com.lmax.disruptor.RingBuffer;
import com.lmax.disruptor.dsl.Disruptor;
import org.skywalking.apm.collector.core.queue.DaemonThreadFactory;
......@@ -25,12 +26,16 @@ import org.skywalking.apm.collector.core.queue.MessageHolder;
import org.skywalking.apm.collector.core.queue.QueueCreator;
import org.skywalking.apm.collector.core.queue.QueueEventHandler;
import org.skywalking.apm.collector.core.queue.QueueExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author peng-yongsheng
*/
public class DisruptorQueueCreator implements QueueCreator {
private final Logger logger = LoggerFactory.getLogger(DisruptorQueueCreator.class);
@Override public QueueEventHandler create(int queueSize, QueueExecutor executor) {
// Specify the size of the ring buffer, must be power of 2.
if (!((((queueSize - 1) & queueSize) == 0) && queueSize != 0)) {
......@@ -40,6 +45,20 @@ public class DisruptorQueueCreator implements QueueCreator {
// Construct the Disruptor
Disruptor<MessageHolder> disruptor = new Disruptor(MessageHolderFactory.INSTANCE, queueSize, DaemonThreadFactory.INSTANCE);
disruptor.setDefaultExceptionHandler(new ExceptionHandler<MessageHolder>() {
@Override public void handleEventException(Throwable ex, long sequence, MessageHolder event) {
logger.error("handler message error! message: {}.", event.getMessage(), ex);
}
@Override public void handleOnStartException(Throwable ex) {
logger.error("create disruptor failed!", ex);
}
@Override public void handleOnShutdownException(Throwable ex) {
logger.error("shutdown disruptor failed!", ex);
}
});
RingBuffer<MessageHolder> ringBuffer = disruptor.getRingBuffer();
DisruptorEventHandler eventHandler = new DisruptorEventHandler(ringBuffer, executor);
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-3.2.3</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -40,7 +40,7 @@
<parent>
<artifactId>apm</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<artifactId>apm-collector-3.2.3</artifactId>
<packaging>pom</packaging>
......
......@@ -23,11 +23,11 @@
<parent>
<artifactId>apm-collector-agent</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-agent-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-agent</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -47,4 +47,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-agent</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -42,4 +42,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,13 +23,14 @@
<parent>
<artifactId>apm-collector-agent</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-agent-stream</artifactId>
<packaging>jar</packaging>
<<<<<<< HEAD
<dependencies>
<dependency>
<groupId>org.skywalking</groupId>
......@@ -37,4 +38,8 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
=======
</project>
>>>>>>> 406c4f52d8251eb81aa868ec38f17789e18e0dc0
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -25,4 +25,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -24,4 +24,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,11 +23,11 @@
<parent>
<artifactId>apm-collector-cluster</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-cluster-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-cluster</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-cluster</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-cluster</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector-component</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -55,4 +55,4 @@
<version>1.4.0</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -23,4 +23,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector-component</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -33,4 +33,4 @@
<version>${jetty.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
/*
* 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.core.graph;
/**
* @author wusheng
*/
public class DirectWay<INPUT, OUTPUT> extends WayToNode<INPUT, OUTPUT> {
public DirectWay(NodeProcessor<INPUT, OUTPUT> destinationHandler) {
super(destinationHandler);
}
@Override protected void in(INPUT o) {
out(o);
}
}
......@@ -43,24 +43,25 @@ public final class Graph<INPUT> {
}
}
public Next findNext(int handlerId) {
Node node = nodeIndex.get(handlerId);
if (node == null) {
throw new NodeNotFoundException("Can't find node with handlerId="
+ handlerId
+ " in graph[" + id + "】");
}
return node.getNext();
}
void checkForNewNode(Node node) {
int nodeId = node.getHandler().id();
if (nodeIndex.containsKey(nodeId)) {
throw new PotentialAcyclicGraphException("handler="
throw new PotentialCyclicGraphException("handler="
+ node.getHandler().getClass().getName()
+ " already exists in graph[" + id + "】");
}
nodeIndex.put(nodeId, node);
}
public GraphNodeFinder toFinder() {
return new GraphNodeFinder(this);
}
ConcurrentHashMap<Integer, Node> getNodeIndex() {
return nodeIndex;
}
int getId() {
return id;
}
}
......@@ -52,4 +52,8 @@ public enum GraphManager {
}
return graph;
}
public void reset() {
allGraphs.clear();
}
}
/*
* 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.core.graph;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author wu-sheng
*/
public class GraphNodeFinder {
private Graph graph;
GraphNodeFinder(Graph graph) {
this.graph = graph;
}
/**
* Find an exist node to build the graph.
*
* @param handlerId of specific node in graph.
* @param outputClass of the found node
* @param <NODE_OUTPUT> type of given output class
* @return Node instance.
*/
public <NODE_OUTPUT> Node<?, NODE_OUTPUT> findNode(int handlerId, Class<NODE_OUTPUT> outputClass) {
ConcurrentHashMap<Integer, Node> graphNodeIndex = graph.getNodeIndex();
Node node = graphNodeIndex.get(handlerId);
if (node == null) {
throw new NodeNotFoundException("Can't find node with handlerId="
+ handlerId
+ " in graph[" + graph.getId() + "]");
}
return node;
}
public Next findNext(int handlerId) {
ConcurrentHashMap<Integer, Node> graphNodeIndex = graph.getNodeIndex();
Node node = graphNodeIndex.get(handlerId);
if (node == null) {
throw new NodeNotFoundException("Can't find node with handlerId="
+ handlerId
+ " in graph[" + graph.getId() + "]");
}
return node.getNext();
}
}
......@@ -29,14 +29,14 @@ import org.skywalking.apm.collector.core.framework.Executor;
*/
public class Next<INPUT> implements Executor<INPUT> {
private final List<Node> nextNodes;
private final List<WayToNode> ways;
public Next() {
this.nextNodes = new LinkedList<>();
this.ways = new LinkedList<>();
}
public final void addNext(Node node) {
nextNodes.add(node);
final void addWay(WayToNode way) {
ways.add(way);
}
/**
......@@ -45,6 +45,6 @@ public class Next<INPUT> implements Executor<INPUT> {
* @param INPUT
*/
@Override public void execute(INPUT INPUT) {
nextNodes.forEach(node -> node.execute(INPUT));
ways.forEach(way -> way.in(INPUT));
}
}
......@@ -36,10 +36,14 @@ public final class Node<INPUT, OUTPUT> {
}
public final <NEXTOUTPUT> Node<OUTPUT, NEXTOUTPUT> addNext(NodeProcessor<OUTPUT, NEXTOUTPUT> nodeProcessor) {
return this.addNext(new DirectWay(nodeProcessor));
}
public final <NEXTOUTPUT> Node<OUTPUT, NEXTOUTPUT> addNext(WayToNode<OUTPUT, NEXTOUTPUT> way) {
synchronized (graph) {
Node<OUTPUT, NEXTOUTPUT> node = new Node<>(graph, nodeProcessor);
next.addNext(node);
return node;
way.buildDestination(graph);
next.addWay(way);
return way.getDestination();
}
}
......
......@@ -21,8 +21,8 @@ package org.skywalking.apm.collector.core.graph;
/**
* @author wusheng
*/
public class PotentialAcyclicGraphException extends RuntimeException {
public PotentialAcyclicGraphException(String message) {
public class PotentialCyclicGraphException extends RuntimeException {
public PotentialCyclicGraphException(String message) {
super(message);
}
}
/*
* 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.core.graph;
/**
* @author wusheng
*/
public abstract class WayToNode<INPUT, OUTPUT> {
private Node destination;
private NodeProcessor<INPUT, OUTPUT> destinationHandler;
public WayToNode(NodeProcessor<INPUT, OUTPUT> destinationHandler) {
this.destinationHandler = destinationHandler;
}
void buildDestination(Graph graph) {
destination = new Node(graph, destinationHandler);
}
protected abstract void in(INPUT INPUT);
protected void out(INPUT INPUT) {
destination.execute(INPUT);
}
Node getDestination() {
return destination;
}
}
/*
* 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.core.module;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.skywalking.apm.collector.core.util.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author wu-sheng
*/
public class BootstrapFlow {
private final Logger logger = LoggerFactory.getLogger(BootstrapFlow.class);
private Map<String, Module> loadedModules;
private ApplicationConfiguration applicationConfiguration;
private List<ModuleProvider> startupSequence;
public BootstrapFlow(Map<String, Module> loadedModules,
ApplicationConfiguration applicationConfiguration) throws CycleDependencyException {
this.loadedModules = loadedModules;
this.applicationConfiguration = applicationConfiguration;
startupSequence = new LinkedList<>();
makeSequence();
}
void start(ModuleManager moduleManager,
ApplicationConfiguration configuration) throws ProviderNotFoundException, ModuleNotFoundException, ServiceNotProvidedException {
for (ModuleProvider provider : startupSequence) {
String[] requiredModules = provider.requiredModules();
if (requiredModules != null) {
for (String module : requiredModules) {
if (!moduleManager.has(module)) {
throw new ModuleNotFoundException(module + " is required by " + provider.getModuleName()
+ "." + provider.name() + ", but not found.");
}
}
}
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());
}
}
void notifyAfterCompleted() throws ProviderNotFoundException, ModuleNotFoundException, ServiceNotProvidedException {
for (ModuleProvider provider : startupSequence) {
provider.notifyAfterCompleted();
}
}
private void makeSequence() throws CycleDependencyException {
List<ModuleProvider> allProviders = new ArrayList<>();
loadedModules.forEach((moduleName, module) -> {
module.providers().forEach(provider -> {
allProviders.add(provider);
});
});
while (true) {
int numOfToBeSequenced = allProviders.size();
for (int i = 0; i < allProviders.size(); i++) {
ModuleProvider provider = allProviders.get(i);
String[] requiredModules = provider.requiredModules();
if (CollectionUtils.isNotEmpty(requiredModules)) {
boolean isAllRequiredModuleStarted = true;
for (String module : requiredModules) {
// find module in all ready existed startupSequence
boolean exist = false;
for (ModuleProvider moduleProvider : startupSequence) {
if (moduleProvider.getModuleName().equals(module)) {
exist = true;
break;
}
}
if (!exist) {
isAllRequiredModuleStarted = false;
break;
}
}
if (isAllRequiredModuleStarted) {
startupSequence.add(provider);
allProviders.remove(i);
}
} else {
startupSequence.add(provider);
allProviders.remove(i);
}
}
if (numOfToBeSequenced == allProviders.size()) {
StringBuilder unsequencedProviders = new StringBuilder();
allProviders.forEach(provider -> {
unsequencedProviders.append(provider.getModuleName()).append("[provider=").append(provider.getClass().getName()).append("]\n");
});
throw new CycleDependencyException("Exist cycle module dependencies in \n" + unsequencedProviders.substring(0, unsequencedProviders.length() - 1));
}
if (allProviders.size() == 0) {
break;
}
}
}
}
/*
* 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.core.module;
/**
* @author wu-sheng
*/
public class CycleDependencyException extends RuntimeException {
public CycleDependencyException(String message) {
super(message);
}
}
......@@ -87,45 +87,15 @@ public abstract class Module {
}
}
void start(ModuleManager moduleManager,
ApplicationConfiguration.ModuleConfiguration configuration) throws ProviderNotFoundException, ModuleNotFoundException, ServiceNotProvidedException {
for (ModuleProvider provider : loadedProviders) {
String[] requiredModules = provider.requiredModules();
if (requiredModules != null) {
for (String module : requiredModules) {
if (!moduleManager.has(module)) {
throw new ModuleNotFoundException(module + " is required by " + name() + ", but not found.");
}
}
}
logger.info("start the provider {} in {} module.", provider.name(), provider.module().getName());
provider.start(configuration.getProviderConfiguration(provider.name()));
provider.requiredCheck(services());
}
}
void notifyAfterCompleted() throws ProviderNotFoundException, ModuleNotFoundException, ServiceNotProvidedException {
for (ModuleProvider provider : loadedProviders) {
provider.notifyAfterCompleted();
}
}
/**
* @return providers of this module
*/
final List<ModuleProvider> providers() throws ProviderNotFoundException {
if (loadedProviders.size() == 0) {
throw new ProviderNotFoundException(this.name() + " module no provider exists.");
}
final List<ModuleProvider> providers() {
return loadedProviders;
}
final ModuleProvider provider() throws ProviderNotFoundException, DuplicateProviderException {
if (loadedProviders.size() == 0) {
throw new ProviderNotFoundException(this.name() + " module no provider exists.");
} else if (loadedProviders.size() > 1) {
if (loadedProviders.size() > 1) {
throw new DuplicateProviderException(this.name() + " module exist " + loadedProviders.size() + " providers");
}
......
......@@ -39,7 +39,7 @@ public class ModuleManager {
* @param applicationConfiguration
*/
public void init(
ApplicationConfiguration applicationConfiguration) throws ModuleNotFoundException, ProviderNotFoundException, ServiceNotProvidedException {
ApplicationConfiguration applicationConfiguration) throws ModuleNotFoundException, ProviderNotFoundException, ServiceNotProvidedException, CycleDependencyException {
String[] moduleNames = applicationConfiguration.moduleList();
ServiceLoader<Module> moduleServiceLoader = ServiceLoader.load(Module.class);
LinkedList<String> moduleList = new LinkedList(Arrays.asList(moduleNames));
......@@ -65,13 +65,10 @@ public class ModuleManager {
throw new ModuleNotFoundException(moduleList.toString() + " missing.");
}
for (Module module : loadedModules.values()) {
module.start(this, applicationConfiguration.getModuleConfiguration(module.name()));
}
BootstrapFlow bootstrapFlow = new BootstrapFlow(loadedModules, applicationConfiguration);
for (Module module : loadedModules.values()) {
module.notifyAfterCompleted();
}
bootstrapFlow.start(this, applicationConfiguration);
bootstrapFlow.notifyAfterCompleted();
}
public boolean has(String moduleName) {
......
......@@ -133,4 +133,12 @@ public abstract class ModuleProvider {
throw new ServiceNotProvidedException("Service " + serviceType.getName() + " should not be provided, based on module define.");
}
Module getModule() {
return module;
}
String getModuleName() {
return module.name();
}
}
......@@ -75,7 +75,7 @@ public class GraphManagerTest {
Assert.assertEquals(expected, output);
}
@Test(expected = PotentialAcyclicGraphException.class)
@Test(expected = PotentialCyclicGraphException.class)
public void testPotentialAcyclicGraph() {
Graph<String> testGraph = GraphManager.INSTANCE.createIfAbsent(3, String.class);
Node<String, String> node = testGraph.addNode(new Node1Processor());
......@@ -87,7 +87,7 @@ public class GraphManagerTest {
Graph<String> graph = GraphManager.INSTANCE.createIfAbsent(4, String.class);
graph.addNode(new Node1Processor()).addNext(new Node2Processor()).addNext(new Node4Processor());
Next next = GraphManager.INSTANCE.findGraph(4).findNext(2);
Next next = GraphManager.INSTANCE.findGraph(4).toFinder().findNext(2);
next.execute(123);
String output = outputStream.toString();
......@@ -102,6 +102,36 @@ public class GraphManagerTest {
Graph<String> graph = GraphManager.INSTANCE.createIfAbsent(5, String.class);
graph.addNode(new Node1Processor()).addNext(new Node2Processor()).addNext(new Node4Processor());
Next next = GraphManager.INSTANCE.findGraph(5).findNext(3);
Next next = GraphManager.INSTANCE.findGraph(5).toFinder().findNext(3);
}
@Test
public void testFindNode() {
Graph<String> graph = GraphManager.INSTANCE.createIfAbsent(6, String.class);
graph.addNode(new Node1Processor()).addNext(new Node2Processor());
Node<?, Integer> foundNode = GraphManager.INSTANCE.findGraph(6).toFinder().findNode(2, Integer.class);
foundNode.addNext(new Node4Processor());
}
@Test
public void testDeadEndWay() {
Graph<String> graph = GraphManager.INSTANCE.createIfAbsent(7, String.class);
graph.addNode(new Node1Processor()).addNext(new WayToNode<String, Integer>(new Node2Processor()) {
@Override protected void in(String INPUT) {
//don't call `out(intput)`;
}
});
graph.start("Input String");
String output = outputStream.toString();
String expected = "Node1 process: s=Input String" + lineSeparator;
Assert.assertEquals(expected, output);
}
@After
public void tearDown() {
GraphManager.INSTANCE.reset();
}
}
......@@ -23,11 +23,11 @@
<parent>
<artifactId>apm-collector-grpc-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-grpc-manager-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-grpc-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -46,4 +46,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,11 +23,11 @@
<parent>
<artifactId>apm-collector-jetty-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-jetty-manager-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-jetty-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -46,4 +46,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,11 +23,11 @@
<parent>
<artifactId>apm-collector-naming</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-naming-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-naming</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -42,4 +42,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -33,4 +33,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-queue</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,11 +23,11 @@
<parent>
<artifactId>apm-collector-queue</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-queue-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-queue</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -42,4 +42,4 @@
<version>3.3.6</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,11 +5,11 @@
<parent>
<artifactId>apm-collector-remote</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-remote-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-remote</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -87,4 +87,4 @@
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
</project>
......@@ -23,13 +23,14 @@
<parent>
<artifactId>apm-collector-remote</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-remote-kafka-provider</artifactId>
<packaging>jar</packaging>
<<<<<<< HEAD
<dependencies>
<dependency>
<groupId>org.skywalking</groupId>
......@@ -37,4 +38,7 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
=======
</project>
>>>>>>> 406c4f52d8251eb81aa868ec38f17789e18e0dc0
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,10 +23,10 @@
<parent>
<artifactId>apm-collector-storage</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-storage-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-storage</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-storage</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,10 +23,22 @@
<parent>
<artifactId>apm-collector-stream</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-stream-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
<<<<<<< HEAD
</project>
=======
<dependencies>
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>queue-component</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
>>>>>>> 406c4f52d8251eb81aa868ec38f17789e18e0dc0
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-stream</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......@@ -37,4 +37,4 @@
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,11 +23,11 @@
<parent>
<artifactId>apm-collector-ui</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-ui-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
</project>
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-collector-ui</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -5,7 +5,7 @@
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm-commons</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -21,7 +21,7 @@
<parent>
<artifactId>apm-commons</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -21,7 +21,7 @@
<parent>
<artifactId>apm</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<artifactId>apm</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<groupId>org.skywalking</groupId>
<artifactId>apm-sniffer</artifactId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<artifactId>apm-agent-core</artifactId>
......
......@@ -23,7 +23,7 @@
<parent>
<groupId>org.skywalking</groupId>
<artifactId>apm-sniffer</artifactId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<artifactId>apm-agent</artifactId>
......
......@@ -21,7 +21,7 @@
<parent>
<artifactId>apm-sdk-plugin</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -23,7 +23,7 @@
<parent>
<groupId>org.skywalking</groupId>
<artifactId>apm-sdk-plugin</artifactId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -24,7 +24,7 @@
<parent>
<groupId>org.skywalking</groupId>
<artifactId>apm-sdk-plugin</artifactId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<artifactId>apm-grpc-1.x-plugin</artifactId>
......
......@@ -21,7 +21,7 @@
<parent>
<artifactId>apm-sdk-plugin</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -24,7 +24,7 @@
<parent>
<groupId>org.skywalking</groupId>
<artifactId>apm-sdk-plugin</artifactId>
<version>3.2.3-2017</version>
<version>3.2.4-2017</version>
</parent>
<artifactId>apm-httpClient-4.x-plugin</artifactId>
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册