diff --git a/backend/src/app/db.clj b/backend/src/app/db.clj index 60347cd24..bcbf372b2 100644 --- a/backend/src/app/db.clj +++ b/backend/src/app/db.clj @@ -27,14 +27,16 @@ com.zaxxer.hikari.HikariConfig com.zaxxer.hikari.HikariDataSource com.zaxxer.hikari.metrics.prometheus.PrometheusMetricsTrackerFactory + java.io.InputStream + java.io.OutputStream java.lang.AutoCloseable java.sql.Connection java.sql.Savepoint org.postgresql.PGConnection org.postgresql.geometric.PGpoint + org.postgresql.jdbc.PgArray org.postgresql.largeobject.LargeObject org.postgresql.largeobject.LargeObjectManager - org.postgresql.jdbc.PgArray org.postgresql.util.PGInterval org.postgresql.util.PGobject)) @@ -356,7 +358,7 @@ val (.getValue o)] (if (or (= typ "json") (= typ "jsonb")) - (json/decode-str val) + (json/read val) val))) (defn decode-transit-pgobject @@ -392,7 +394,7 @@ [data] (doto (org.postgresql.util.PGobject.) (.setType "jsonb") - (.setValue (json/encode-str data)))) + (.setValue (json/write-str data)))) ;; --- Locks diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj index 8c8bf1151..de3343dbc 100644 --- a/backend/src/app/http/middleware.clj +++ b/backend/src/app/http/middleware.clj @@ -13,7 +13,6 @@ [app.util.json :as json] [buddy.core.codecs :as bc] [buddy.core.hash :as bh] - [clojure.java.io :as io] [ring.middleware.cookies :refer [wrap-cookies]] [ring.middleware.keyword-params :refer [wrap-keyword-params]] [ring.middleware.multipart-params :refer [wrap-multipart-params]] @@ -36,8 +35,7 @@ (t/read! reader))) (parse-json [body] - (let [reader (io/reader body)] - (json/read reader))) + (json/read body)) (parse [type body] (try diff --git a/backend/src/app/loggers/loki.clj b/backend/src/app/loggers/loki.clj index 5f6980d32..2734ffa43 100644 --- a/backend/src/app/loggers/loki.clj +++ b/backend/src/app/loggers/loki.clj @@ -68,7 +68,7 @@ :timeout 6000 :method :post :headers {"content-type" "application/json"} - :body (json/encode payload)})] + :body (json/write payload)})] (cond (= (:status response) 204) true diff --git a/backend/src/app/loggers/mattermost.clj b/backend/src/app/loggers/mattermost.clj index ca23b9229..340fd7bf1 100644 --- a/backend/src/app/loggers/mattermost.clj +++ b/backend/src/app/loggers/mattermost.clj @@ -31,7 +31,7 @@ rsp (http/send! {:uri uri :method :post :headers {"content-type" "application/json"} - :body (json/encode-str {:text text})})] + :body (json/write-str {:text text})})] (when (not= (:status rsp) 200) (l/error :hint "error on sending data to mattermost" :response (pr-str rsp)))) diff --git a/backend/src/app/loggers/zmq.clj b/backend/src/app/loggers/zmq.clj index 3f43cab99..0535f8da5 100644 --- a/backend/src/app/loggers/zmq.clj +++ b/backend/src/app/loggers/zmq.clj @@ -15,8 +15,7 @@ [clojure.core.async :as a] [clojure.spec.alpha :as s] [cuerdas.core :as str] - [integrant.core :as ig] - [jsonista.core :as j]) + [integrant.core :as ig]) (:import org.zeromq.SocketType org.zeromq.ZMQ$Socket @@ -54,10 +53,10 @@ [_ f] (a/close! (::buffer (meta f)))) -(def json-mapper - (j/object-mapper - {:encode-key-fn str/camel - :decode-key-fn (comp keyword str/kebab)})) +(def ^:private json-mapper + (json/mapper + {:encode-key-fn str/camel + :decode-key-fn (comp keyword str/kebab)})) (defn- start-rcv-loop ([] (start-rcv-loop nil)) @@ -70,7 +69,7 @@ (.. socket (setReceiveTimeOut 5000)) (loop [] (let [msg (.recv ^ZMQ$Socket socket) - msg (ex/ignoring (j/read-value msg json-mapper)) + msg (ex/ignoring (json/read msg json-mapper)) msg (if (nil? msg) :empty msg)] (if (a/>!! out msg) (recur) @@ -78,7 +77,6 @@ (.close ^java.lang.AutoCloseable socket) (.close ^java.lang.AutoCloseable zctx)))))))) - (s/def ::logger-name string?) (s/def ::level string?) (s/def ::thread string?) diff --git a/backend/src/app/msgbus.clj b/backend/src/app/msgbus.clj index 146da0c83..dec133516 100644 --- a/backend/src/app/msgbus.clj +++ b/backend/src/app/msgbus.clj @@ -179,18 +179,18 @@ ;; Add a unique listener to connection (.addListener sub-conn (reify RedisPubSubListener - (message [it pattern topic message]) - (message [it topic message] + (message [_ _pattern _topic _message]) + (message [_ topic message] ;; There are no back pressure, so we use a slidding ;; buffer for cases when the pubsub broker sends ;; more messages that we can process. (let [val {:topic topic :message (blob/decode message)}] (when-not (a/offer! rcv-ch val) (l/warn :msg "dropping message on subscription loop")))) - (psubscribed [it pattern count]) - (punsubscribed [it pattern count]) - (subscribed [it topic count]) - (unsubscribed [it topic count]))) + (psubscribed [_ _pattern _count]) + (punsubscribed [_ _pattern _count]) + (subscribed [_ _topic _count]) + (unsubscribed [_ _topic _count]))) (letfn [(subscribe-to-single-topic [nsubs topic chan] (let [nsubs (if (nil? nsubs) #{chan} (conj nsubs chan))] diff --git a/backend/src/app/storage/impl.clj b/backend/src/app/storage/impl.clj index 4c3a61900..3c9c6a7d0 100644 --- a/backend/src/app/storage/impl.clj +++ b/backend/src/app/storage/impl.clj @@ -117,11 +117,11 @@ io/IOFactory (make-reader [_ opts] (io/make-reader path opts)) - (make-writer [_ opts] + (make-writer [_ _] (throw (UnsupportedOperationException. "not implemented"))) (make-input-stream [_ opts] (io/make-input-stream path opts)) - (make-output-stream [_ opts] + (make-output-stream [_ _] (throw (UnsupportedOperationException. "not implemented"))) clojure.lang.Counted (count [_] size) @@ -138,11 +138,11 @@ io/IOFactory (make-reader [_ opts] (io/make-reader bais opts)) - (make-writer [_ opts] + (make-writer [_ _] (throw (UnsupportedOperationException. "not implemented"))) (make-input-stream [_ opts] (io/make-input-stream bais opts)) - (make-output-stream [_ opts] + (make-output-stream [_ _] (throw (UnsupportedOperationException. "not implemented"))) clojure.lang.Counted @@ -159,11 +159,11 @@ io/IOFactory (make-reader [_ opts] (io/make-reader is opts)) - (make-writer [_ opts] + (make-writer [_ _] (throw (UnsupportedOperationException. "not implemented"))) (make-input-stream [_ opts] (io/make-input-stream is opts)) - (make-output-stream [_ opts] + (make-output-stream [_ _] (throw (UnsupportedOperationException. "not implemented"))) clojure.lang.Counted diff --git a/backend/src/app/tasks/telemetry.clj b/backend/src/app/tasks/telemetry.clj index 44a232aeb..f9441be12 100644 --- a/backend/src/app/tasks/telemetry.clj +++ b/backend/src/app/tasks/telemetry.clj @@ -59,7 +59,7 @@ response (http/send! {:method :post :uri (:uri cfg) :headers {"content-type" "application/json"} - :body (json/encode-str data)})] + :body (json/write-str data)})] (when (> (:status response) 206) (ex/raise :type :internal :code :invalid-response diff --git a/backend/src/app/util/json.clj b/backend/src/app/util/json.clj index 0ffd859d1..edc204c1f 100644 --- a/backend/src/app/util/json.clj +++ b/backend/src/app/util/json.clj @@ -9,22 +9,27 @@ (:require [jsonista.core :as j])) -(defn encode-str - [v] - (j/write-value-as-string v j/keyword-keys-object-mapper)) +(defn mapper + [params] + (j/object-mapper params)) + +(defn write + ([v] (j/write-value-as-bytes v j/keyword-keys-object-mapper)) + ([v mapper] (j/write-value-as-bytes v mapper))) + +(defn write-str + ([v] (j/write-value-as-string v j/keyword-keys-object-mapper)) + ([v mapper] (j/write-value-as-string v mapper))) + +(defn read + ([v] (j/read-value v j/keyword-keys-object-mapper)) + ([v mapper] (j/read-value v mapper))) (defn encode [v] (j/write-value-as-bytes v j/keyword-keys-object-mapper)) -(defn decode-str - [v] - (j/read-value v j/keyword-keys-object-mapper)) - (defn decode [v] (j/read-value v j/keyword-keys-object-mapper)) -(defn read - [v] - (j/read-value v j/keyword-keys-object-mapper))