Hello,
I'm trying to implement the Component ideology. When run something manually with component/start-system and stop, it works fine. The main method calls component/start-system works fine too. But sadly when I try to get the user reflow to work (I copied user namespace from the README on GitHub), my main namespace is not reloading.
:reloading (deusdatsolutions.views deusdatsolutions.dynamics deusdatsolutions.handler deusdatsolutions.system.route deusdatsolutions.data deusdatsolutions.data-impl deusdatsolutions.system.database deusdatsolutions.system.common deusdatsolutions.system.server deusdatsolutions.system.core deusdatsolutions.user deusdatsolutions.handler-test deusdatsolutions.dynamics-test deusdatsolutions.data-impl-test deusdatsolutions.core user)
:error-while-loading deusdatsolutions.user
#<CompilerException java.lang.Exception: namespace 'deusdatsolutions.system.core' not found, compiling:(deusdatsolutions/user.clj:1:1)>
deusdatsolutions.system.core is there. It's in the user namespace that starts everything off.
(ns deusdatsolutions.user
(:require [com.stuartsierra.component :as component]
[clojure.tools.namespace.repl :refer [refresh]]
[deusdatsolutions.system.core :as site-core]))
(def system nil)
(defn init []
(alter-var-root #'system
(constantly (site-core/create-system))))
(defn start []
(alter-var-root #'system site-core/start-server))
(defn stop []
(alter-var-root #'system
(fn [s] (when s (site-core/stop-server s)))))
(defn go []
(init)
(start))
(defn reset []
(stop)
(refresh :after 'deusdatsolutions.user/go))
This loads fine, runs the go fine, runs the stop fine too. (reset) gets that error.
One thing that might be causing a problem is that I'm using a profiles.clj for dev. Something looks off in lein because I have to include the tools dependency in dev profile.
Thanks,
JPD