Skip to content

Commit

Permalink
Use thrift 0.11.0 (jaegertracing#94)
Browse files Browse the repository at this point in the history
* Upgrade Thrift to 0.11.0

Signed-off-by: Isaac Hier <ihier@uber.com>

* Update copyrights on touched files

Signed-off-by: Isaac Hier <ihier@uber.com>
  • Loading branch information
isaachier authored and vadorovsky committed May 4, 2018
1 parent 6f5349c commit b1940ac
Show file tree
Hide file tree
Showing 65 changed files with 3,019 additions and 1,969 deletions.
147 changes: 86 additions & 61 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/toolchain.cmake"
include(CMakeDependentOption)
include(HunterGate)
HunterGate(
URL "https://github.com/ruslo/hunter/archive/v0.20.18.tar.gz"
SHA1 "c2614bc107a5172c167a5784f476b6fb39e314a9"
LOCAL
URL "https://github.com/ruslo/hunter/archive/v0.20.62.tar.gz"
SHA1 "10ffae63cf7b07193d6d7b459c1d0cfa242fad5b"
)

project(jaegertracing VERSION 0.3.0)
Expand All @@ -36,16 +35,9 @@ endif()
set(package_deps)

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND
CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9")
set(boost_components regex)
hunter_add_package(Boost COMPONENTS regex)
list(APPEND LIBS Boost::regex)
else()
set(boost_components)
hunter_add_package(Boost)
CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9")
message(FATAL_ERROR "Must use gcc >= 4.9")
endif()
find_package(Boost ${hunter_config} REQUIRED ${boost_components})
list(APPEND package_deps Boost)

hunter_add_package(thrift)
find_package(thrift ${hunter_config} REQUIRED)
Expand Down Expand Up @@ -100,38 +92,6 @@ if(BUILD_TESTING)
endif()
endif()

if(JAEGERTRACING_BUILD_CROSSDOCK)
set(CROSSDOCK_SRC crossdock/Server.cpp)
add_executable(crossdock ${CROSSDOCK_SRC})
target_include_directories(crossdock PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/crossdock>)
target_link_libraries(crossdock PUBLIC jaegertracing-static)

set(JAEGER_CROSSDOCK_URL
"https://raw.githubusercontent.com/jaegertracing/jaeger/master/docker-compose/\
jaeger-docker-compose.yml")
file(DOWNLOAD ${JAEGER_CROSSDOCK_URL}
"${PROJECT_SOURCE_DIR}/crossdock/jaeger-docker-compose.yml")
find_program(DOCKER_COMPOSE_EXE docker-compose REQUIRED)
set(DOCKER_COMPOSE_CMD ${DOCKER_COMPOSE_EXE}
-f ${PROJECT_SOURCE_DIR}/crossdock/docker-compose.yml
-f ${PROJECT_SOURCE_DIR}/crossdock/jaeger-docker-compose.yml)
add_custom_target(crossdock-kill
COMMAND ${DOCKER_COMPOSE_CMD} kill
COMMAND ${DOCKER_COMPOSE_CMD} rm --force)
add_custom_target(crossdock-run
COMMAND ${DOCKER_COMPOSE_CMD} build
COMMAND ${DOCKER_COMPOSE_CMD} run crossdock
DEPENDS crossdock-kill)
add_custom_target(crossdock-fresh
COMMAND ${DOCKER_COMPOSE_CMD} pull
COMMAND ${DOCKER_COMPOSE_CMD} build
COMMAND ${DOCKER_COMPOSE_CMD} run crossdock
DEPENDS crossdock-kill)
add_custom_target(crossdock-logs
COMMAND ${DOCKER_COMPOSE_CMD} logs)
endif()

set(SRC
src/jaegertracing/Config.cpp
src/jaegertracing/LogRecord.cpp
Expand Down Expand Up @@ -203,7 +163,6 @@ set(SRC
src/jaegertracing/thrift-gen/Collector.cpp
src/jaegertracing/thrift-gen/Dependency.cpp
src/jaegertracing/thrift-gen/SamplingManager.cpp
src/jaegertracing/thrift-gen/TracedService.cpp
src/jaegertracing/thrift-gen/ZipkinCollector.cpp
src/jaegertracing/thrift-gen/agent_constants.cpp
src/jaegertracing/thrift-gen/agent_types.cpp
Expand All @@ -217,25 +176,52 @@ set(SRC
src/jaegertracing/thrift-gen/jaeger_types.cpp
src/jaegertracing/thrift-gen/sampling_constants.cpp
src/jaegertracing/thrift-gen/sampling_types.cpp
src/jaegertracing/thrift-gen/tracetest_constants.cpp
src/jaegertracing/thrift-gen/tracetest_types.cpp
src/jaegertracing/thrift-gen/zipkincore_constants.cpp
src/jaegertracing/thrift-gen/zipkincore_types.cpp
src/jaegertracing/utils/ErrorUtil.cpp
src/jaegertracing/utils/HexParsing.cpp
src/jaegertracing/utils/RateLimiter.cpp
src/jaegertracing/utils/Regex.cpp
src/jaegertracing/utils/UDPClient.cpp
src/jaegertracing/utils/YAML.cpp)

add_library(jaegertracing SHARED ${SRC})
target_include_directories(jaegertracing PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/src>)
target_link_libraries(jaegertracing ${LIBS})
set_target_properties(jaegertracing PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR})
if(JAEGERTRACING_BUILD_CROSSDOCK)
list(APPEND SRC
src/jaegertracing/thrift-gen/TracedService.cpp
src/jaegertracing/thrift-gen/tracetest_constants.cpp
src/jaegertracing/thrift-gen/tracetest_types.cpp)
endif()

function(add_lib_deps lib)
target_include_directories(${lib} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src>)
target_link_libraries(${lib} PUBLIC ${LIBS})
endfunction()

option(JAEGERTRACING_PLUGIN "Build dynamic plugin" OFF)
cmake_dependent_option(BUILD_SHARED_LIBS "Build shared libraries" ON
"NOT JAEGERTRACING_PLUGIN" OFF)

if(BUILD_SHARED_LIBS)
add_library(jaegertracing SHARED ${SRC})
add_lib_deps(jaegertracing)
set_target_properties(jaegertracing PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR})
set(JAEGERTRACING_LIB jaegertracing)
list(APPEND JAEGERTRACING_LIBS jaegertracing)
endif()

if(JAEGERTRACING_PLUGIN)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/export.map
"{ global: OpenTracingMakeTracerFactory; local: *; };")
add_library(jaegertracing_plugin MODULE ${SRC})
add_lib_deps(jaegertracing_plugin)
target_link_libraries(jaegertracing_plugin PUBLIC
-static-libgcc
-static-libstdc++
-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/export.map)
endif()

