Skip to content

Commit

Permalink
Migrate from immutant to luminus
Browse files Browse the repository at this point in the history
This has a number of advantages:

- works with any version of Java
- immutant is basically deprecated
  • Loading branch information
egli committed Jun 3, 2022
1 parent 77d40f3 commit 082038f
Show file tree
Hide file tree
Showing 113 changed files with 5,124 additions and 11,468 deletions.
5 changes: 0 additions & 5 deletions .dir-locals.el

This file was deleted.

37 changes: 16 additions & 21 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
*~
*.class
/target
/lib
/classes
/checkouts
pom.xml
dev-config.edn
test-config.edn
*.jar
*.war
*.class
/.lein-*
/.nrepl-port
/checkouts/
/classes/
/lib/
/target/
pom.xml
pom.xml.asc
/db/mdr2.db
/db/archive.db
/doc/css/
/doc/js/
/doc/mdr2*
/doc/index.html
/doc/state_diagram.png
/profiles.clj
/.descriptors/
/hornetq-data/
/src/mdr2/version.clj
profiles.clj
/.env
.nrepl-port
/.shadow-cljs
/node_modules
/log


7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM openjdk:8-alpine

COPY target/uberjar/mdr2.jar /mdr2/app.jar

EXPOSE 3000

CMD ["java", "-jar", "/mdr2/app.jar"]
11 changes: 11 additions & 0 deletions env/dev/clj/mdr2/dev_middleware.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
(ns mdr2.dev-middleware
(:require
[ring.middleware.reload :refer [wrap-reload]]
[selmer.middleware :refer [wrap-error-page]]
[prone.middleware :refer [wrap-exceptions]]))

(defn wrap-dev [handler]
(-> handler
wrap-reload
wrap-error-page
(wrap-exceptions {:app-namespaces ['mdr2]})))
15 changes: 15 additions & 0 deletions env/dev/clj/mdr2/env.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
(ns mdr2.env
(:require
[selmer.parser :as parser]
[clojure.tools.logging :as log]
[mdr2.dev-middleware :refer [wrap-dev]]))

(def defaults
{:init
(fn []
(parser/cache-off!)
(log/info "\n-=[mdr2 started successfully using the development profile]=-"))
:stop
(fn []
(log/info "\n-=[mdr2 has shut down successfully]=-"))
:middleware wrap-dev})
63 changes: 63 additions & 0 deletions env/dev/clj/user.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
(ns user
"Userspace functions you can run by default in your local REPL."
(:require
[mdr2.config :refer [env]]
[clojure.pprint]
[clojure.spec.alpha :as s]
[expound.alpha :as expound]
[mount.core :as mount]
[mdr2.core :refer [start-app]]
[mdr2.db.core]
[conman.core :as conman]
[luminus-migrations.core :as migrations]))

(alter-var-root #'s/*explain-out* (constantly expound/printer))

(add-tap (bound-fn* clojure.pprint/pprint))

(defn start
"Starts application.
You'll usually want to run this on startup."
[]
(mount/start-without #'mdr2.core/repl-server))

(defn stop
"Stops application."
[]
(mount/stop-except #'mdr2.core/repl-server))

(defn restart
"Restarts application."
[]
(stop)
(start))

(defn restart-db
"Restarts database."
[]
(mount/stop #'mdr2.db.core/*db*)
(mount/start #'mdr2.db.core/*db*)
(binding [*ns* (the-ns 'mdr2.db.core)]
(conman/bind-connection mdr2.db.core/*db* "sql/queries.sql")))

(defn reset-db
"Resets database."
[]
(migrations/migrate ["reset"] (select-keys env [:database-url])))

(defn migrate
"Migrates database up for all outstanding migrations."
[]
(migrations/migrate ["migrate"] (select-keys env [:database-url])))

(defn rollback
"Rollback latest database migration."
[]
(migrations/migrate ["rollback"] (select-keys env [:database-url])))

(defn create-migration
"Create a new up and down migration file with a generated timestamp and `name`."
[name]
(migrations/create name (select-keys env [:database-url])))


19 changes: 19 additions & 0 deletions env/dev/cljs/mdr2/app.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
(ns ^:dev/once mdr2.app
(:require
[mdr2.core :as core]
[cljs.spec.alpha :as s]
[expound.alpha :as expound]
[devtools.core :as devtools]))

(extend-protocol IPrintWithWriter
js/Symbol
(-pr-writer [sym writer _]
(-write writer (str "\"" (.toString sym) "\""))))

(set! s/*explain-out* expound/printer)

(enable-console-print!)

(devtools/install!)

(core/init!)
1 change: 1 addition & 0 deletions env/dev/resources/config.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
37 changes: 37 additions & 0 deletions env/dev/resources/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<charset>UTF-8</charset>
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/mdr2.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/mdr2.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
</encoder>
</appender>
<logger name="org.apache.http" level="warn" />
<logger name="org.xnio.nio" level="warn" />
<logger name="com.zaxxer.hikari" level="warn" />
<logger name="io.undertow.websockets.core.request" level="warn" />
<logger name="io.undertow.request" level="warn" />
<logger name="io.undertow.session" level="warn" />
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
11 changes: 11 additions & 0 deletions env/prod/clj/mdr2/env.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
(ns mdr2.env
(:require [clojure.tools.logging :as log]))

(def defaults
{:init
(fn []
(log/info "\n-=[mdr2 started successfully]=-"))
:stop
(fn []
(log/info "\n-=[mdr2 has shut down successfully]=-"))
:middleware identity})
7 changes: 7 additions & 0 deletions env/prod/cljs/mdr2/app.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(ns mdr2.app
(:require [mdr2.core :as core]))

;;ignore println statements in prod
(set! *print-fn* (fn [& _]))

(core/init!)
2 changes: 2 additions & 0 deletions env/prod/resources/config.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{:prod true
:port 3000}
35 changes: 35 additions & 0 deletions env/prod/resources/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/mdr2.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/mdr2.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.apache.http" level="warn" />
<logger name="org.xnio.nio" level="warn" />
<logger name="com.zaxxer.hikari" level="warn" />
<logger name="io.undertow.websockets.core.request" level="warn" />
<logger name="io.undertow.request" level="warn" />
<logger name="io.undertow.session" level="warn" />
<logger name="io.undertow.request" level="warn" />
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
1 change: 1 addition & 0 deletions env/test/resources/config.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
37 changes: 37 additions & 0 deletions env/test/resources/logback.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<charset>UTF-8</charset>
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/mdr2.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/mdr2.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
</encoder>
</appender>
<logger name="org.apache.http" level="warn" />
<logger name="org.xnio.nio" level="warn" />
<logger name="com.zaxxer.hikari" level="warn" />
<logger name="io.undertow.websockets.core.request" level="warn" />
<logger name="io.undertow.request" level="warn" />
<logger name="io.undertow.session" level="warn" />
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
Loading

0 comments on commit 082038f

Please sign in to comment.