This commit enables a minimal working build of EMQX release using Mix. However, to properly start the release, several configuration steps are still missing. A `mix_release.sh` script does a few hacks to get the release built with Mix to start properly, by first assuming that `make emqx` has been run prior to the release, ran once to generate the `app.*.config` files, and then it copies that and some other files to the expected places. Also, `emqx_telemetry` hangs the start procedure because it thinks it's in an official release and tries to make a request. We disable it temporarily via config just to get a working build for now. |
||
|---|---|---|
| .. | ||
| include | ||
| src | ||
| test | ||
| mix.exs | ||
| README.md | ||
| rebar.config | ||
emqx_resource
The emqx_resource is a behavior that manages configuration specs and runtime states
for resources like mysql or redis backends.
It is intended to be used by the emqx_bridges and all other resources that need CRUD operations to their configs, and need to initialize the states when creating.
There can be foreign references between resource instances via resource-id. So they may find each other via this Id.
The main idea of the emqx resource is to put all the general code in a common lib, including
the config operations (like config validation, config dump back to files), and the state management.
And we put all the specific codes to the callback modules.
See
test/emqx_test_resource.erlfor a minimalemqx_resourceimplementation;test/emqx_resource_SUITE.erlfor examples ofemqx_resourceusage.