ソースを参照

refactor(syskeeper connector): to use emqx_connector_info

This commit refactors the syskeeper connector to use the
`emqx_connector_info` behavior.
Kjell Winblad 1 年間 前
コミット
27d109ce6d

+ 8 - 2
apps/emqx_bridge_syskeeper/src/emqx_bridge_syskeeper.app.src

@@ -1,13 +1,19 @@
 {application, emqx_bridge_syskeeper, [
     {description, "EMQX Enterprise Data bridge for Syskeeper"},
-    {vsn, "0.1.1"},
+    {vsn, "0.1.2"},
     {registered, []},
     {applications, [
         kernel,
         stdlib,
         emqx_resource
     ]},
-    {env, []},
+    {env, [
+        {emqx_action_info_modules, [emqx_bridge_syskeeper_action_info]},
+        {emqx_connector_info_modules, [
+            emqx_bridge_syskeeper_connector_info,
+            emqx_bridge_syskeeper_proxy_connector_info
+        ]}
+    ]},
     {modules, []},
     {links, []}
 ]}.

+ 46 - 0
apps/emqx_bridge_syskeeper/src/emqx_bridge_syskeeper_connector_info.erl

@@ -0,0 +1,46 @@
+%%--------------------------------------------------------------------
+%% Copyright (c) 2023-2024 EMQ Technologies Co., Ltd. All Rights Reserved.
+%%--------------------------------------------------------------------
+-module(emqx_bridge_syskeeper_connector_info).
+
+-behaviour(emqx_connector_info).
+
+-export([
+    type_name/0,
+    bridge_types/0,
+    resource_callback_module/0,
+    config_transform_module/0,
+    config_schema/0,
+    schema_module/0,
+    api_schema/1
+]).
+
+type_name() ->
+    syskeeper_forwarder.
+
+bridge_types() ->
+    [syskeeper_forwarder].
+
+resource_callback_module() ->
+    emqx_bridge_syskeeper_connector.
+
+config_transform_module() ->
+    emqx_bridge_syskeeper_connector.
+
+config_schema() ->
+    {syskeeper_forwarder,
+        hoconsc:mk(
+            hoconsc:map(name, hoconsc:ref(emqx_bridge_syskeeper_connector, config)),
+            #{
+                desc => <<"Syskeeper Connector Config">>,
+                required => false
+            }
+        )}.
+
+schema_module() ->
+    emqx_bridge_syskeeper_connector.
+
+api_schema(Method) ->
+    emqx_connector_schema:api_ref(
+        emqx_bridge_syskeeper_connector, <<"syskeeper_forwarder">>, Method
+    ).

+ 47 - 0
apps/emqx_bridge_syskeeper/src/emqx_bridge_syskeeper_proxy_connector_info.erl

@@ -0,0 +1,47 @@
+%%--------------------------------------------------------------------
+%% Copyright (c) 2022-2024 EMQ Technologies Co., Ltd. All Rights Reserved.
+%%--------------------------------------------------------------------
+
+-module(emqx_bridge_syskeeper_proxy_connector_info).
+
+-behaviour(emqx_connector_info).
+
+-export([
+    type_name/0,
+    bridge_types/0,
+    resource_callback_module/0,
+    config_transform_module/0,
+    config_schema/0,
+    schema_module/0,
+    api_schema/1
+]).
+
+type_name() ->
+    syskeeper_proxy.
+
+bridge_types() ->
+    [].
+
+resource_callback_module() ->
+    emqx_bridge_syskeeper_proxy_server.
+
+config_transform_module() ->
+    emqx_bridge_syskeeper_proxy.
+
+config_schema() ->
+    {syskeeper_proxy,
+        hoconsc:mk(
+            hoconsc:map(name, hoconsc:ref(emqx_bridge_syskeeper_proxy, config)),
+            #{
+                desc => <<"Syskeeper Proxy Connector Config">>,
+                required => false
+            }
+        )}.
+
+schema_module() ->
+    emqx_bridge_syskeeper_proxy.
+
+api_schema(Method) ->
+    emqx_connector_schema:api_ref(
+        emqx_bridge_syskeeper_proxy, <<"syskeeper_proxy">>, Method
+    ).

