Skip to content

Commit 6f7bdd7

Browse files
[Refactor] Consolidate built-in connector registration
Signed-off-by: alvin-phoenix-ai <alvin.zhao@phoenixdata.ai>
1 parent 5b19572 commit 6f7bdd7

11 files changed

Lines changed: 17 additions & 127 deletions

be/AGENTS.md

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -284,18 +284,11 @@ Reusable connector sink/file-writer helpers above connector contracts, including
284284
- Core tests: `connector_common_test`
285285
- Remediation: Keep ConnectorCommon limited to reusable connector sink/file-writer helpers expressed through connector contracts and compute/runtime lower layers; move concrete connectors, registry wiring, service, HTTP, storage-engine-specific behavior, and full Exec integration upward.
286286

287-
### ConnectorBuiltinRegistry (`connectorbuiltinregistry`)
288-
Top-level built-in connector registration composition above connector contracts and concrete connector libraries.
289-
- Targets: `ConnectorBuiltinRegistry`
290-
- Allowed internal include prefixes: `connector/builtin_connector_registry.h`, `connector/`, `common/`, `base/`, `gutil/`, `gen_cpp/`
291-
- Allowed target deps: `Connector`, `ConnectorFile`, `ConnectorPrimitive`, `Common`, `Base`, `Gutil`, `StarRocksGen`
292-
- Remediation: Keep legacy built-in connector registration as top-level composition for unsplit connector libraries; split connector libraries register through ModuleBootstrap instead of depending back on this target.
293-
294287
### ModuleBootstrap (`modulebootstrap`)
295-
Default BE module bootstrap composition for built-in module registration, including filesystem provider registry installation and split connector registration.
288+
Default BE module bootstrap composition for built-in module registration, including filesystem provider registry installation and connector registration.
296289
- Targets: `ModuleBootstrap`
297-
- Allowed internal include prefixes: `module/`, `connector/benchmark/`, `connector/cache_stats/`, `connector/hive/`, `connector/iceberg/`, `connector/lake/`, `connector/jdbc/`, `connector/elasticsearch/`, `connector/mysql/`, `connector_primitive/`, `connector/connector_registry.h`, `fs/`, `fs_ext/hdfs/`, `compute_env/staros/starlet_filesystem.h`, `common/`, `base/`, `gutil/`, `gen_cpp/`
298-
- Allowed target deps: `FileSystem`, `HdfsFileSystem`, `ComputeEnv`, `Connector`, `ConnectorHive`, `ConnectorIceberg`, `ConnectorLake`, `ConnectorBenchmark`, `ConnectorCacheStats`, `ConnectorJDBC`, `ConnectorElasticsearch`, `ConnectorMySQL`, `ConnectorPrimitive`, `Common`, `Base`, `Gutil`, `StarRocksGen`
290+
- Allowed internal include prefixes: `module/`, `connector/benchmark/`, `connector/cache_stats/`, `connector/file/`, `connector/hive/`, `connector/iceberg/`, `connector/lake/`, `connector/jdbc/`, `connector/elasticsearch/`, `connector/mysql/`, `connector_primitive/`, `connector/connector_registry.h`, `fs/`, `fs_ext/hdfs/`, `compute_env/staros/starlet_filesystem.h`, `common/`, `base/`, `gutil/`, `gen_cpp/`
291+
- Allowed target deps: `FileSystem`, `HdfsFileSystem`, `ComputeEnv`, `Connector`, `ConnectorFile`, `ConnectorHive`, `ConnectorIceberg`, `ConnectorLake`, `ConnectorBenchmark`, `ConnectorCacheStats`, `ConnectorJDBC`, `ConnectorElasticsearch`, `ConnectorMySQL`, `ConnectorPrimitive`, `Common`, `Base`, `Gutil`, `StarRocksGen`
299292
- Core tests: `module_bootstrap_test`
300293
- Remediation: Keep ModuleBootstrap as top-level default module composition; module implementations should expose registration hooks here instead of depending on service startup directly.
301294

