Skip to content

Commit 0c5aa27

Browse files
committed
OY-5029 Käynnistetään liiteri ja liiteri-background -palveluissa eri komponentit
1 parent 437bff3 commit 0c5aa27

File tree

8 files changed

+118
-50
lines changed

8 files changed

+118
-50
lines changed

src/liiteri/core.clj

Lines changed: 72 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
[liiteri.files.s3-store :as s3-store]
99
[liiteri.migrations :as migrations]
1010
[liiteri.server :as server]
11+
[liiteri.server_background :as server_background]
1112
[liiteri.virus-scan :as virus-scan]
1213
[clj-ring-db-session.session.session-store :refer [create-session-store]]
1314
[liiteri.file-cleaner :as file-cleaner]
@@ -16,11 +17,12 @@
1617
[taoensso.timbre :as log]
1718
[taoensso.timbre.appenders.community.rolling :refer [rolling-appender]]
1819
[timbre-ns-pattern-level :as pattern-level]
19-
[liiteri.local :as local])
20+
[liiteri.local :as local]
21+
[environ.core :refer [env]])
2022
(:import [java.util TimeZone])
2123
(:gen-class))
2224

23-
(defn new-system [& [config-overrides]]
25+
(defn new-system [is_background & [config-overrides]]
2426
(let [config (config/new-config config-overrides)]
2527
(log/merge-config! {:timestamp-opts {:pattern "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
2628
:timezone (TimeZone/getTimeZone "Europe/Helsinki")}
@@ -32,63 +34,90 @@
3234
:middleware [(pattern-level/middleware {"com.zaxxer.hikari.HikariConfig" :debug
3335
:all :info})]
3436
:output-fn (partial log/default-output-fn {:stacktrace-fonts {}})})
35-
(component/system-map
36-
:config config
37+
(if is_background
38+
; background
39+
(component/system-map
40+
:config config
3741

38-
:login-cas-client (delay (cas/new-cas-client config))
42+
:db (component/using
43+
(db/new-pool)
44+
[:config])
3945

40-
:kayttooikeus-cas-client (delay (cas/new-client config
41-
"/kayttooikeus-service" "j_spring_cas_security_check"
42-
"JSESSIONID"))
46+
:migrations (component/using
47+
(migrations/new-migration)
48+
[:db])
4349

44-
:audit-logger (component/using
45-
(audit-log/new-logger)
46-
[:config])
50+
:server (component/using
51+
(server_background/new-server) [:config])
4752

48-
:db (component/using
49-
(db/new-pool)
50-
[:config])
53+
:file-cleaner (component/using
54+
(file-cleaner/new-cleaner false)
55+
[:db :storage-engine :config :migrations])
5156

52-
:session-store (create-session-store (db/get-datasource config))
57+
:deleted-file-cleaner (component/using
58+
(file-cleaner/new-cleaner true)
59+
[:db :storage-engine :config :migrations])
5360

54-
:server (component/using
55-
(server/new-server)
56-
[:storage-engine :login-cas-client :kayttooikeus-cas-client :session-store :db :config :audit-logger :virus-scan])
61+
:mime-fixer (component/using
62+
(mime-fixer/new-mime-fixer)
63+
[:db :storage-engine :config :migrations])
5764

58-
:migrations (component/using
59-
(migrations/new-migration)
60-
[:db])
65+
:preview-generator (component/using
66+
(preview-generator/new-preview-generator)
67+
[:db :storage-engine :config :migrations])
6168

62-
:virus-scan (component/using
63-
(virus-scan/new-scanner)
64-
[:db :storage-engine :config :migrations])
69+
:s3-client (component/using
70+
(s3-client/new-client)
71+
[:config])
6572

66-
:file-cleaner (component/using
67-
(file-cleaner/new-cleaner false)
68-
[:db :storage-engine :config :migrations])
73+
:storage-engine (component/using
74+
(s3-store/new-store)
75+
[:s3-client :config])
6976

70-
:deleted-file-cleaner (component/using
71-
(file-cleaner/new-cleaner true)
72-
[:db :storage-engine :config :migrations])
77+
:local (component/using (local/new-local) [:config :s3-client]))
78+
; front
79+
(component/system-map
80+
:config config
7381

74-
:mime-fixer (component/using
75-
(mime-fixer/new-mime-fixer)
76-
[:db :storage-engine :config :migrations])
82+
:login-cas-client (delay (cas/new-cas-client config))
7783

78-
:preview-generator (component/using
79-
(preview-generator/new-preview-generator)
80-
[:db :storage-engine :config :migrations])
84+
:kayttooikeus-cas-client (delay (cas/new-client config
85+
"/kayttooikeus-service" "j_spring_cas_security_check"
86+
"JSESSIONID"))
8187

82-
:s3-client (component/using
83-
(s3-client/new-client)
88+
:audit-logger (component/using
89+
(audit-log/new-logger)
8490
[:config])
8591

86-
:storage-engine (component/using
87-
(s3-store/new-store)
88-
[:s3-client :config])
92+
:db (component/using
93+
(db/new-pool)
94+
[:config])
95+
96+
:session-store (create-session-store (db/get-datasource config))
97+
98+
:server (component/using
99+
(server/new-server)
100+
[:storage-engine :login-cas-client :kayttooikeus-cas-client :session-store :db :config :audit-logger :virus-scan])
101+
102+
:migrations (component/using
103+
(migrations/new-migration)
104+
[:db])
105+
106+
:virus-scan (component/using
107+
(virus-scan/new-scanner)
108+
[:db :storage-engine :config :migrations])
109+
110+
:s3-client (component/using
111+
(s3-client/new-client)
112+
[:config])
113+
114+
:storage-engine (component/using
115+
(s3-store/new-store)
116+
[:s3-client :config])
89117

90-
:local (component/using (local/new-local) [:config :s3-client]))))
118+
:local (component/using (local/new-local) [:config :s3-client])))
119+
))
91120

