Skip to content

Commit

Permalink
[#2801] Remove V1 server map builder
Browse files Browse the repository at this point in the history
  • Loading branch information
Xylus committed Jul 5, 2017
1 parent 8e8c5ab commit 7f900ab
Show file tree
Hide file tree
Showing 14 changed files with 220 additions and 1,019 deletions.
Expand Up @@ -16,30 +16,128 @@

package com.navercorp.pinpoint.web.applicationmap;

import com.navercorp.pinpoint.web.applicationmap.appender.histogram.EmptyNodeHistogramFactory;
import com.navercorp.pinpoint.web.applicationmap.appender.histogram.NodeHistogramAppender;
import com.navercorp.pinpoint.web.applicationmap.appender.histogram.NodeHistogramAppenderFactory;
import com.navercorp.pinpoint.web.applicationmap.appender.histogram.NodeHistogramFactory;
import com.navercorp.pinpoint.web.applicationmap.appender.server.EmptyServerInstanceListFactory;
import com.navercorp.pinpoint.web.applicationmap.appender.server.ServerInfoAppender;
import com.navercorp.pinpoint.web.applicationmap.appender.server.ServerInfoAppenderFactory;
import com.navercorp.pinpoint.web.applicationmap.appender.server.ServerInstanceListFactory;
import com.navercorp.pinpoint.web.applicationmap.link.LinkFactory.LinkType;
import com.navercorp.pinpoint.web.applicationmap.link.LinkList;
import com.navercorp.pinpoint.web.applicationmap.link.LinkListFactory;
import com.navercorp.pinpoint.web.applicationmap.nodes.Node;
import com.navercorp.pinpoint.web.applicationmap.nodes.NodeList;
import com.navercorp.pinpoint.web.applicationmap.nodes.NodeListFactory;
import com.navercorp.pinpoint.web.applicationmap.nodes.ServerInstanceList;
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataDuplexMap;
import com.navercorp.pinpoint.web.vo.Application;
import com.navercorp.pinpoint.web.vo.Range;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* @author emeroad
* @author minwoo.jung
* @author HyunGil Jeong
*/
public interface ApplicationMapBuilder {
public class ApplicationMapBuilder {

ApplicationMapBuilder linkType(LinkType linkType);
private final Logger logger = LoggerFactory.getLogger(this.getClass());

ApplicationMapBuilder includeNodeHistogram(NodeHistogramFactory nodeHistogramFactory);
private final Range range;

ApplicationMapBuilder includeServerInfo(ServerInstanceListFactory serverInstanceListFactory);
private final NodeHistogramAppenderFactory nodeHistogramAppenderFactory;
private final ServerInfoAppenderFactory serverInfoAppenderFactory;

/**
* Returns an application map with a single node containing the application's agents that were running.
*/
ApplicationMap build(Application application);
private LinkType linkType;
private NodeHistogramFactory nodeHistogramFactory;
private ServerInstanceListFactory serverInstanceListFactory;

/**
* Returns an application map with built from a {@LinkDataDuplexMap}.
*/
ApplicationMap build(LinkDataDuplexMap linkDataDuplexMap);
public ApplicationMapBuilder(Range range, NodeHistogramAppenderFactory nodeHistogramAppenderFactory, ServerInfoAppenderFactory serverInfoAppenderFactory) {
if (range == null) {
throw new NullPointerException("range must not be null");
}
if (nodeHistogramAppenderFactory == null) {
throw new NullPointerException("nodeHistogramAppenderFactory must not be null");
}
if (serverInfoAppenderFactory == null) {
throw new NullPointerException("serverInfoAppenderFactory must not be null");
}
this.range = range;
this.nodeHistogramAppenderFactory = nodeHistogramAppenderFactory;
this.serverInfoAppenderFactory = serverInfoAppenderFactory;
}

public ApplicationMapBuilder linkType(LinkType linkType) {
this.linkType = linkType;
return this;
}

public ApplicationMapBuilder includeNodeHistogram(NodeHistogramFactory nodeHistogramFactory) {
this.nodeHistogramFactory = nodeHistogramFactory;
return this;
}

public ApplicationMapBuilder includeServerInfo(ServerInstanceListFactory serverInstanceListFactory) {
this.serverInstanceListFactory = serverInstanceListFactory;
return this;
}

public ApplicationMap build(Application application) {
logger.info("Building empty application map");

NodeList nodeList = new NodeList();
LinkList emptyLinkList = new LinkList();

Node node = new Node(application);
if (serverInstanceListFactory != null) {
ServerInstanceList runningInstances = serverInstanceListFactory.createWasNodeInstanceList(node, range.getTo());
if (runningInstances.getInstanceCount() > 0) {
node.setServerInstanceList(runningInstances);
nodeList.addNode(node);
}
}

NodeHistogramFactory nodeHistogramFactory = this.nodeHistogramFactory;
if (nodeHistogramFactory == null) {
nodeHistogramFactory = new EmptyNodeHistogramFactory();
}
NodeHistogramAppender nodeHistogramAppender = nodeHistogramAppenderFactory.create(nodeHistogramFactory);
nodeHistogramAppender.appendNodeHistogram(range, nodeList, emptyLinkList);

return new DefaultApplicationMap(range, nodeList, emptyLinkList);
}

public ApplicationMap build(LinkDataDuplexMap linkDataDuplexMap) {
if (linkDataDuplexMap == null) {
throw new NullPointerException("linkDataDuplexMap must not be null");
}
logger.info("Building application map");

LinkType linkType = this.linkType;
if (linkType == null) {
linkType = LinkType.DETAILED;
}

NodeList nodeList = NodeListFactory.createNodeList(linkDataDuplexMap);
LinkList linkList = LinkListFactory.createLinkList(linkType, nodeList, linkDataDuplexMap, range);

NodeHistogramFactory nodeHistogramFactory = this.nodeHistogramFactory;
if (nodeHistogramFactory == null) {
nodeHistogramFactory = new EmptyNodeHistogramFactory();
}
NodeHistogramAppender nodeHistogramAppender = nodeHistogramAppenderFactory.create(nodeHistogramFactory);
nodeHistogramAppender.appendNodeHistogram(range, nodeList, linkList);

ServerInstanceListFactory serverInstanceListFactory = this.serverInstanceListFactory;
if (serverInstanceListFactory == null) {
serverInstanceListFactory = new EmptyServerInstanceListFactory();
}
ServerInfoAppender serverInfoAppender = serverInfoAppenderFactory.create(serverInstanceListFactory);
serverInfoAppender.appendServerInfo(range, nodeList, linkDataDuplexMap);

return new DefaultApplicationMap(range, nodeList, linkList);
}
}
Expand Up @@ -19,10 +19,7 @@
import com.navercorp.pinpoint.web.applicationmap.appender.histogram.NodeHistogramAppenderFactory;
import com.navercorp.pinpoint.web.applicationmap.appender.server.ServerInfoAppenderFactory;
import com.navercorp.pinpoint.web.vo.Range;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
Expand All @@ -31,29 +28,19 @@
@Component
public class ApplicationMapBuilderFactory {

private final Logger logger = LoggerFactory.getLogger(this.getClass());

private final String mode;

private final NodeHistogramAppenderFactory nodeHistogramAppenderFactory;

private final ServerInfoAppenderFactory serverInfoAppenderFactory;

@Autowired
public ApplicationMapBuilderFactory(
@Value("#{pinpointWebProps['web.servermap.builder.mode'] ?: 'v1'}") String mode,
NodeHistogramAppenderFactory nodeHistogramAppenderFactory,
ServerInfoAppenderFactory serverInfoAppenderFactory) {
this.mode = mode;
this.nodeHistogramAppenderFactory = nodeHistogramAppenderFactory;
this.serverInfoAppenderFactory = serverInfoAppenderFactory;
}

public ApplicationMapBuilder createApplicationMapBuilder(Range range) {
logger.info("ApplicationMapBuilder mode : {}", mode);
if (mode.equals("v2")) {
return new ApplicationMapBuilderV2(range, nodeHistogramAppenderFactory, serverInfoAppenderFactory);
}
return new ApplicationMapBuilderV1(range);
return new ApplicationMapBuilder(range, nodeHistogramAppenderFactory, serverInfoAppenderFactory);
}
}

This file was deleted.

0 comments on commit 7f900ab

Please sign in to comment.