@@ -335,15 +328,15 @@ Orchestration layer below Service for query, fragment, and ingestion lifecycle e
335328
Diagnostic script execution and command dispatch layer below Service, HttpService, Tools, and AgentServer, and above the remaining reusable BE modules.
336329
- Targets: `Script`
337330
- Allowed internal include prefixes: `script/`, `base/`, `cache/`, `column/`, `common/`, `connector/`, `compute_env/`, `data_workflows/`, `exec/`, `exec_primitive/`, `exprs/`, `formats/`, `fs/`, `gen_cpp/`, `geo/`, `gutil/`, `io/`, `orchestration/`, `platform/`, `runtime/`, `storage/`, `storage_primitive/`, `types/`
338-
- Allowed target deps: `Base`, `Gutil`, `Common`, `Cache`, `IO`, `FileSystem`, `Platform`, `Types`, `ColumnCore`, `ChunkCore`, `ColumnSortCore`, `Runtime`, `Runtime`, `Runtime`, `Formats`, `StoragePrimitive`, `StorageBase`, `Storage`, `ComputeEnv`, `DataWorkflows`, `Expr`, `ExprDict`, `ExprTableFunction`, `ExprUtility`, `ExecPrimitive`, `ExecRuntime`, `ExecSchemaScannerCore`, `ExecSchemaScanners`, `ExecJoinCore`, `Exec`, `ConnectorPrimitive`, `Connector`, `ConnectorBenchmark`, `ConnectorCacheStats`, `ConnectorElasticsearch`, `ConnectorMySQL`, `ConnectorBuiltinRegistry`, `Orchestration`, `Geo`, `StarRocksGen`
331+
- Allowed target deps: `Base`, `Gutil`, `Common`, `Cache`, `IO`, `FileSystem`, `Platform`, `Types`, `ColumnCore`, `ChunkCore`, `ColumnSortCore`, `Runtime`, `Runtime`, `Runtime`, `Formats`, `StoragePrimitive`, `StorageBase`, `Storage`, `ComputeEnv`, `DataWorkflows`, `Expr`, `ExprDict`, `ExprTableFunction`, `ExprUtility`, `ExecPrimitive`, `ExecRuntime`, `ExecSchemaScannerCore`, `ExecSchemaScanners`, `ExecJoinCore`, `Exec`, `ConnectorPrimitive`, `Connector`, `ConnectorBenchmark`, `ConnectorCacheStats`, `ConnectorElasticsearch`, `ConnectorMySQL`, `Orchestration`, `Geo`, `StarRocksGen`
339332
- Core tests: `script_test`
340333
- Remediation: Keep Script below Service, HttpService, Tools, and AgentServer; lower reusable behavior can live in lower BE modules that Script is allowed to depend on.
341334

342335
### Service (`service`)
343336
Shared service-layer target above Script, runtime, cache, compute, and AgentServer without owning ServiceBE bootstrap code.
344337
- Targets: `Service`
345338
- Allowed internal include prefixes: `service/`, `script/`, `agent/`, `base/`, `cache/`, `column/`, `common/`, `connector/`, `compute_env/`, `exec/`, `exec_primitive/`, `exprs/`, `formats/`, `fs/`, `gen_cpp/`, `gutil/`, `http/`, `io/`, `platform/`, `orchestration/`, `runtime/`, `storage/`, `storage_primitive/`, `types/`
346-
- Allowed target deps: `Script`, `Runtime`, `Orchestration`, `Runtime`, `Runtime`, `Cache`, `AgentServer`, `ComputeEnv`, `ExecRuntime`, `ExecPrimitive`, `Platform`, `Storage`, `StoragePrimitive`, `StorageBase`, `FileSystem`, `IO`, `HttpService`, `Common`, `Base`, `Gutil`, `StarRocksGen`, `Connector`, `ConnectorFile`, `ConnectorPrimitive`, `ConnectorBuiltinRegistry`, `Exec`, `Formats`, `ChunkCore`, `ColumnCore`, `Types`
339+
- Allowed target deps: `Script`, `Runtime`, `Orchestration`, `Runtime`, `Runtime`, `Cache`, `AgentServer`, `ComputeEnv`, `ExecRuntime`, `ExecPrimitive`, `Platform`, `Storage`, `StoragePrimitive`, `StorageBase`, `FileSystem`, `IO`, `HttpService`, `Common`, `Base`, `Gutil`, `StarRocksGen`, `Connector`, `ConnectorFile`, `ConnectorPrimitive`, `Exec`, `Formats`, `ChunkCore`, `ColumnCore`, `Types`
347340
- Remediation: Keep shared Service below ServiceBE and depend on checked module targets such as AgentServer instead of ad hoc lower-layer reach-through.
348341
<!-- END GENERATED: BE MODULE HARNESSES -->
349342

