diff --git a/project.clj b/project.clj index 2c27951a..39696463 100644 --- a/project.clj +++ b/project.clj @@ -15,6 +15,7 @@ [org.clojure/core.async "0.4.500"] [org.clojure/tools.cli "0.4.2"] [org.clojure/data.csv "0.1.4"] + [org.clojure/data.xml "0.2.0-alpha6"] [cheshire "5.9.0"]] :profiles {:test {:dependencies [[clj-commons/conch "0.9.2"]]} :uberjar {:global-vars {*assert* false} diff --git a/reflection.json b/reflection.json index a41c3fcd..676d7b83 100644 --- a/reflection.json +++ b/reflection.json @@ -181,5 +181,9 @@ "allPublicMethods":true, "allPublicFields": true, "allPublicConstructors": true - } + }, + {"name":"com.sun.xml.internal.stream.XMLInputFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }]}, + {"name":"com.sun.xml.internal.stream.XMLOutputFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }]} ] diff --git a/src/babashka/impl/xml.clj b/src/babashka/impl/xml.clj new file mode 100644 index 00000000..29beef64 --- /dev/null +++ b/src/babashka/impl/xml.clj @@ -0,0 +1,9 @@ +(ns babashka.impl.xml + {:no-doc true} + (:require [clojure.data.xml :as xml])) + +(def xml-namespace + {'parse-str xml/parse-str + 'element xml/element + 'emit-str xml/emit-str}) + diff --git a/src/babashka/main.clj b/src/babashka/main.clj index 392436b4..b1bd3679 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -8,6 +8,7 @@ [babashka.impl.clojure.stacktrace :refer [print-stack-trace]] [babashka.impl.conch :refer [conch-namespace]] [babashka.impl.csv :as csv] + [babashka.impl.xml :as xml] [babashka.impl.pipe-signal-handler :refer [handle-pipe! pipe-signal-received?]] [babashka.impl.repl :as repl] [babashka.impl.socket-repl :as socket-repl] @@ -251,7 +252,8 @@ Everything after that is bound to *command-line-args*.")) 'me.raynes.conch.low-level conch-namespace 'clojure.core.async async-namespace 'clojure.data.csv csv/csv-namespace - 'cheshire.core cheshire-core-namespace} + 'cheshire.core cheshire-core-namespace + 'clojure.data.xml xml/xml-namespace} :bindings {'java.lang.System/exit exit ;; override exit, so we have more control 'System/exit exit} :env env