Skip to content
Snippets Groups Projects
Unverified Commit 52c5ad3e authored by Cam Saul's avatar Cam Saul Committed by GitHub
Browse files

Fix duplicate plugin loading when running local dev server (#14278)

parent 088a328d
Branches
Tags
No related merge requests found
......@@ -11,7 +11,8 @@
[init-steps :as init-steps]
[lazy-loaded-driver :as lazy-loaded-driver]]
[metabase.util :as u]
[metabase.util.i18n :refer [trs]]))
[metabase.util.i18n :refer [trs]]
[schema.core :as s]))
(defonce ^:private initialized-plugin-names (atom #{}))
......@@ -41,18 +42,17 @@
(init! plugin-info)))
:ok))
(defn- initialized? [{plugin-name :name}]
(defn- initialized? [{{plugin-name :name} :info}]
(@initialized-plugin-names plugin-name))
(defonce ^:private plugin-initialization-lock (Object.))
(defn init-plugin-with-info!
(s/defn init-plugin-with-info!
"Initiaize plugin using parsed info from a plugin maifest. Returns truthy if plugin was successfully initialized;
falsey otherwise."
[info]
[info :- {:info {:name s/Str, :version s/Str, s/Keyword s/Any}
s/Keyword s/Any}]
(or
(initialized? info)
(locking plugin-initialization-lock
(locking initialized-plugin-names
(or
(initialized? info)
(init! info)))))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment