From 8f274d6f2369329209cd5d88f42006e27d3796c2 Mon Sep 17 00:00:00 2001 From: Lalit Bhasin Date: Thu, 26 Aug 2021 15:46:15 -0700 Subject: [PATCH 1/4] move baggage context api in separate header --- .../opentelemetry/baggage/baggage_context.h | 36 ++++++++++++++++++ .../baggage/propagation/baggage_propagator.h | 38 +++++-------------- .../propagation/baggage_propagator_test.cc | 9 +++-- 3 files changed, 51 insertions(+), 32 deletions(-) create mode 100644 api/include/opentelemetry/baggage/baggage_context.h diff --git a/api/include/opentelemetry/baggage/baggage_context.h b/api/include/opentelemetry/baggage/baggage_context.h new file mode 100644 index 0000000000..bd217a60c1 --- /dev/null +++ b/api/include/opentelemetry/baggage/baggage_context.h @@ -0,0 +1,36 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/baggage/baggage.h" +#include "opentelemetry/nostd/shared_ptr.h" +#include "opentelemetry/context/context.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE + +namespace baggage +{ + +static const std::string kBaggageHeader = "baggage"; + +inline nostd::shared_ptr GetBaggage(const opentelemetry::context::Context &context) +{ + context::ContextValue context_value = context.GetValue(kBaggageHeader); + if (nostd::holds_alternative>(context_value)) + { + return nostd::get>(context_value); + } + static nostd::shared_ptr empty_baggage{new opentelemetry::baggage::Baggage()}; + return empty_baggage; +} + +inline context::Context SetBaggage(opentelemetry::context::Context &context, + nostd::shared_ptr baggage) +{ + return context.SetValue(kBaggageHeader, baggage); +} + +} +OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/baggage/propagation/baggage_propagator.h b/api/include/opentelemetry/baggage/propagation/baggage_propagator.h index aa669dd1d9..64d4d9e1ad 100644 --- a/api/include/opentelemetry/baggage/propagation/baggage_propagator.h +++ b/api/include/opentelemetry/baggage/propagation/baggage_propagator.h @@ -1,6 +1,7 @@ #pragma once #include "opentelemetry/baggage/baggage.h" +#include "opentelemetry/baggage/baggage_context.h" #include "opentelemetry/context/propagation/text_map_propagator.h" #include "opentelemetry/version.h" @@ -10,41 +11,22 @@ namespace baggage namespace propagation { -static const nostd::string_view kBaggageHeader = "baggage"; - -inline nostd::shared_ptr GetBaggage(const context::Context &context) -{ - context::ContextValue context_value = context.GetValue(kBaggageHeader); - if (nostd::holds_alternative>(context_value)) - { - return nostd::get>(context_value); - } - static nostd::shared_ptr empty_baggage{new baggage::Baggage()}; - return empty_baggage; -} - -inline context::Context SetBaggage(context::Context &context, - nostd::shared_ptr baggage) -{ - return context.SetValue(kBaggageHeader, baggage); -} - -class BaggagePropagator : public context::propagation::TextMapPropagator +class BaggagePropagator : public opentelemetry::context::propagation::TextMapPropagator { public: - void Inject(context::propagation::TextMapCarrier &carrier, - const context::Context &context) noexcept override + void Inject(opentelemetry::context::propagation::TextMapCarrier &carrier, + const opentelemetry::context::Context &context) noexcept override { - auto baggage = GetBaggage(context); + auto baggage = opentelemetry::baggage::GetBaggage(context); carrier.Set(kBaggageHeader, baggage->ToHeader()); } - context::Context Extract(const context::propagation::TextMapCarrier &carrier, - context::Context &context) noexcept override + context::Context Extract(const opentelemetry::context::propagation::TextMapCarrier &carrier, + opentelemetry::context::Context &context) noexcept override { - nostd::string_view baggage_str = carrier.Get(kBaggageHeader); - auto baggage = Baggage::FromHeader(baggage_str); - return SetBaggage(context, baggage); + nostd::string_view baggage_str = carrier.Get(opentelemetry::baggage::kBaggageHeader); + auto baggage = opentelemetry::baggage::Baggage::FromHeader(baggage_str); + return opentelemetry::baggage::SetBaggage(context, baggage); } bool Fields(nostd::function_ref callback) const noexcept override diff --git a/api/test/baggage/propagation/baggage_propagator_test.cc b/api/test/baggage/propagation/baggage_propagator_test.cc index ad54c841ae..d735c787e2 100644 --- a/api/test/baggage/propagation/baggage_propagator_test.cc +++ b/api/test/baggage/propagation/baggage_propagator_test.cc @@ -1,4 +1,5 @@ #include "opentelemetry/baggage/propagation/baggage_propagator.h" +#include "opentelemetry/baggage/baggage_context.h" #include #include #include @@ -35,7 +36,7 @@ TEST(BaggagePropagatorTest, ExtractNoBaggageHeader) carrier.headers_ = {}; context::Context ctx1 = context::Context{}; context::Context ctx2 = format.Extract(carrier, ctx1); - auto ctx2_baggage = baggage::propagation::GetBaggage(ctx2); + auto ctx2_baggage = baggage::GetBaggage(ctx2); EXPECT_EQ(ctx2_baggage->ToHeader(), ""); } @@ -60,13 +61,13 @@ TEST(BaggagePropagatorTest, ExtractAndInjectBaggage) for (auto baggage : baggages) { BaggageCarrierTest carrier1; - carrier1.headers_[kBaggageHeader.data()] = baggage.first; + carrier1.headers_[baggage::kBaggageHeader.data()] = baggage.first; context::Context ctx1 = context::Context{}; context::Context ctx2 = format.Extract(carrier1, ctx1); BaggageCarrierTest carrier2; format.Inject(carrier2, ctx2); - EXPECT_EQ(carrier2.headers_[kBaggageHeader.data()], baggage.second); + EXPECT_EQ(carrier2.headers_[baggage::kBaggageHeader.data()], baggage.second); std::vector fields; format.Fields([&fields](nostd::string_view field) { @@ -74,6 +75,6 @@ TEST(BaggagePropagatorTest, ExtractAndInjectBaggage) return true; }); EXPECT_EQ(fields.size(), 1); - EXPECT_EQ(fields[0], kBaggageHeader.data()); + EXPECT_EQ(fields[0], baggage::kBaggageHeader.data()); } } From 2acf77ea1d04a05b03187ef06bc9455601cf7ccc Mon Sep 17 00:00:00 2001 From: Lalit Date: Thu, 26 Aug 2021 22:49:59 +0000 Subject: [PATCH 2/4] fix format --- api/include/opentelemetry/baggage/baggage_context.h | 10 ++++++---- .../baggage/propagation/baggage_propagator_test.cc | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/api/include/opentelemetry/baggage/baggage_context.h b/api/include/opentelemetry/baggage/baggage_context.h index bd217a60c1..b2b61703f8 100644 --- a/api/include/opentelemetry/baggage/baggage_context.h +++ b/api/include/opentelemetry/baggage/baggage_context.h @@ -4,8 +4,8 @@ #pragma once #include "opentelemetry/baggage/baggage.h" -#include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/context/context.h" +#include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE @@ -15,14 +15,16 @@ namespace baggage static const std::string kBaggageHeader = "baggage"; -inline nostd::shared_ptr GetBaggage(const opentelemetry::context::Context &context) +inline nostd::shared_ptr GetBaggage( + const opentelemetry::context::Context &context) { context::ContextValue context_value = context.GetValue(kBaggageHeader); if (nostd::holds_alternative>(context_value)) { return nostd::get>(context_value); } - static nostd::shared_ptr empty_baggage{new opentelemetry::baggage::Baggage()}; + static nostd::shared_ptr empty_baggage{ + new opentelemetry::baggage::Baggage()}; return empty_baggage; } @@ -32,5 +34,5 @@ inline context::Context SetBaggage(opentelemetry::context::Context &context, return context.SetValue(kBaggageHeader, baggage); } -} +} // namespace baggage OPENTELEMETRY_END_NAMESPACE diff --git a/api/test/baggage/propagation/baggage_propagator_test.cc b/api/test/baggage/propagation/baggage_propagator_test.cc index d735c787e2..ebf315b375 100644 --- a/api/test/baggage/propagation/baggage_propagator_test.cc +++ b/api/test/baggage/propagation/baggage_propagator_test.cc @@ -1,8 +1,8 @@ #include "opentelemetry/baggage/propagation/baggage_propagator.h" -#include "opentelemetry/baggage/baggage_context.h" #include #include #include +#include "opentelemetry/baggage/baggage_context.h" using namespace opentelemetry; using namespace opentelemetry::baggage::propagation; @@ -62,8 +62,8 @@ TEST(BaggagePropagatorTest, ExtractAndInjectBaggage) { BaggageCarrierTest carrier1; carrier1.headers_[baggage::kBaggageHeader.data()] = baggage.first; - context::Context ctx1 = context::Context{}; - context::Context ctx2 = format.Extract(carrier1, ctx1); + context::Context ctx1 = context::Context{}; + context::Context ctx2 = format.Extract(carrier1, ctx1); BaggageCarrierTest carrier2; format.Inject(carrier2, ctx2); From 4d1eaa0afa3d5d8cee8efe9bba3d0770af9bfe64 Mon Sep 17 00:00:00 2001 From: Lalit Date: Thu, 26 Aug 2021 22:55:25 +0000 Subject: [PATCH 3/4] add license header --- api/test/baggage/propagation/baggage_propagator_test.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api/test/baggage/propagation/baggage_propagator_test.cc b/api/test/baggage/propagation/baggage_propagator_test.cc index ebf315b375..641cc9cbb1 100644 --- a/api/test/baggage/propagation/baggage_propagator_test.cc +++ b/api/test/baggage/propagation/baggage_propagator_test.cc @@ -1,8 +1,13 @@ + +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#include "opentelemetry/baggage/baggage_context.h" #include "opentelemetry/baggage/propagation/baggage_propagator.h" #include #include #include -#include "opentelemetry/baggage/baggage_context.h" + using namespace opentelemetry; using namespace opentelemetry::baggage::propagation; From 938f79f0fd1a049bfba3c45ff62e42ec3ef93b3e Mon Sep 17 00:00:00 2001 From: Lalit Date: Thu, 26 Aug 2021 22:57:47 +0000 Subject: [PATCH 4/4] add copyright --- .../opentelemetry/baggage/propagation/baggage_propagator.h | 5 ++++- api/test/baggage/propagation/baggage_propagator_test.cc | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/api/include/opentelemetry/baggage/propagation/baggage_propagator.h b/api/include/opentelemetry/baggage/propagation/baggage_propagator.h index 64d4d9e1ad..11abd3107e 100644 --- a/api/include/opentelemetry/baggage/propagation/baggage_propagator.h +++ b/api/include/opentelemetry/baggage/propagation/baggage_propagator.h @@ -1,3 +1,6 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + #pragma once #include "opentelemetry/baggage/baggage.h" @@ -36,4 +39,4 @@ class BaggagePropagator : public opentelemetry::context::propagation::TextMapPro }; } // namespace propagation } // namespace baggage -OPENTELEMETRY_END_NAMESPACE \ No newline at end of file +OPENTELEMETRY_END_NAMESPACE diff --git a/api/test/baggage/propagation/baggage_propagator_test.cc b/api/test/baggage/propagation/baggage_propagator_test.cc index 641cc9cbb1..0f1f8f338c 100644 --- a/api/test/baggage/propagation/baggage_propagator_test.cc +++ b/api/test/baggage/propagation/baggage_propagator_test.cc @@ -2,12 +2,11 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -#include "opentelemetry/baggage/baggage_context.h" #include "opentelemetry/baggage/propagation/baggage_propagator.h" #include #include #include - +#include "opentelemetry/baggage/baggage_context.h" using namespace opentelemetry; using namespace opentelemetry::baggage::propagation;