Skip to content

Commit e695df4

Browse files
authored
refactor(dataplex): versioned clients (#10896)
1 parent 9d7e6e5 commit e695df4

107 files changed

Lines changed: 4211 additions & 3547 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
1.22 KB
Binary file not shown.

ci/etc/expected_install_directories

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,10 @@
185185
./include/google/cloud/datamigration/internal
186186
./include/google/cloud/datamigration/mocks
187187
./include/google/cloud/dataplex
188-
./include/google/cloud/dataplex/internal
189188
./include/google/cloud/dataplex/mocks
190189
./include/google/cloud/dataplex/v1
190+
./include/google/cloud/dataplex/v1/internal
191+
./include/google/cloud/dataplex/v1/mocks
191192
./include/google/cloud/dataproc
192193
./include/google/cloud/dataproc/internal
193194
./include/google/cloud/dataproc/mocks

generator/generator_config.textproto

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -491,21 +491,24 @@ service {
491491
# Dataplex
492492
service {
493493
service_proto_path: "google/cloud/dataplex/v1/content.proto"
494-
product_path: "google/cloud/dataplex"
494+
product_path: "google/cloud/dataplex/v1"
495+
forwarding_product_path: "google/cloud/dataplex"
495496
initial_copyright_year: "2022"
496497
retryable_status_codes: ["kUnavailable"]
497498
}
498499

499500
service {
500501
service_proto_path: "google/cloud/dataplex/v1/metadata.proto"
501-
product_path: "google/cloud/dataplex"
502+
product_path: "google/cloud/dataplex/v1"
503+
forwarding_product_path: "google/cloud/dataplex"
502504
initial_copyright_year: "2022"
503505
retryable_status_codes: ["kUnavailable"]
504506
}
505507

506508
service {
507509
service_proto_path: "google/cloud/dataplex/v1/service.proto"
508-
product_path: "google/cloud/dataplex"
510+
product_path: "google/cloud/dataplex/v1"
511+
forwarding_product_path: "google/cloud/dataplex"
509512
initial_copyright_year: "2022"
510513
retryable_status_codes: ["kUnavailable"]
511514
}

google/cloud/dataplex/BUILD.bazel

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,26 @@ package(default_visibility = ["//visibility:private"])
1616

1717
licenses(["notice"]) # Apache 2.0
1818

19+
service_dirs = [
20+
"",
21+
"v1/",
22+
]
23+
24+
src_dirs = service_dirs + [d + "internal/" for d in service_dirs]
25+
1926
filegroup(
2027
name = "srcs",
21-
srcs = glob([
22-
"*.cc",
23-
"internal/*.cc",
24-
]),
28+
srcs = glob([d + "*.cc" for d in src_dirs]),
2529
)
2630

2731
filegroup(
2832
name = "hdrs",
29-
srcs = glob([
30-
"*.h",
31-
"internal/*.h",
32-
]),
33+
srcs = glob([d + "*.h" for d in src_dirs]),
3334
)
3435

3536
filegroup(
3637
name = "mocks",
37-
srcs = glob(["mocks/*.h"]),
38+
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
3839
)
3940

4041
cc_library(
@@ -58,3 +59,13 @@ cc_library(
5859
"@com_google_googletest//:gtest",
5960
],
6061
)
62+
63+
[cc_test(
64+
name = sample.replace("/", "_").replace(".cc", ""),
65+
srcs = [sample],
66+
tags = ["integration-test"],
67+
deps = [
68+
"//:dataplex",
69+
"//google/cloud/testing_util:google_cloud_cpp_testing_private",
70+
],
71+
) for sample in glob([d + "samples/*.cc" for d in service_dirs])]

google/cloud/dataplex/CMakeLists.txt

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,22 @@ include(GoogleapisConfig)
1818
set(DOXYGEN_PROJECT_NAME "Cloud Dataplex API C++ Client")
1919
set(DOXYGEN_PROJECT_BRIEF "A C++ Client Library for the Cloud Dataplex API")
2020
set(DOXYGEN_PROJECT_NUMBER "${PROJECT_VERSION}")
21-
set(DOXYGEN_EXCLUDE_SYMBOLS "internal" "dataplex_internal" "dataplex_testing"
22-
"examples")
23-
set(DOXYGEN_EXAMPLE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/samples
24-
${CMAKE_CURRENT_SOURCE_DIR}/quickstart)
21+
set(DOXYGEN_EXCLUDE_SYMBOLS "internal")
22+
set(DOXYGEN_EXAMPLE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/quickstart")
23+
24+
unset(mocks_globs)
25+
unset(source_globs)
26+
set(service_dirs "" "v1/")
27+
foreach (dir IN LISTS service_dirs)
28+
string(REPLACE "/" "_" ns "${dir}")
29+
list(APPEND source_globs "${dir}*.h" "${dir}*.cc" "${dir}internal/*")
30+
list(APPEND mocks_globs "${dir}mocks/*.h")
31+
list(APPEND DOXYGEN_EXCLUDE_SYMBOLS "dataplex_${ns}internal")
32+
if (NOT dir STREQUAL "")
33+
list(APPEND DOXYGEN_EXAMPLE_PATH
34+
"${CMAKE_CURRENT_SOURCE_DIR}/${dir}samples")
35+
endif ()
36+
endforeach ()
2537

2638
include(GoogleCloudCppDoxygen)
2739
google_cloud_cpp_doxygen_targets("dataplex" DEPENDS cloud-docs
@@ -47,7 +59,7 @@ target_link_libraries(google_cloud_cpp_dataplex_protos PUBLIC ${proto_deps})
4759
file(
4860
GLOB source_files
4961
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
50-
"*.h" "*.cc" "internal/*.h" "internal/*.cc")
62+
${source_globs})
5163
list(SORT source_files)
5264
add_library(google_cloud_cpp_dataplex ${source_files})
5365
target_include_directories(
@@ -77,7 +89,7 @@ add_library(google-cloud-cpp::dataplex ALIAS google_cloud_cpp_dataplex)
7789
file(
7890
GLOB relative_mock_files
7991
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
80-
"mocks/*.h")
92+
${mocks_globs})
8193
list(SORT relative_mock_files)
8294
set(mock_files)
8395
foreach (file IN LISTS relative_mock_files)
@@ -179,3 +191,10 @@ install(
179191
COMPONENT google_cloud_cpp_development)
180192

181193
external_googleapis_install_pc("google_cloud_cpp_dataplex_protos")
194+
195+
# google-cloud-cpp::dataplex must be defined before we can add the samples.
196+
foreach (dir IN LISTS service_dirs)
197+
if (BUILD_TESTING AND GOOGLE_CLOUD_CPP_ENABLE_CXX_EXCEPTIONS)
198+
google_cloud_cpp_add_samples_relative("dataplex" "${dir}samples/")
199+
endif ()
200+
endforeach ()

0 commit comments

Comments
 (0)