be/CMakeLists.txt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -550,14 +550,6 @@ set(STARROCKS_LINK_LIBS
550550
Orchestration
551551
DataWorkflows
552552
${WL_START_GROUP}
553-
Connector
554-
ConnectorLake
555-
ConnectorFile
556-
ConnectorHive
557-
ConnectorIceberg
558-
# Keep legacy connector registration in the static library group so its
559-
# concrete file connector registration is retained by static linking.
560-
ConnectorBuiltinRegistry
561553
Exec
562554
${WL_WHOLE_ARCHIVE_PREFIX} ${EXPR_EXTENSION_LIBS} ${WL_WHOLE_ARCHIVE_SUFFIX}
563555
${WL_END_GROUP}
@@ -890,7 +882,6 @@ endif()
890882
set (TEST_LINK_LIBS
891883
Orchestration
892884
${STARROCKS_LINK_LIBS}
893-
ConnectorBuiltinRegistry
894885
TestUtil
895886
${WL_START_GROUP}
896887
gmock

be/module_boundary_manifest.json

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,34 +1119,17 @@
11191119
"allowed_test_link_deps": ["ConnectorMySQL", "ConnectorPrimitive", "Expr", "Runtime", "ChunkCore", "ColumnCore", "Types", "Common", "Base", "Gutil", "StarRocksGen"],
11201120
"remediation": "Keep ConnectorMySQL limited to MySQL read-side scan and scanner logic; move registration into ModuleBootstrap and avoid pulling Connector, storage, service, or full Exec code into the connector library."
11211121
},
1122-
{
1123-
"id": "connectorbuiltinregistry",
1124-
"doc_label": "ConnectorBuiltinRegistry",
1125-
"summary": "Top-level built-in connector registration composition above connector contracts and concrete connector libraries.",
1126-
"owned_targets": ["ConnectorBuiltinRegistry"],
1127-
"additional_owned_globs": ["be/src/connector/builtin_connector_registry.h"],
1128-
"allowed_include_prefixes": [
1129-
"connector/builtin_connector_registry.h",
1130-
"connector/",
1131-
"common/",
1132-
"base/",
1133-
"gutil/",
1134-
"gen_cpp/"
1135-
],
1136-
"forbidden_include_prefixes": ["exec/", "runtime/", "storage/", "service/", "http/", "cache/", "util/"],
1137-
"allowed_target_deps": ["Connector", "ConnectorFile", "ConnectorPrimitive", "Common", "Base", "Gutil", "StarRocksGen"],
1138-
"remediation": "Keep legacy built-in connector registration as top-level composition for unsplit connector libraries; split connector libraries register through ModuleBootstrap instead of depending back on this target."
1139-
},
11401122
{
11411123
"id": "modulebootstrap",
11421124
"doc_label": "ModuleBootstrap",
1143-
"summary": "Default BE module bootstrap composition for built-in module registration, including filesystem provider registry installation and split connector registration.",
1125+
"summary": "Default BE module bootstrap composition for built-in module registration, including filesystem provider registry installation and connector registration.",
11441126
"owned_targets": ["ModuleBootstrap"],
11451127
"owned_roots": ["be/src/module"],
11461128
"allowed_include_prefixes": [
11471129
"module/",
11481130
"connector/benchmark/",
11491131
"connector/cache_stats/",
1132+
"connector/file/",
11501133
"connector/hive/",
11511134
"connector/iceberg/",
11521135
"connector/lake/",
@@ -1164,7 +1147,7 @@
11641147
"gen_cpp/"
11651148
],
11661149
"forbidden_include_prefixes": ["agent/", "cache/", "connector/", "data_workflows/", "exec/", "http/", "runtime/", "script/", "service/", "storage/", "util/"],
1167-
"allowed_target_deps": ["FileSystem", "HdfsFileSystem", "ComputeEnv", "Connector", "ConnectorHive", "ConnectorIceberg", "ConnectorLake", "ConnectorBenchmark", "ConnectorCacheStats", "ConnectorJDBC", "ConnectorElasticsearch", "ConnectorMySQL", "ConnectorPrimitive", "Common", "Base", "Gutil", "StarRocksGen"],
1150+
"allowed_target_deps": ["FileSystem", "HdfsFileSystem", "ComputeEnv", "Connector", "ConnectorFile", "ConnectorHive", "ConnectorIceberg", "ConnectorLake", "ConnectorBenchmark", "ConnectorCacheStats", "ConnectorJDBC", "ConnectorElasticsearch", "ConnectorMySQL", "ConnectorPrimitive", "Common", "Base", "Gutil", "StarRocksGen"],
11681151
"allowed_test_targets": ["module_bootstrap_test"],
11691152
"allowed_test_link_deps": ["ModuleBootstrap"],
11701153
"remediation": "Keep ModuleBootstrap as top-level default module composition; module implementations should expose registration hooks here instead of depending on service startup directly."
@@ -1331,7 +1314,6 @@
13311314
"ConnectorCacheStats",
13321315
"ConnectorElasticsearch",
13331316
"ConnectorMySQL",
1334-
"ConnectorBuiltinRegistry",
13351317
"Orchestration",
13361318
"Geo",
13371319
"StarRocksGen"
@@ -1397,7 +1379,6 @@
13971379
"Connector",
13981380
"ConnectorFile",
13991381
"ConnectorPrimitive",
1400-
"ConnectorBuiltinRegistry",
14011382
"Exec",
14021383
"Formats",
14031384
"ChunkCore",

be/src/connector/CMakeLists.txt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -319,16 +319,3 @@ if (WITH_CONNECTOR_JDBC)
319319
libxml2
320320
)
321321
endif()
322-
323-
ADD_BE_LIB(ConnectorBuiltinRegistry
324-
connector_registry_init.cpp
325-
)
326-
327-
target_link_libraries(ConnectorBuiltinRegistry PUBLIC
328-
Connector
329-
ConnectorFile
330-
Common
331-
Base
332-
Gutil
333-
StarRocksGen
334-
)

be/src/connector/builtin_connector_registry.h

Lines changed: 0 additions & 25 deletions
This file was deleted.

be/src/connector/connector_registry_init.cpp

Lines changed: 0 additions & 41 deletions
This file was deleted.

be/src/exec/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,4 +489,4 @@ ADD_BE_LIB(Exec
489489
)
490490

491491
target_link_libraries(Exec PUBLIC ExecRuntime ExecPrimitive ExecSchemaScannerCore ExecSchemaScanners ExecJoinCore Runtime ComputeEnv Cache)
492-
target_link_libraries(Exec PRIVATE Formats Platform Connector ConnectorLake ConnectorFile ConnectorHive ConnectorIceberg ConnectorBuiltinRegistry)
492+
target_link_libraries(Exec PRIVATE Formats Platform Connector ConnectorLake ConnectorFile ConnectorHive ConnectorIceberg)

be/src/exec/exec_env.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@
4949
#include "compute_env/pipeline/driver_limiter.h"
5050
#include "compute_env/workgroup/scan_executor.h"
5151
#include "compute_env/workgroup/work_group_manager.h"
52-
#include "connector/builtin_connector_registry.h"
5352
#include "connector/common/connector_sink_executor.h"
54-
#include "connector/connector_registry.h"
5553
#include "exec/batch_write/batch_write_mgr.h"
5654
#include "exec/lookup_stream_mgr.h"
5755
#include "exec/pipeline/query_context.h"
@@ -193,7 +191,6 @@ Status ExecEnv::init(ProcessMetricsRegistry* process_metrics_registry, RuntimeEn
193191
if (_compute_env == nullptr) {
194192
return Status::InternalError("ComputeEnv is not attached");
195193
}
196-
RETURN_IF_ERROR(connector::install_builtin_connectors(connector::ConnectorRegistry::default_instance()));
197194
_process_metrics_registry = process_metrics_registry;
198195
auto* process_metrics = process_metrics_registry->root_registry();
199196
_table_metrics_mgr = process_metrics_registry->table_metrics_mgr();

be/src/module/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ target_link_libraries(ModuleBootstrap PRIVATE
2828
HdfsFileSystem
2929
ComputeEnv
3030
Connector
31+
ConnectorFile
3132
ConnectorHive
3233
ConnectorIceberg
3334
ConnectorLake

be/src/module/connector_bootstrap.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
#include "connector/cache_stats/cache_stats_connector.h"
2121
#include "connector/connector_registry.h"
22+
#include "connector/file/file_connector.h"
2223
#include "connector/hive/hive_connector.h"
2324
#include "connector/lake/lake_connector.h"
2425
#include "connector_primitive/connector.h"
@@ -61,6 +62,7 @@ Status bootstrap_builtin_connectors() {
6162
auto* registry = ConnectorRegistry::default_instance();
6263
DCHECK(registry != nullptr);
6364
install_if_absent<HiveConnector>(registry, Connector::HIVE);
65+
install_if_absent<FileConnector>(registry, Connector::FILE);
6466
install_if_absent<LakeConnector>(registry, Connector::LAKE);
6567
install_if_absent<CacheStatsConnector>(registry, Connector::CACHE_STATS);
6668
#ifndef __APPLE__

0 commit comments

Comments
 (0)