From 066ed5c6ec9f88809d27699dafa471a720d3961c Mon Sep 17 00:00:00 2001 From: firest Date: Wed, 10 May 2023 16:51:33 +0800 Subject: [PATCH 1/2] refactor(pgsql): move pgsql && matrix && timescale bridges into their own app --- apps/emqx_bridge_matrix/rebar.config | 7 +++++++ .../emqx_bridge_matrix/src/emqx_bridge_matrix.erl | 8 ++++---- apps/emqx_bridge_pgsql/docker-ct | 2 ++ apps/emqx_bridge_pgsql/rebar.config | 7 +++++++ .../emqx_bridge_pgsql/src/emqx_bridge_pgsql.erl | 4 ++-- .../test/emqx_bridge_pgsql_SUITE.erl | 2 +- apps/emqx_bridge_timescale/rebar.config | 7 +++++++ .../src/emqx_bridge_timescale.erl | 8 ++++---- lib-ee/emqx_ee_bridge/docker-ct | 1 - lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl | 14 +++++++------- ..._bridge_pgsql.hocon => emqx_bridge_pgsql.hocon} | 2 +- ..._bridge_pgsql.hocon => emqx_bridge_pgsql.hocon} | 2 +- 12 files changed, 43 insertions(+), 21 deletions(-) create mode 100644 apps/emqx_bridge_matrix/rebar.config rename lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_matrix.erl => apps/emqx_bridge_matrix/src/emqx_bridge_matrix.erl (81%) create mode 100644 apps/emqx_bridge_pgsql/docker-ct create mode 100644 apps/emqx_bridge_pgsql/rebar.config rename lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_pgsql.erl => apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.erl (96%) rename lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_pgsql_SUITE.erl => apps/emqx_bridge_pgsql/test/emqx_bridge_pgsql_SUITE.erl (99%) create mode 100644 apps/emqx_bridge_timescale/rebar.config rename lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_timescale.erl => apps/emqx_bridge_timescale/src/emqx_bridge_timescale.erl (80%) rename rel/i18n/{emqx_ee_bridge_pgsql.hocon => emqx_bridge_pgsql.hocon} (97%) rename rel/i18n/zh/{emqx_ee_bridge_pgsql.hocon => emqx_bridge_pgsql.hocon} (96%) diff --git a/apps/emqx_bridge_matrix/rebar.config b/apps/emqx_bridge_matrix/rebar.config new file mode 100644 index 000000000..87c145f26 --- /dev/null +++ b/apps/emqx_bridge_matrix/rebar.config @@ -0,0 +1,7 @@ +{erl_opts, [debug_info]}. + +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_matrix.erl b/apps/emqx_bridge_matrix/src/emqx_bridge_matrix.erl similarity index 81% rename from lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_matrix.erl rename to apps/emqx_bridge_matrix/src/emqx_bridge_matrix.erl index 106fac48a..abd98adb6 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_matrix.erl +++ b/apps/emqx_bridge_matrix/src/emqx_bridge_matrix.erl @@ -1,7 +1,7 @@ %%-------------------------------------------------------------------- %% Copyright (c) 2023 EMQ Technologies Co., Ltd. All Rights Reserved. %%-------------------------------------------------------------------- --module(emqx_ee_bridge_matrix). +-module(emqx_bridge_matrix). -export([ conn_bridge_examples/1 @@ -22,7 +22,7 @@ conn_bridge_examples(Method) -> #{ <<"matrix">> => #{ summary => <<"Matrix Bridge">>, - value => emqx_ee_bridge_pgsql:values(Method, matrix) + value => emqx_bridge_pgsql:values(Method, matrix) } } ]. @@ -34,9 +34,9 @@ namespace() -> "bridge_matrix". roots() -> []. fields("post") -> - emqx_ee_bridge_pgsql:fields("post", matrix); + emqx_bridge_pgsql:fields("post", matrix); fields(Method) -> - emqx_ee_bridge_pgsql:fields(Method). + emqx_bridge_pgsql:fields(Method). desc(_) -> undefined. diff --git a/apps/emqx_bridge_pgsql/docker-ct b/apps/emqx_bridge_pgsql/docker-ct new file mode 100644 index 000000000..81281026b --- /dev/null +++ b/apps/emqx_bridge_pgsql/docker-ct @@ -0,0 +1,2 @@ +toxiproxy +pgsql diff --git a/apps/emqx_bridge_pgsql/rebar.config b/apps/emqx_bridge_pgsql/rebar.config new file mode 100644 index 000000000..87c145f26 --- /dev/null +++ b/apps/emqx_bridge_pgsql/rebar.config @@ -0,0 +1,7 @@ +{erl_opts, [debug_info]}. + +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_pgsql.erl b/apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.erl similarity index 96% rename from lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_pgsql.erl rename to apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.erl index a5dcb19e6..4615b6789 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_pgsql.erl +++ b/apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.erl @@ -1,7 +1,7 @@ %%-------------------------------------------------------------------- -%% Copyright (c) 2022 EMQ Technologies Co., Ltd. All Rights Reserved. +%% Copyright (c) 2022-2023 EMQ Technologies Co., Ltd. All Rights Reserved. %%-------------------------------------------------------------------- --module(emqx_ee_bridge_pgsql). +-module(emqx_bridge_pgsql). -include_lib("typerefl/include/types.hrl"). -include_lib("hocon/include/hoconsc.hrl"). diff --git a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_pgsql_SUITE.erl b/apps/emqx_bridge_pgsql/test/emqx_bridge_pgsql_SUITE.erl similarity index 99% rename from lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_pgsql_SUITE.erl rename to apps/emqx_bridge_pgsql/test/emqx_bridge_pgsql_SUITE.erl index d76149b16..9f2011779 100644 --- a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_pgsql_SUITE.erl +++ b/apps/emqx_bridge_pgsql/test/emqx_bridge_pgsql_SUITE.erl @@ -2,7 +2,7 @@ %% Copyright (c) 2022-2023 EMQ Technologies Co., Ltd. All Rights Reserved. %%-------------------------------------------------------------------- --module(emqx_ee_bridge_pgsql_SUITE). +-module(emqx_bridge_pgsql_SUITE). -compile(nowarn_export_all). -compile(export_all). diff --git a/apps/emqx_bridge_timescale/rebar.config b/apps/emqx_bridge_timescale/rebar.config new file mode 100644 index 000000000..87c145f26 --- /dev/null +++ b/apps/emqx_bridge_timescale/rebar.config @@ -0,0 +1,7 @@ +{erl_opts, [debug_info]}. + +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_timescale.erl b/apps/emqx_bridge_timescale/src/emqx_bridge_timescale.erl similarity index 80% rename from lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_timescale.erl rename to apps/emqx_bridge_timescale/src/emqx_bridge_timescale.erl index 20d940462..c4dedf07c 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_timescale.erl +++ b/apps/emqx_bridge_timescale/src/emqx_bridge_timescale.erl @@ -1,7 +1,7 @@ %%-------------------------------------------------------------------- %% Copyright (c) 2023 EMQ Technologies Co., Ltd. All Rights Reserved. %%-------------------------------------------------------------------- --module(emqx_ee_bridge_timescale). +-module(emqx_bridge_timescale). -export([ conn_bridge_examples/1 @@ -22,7 +22,7 @@ conn_bridge_examples(Method) -> #{ <<"timescale">> => #{ summary => <<"Timescale Bridge">>, - value => emqx_ee_bridge_pgsql:values(Method, timescale) + value => emqx_bridge_pgsql:values(Method, timescale) } } ]. @@ -34,9 +34,9 @@ namespace() -> "bridge_timescale". roots() -> []. fields("post") -> - emqx_ee_bridge_pgsql:fields("post", timescale); + emqx_bridge_pgsql:fields("post", timescale); fields(Method) -> - emqx_ee_bridge_pgsql:fields(Method). + emqx_bridge_pgsql:fields(Method). desc(_) -> undefined. diff --git a/lib-ee/emqx_ee_bridge/docker-ct b/lib-ee/emqx_ee_bridge/docker-ct index faff109eb..8391d08ae 100644 --- a/lib-ee/emqx_ee_bridge/docker-ct +++ b/lib-ee/emqx_ee_bridge/docker-ct @@ -5,6 +5,5 @@ mongo_rs_sharded mysql redis redis_cluster -pgsql clickhouse dynamo diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl index 9761123da..9b3af166c 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl +++ b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl @@ -19,7 +19,7 @@ api_schemas(Method) -> ref(emqx_bridge_kafka, Method ++ "_producer"), ref(emqx_bridge_cassandra, Method), ref(emqx_ee_bridge_mysql, Method), - ref(emqx_ee_bridge_pgsql, Method), + ref(emqx_bridge_pgsql, Method), ref(emqx_ee_bridge_mongodb, Method ++ "_rs"), ref(emqx_ee_bridge_mongodb, Method ++ "_sharded"), ref(emqx_ee_bridge_mongodb, Method ++ "_single"), @@ -29,8 +29,8 @@ api_schemas(Method) -> ref(emqx_ee_bridge_redis, Method ++ "_single"), ref(emqx_ee_bridge_redis, Method ++ "_sentinel"), ref(emqx_ee_bridge_redis, Method ++ "_cluster"), - ref(emqx_ee_bridge_timescale, Method), - ref(emqx_ee_bridge_matrix, Method), + ref(emqx_bridge_timescale, Method), + ref(emqx_bridge_matrix, Method), ref(emqx_bridge_tdengine, Method), ref(emqx_ee_bridge_clickhouse, Method), ref(emqx_ee_bridge_dynamo, Method), @@ -53,9 +53,9 @@ schema_modules() -> emqx_ee_bridge_mongodb, emqx_ee_bridge_mysql, emqx_ee_bridge_redis, - emqx_ee_bridge_pgsql, - emqx_ee_bridge_timescale, - emqx_ee_bridge_matrix, + emqx_bridge_pgsql, + emqx_bridge_timescale, + emqx_bridge_matrix, emqx_bridge_tdengine, emqx_ee_bridge_clickhouse, emqx_ee_bridge_dynamo, @@ -280,7 +280,7 @@ pgsql_structs() -> [ {Type, mk( - hoconsc:map(name, ref(emqx_ee_bridge_pgsql, "config")), + hoconsc:map(name, ref(emqx_bridge_pgsql, "config")), #{ desc => <>, required => false diff --git a/rel/i18n/emqx_ee_bridge_pgsql.hocon b/rel/i18n/emqx_bridge_pgsql.hocon similarity index 97% rename from rel/i18n/emqx_ee_bridge_pgsql.hocon rename to rel/i18n/emqx_bridge_pgsql.hocon index 94c263a56..5295abb35 100644 --- a/rel/i18n/emqx_ee_bridge_pgsql.hocon +++ b/rel/i18n/emqx_bridge_pgsql.hocon @@ -1,4 +1,4 @@ -emqx_ee_bridge_pgsql { +emqx_bridge_pgsql { config_enable.desc: """Enable or disable this bridge""" diff --git a/rel/i18n/zh/emqx_ee_bridge_pgsql.hocon b/rel/i18n/zh/emqx_bridge_pgsql.hocon similarity index 96% rename from rel/i18n/zh/emqx_ee_bridge_pgsql.hocon rename to rel/i18n/zh/emqx_bridge_pgsql.hocon index ebf7f331a..2f233d833 100644 --- a/rel/i18n/zh/emqx_ee_bridge_pgsql.hocon +++ b/rel/i18n/zh/emqx_bridge_pgsql.hocon @@ -1,4 +1,4 @@ -emqx_ee_bridge_pgsql { +emqx_bridge_pgsql { config_enable.desc: """启用/禁用桥接""" From f6a2f752fff1c111e7934513bb03422e347d6d8c Mon Sep 17 00:00:00 2001 From: firest Date: Wed, 10 May 2023 17:23:26 +0800 Subject: [PATCH 2/2] chore: update changes && bump app versions --- apps/emqx_bridge_matrix/src/emqx_bridge_matrix.app.src | 2 +- apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.app.src | 2 +- apps/emqx_bridge_timescale/src/emqx_bridge_timescale.app.src | 2 +- changes/ee/feat-10662.en.md | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 changes/ee/feat-10662.en.md diff --git a/apps/emqx_bridge_matrix/src/emqx_bridge_matrix.app.src b/apps/emqx_bridge_matrix/src/emqx_bridge_matrix.app.src index e2a17e070..7dfe7eae6 100644 --- a/apps/emqx_bridge_matrix/src/emqx_bridge_matrix.app.src +++ b/apps/emqx_bridge_matrix/src/emqx_bridge_matrix.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_matrix, [ {description, "EMQX Enterprise MatrixDB Bridge"}, - {vsn, "0.1.0"}, + {vsn, "0.1.1"}, {registered, []}, {applications, [kernel, stdlib]}, {env, []}, diff --git a/apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.app.src b/apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.app.src index c695283f3..a310b46b4 100644 --- a/apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.app.src +++ b/apps/emqx_bridge_pgsql/src/emqx_bridge_pgsql.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_pgsql, [ {description, "EMQX Enterprise PostgreSQL Bridge"}, - {vsn, "0.1.0"}, + {vsn, "0.1.1"}, {registered, []}, {applications, [kernel, stdlib]}, {env, []}, diff --git a/apps/emqx_bridge_timescale/src/emqx_bridge_timescale.app.src b/apps/emqx_bridge_timescale/src/emqx_bridge_timescale.app.src index 5b4431f73..f533f3b04 100644 --- a/apps/emqx_bridge_timescale/src/emqx_bridge_timescale.app.src +++ b/apps/emqx_bridge_timescale/src/emqx_bridge_timescale.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_timescale, [ {description, "EMQX Enterprise TimescaleDB Bridge"}, - {vsn, "0.1.0"}, + {vsn, "0.1.1"}, {registered, []}, {applications, [kernel, stdlib]}, {env, []}, diff --git a/changes/ee/feat-10662.en.md b/changes/ee/feat-10662.en.md new file mode 100644 index 000000000..997a8295f --- /dev/null +++ b/changes/ee/feat-10662.en.md @@ -0,0 +1 @@ +Refactor the directory structure of the PostgreSQL && Matrix && Timescale data bridges.