add_library(jaegertracing-static STATIC ${SRC})
target_include_directories(jaegertracing-static PUBLIC
Expand All @@ -252,17 +238,24 @@ configure_file(
set(CMAKE_INCLUDE_CURRENT_DIR ON)

if(BUILD_TESTING)
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/jaegertracing/testutils")
set(TEST_SRC
add_library(testutils
src/jaegertracing/testutils/TUDPTransport.cpp
src/jaegertracing/testutils/SamplingManager.cpp
src/jaegertracing/testutils/MockAgent.cpp
src/jaegertracing/testutils/TracerUtil.cpp)
target_link_libraries(testutils PUBLIC ${JAEGERTRACING_LIB})

add_executable(UnitTest
src/jaegertracing/ConfigTest.cpp
src/jaegertracing/DynamicLoadTest.cpp
src/jaegertracing/ReferenceTest.cpp
src/jaegertracing/SpanContextTest.cpp
src/jaegertracing/SpanTest.cpp
src/jaegertracing/TagTest.cpp
src/jaegertracing/TraceIDTest.cpp
src/jaegertracing/TracerTest.cpp
src/jaegertracing/TracerFactoryTest.cpp
src/jaegertracing/DynamicLoadTest.cpp
src/jaegertracing/TracerTest.cpp
src/jaegertracing/UDPTransportTest.cpp
src/jaegertracing/baggage/BaggageTest.cpp
src/jaegertracing/metrics/MetricsTest.cpp
Expand All @@ -277,12 +270,10 @@ if(BUILD_TESTING)
src/jaegertracing/reporters/ReporterTest.cpp
src/jaegertracing/samplers/SamplerTest.cpp
src/jaegertracing/testutils/MockAgentTest.cpp
src/jaegertracing/testutils/TracerUtil.cpp
src/jaegertracing/testutils/TUDPTransportTest.cpp
src/jaegertracing/utils/ErrorUtilTest.cpp
src/jaegertracing/utils/RateLimiterTest.cpp
src/jaegertracing/utils/UDPClientTest.cpp)
add_executable(UnitTest ${TEST_SRC})
target_compile_definitions(UnitTest PUBLIC
GTEST_HAS_TR1_TUPLE=0
GTEST_USE_OWN_TR1_TUPLE=0)
Expand All @@ -304,6 +295,40 @@ if(BUILD_TESTING)
endif()
endif()

if(JAEGERTRACING_BUILD_CROSSDOCK)
set(CROSSDOCK_SRC crossdock/Server.cpp)
add_executable(crossdock ${CROSSDOCK_SRC})
target_include_directories(crossdock PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/crossdock>)
target_link_libraries(crossdock PUBLIC ${JAEGERTRACING_LIB})

set(JAEGER_CROSSDOCK_URL
"https://raw.githubusercontent.com/jaegertracing/jaeger/master/docker-compose/\
jaeger-docker-compose.yml")
file(DOWNLOAD ${JAEGER_CROSSDOCK_URL}
"${CMAKE_CURRENT_SOURCE_DIR}/crossdock/jaeger-docker-compose.yml")
find_program(DOCKER_COMPOSE_EXE docker-compose REQUIRED)
set(DOCKER_COMPOSE_CMD ${DOCKER_COMPOSE_EXE}
-f ${CMAKE_CURRENT_SOURCE_DIR}/crossdock/docker-compose.yml
-f ${CMAKE_CURRENT_SOURCE_DIR}/crossdock/jaeger-docker-compose.yml)
add_custom_target(crossdock-kill
COMMAND ${DOCKER_COMPOSE_CMD} kill
COMMAND ${DOCKER_COMPOSE_CMD} rm --force)
add_custom_target(crossdock-run
COMMAND ${DOCKER_COMPOSE_CMD} build
COMMAND ${DOCKER_COMPOSE_CMD} run crossdock
DEPENDS crossdock-kill)
add_custom_target(crossdock-fresh
COMMAND ${DOCKER_COMPOSE_CMD} pull
COMMAND ${DOCKER_COMPOSE_CMD} build
COMMAND ${DOCKER_COMPOSE_CMD} run crossdock
DEPENDS crossdock-kill)
add_custom_target(crossdock-logs
COMMAND ${DOCKER_COMPOSE_CMD} logs)
endif()



# Installation (https://github.com/forexample/package-example)

# Layout. This works for all platforms:
Expand Down
1 change: 0 additions & 1 deletion cmake/Hunter/config.cmake

This file was deleted.

12 changes: 7 additions & 5 deletions crossdock/Server.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017 Uber Technologies, Inc.
* Copyright (c) 2017-2018 Uber Technologies, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -90,7 +90,8 @@ void from_json(const nlohmann::json& json, Downstream& downstream)
downstream.__set_transport(json.at("transport").get<Transport::type>());
auto itr = json.find("downstream");
if (itr != std::end(json) && !itr->is_null()) {
downstream.__set_downstream(itr->get<Downstream>());
downstream.__set_downstream(
std::make_shared<Downstream>(itr->get<Downstream>()));
}
}

Expand Down Expand Up @@ -160,7 +161,8 @@ void from_json(const nlohmann::json& json, TraceResponse& response)
}
itr = json.find("downstream");
if (itr != std::end(json) && !itr->is_null()) {
response.__set_downstream(itr->get<TraceResponse>());
response.__set_downstream(
std::make_shared<TraceResponse>(itr->get<TraceResponse>()));
}
FIELD_FROM_JSON(response, notImplementedError);
}
Expand Down Expand Up @@ -346,8 +348,8 @@ thrift::TraceResponse prepareResponse(const opentracing::SpanContext& ctx,
thrift::TraceResponse response;
response.__set_span(observedSpan);
if (downstream) {
response.__set_downstream(
callDownstream(ctx, role, *downstream, tracer, logger));
response.__set_downstream(std::make_shared<thrift::TraceResponse>(
callDownstream(ctx, role, *downstream, tracer, logger)));
}
return response;
}
Expand Down
2 changes: 1 addition & 1 deletion idl
Submodule idl updated from 6710b7 to 95d855
115 changes: 115 additions & 0 deletions scripts/thrift-gen.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
diff --git a/src/jaegertracing/thrift-gen/tracetest_types.cpp b/src/jaegertracing/thrift-gen/tracetest_types.cpp
index cb7199e..ceb7a20 100644
--- a/src/jaegertracing/thrift-gen/tracetest_types.cpp
+++ b/src/jaegertracing/thrift-gen/tracetest_types.cpp
@@ -60,7 +60,7 @@ void Downstream::__set_transport(const Transport::type val) {
this->transport = val;
}

