From 3d1712c00cb892ac0759b41973a48723e9be702c Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Tue, 27 Jun 2023 17:09:38 +0200 Subject: [PATCH] refactor: MySQL bridge to its own application This commit refactor the MySQL bridge to its own application. Fixes: https://emqx.atlassian.net/browse/EMQX-9533 --- apps/emqx_bridge_mysql/docker-ct | 2 ++ apps/emqx_bridge_mysql/rebar.config | 11 +++++++++++ apps/emqx_bridge_mysql/src/emqx_bridge_mysql.app.src | 4 ++-- .../emqx_bridge_mysql/src/emqx_bridge_mysql.erl | 2 +- .../test/emqx_bridge_mysql_SUITE.erl | 2 +- lib-ee/emqx_ee_bridge/docker-ct | 1 - lib-ee/emqx_ee_bridge/rebar.config | 1 - lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl | 6 +++--- ..._ee_bridge_mysql.hocon => emqx_bridge_mysql.hocon} | 2 +- 9 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 apps/emqx_bridge_mysql/docker-ct create mode 100644 apps/emqx_bridge_mysql/rebar.config rename lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mysql.erl => apps/emqx_bridge_mysql/src/emqx_bridge_mysql.erl (99%) rename lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mysql_SUITE.erl => apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl (99%) rename rel/i18n/{emqx_ee_bridge_mysql.hocon => emqx_bridge_mysql.hocon} (97%) diff --git a/apps/emqx_bridge_mysql/docker-ct b/apps/emqx_bridge_mysql/docker-ct new file mode 100644 index 000000000..265a053e2 --- /dev/null +++ b/apps/emqx_bridge_mysql/docker-ct @@ -0,0 +1,2 @@ +toxiproxy +mysql diff --git a/apps/emqx_bridge_mysql/rebar.config b/apps/emqx_bridge_mysql/rebar.config new file mode 100644 index 000000000..244738d49 --- /dev/null +++ b/apps/emqx_bridge_mysql/rebar.config @@ -0,0 +1,11 @@ +%% -*- mode: erlang; -*- +{erl_opts, [debug_info]}. +{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} + , {emqx_resource, {path, "../../apps/emqx_resource"}} + , {emqx_bridge, {path, "../../apps/emqx_bridge"}} + , {emqx_mysql, {path, "../../apps/emqx_mysql"}} + ]}. + +{shell, [ + {apps, [emqx_bridge_mysql]} +]}. diff --git a/apps/emqx_bridge_mysql/src/emqx_bridge_mysql.app.src b/apps/emqx_bridge_mysql/src/emqx_bridge_mysql.app.src index 2e36587a7..2e6844712 100644 --- a/apps/emqx_bridge_mysql/src/emqx_bridge_mysql.app.src +++ b/apps/emqx_bridge_mysql/src/emqx_bridge_mysql.app.src @@ -1,8 +1,8 @@ {application, emqx_bridge_mysql, [ {description, "EMQX Enterprise MySQL Bridge"}, - {vsn, "0.1.0"}, + {vsn, "0.1.1"}, {registered, []}, - {applications, [kernel, stdlib]}, + {applications, [kernel, stdlib, emqx_connector, emqx_resource, emqx_bridge, emqx_mysql]}, {env, []}, {modules, []}, {links, []} diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mysql.erl b/apps/emqx_bridge_mysql/src/emqx_bridge_mysql.erl similarity index 99% rename from lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mysql.erl rename to apps/emqx_bridge_mysql/src/emqx_bridge_mysql.erl index 01e253bd9..a72da7a1e 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mysql.erl +++ b/apps/emqx_bridge_mysql/src/emqx_bridge_mysql.erl @@ -1,7 +1,7 @@ %%-------------------------------------------------------------------- %% Copyright (c) 2022-2023 EMQ Technologies Co., Ltd. All Rights Reserved. %%-------------------------------------------------------------------- --module(emqx_ee_bridge_mysql). +-module(emqx_bridge_mysql). -include_lib("typerefl/include/types.hrl"). -include_lib("hocon/include/hoconsc.hrl"). diff --git a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mysql_SUITE.erl b/apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl similarity index 99% rename from lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mysql_SUITE.erl rename to apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl index d8489b1b9..9a4a0007a 100644 --- a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mysql_SUITE.erl +++ b/apps/emqx_bridge_mysql/test/emqx_bridge_mysql_SUITE.erl @@ -2,7 +2,7 @@ % Copyright (c) 2022-2023 EMQ Technologies Co., Ltd. All Rights Reserved. %%-------------------------------------------------------------------- --module(emqx_ee_bridge_mysql_SUITE). +-module(emqx_bridge_mysql_SUITE). -compile(nowarn_export_all). -compile(export_all). diff --git a/lib-ee/emqx_ee_bridge/docker-ct b/lib-ee/emqx_ee_bridge/docker-ct index 265a053e2..80f0d394b 100644 --- a/lib-ee/emqx_ee_bridge/docker-ct +++ b/lib-ee/emqx_ee_bridge/docker-ct @@ -1,2 +1 @@ toxiproxy -mysql diff --git a/lib-ee/emqx_ee_bridge/rebar.config b/lib-ee/emqx_ee_bridge/rebar.config index ada341cfb..3b3be6ccf 100644 --- a/lib-ee/emqx_ee_bridge/rebar.config +++ b/lib-ee/emqx_ee_bridge/rebar.config @@ -3,7 +3,6 @@ {deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} , {emqx_resource, {path, "../../apps/emqx_resource"}} , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - , {emqx_bridge, {path, "../../apps/emqx_mysql"}} , {emqx_utils, {path, "../emqx_utils"}} ]}. 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 f9e45a525..66f0dc3b4 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl +++ b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl @@ -25,7 +25,7 @@ api_schemas(Method) -> %% to hocon; keeping this as just `kafka' for backwards compatibility. api_ref(emqx_bridge_kafka, <<"kafka">>, Method ++ "_producer"), api_ref(emqx_bridge_cassandra, <<"cassandra">>, Method), - api_ref(emqx_ee_bridge_mysql, <<"mysql">>, Method), + api_ref(emqx_bridge_mysql, <<"mysql">>, Method), api_ref(emqx_bridge_pgsql, <<"pgsql">>, Method), api_ref(emqx_bridge_mongodb, <<"mongodb_rs">>, Method ++ "_rs"), api_ref(emqx_bridge_mongodb, <<"mongodb_sharded">>, Method ++ "_sharded"), @@ -58,7 +58,7 @@ schema_modules() -> emqx_bridge_gcp_pubsub, emqx_bridge_influxdb, emqx_bridge_mongodb, - emqx_ee_bridge_mysql, + emqx_bridge_mysql, emqx_bridge_redis, emqx_bridge_pgsql, emqx_bridge_timescale, @@ -131,7 +131,7 @@ fields(bridges) -> )}, {mysql, mk( - hoconsc:map(name, ref(emqx_ee_bridge_mysql, "config")), + hoconsc:map(name, ref(emqx_bridge_mysql, "config")), #{ desc => <<"MySQL Bridge Config">>, required => false diff --git a/rel/i18n/emqx_ee_bridge_mysql.hocon b/rel/i18n/emqx_bridge_mysql.hocon similarity index 97% rename from rel/i18n/emqx_ee_bridge_mysql.hocon rename to rel/i18n/emqx_bridge_mysql.hocon index bd627f726..10a02589c 100644 --- a/rel/i18n/emqx_ee_bridge_mysql.hocon +++ b/rel/i18n/emqx_bridge_mysql.hocon @@ -1,4 +1,4 @@ -emqx_ee_bridge_mysql { +emqx_bridge_mysql { config_enable.desc: """Enable or disable this bridge"""