From b78a75bb5ca8222b34c561f5cf7fa77333b124ee Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Wed, 10 May 2023 18:22:55 +0200 Subject: [PATCH] refactor: the MongoDB connector into its own application --- apps/emqx_authn/rebar.config | 3 ++- apps/emqx_authn/src/emqx_authn.app.src | 2 +- apps/emqx_authz/rebar.config | 3 ++- apps/emqx_authz/src/emqx_authz.app.src | 3 ++- apps/emqx_bridge_mongodb/rebar.config | 1 + .../src/emqx_bridge_mongodb.app.src | 2 +- apps/emqx_connector/docker-ct | 1 - apps/emqx_connector/rebar.config | 1 - apps/emqx_mongodb/README.md | 15 +++++++++++++++ apps/emqx_mongodb/docker-ct | 1 + apps/emqx_mongodb/rebar.config | 7 +++++++ .../src/emqx_connector_mongo.erl | 2 +- apps/emqx_mongodb/src/emqx_mongodb.app.src | 16 ++++++++++++++++ .../test/emqx_connector_mongo_SUITE.erl | 0 .../test/emqx_connector_mongo_tests.erl | 0 apps/emqx_oracle/README.md | 2 +- mix.exs | 1 + rebar.config.erl | 1 + 18 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 apps/emqx_mongodb/README.md create mode 100644 apps/emqx_mongodb/docker-ct create mode 100644 apps/emqx_mongodb/rebar.config rename apps/{emqx_connector => emqx_mongodb}/src/emqx_connector_mongo.erl (99%) create mode 100644 apps/emqx_mongodb/src/emqx_mongodb.app.src rename apps/{emqx_connector => emqx_mongodb}/test/emqx_connector_mongo_SUITE.erl (100%) rename apps/{emqx_connector => emqx_mongodb}/test/emqx_connector_mongo_tests.erl (100%) diff --git a/apps/emqx_authn/rebar.config b/apps/emqx_authn/rebar.config index 5f0043c39..fb2f35f41 100644 --- a/apps/emqx_authn/rebar.config +++ b/apps/emqx_authn/rebar.config @@ -3,7 +3,8 @@ {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, - {emqx_connector, {path, "../emqx_connector"}} + {emqx_connector, {path, "../emqx_connector"}}, + {emqx_mongodb, {path, "../emqx_mongodb"}} ]}. {edoc_opts, [{preprocess, true}]}. diff --git a/apps/emqx_authn/src/emqx_authn.app.src b/apps/emqx_authn/src/emqx_authn.app.src index 571ac88b7..5f81232a4 100644 --- a/apps/emqx_authn/src/emqx_authn.app.src +++ b/apps/emqx_authn/src/emqx_authn.app.src @@ -4,7 +4,7 @@ {vsn, "0.1.22"}, {modules, []}, {registered, [emqx_authn_sup, emqx_authn_registry]}, - {applications, [kernel, stdlib, emqx_resource, emqx_connector, ehttpc, epgsql, mysql, jose]}, + {applications, [kernel, stdlib, emqx_resource, emqx_connector, ehttpc, epgsql, mysql, jose, emqx_mongodb]}, {mod, {emqx_authn_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, diff --git a/apps/emqx_authz/rebar.config b/apps/emqx_authz/rebar.config index 9fd61b060..32e344e69 100644 --- a/apps/emqx_authz/rebar.config +++ b/apps/emqx_authz/rebar.config @@ -4,7 +4,8 @@ {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, - {emqx_connector, {path, "../emqx_connector"}} + {emqx_connector, {path, "../emqx_connector"}}, + {emqx_mongodb, {path, "../emqx_mongodb"}} ]}. {shell, [ diff --git a/apps/emqx_authz/src/emqx_authz.app.src b/apps/emqx_authz/src/emqx_authz.app.src index 929f292a7..cfdae07ce 100644 --- a/apps/emqx_authz/src/emqx_authz.app.src +++ b/apps/emqx_authz/src/emqx_authz.app.src @@ -9,7 +9,8 @@ stdlib, crypto, emqx_resource, - emqx_connector + emqx_connector, + emqx_mongodb ]}, {env, []}, {modules, []}, diff --git a/apps/emqx_bridge_mongodb/rebar.config b/apps/emqx_bridge_mongodb/rebar.config index 42fcc1f26..1605fc967 100644 --- a/apps/emqx_bridge_mongodb/rebar.config +++ b/apps/emqx_bridge_mongodb/rebar.config @@ -3,6 +3,7 @@ {deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} , {emqx_resource, {path, "../../apps/emqx_resource"}} , {emqx_bridge, {path, "../../apps/emqx_bridge"}} + , {emqx_mongodb, {path, "../../apps/emqx_mongodb"}} , {emqx_ee_bridge, {path, "../../lib-ee/emqx_ee_bridge"}} ]}. diff --git a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src index 3a3a0955d..b392be2b1 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src @@ -8,7 +8,7 @@ emqx_resource, emqx_bridge, emqx_ee_bridge, - mongodb]}, + emqx_mongodb]}, {env, []}, {modules, []}, {links, []} diff --git a/apps/emqx_connector/docker-ct b/apps/emqx_connector/docker-ct index 5a4056927..866d0c40d 100644 --- a/apps/emqx_connector/docker-ct +++ b/apps/emqx_connector/docker-ct @@ -1,4 +1,3 @@ -mongo redis redis_cluster mysql diff --git a/apps/emqx_connector/rebar.config b/apps/emqx_connector/rebar.config index 03be87356..a90cdaa58 100644 --- a/apps/emqx_connector/rebar.config +++ b/apps/emqx_connector/rebar.config @@ -12,7 +12,6 @@ {eldap2, {git, "https://github.com/emqx/eldap2", {tag, "v0.2.2"}}}, {mysql, {git, "https://github.com/emqx/mysql-otp", {tag, "1.7.2"}}}, {epgsql, {git, "https://github.com/emqx/epgsql", {tag, "4.7.0.1"}}}, - {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.19"}}}, %% NOTE: mind ecpool version when updating eredis_cluster version {eredis_cluster, {git, "https://github.com/emqx/eredis_cluster", {tag, "0.8.1"}}} ]}. diff --git a/apps/emqx_mongodb/README.md b/apps/emqx_mongodb/README.md new file mode 100644 index 000000000..7141a929e --- /dev/null +++ b/apps/emqx_mongodb/README.md @@ -0,0 +1,15 @@ +# MongoDB Connector + +This application houses the MongoDB connector. The MongoDB connector is used by +emqx_authz, emqx_authn and emqx_bridge_mongodb applications to connect to +MongoDB. + +## Contributing + +Please see our [contributing.md](../../CONTRIBUTING.md). + +## License + +Apache License, Version 2.0 + +See [APL.txt](../../APL.txt). diff --git a/apps/emqx_mongodb/docker-ct b/apps/emqx_mongodb/docker-ct new file mode 100644 index 000000000..b9c3499d5 --- /dev/null +++ b/apps/emqx_mongodb/docker-ct @@ -0,0 +1 @@ +mongo diff --git a/apps/emqx_mongodb/rebar.config b/apps/emqx_mongodb/rebar.config new file mode 100644 index 000000000..e8a7e281d --- /dev/null +++ b/apps/emqx_mongodb/rebar.config @@ -0,0 +1,7 @@ +%% -*- mode: erlang; -*- + +{erl_opts, [debug_info]}. +{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} + , {emqx_resource, {path, "../../apps/emqx_resource"}} + , {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.19"}}} + ]}. diff --git a/apps/emqx_connector/src/emqx_connector_mongo.erl b/apps/emqx_mongodb/src/emqx_connector_mongo.erl similarity index 99% rename from apps/emqx_connector/src/emqx_connector_mongo.erl rename to apps/emqx_mongodb/src/emqx_connector_mongo.erl index 368ce18a0..f70f4ea76 100644 --- a/apps/emqx_connector/src/emqx_connector_mongo.erl +++ b/apps/emqx_mongodb/src/emqx_connector_mongo.erl @@ -15,7 +15,7 @@ %%-------------------------------------------------------------------- -module(emqx_connector_mongo). --include("emqx_connector.hrl"). +-include_lib("emqx_connector/include/emqx_connector.hrl"). -include_lib("typerefl/include/types.hrl"). -include_lib("hocon/include/hoconsc.hrl"). -include_lib("emqx/include/logger.hrl"). diff --git a/apps/emqx_mongodb/src/emqx_mongodb.app.src b/apps/emqx_mongodb/src/emqx_mongodb.app.src new file mode 100644 index 000000000..56419e37b --- /dev/null +++ b/apps/emqx_mongodb/src/emqx_mongodb.app.src @@ -0,0 +1,16 @@ +{application, emqx_mongodb, [ + {description, "EMQX MongoDB Connector"}, + {vsn, "0.1.0"}, + {registered, []}, + {applications, [ + kernel, + stdlib, + mongodb, + emqx_connector, + emqx_resource + ]}, + {env, []}, + {modules, []}, + + {links, []} +]}. diff --git a/apps/emqx_connector/test/emqx_connector_mongo_SUITE.erl b/apps/emqx_mongodb/test/emqx_connector_mongo_SUITE.erl similarity index 100% rename from apps/emqx_connector/test/emqx_connector_mongo_SUITE.erl rename to apps/emqx_mongodb/test/emqx_connector_mongo_SUITE.erl diff --git a/apps/emqx_connector/test/emqx_connector_mongo_tests.erl b/apps/emqx_mongodb/test/emqx_connector_mongo_tests.erl similarity index 100% rename from apps/emqx_connector/test/emqx_connector_mongo_tests.erl rename to apps/emqx_mongodb/test/emqx_connector_mongo_tests.erl diff --git a/apps/emqx_oracle/README.md b/apps/emqx_oracle/README.md index 873d52259..2ac44504e 100644 --- a/apps/emqx_oracle/README.md +++ b/apps/emqx_oracle/README.md @@ -11,4 +11,4 @@ Please see our [contributing.md](../../CONTRIBUTING.md). ## License -See [BSL](./BSL.txt). +See [BSL](../../APL.txt). diff --git a/mix.exs b/mix.exs index d038bac49..b0863b5ce 100644 --- a/mix.exs +++ b/mix.exs @@ -377,6 +377,7 @@ defmodule EMQXUmbrella.MixProject do emqx_psk: :permanent, emqx_slow_subs: :permanent, emqx_plugins: :permanent, + emqx_mongodb: :permanent, emqx_mix: :none ] ++ if(enable_quicer?(), do: [quicer: :permanent], else: []) ++ diff --git a/rebar.config.erl b/rebar.config.erl index 8d8e7c437..8aa65a5e8 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -439,6 +439,7 @@ relx_apps(ReleaseType, Edition) -> emqx_prometheus, emqx_psk, emqx_slow_subs, + emqx_mongodb, emqx_plugins ] ++ [quicer || is_quicer_supported()] ++