92121
(defn -main [& _]
93-
(let [_ (component/start-system (new-system))]
122+
(let [_ (component/start-system (new-system (= "liiteri-background" (:app env))))]
94123
@(promise)))

src/liiteri/server_background.clj

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
(ns liiteri.server_background
2+
(:require [com.stuartsierra.component :as component]
3+
[aleph.http :as http-server]
4+
[taoensso.timbre :as log]
5+
[clj-access-logging]
6+
[clj-timbre-access-logging]
7+
[clojure.java.io :as io]
8+
[compojure.api.sweet :as api]
9+
[environ.core :refer [env]]
10+
[ring.util.http-response :as response]))
11+
12+
(defn new-api [config]
13+
(-> (api/api {}
14+
(api/context "/liiteri-background" []
15+
(api/undocumented
16+
(api/GET "/buildversion.txt" []
17+
(response/ok (slurp (io/resource "buildversion.txt")))))))
18+
(clj-access-logging/wrap-access-logging)
19+
(clj-timbre-access-logging/wrap-timbre-access-logging
20+
{:path (str (get-in config [:access-log :path])
21+
(when (:hostname env) (str "_" (:hostname env))))})))
22+
23+
(defrecord Server [config]
24+
component/Lifecycle
25+
26+
(start [this]
27+
(let [port (get-in config [:server :port] 16832)
28+
api (new-api config)
29+
server (http-server/start-server api {:port port})]
30+
(log/info (str "Started server on port " port))
31+
(assoc this :server server)))
32+
33+
(stop [this]
34+
(when-let [server (:server this)]
35+
(.close server)
36+
(log/info (str "Stopped server")))
37+
(assoc this :server nil)))
38+
39+
(defn new-server []
40+
(map->Server {}))

test/liiteri/file_cleaner_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
(:import [java.util UUID]
1111
[java.sql Timestamp]))
1212

13-
(def system (atom (system/new-system)))
13+
(def system (atom (system/new-system true)))
1414
(def metadata (atom nil))
1515

1616
(use-fixtures :once

test/liiteri/file_store_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
(:import [java.util UUID]
1010
[java.sql Timestamp]))
1111

12-
(def system (atom (system/new-system)))
12+
(def system (atom (system/new-system false)))
1313
(def metadata1 (atom nil))
1414
(def metadata2 (atom nil))
1515
(def metadata3 (atom nil))

test/liiteri/mime_fixer_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
[clojure.test :refer :all])
1111
(:import [java.sql Timestamp]))
1212

13-
(def system (atom (system/new-system {})))
13+
(def system (atom (system/new-system true {})))
1414

1515
(use-fixtures :once
1616
(fn [tests]

test/liiteri/preview/preview_generator_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
(:import [java.sql Timestamp]
1414
(java.util.concurrent Executors)))
1515

16-
(def system (atom (system/new-system {})))
16+
(def system (atom (system/new-system true {})))
1717

1818
(use-fixtures :each
1919
(fn [tests]

test/liiteri/test_utils.clj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
(ns liiteri.test-utils
22
(:require [clojure.java.jdbc :as jdbc]
33
[com.stuartsierra.component :as component]
4-
[liiteri.core :as system]
54
[clojure.java.io :as io]
65
[liiteri.files.file-store :as file-store]))
76

87
(defn start-system [system]
9-
(let [s (or @system (system/new-system))]
8+
(let [s @system]
109
(reset! system (component/start-system s))))
1110

1211
(defn stop-system [system]

test/liiteri/virus_scan_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[liiteri.virus-scan :as virus-scan])
99
(:import [java.util UUID]))
1010

11-
(def system (atom (system/new-system {})))
11+
(def system (atom (system/new-system false {})))
1212
(def metadata (atom nil))
1313

1414
(defn- init-test-file []

0 commit comments

Comments
 (0)