+ 3 - 1
apps/emqx_connector/src/emqx_connector_info.erl

@@ -75,7 +75,9 @@ hard_coded_connector_info_modules_ee() ->
         emqx_bridge_clickhouse_connector_info,
         emqx_bridge_mysql_connector_info,
         emqx_bridge_redis_connector_info,
-        emqx_bridge_rocketmq_connector_info
+        emqx_bridge_rocketmq_connector_info,
+        emqx_bridge_syskeeper_connector_info,
+        emqx_bridge_syskeeper_proxy_connector_info
     ].
 -else.
 hard_coded_connector_info_modules_ee() ->

+ 0 - 24
apps/emqx_connector/src/schema/emqx_connector_ee_schema.erl

@@ -21,10 +21,6 @@
 
 resource_type(Type) when is_binary(Type) ->
     resource_type(binary_to_atom(Type, utf8));
-resource_type(syskeeper_forwarder) ->
-    emqx_bridge_syskeeper_connector;
-resource_type(syskeeper_proxy) ->
-    emqx_bridge_syskeeper_proxy_server;
 resource_type(sqlserver) ->
     emqx_bridge_sqlserver_connector;
 resource_type(iotdb) ->
@@ -71,22 +67,6 @@ fields(connectors) ->
 
 connector_structs() ->
     [
-        {syskeeper_forwarder,
-            mk(
-                hoconsc:map(name, ref(emqx_bridge_syskeeper_connector, config)),
-                #{
-                    desc => <<"Syskeeper Connector Config">>,
-                    required => false
-                }
-            )},
-        {syskeeper_proxy,
-            mk(
-                hoconsc:map(name, ref(emqx_bridge_syskeeper_proxy, config)),
-                #{
-                    desc => <<"Syskeeper Proxy Connector Config">>,
-                    required => false
-                }
-            )},
         {sqlserver,
             mk(
                 hoconsc:map(name, ref(emqx_bridge_sqlserver, "config_connector")),
@@ -163,8 +143,6 @@ connector_structs() ->
 
 schema_modules() ->
     [
-        emqx_bridge_syskeeper_connector,
-        emqx_bridge_syskeeper_proxy,
         emqx_bridge_sqlserver,
         emqx_postgresql_connector_schema,
         emqx_bridge_iotdb_connector,
@@ -181,8 +159,6 @@ api_schemas(Method) ->
     [
         %% We need to map the `type' field of a request (binary) to a
         %% connector schema module.
-        api_ref(emqx_bridge_syskeeper_connector, <<"syskeeper_forwarder">>, Method),
-        api_ref(emqx_bridge_syskeeper_proxy, <<"syskeeper_proxy">>, Method),
         api_ref(emqx_bridge_sqlserver, <<"sqlserver">>, Method ++ "_connector"),
         api_ref(emqx_bridge_iotdb_connector, <<"iotdb">>, Method),
         api_ref(emqx_bridge_es_connector, <<"elasticsearch">>, Method),

+ 0 - 4
apps/emqx_connector/src/schema/emqx_connector_schema.erl

@@ -122,10 +122,6 @@ connector_info_schema_modules() ->
 
 %% @doc Return old bridge(v1) and/or connector(v2) type
 %% from the latest connector type name.
-connector_type_to_bridge_types(syskeeper_forwarder) ->
-    [syskeeper_forwarder];
-connector_type_to_bridge_types(syskeeper_proxy) ->
-    [];
 connector_type_to_bridge_types(sqlserver) ->
     [sqlserver];
 connector_type_to_bridge_types(iotdb) ->