From 4ee83ecd31c7936f8b1c1cde1c6eb794d0246054 Mon Sep 17 00:00:00 2001 From: owent Date: Tue, 25 Mar 2025 12:06:19 +0800 Subject: [PATCH 1/2] Remove gRPC header including in `OtlpGrpcClientFactory`. --- .../exporters/otlp/otlp_grpc_client_factory.h | 4 +++- exporters/otlp/test/otlp_grpc_exporter_factory_test.cc | 9 +++++++++ .../test/otlp_grpc_log_record_exporter_factory_test.cc | 9 +++++++++ .../otlp/test/otlp_grpc_metric_exporter_factory_test.cc | 9 +++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h index 133f4643e0..b21e6c9b64 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h @@ -5,7 +5,6 @@ #include -#include "opentelemetry/exporters/otlp/otlp_grpc_client.h" #include "opentelemetry/exporters/otlp/otlp_grpc_client_options.h" #include "opentelemetry/version.h" @@ -15,6 +14,9 @@ namespace exporter namespace otlp { +class OtlpGrpcClient; +class OtlpGrpcClientReferenceGuard; + /** * Factory class for OtlpGrpcClient. */ diff --git a/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc b/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc index 8885c3e947..e77b0f1d91 100644 --- a/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc @@ -18,6 +18,15 @@ Implementation, this requires protobuf. */ #include "opentelemetry/exporters/otlp/otlp_grpc_client_factory.h" + +/* + Make sure OtlpGrpcClientFactory does not require, + even indirectly, gRPC headers. +*/ +#if defined(GRPC_CPP_VERSION_MAJOR) || defined(GRPC_CPP_VERSION_STRING) +# error "gRPC should not be included" +#endif + #include "opentelemetry/exporters/otlp/otlp_grpc_exporter.h" OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc b/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc index 8e8261334c..36cd7780de 100644 --- a/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc @@ -18,6 +18,15 @@ Implementation, this requires protobuf. */ #include "opentelemetry/exporters/otlp/otlp_grpc_client_factory.h" + +/* + Make sure OtlpGrpcClientFactory does not require, + even indirectly, gRPC headers. +*/ +#if defined(GRPC_CPP_VERSION_MAJOR) || defined(GRPC_CPP_VERSION_STRING) +# error "gRPC should not be included" +#endif + #include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter.h" OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc b/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc index 76af86b1bb..e7c9382994 100644 --- a/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc @@ -18,6 +18,15 @@ Implementation, this requires protobuf. */ #include "opentelemetry/exporters/otlp/otlp_grpc_client_factory.h" + +/* + Make sure OtlpGrpcClientFactory does not require, + even indirectly, gRPC headers. +*/ +#if defined(GRPC_CPP_VERSION_MAJOR) || defined(GRPC_CPP_VERSION_STRING) +# error "gRPC should not be included" +#endif + #include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter.h" OPENTELEMETRY_BEGIN_NAMESPACE From 84d1a558e09186f21207bd02ce6c37c3cb73fa68 Mon Sep 17 00:00:00 2001 From: owent Date: Tue, 25 Mar 2025 14:16:58 +0800 Subject: [PATCH 2/2] Fixes IWYU issues. --- .../opentelemetry/exporters/otlp/otlp_grpc_client_factory.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h index b21e6c9b64..fb96db0939 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_factory.h @@ -5,6 +5,7 @@ #include +// IWYU pragma: no_include "opentelemetry/exporters/otlp/otlp_grpc_client.h" #include "opentelemetry/exporters/otlp/otlp_grpc_client_options.h" #include "opentelemetry/version.h" @@ -14,8 +15,8 @@ namespace exporter namespace otlp { -class OtlpGrpcClient; -class OtlpGrpcClientReferenceGuard; +class OtlpGrpcClient; // IWYU pragma: keep +class OtlpGrpcClientReferenceGuard; // IWYU pragma: keep /** * Factory class for OtlpGrpcClient.