From 43331a9e72df2394c875d62ae1d3cdeb6e4e1f90 Mon Sep 17 00:00:00 2001 From: Phil Hagelberg Date: Mon, 23 Aug 2010 22:05:34 -0700 Subject: [PATCH] Reduce contrib usage. Obligatory grumbles about delete-file-recursively. Not to mention to-byte-array being left out of clojure.java.io. --- src/leiningen/clean.clj | 2 +- src/leiningen/deps.clj | 9 +++++---- src/leiningen/jar.clj | 25 +++++++++++++------------ src/leiningen/new.clj | 2 +- src/leiningen/uberjar.clj | 11 ++++++----- 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/leiningen/clean.clj b/src/leiningen/clean.clj index 13064ac2..0ce47751 100644 --- a/src/leiningen/clean.clj +++ b/src/leiningen/clean.clj @@ -1,7 +1,7 @@ (ns leiningen.clean "Remove compiled files and dependencies from project." (:use [leiningen.jar :only [get-jar-filename get-default-uberjar-name]] - [clojure.contrib.io :only [file delete-file delete-file-recursively]])) + [leiningen.util.file :only [delete-file-recursively]])) (defn clean "Remove compiled files and dependencies from project." diff --git a/src/leiningen/deps.clj b/src/leiningen/deps.clj index 4d6562ec..a6f0df55 100644 --- a/src/leiningen/deps.clj +++ b/src/leiningen/deps.clj @@ -3,8 +3,9 @@ (:require [lancet]) (:use [leiningen.core :only [repositories-for]] [leiningen.util.maven :only [make-dependency]] - [clojure.contrib.io :only [file delete-file-recursively]]) - (:import [org.apache.maven.artifact.ant + [leiningen.util.file :only [delete-file-recursively]]) + (:import [java.io File] + [org.apache.maven.artifact.ant Authentication DependenciesTask RemoteRepository] [org.apache.maven.settings Server] [org.apache.tools.ant.util FlatFileNameMapper])) @@ -40,7 +41,7 @@ fileset) (doseq [f files] (symlink {:link destination - :resource (.getCanonicalPath (file dir f))})))) + :resource (.getCanonicalPath (File. dir f))})))) (defn make-deps-task [project deps-set] (let [deps-task (DependenciesTask.)] @@ -64,7 +65,7 @@ With an argument it will skip development dependencies." _ (.execute deps-task) fileset (.getReference lancet/ant-project (.getFilesetId deps-task))] - (.mkdirs (file (:library-path project))) + (.mkdirs (File. (:library-path project))) (copy-dependencies (:jar-behavior project) (:library-path project) true fileset) diff --git a/src/leiningen/jar.clj b/src/leiningen/jar.clj index 37b812f9..38d62037 100644 --- a/src/leiningen/jar.clj +++ b/src/leiningen/jar.clj @@ -1,10 +1,11 @@ (ns leiningen.jar "Create a jar containing the compiled code and original source." - (:require [leiningen.compile :as compile]) + (:require [leiningen.compile :as compile] + [clojure.string :as string]) (:use [leiningen.pom :only [make-pom make-pom-properties]] [leiningen.deps :only [deps]] - [clojure.contrib.io :only [to-byte-array copy file slurp*]] - [clojure.contrib.string :only [join replace-re split]]) + [clojure.java.io :only [copy file]] + [clojure.contrib.string :only [join replace-re]]) (:import [java.util.jar Manifest JarEntry JarOutputStream] [java.util.regex Pattern] [java.io BufferedOutputStream FileOutputStream @@ -12,7 +13,7 @@ (def bin-template (-> (.getContextClassLoader (Thread/currentThread)) (.getResourceAsStream "script-template") - (slurp*))) + (slurp))) (defn local-repo-path ([group name version] @@ -22,11 +23,11 @@ group name version name version))) (defn- script-classpath-for [project deps-fileset] - (join ":" (conj (for [dep (-> deps-fileset - (.getDirectoryScanner lancet/ant-project) - (.getIncludedFiles))] - (format "$HOME/.m2/repository/%s" dep)) - (local-repo-path project)))) + (string/join ":" (conj (for [dep (-> deps-fileset + (.getDirectoryScanner lancet/ant-project) + (.getIncludedFiles))] + (format "$HOME/.m2/repository/%s" dep)) + (local-repo-path project)))) (defn- shell-wrapper-name [project] (or (:bin (:shell-wrapper project) @@ -35,7 +36,7 @@ (defn- shell-wrapper-contents [project bin-name main deps-fileset] (let [bin-file (file bin-name)] (format (if (.exists bin-file) - (slurp* bin-file) + (slurp bin-file) bin-template) (script-classpath-for project deps-fileset) main))) @@ -56,7 +57,7 @@ (defn make-manifest [project & [extra-entries]] (Manifest. (ByteArrayInputStream. - (to-byte-array + (.getBytes (reduce (fn [manifest [k v]] (str manifest "\n" k ": " v)) "Manifest-Version: 1.0" @@ -81,7 +82,7 @@ (defmulti copy-to-jar (fn [project jar-os spec] (:type spec))) (defn- trim-leading-str [s to-trim] - (replace-re (re-pattern (str "^" (Pattern/quote to-trim))) "" s)) + (.replaceAll s (str "^" (Pattern/quote to-trim)) "")) (defmethod copy-to-jar :path [project jar-os spec] (let [root (str (unix-path (:root project)) \/) diff --git a/src/leiningen/new.clj b/src/leiningen/new.clj index ef94d458..712396af 100644 --- a/src/leiningen/new.clj +++ b/src/leiningen/new.clj @@ -5,7 +5,7 @@ Group-id is optional. Project-dir defaults to artifact-id if not given. Neither group-id nor artifact-id may contain slashes." (:use [leiningen.core :only [ns->path]] [clojure.java.io :only [file]] - [clojure.contrib.string :only [join]])) + [clojure.string :only [join]])) (defn write-project [project-dir project-name] (.mkdirs (file project-dir)) diff --git a/src/leiningen/uberjar.clj b/src/leiningen/uberjar.clj index 7f184ea3..c84f4f69 100644 --- a/src/leiningen/uberjar.clj +++ b/src/leiningen/uberjar.clj @@ -1,9 +1,8 @@ (ns leiningen.uberjar "Create a jar containing the compiled code, source, and all dependencies." (:require [clojure.xml :as xml]) - (:use [clojure.zip :only [xml-zip]] + (:use [clojure.zip :only [xml-zip children]] [clojure.java.io :only [file copy]] - [clojure.contrib.zip-filter.xml :only [xml-> tag=]] [leiningen.clean :only [clean]] [leiningen.jar :only [get-jar-filename get-default-uberjar-name jar]] [leiningen.deps :only [deps]]) @@ -12,9 +11,11 @@ (defn read-components [zipfile] (when-let [entry (.getEntry zipfile "META-INF/plexus/components.xml")] - (-> (xml-> (xml-zip (xml/parse (.getInputStream zipfile entry))) - (tag= :components)) - first first :content))) + (->> (xml-zip (xml/parse (.getInputStream zipfile entry))) + children + (filter #(= (:tag %) :components)) + first + :content))) (defn copy-entries "Copies the entries of ZipFile in to the ZipOutputStream out, skipping