From a7f52977fcd2cfcde694dc731a83f4eca6d2ec1a Mon Sep 17 00:00:00 2001 From: WenTao Ou Date: Tue, 25 Mar 2025 23:36:54 +0800 Subject: [PATCH] [BUILD] Remove gRPC header including in `OtlpGrpcClientFactory`. (#3321) --- .../exporters/otlp/otlp_grpc_client_factory.h | 5 ++++- 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, 31 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..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,7 +5,7 @@ #include -#include "opentelemetry/exporters/otlp/otlp_grpc_client.h" +// IWYU pragma: no_include "opentelemetry/exporters/otlp/otlp_grpc_client.h" #include "opentelemetry/exporters/otlp/otlp_grpc_client_options.h" #include "opentelemetry/version.h" @@ -15,6 +15,9 @@ namespace exporter namespace otlp { +class OtlpGrpcClient; // IWYU pragma: keep +class OtlpGrpcClientReferenceGuard; // IWYU pragma: keep + /** * 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