[ {
  "key" : "primary",
  "components" : [ {
    "name" : "tchannel-hyperbahn",
    "filesCount" : 3,
    "linesOfCode" : 240,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 3,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 240,
      "description" : [ ]
    } ]
  }, {
    "name" : "tchannel-benchmark",
    "filesCount" : 3,
    "linesOfCode" : 450,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 3,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 450,
      "description" : [ ]
    } ]
  }, {
    "name" : "tchannel-crossdock",
    "filesCount" : 10,
    "linesOfCode" : 543,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 9,
      "description" : [ ]
    }, {
      "name" : "  *.thrift",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 534,
      "description" : [ ]
    }, {
      "name" : "  *.thrift",
      "value" : 9,
      "description" : [ ]
    } ]
  }, {
    "name" : "tchannel-example",
    "filesCount" : 18,
    "linesOfCode" : 631,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 17,
      "description" : [ ]
    }, {
      "name" : "  *.thrift",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 616,
      "description" : [ ]
    }, {
      "name" : "  *.thrift",
      "value" : 15,
      "description" : [ ]
    } ]
  }, {
    "name" : "tchannel-core",
    "filesCount" : 94,
    "linesOfCode" : 6449,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.java",
      "value" : 93,
      "description" : [ ]
    }, {
      "name" : "  *.thrift",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.java",
      "value" : 6415,
      "description" : [ ]
    }, {
      "name" : "  *.thrift",
      "value" : 34,
      "description" : [ ]
    } ]
  } ],
  "componentDependencies" : [ {
    "fromComponent" : "tchannel-hyperbahn",
    "locFrom" : 185,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tchannel-hyperbahn/src/main/java/com/uber/tchannel/hyperbahn/api/HyperbahnClient.java",
      "evidence" : "import com.uber.tchannel.messages.ErrorResponse;"
    } ],
    "toComponent" : "tchannel-core",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "tchannel-hyperbahn -> tchannel-core"
  }, {
    "fromComponent" : "tchannel-benchmark",
    "locFrom" : 450,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tchannel-benchmark/src/main/java/com/uber/tchannel/benchmarks/LargePayloadBenchmark.java",
      "evidence" : "import com.uber.tchannel.messages.RawRequest;"
    }, {
      "pathFrom" : "tchannel-benchmark/src/main/java/com/uber/tchannel/benchmarks/PingPongMultiServerBenchmark.java",
      "evidence" : "import com.uber.tchannel.messages.JsonRequest;"
    }, {
      "pathFrom" : "tchannel-benchmark/src/main/java/com/uber/tchannel/benchmarks/PingPongServerBenchmark.java",
      "evidence" : "import com.uber.tchannel.messages.JsonRequest;"
    } ],
    "toComponent" : "tchannel-core",
    "count" : 3,
    "text" : null,
    "color" : "",
    "dependencyString" : "tchannel-benchmark -> tchannel-core"
  }, {
    "fromComponent" : "tchannel-crossdock",
    "locFrom" : 287,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tchannel-crossdock/src/main/java/com/uber/tchannel/crossdock/behavior/trace/JSONHandler.java",
      "evidence" : "import com.uber.tchannel.messages.JsonRequest;"
    }, {
      "pathFrom" : "tchannel-crossdock/src/main/java/com/uber/tchannel/crossdock/behavior/trace/ThriftHandler.java",
      "evidence" : "import com.uber.tchannel.messages.JSONSerializer;"
    }, {
      "pathFrom" : "tchannel-crossdock/src/main/java/com/uber/tchannel/crossdock/behavior/trace/TraceBehavior.java",
      "evidence" : "import com.uber.tchannel.headers.ArgScheme;"
    }, {
      "pathFrom" : "tchannel-crossdock/src/main/java/com/uber/tchannel/crossdock/Server.java",
      "evidence" : "import com.uber.tchannel.tracing.TracingContext;"
    } ],
    "toComponent" : "tchannel-core",
    "count" : 4,
    "text" : null,
    "color" : "",
    "dependencyString" : "tchannel-crossdock -> tchannel-core"
  }, {
    "fromComponent" : "tchannel-example",
    "locFrom" : 556,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/ping/PingClient.java",
      "evidence" : "import com.uber.tchannel.messages.JsonRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/ping/PingRequestHandler.java",
      "evidence" : "import com.uber.tchannel.messages.JsonRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/ping/PingServer.java",
      "evidence" : "import com.uber.tchannel.api.TChannel;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/basic/AsyncRequest.java",
      "evidence" : "import com.uber.tchannel.messages.RawRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/basic/SyncRequest.java",
      "evidence" : "import com.uber.tchannel.messages.RawRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/thrift/SetValueRequestHandler.java",
      "evidence" : "import com.uber.tchannel.messages.ThriftRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/thrift/GetValueRequestHandler.java",
      "evidence" : "import com.uber.tchannel.messages.ThriftRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/thrift/KeyValueClient.java",
      "evidence" : "import com.uber.tchannel.messages.ThriftRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/thrift/KeyValueServer.java",
      "evidence" : "import com.uber.tchannel.api.TChannel;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/json/JsonRequestHandler.java",
      "evidence" : "import com.uber.tchannel.messages.JsonRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/json/JsonClient.java",
      "evidence" : "import com.uber.tchannel.messages.JsonRequest;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/json/JsonServer.java",
      "evidence" : "import com.uber.tchannel.api.TChannel;"
    }, {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/hyperbahn/HyperbahnExample.java",
      "evidence" : "import com.uber.tchannel.messages.JsonResponse;"
    } ],
    "toComponent" : "tchannel-core",
    "count" : 13,
    "text" : null,
    "color" : "",
    "dependencyString" : "tchannel-example -> tchannel-core"
  }, {
    "fromComponent" : "tchannel-example",
    "locFrom" : 46,
    "valueFrom" : 0.0,
    "valueTo" : 0.0,
    "evidence" : [ {
      "pathFrom" : "tchannel-example/src/main/java/com/uber/tchannel/hyperbahn/HyperbahnExample.java",
      "evidence" : "import com.uber.tchannel.hyperbahn.messages.AdvertiseResponse;"
    } ],
    "toComponent" : "tchannel-hyperbahn",
    "count" : 1,
    "text" : null,
    "color" : "",
    "dependencyString" : "tchannel-example -> tchannel-hyperbahn"
  } ],
  "componentDependenciesErrors" : [ ],
  "logicalDecomposition" : {
    "name" : "primary",
    "scope" : "main",
    "filters" : [ ],
    "componentsFolderDepth" : 1,
    "minComponentsCount" : 0,
    "components" : [ {
      "name" : "tchannel-hyperbahn",
      "sourceFileFilters" : [ {
        "pathPattern" : "./tchannel-hyperbahn/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "tchannel-benchmark",
      "sourceFileFilters" : [ {
        "pathPattern" : "./tchannel-benchmark/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "tchannel-crossdock",
      "sourceFileFilters" : [ {
        "pathPattern" : "./tchannel-crossdock/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "tchannel-example",
      "sourceFileFilters" : [ {
        "pathPattern" : "./tchannel-example/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    }, {
      "name" : "tchannel-core",
      "sourceFileFilters" : [ {
        "pathPattern" : "./tchannel-core/.*",
        "contentPattern" : "",
        "exception" : false,
        "note" : ""
      } ],
      "files" : [ ]
    } ],
    "metaComponents" : [ ],
    "groups" : [ ],
    "includeRemainingFiles" : true,
    "dependenciesFinder" : {
      "useBuiltInDependencyFinders" : true,
      "rules" : [ ],
      "metaRules" : [ ]
    },
    "renderingOptions" : {
      "orientation" : "TB",
      "maxNumberOfDependencies" : 100,
      "renderComponentsWithoutDependencies" : true,
      "renderIndirectDependencies" : false,
      "renderInternalIndirectDependencies" : false,
      "reverseDirection" : false
    },
    "includeExternalComponents" : true,
    "dependencyLinkThreshold" : 1,
    "duplicationLinkThreshold" : 50,
    "temporalLinkThreshold" : 1,
    "maxSearchDepthLines" : 200
  },
  "fileCountPerComponent" : [ {
    "name" : "tchannel-hyperbahn",
    "value" : 3,
    "description" : [ ]
  }, {
    "name" : "tchannel-benchmark",
    "value" : 3,
    "description" : [ ]
  }, {
    "name" : "tchannel-crossdock",
    "value" : 10,
    "description" : [ ]
  }, {
    "name" : "tchannel-example",
    "value" : 18,
    "description" : [ ]
  }, {
    "name" : "tchannel-core",
    "value" : 94,
    "description" : [ ]
  } ],
  "linesOfCodePerComponent" : [ {
    "name" : "tchannel-hyperbahn",
    "value" : 240,
    "description" : [ ]
  }, {
    "name" : "tchannel-benchmark",
    "value" : 450,
    "description" : [ ]
  }, {
    "name" : "tchannel-crossdock",
    "value" : 543,
    "description" : [ ]
  }, {
    "name" : "tchannel-example",
    "value" : 631,
    "description" : [ ]
  }, {
    "name" : "tchannel-core",
    "value" : 6449,
    "description" : [ ]
  } ]
} ]