-void Downstream::__set_downstream(const Downstream& val) {
+void Downstream::__set_downstream(const std::shared_ptr<Downstream>& val) {
this->downstream = val;
__isset.downstream = true;
}
@@ -141,7 +141,7 @@ uint32_t Downstream::read(::apache::thrift::protocol::TProtocol* iprot) {
break;
case 6:
if (ftype == ::apache::thrift::protocol::T_STRUCT) {
- xfer += this->downstream.read(iprot);
+ xfer += this->downstream->read(iprot);
this->__isset.downstream = true;
} else {
xfer += iprot->skip(ftype);
@@ -196,7 +196,7 @@ uint32_t Downstream::write(::apache::thrift::protocol::TProtocol* oprot) const {

if (this->__isset.downstream) {
xfer += oprot->writeFieldBegin("downstream", ::apache::thrift::protocol::T_STRUCT, 6);
- xfer += this->downstream.write(oprot);
+ xfer += this->downstream->write(oprot);
xfer += oprot->writeFieldEnd();
}
xfer += oprot->writeFieldStop();
@@ -672,7 +672,7 @@ void TraceResponse::__set_span(const ObservedSpan& val) {
__isset.span = true;
}

-void TraceResponse::__set_downstream(const TraceResponse& val) {
+void TraceResponse::__set_downstream(const std::shared_ptr<TraceResponse>& val) {
this->downstream = val;
__isset.downstream = true;
}
@@ -719,7 +719,7 @@ uint32_t TraceResponse::read(::apache::thrift::protocol::TProtocol* iprot) {
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_STRUCT) {
- xfer += this->downstream.read(iprot);
+ xfer += this->downstream->read(iprot);
this->__isset.downstream = true;
} else {
xfer += iprot->skip(ftype);
@@ -759,7 +759,7 @@ uint32_t TraceResponse::write(::apache::thrift::protocol::TProtocol* oprot) cons
}
if (this->__isset.downstream) {
xfer += oprot->writeFieldBegin("downstream", ::apache::thrift::protocol::T_STRUCT, 2);
- xfer += this->downstream.write(oprot);
+ xfer += this->downstream->write(oprot);
xfer += oprot->writeFieldEnd();
}
xfer += oprot->writeFieldBegin("notImplementedError", ::apache::thrift::protocol::T_STRING, 3);
diff --git a/src/jaegertracing/thrift-gen/tracetest_types.h b/src/jaegertracing/thrift-gen/tracetest_types.h
index 5a0e6c9..a44f3a3 100644
--- a/src/jaegertracing/thrift-gen/tracetest_types.h
+++ b/src/jaegertracing/thrift-gen/tracetest_types.h
@@ -61,7 +61,7 @@ class Downstream : public virtual ::apache::thrift::TBase {
std::string host;
std::string port;
Transport::type transport;
- Downstream downstream;
+ std::shared_ptr<Downstream> downstream;

_Downstream__isset __isset;

@@ -75,7 +75,7 @@ class Downstream : public virtual ::apache::thrift::TBase {

void __set_transport(const Transport::type val);

- void __set_downstream(const Downstream& val);
+ void __set_downstream(const std::shared_ptr<Downstream>& val);

bool operator == (const Downstream & rhs) const
{
@@ -91,7 +91,7 @@ class Downstream : public virtual ::apache::thrift::TBase {
return false;
if (__isset.downstream != rhs.__isset.downstream)
return false;
- else if (__isset.downstream && !(downstream == rhs.downstream))
+ else if (__isset.downstream && !(*downstream == *rhs.downstream))
return false;
return true;
}
@@ -273,14 +273,14 @@ class TraceResponse : public virtual ::apache::thrift::TBase {

virtual ~TraceResponse() throw();
ObservedSpan span;
- TraceResponse downstream;
+ std::shared_ptr<TraceResponse> downstream;
std::string notImplementedError;

_TraceResponse__isset __isset;

void __set_span(const ObservedSpan& val);

- void __set_downstream(const TraceResponse& val);
+ void __set_downstream(const std::shared_ptr<TraceResponse>& val);

void __set_notImplementedError(const std::string& val);

@@ -292,7 +292,7 @@ class TraceResponse : public virtual ::apache::thrift::TBase {
return false;
if (__isset.downstream != rhs.__isset.downstream)
return false;
- else if (__isset.downstream && !(downstream == rhs.downstream))
+ else if (__isset.downstream && !(*downstream == *rhs.downstream))
return false;
if (!(notImplementedError == rhs.notImplementedError))
return false;
2 changes: 1 addition & 1 deletion src/jaegertracing/UDPTransport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ constexpr auto kEmitBatchOverhead = 30;
template <typename ThriftType>
int calcSizeOfSerializedThrift(const ThriftType& base, int maxPacketSize)
{
boost::shared_ptr<apache::thrift::transport::TMemoryBuffer> buffer(
std::shared_ptr<apache::thrift::transport::TMemoryBuffer> buffer(
new apache::thrift::transport::TMemoryBuffer(maxPacketSize));
apache::thrift::protocol::TCompactProtocolFactory factory;
auto protocol = factory.getProtocol(buffer);
Expand Down
Loading

0 comments on commit b1940ac

Please sign in to comment.