summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2010-12-17 17:04:15 -0500
committerStuart Halloway <stu@thinkrelevance.com>2011-01-05 08:12:27 -0500
commit16eef0b2259d3cc0aaa95e7d7b438aeec3cdb197 (patch)
tree8a54aac1b4e7ea9b97a288c082a264fbfdeea8ca /src
parentc5673086d40f206135b99a37001c80a4016c3877 (diff)
Build and deploy with Maven 2; CLJ-681
* Real pom.xml * Simpler build.xml for local development with Ant * No Clojure plugin; uses AntRun to build Clojure * POM inheritance from Sonatype OSS deployment * Build instructions in README * Automatically builds "slim" and "sources" JARs as before * 'distribution' profile generates a ZIP * version.properties generated by the version in pom.xml * slightly different format * minor changes to clojure.core to handle version.properties * Fix tests that assumed Ant as the test driver * Tweaked run_tests.clj to work against current master
Diffstat (limited to 'src')
-rw-r--r--src/assembly/distribution.xml49
-rw-r--r--src/assembly/slim.xml32
-rw-r--r--src/clj/clojure/core.clj29
-rw-r--r--src/clj/clojure/version.properties5
-rw-r--r--src/resources/clojure/version.properties1
-rw-r--r--src/script/run_tests.clj58
6 files changed, 157 insertions, 17 deletions
diff --git a/src/assembly/distribution.xml b/src/assembly/distribution.xml
new file mode 100644
index 00000000..410fb0f0
--- /dev/null
+++ b/src/assembly/distribution.xml
@@ -0,0 +1,49 @@
+<assembly>
+ <id>distribution</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+ <fileSets>
+ <fileSet>
+ <directory>src</directory>
+ <outputDirectory>src</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>doc</directory>
+ <outputDirectory>doc</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>test</directory>
+ <outputDirectory>test</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>target</directory>
+ <outputDirectory>/</outputDirectory>
+ <filtered>false</filtered>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ <files>
+ <file>
+ <source>pom.xml</source>
+ </file>
+ <file>
+ <source>build.xml</source>
+ </file>
+ <file>
+ <source>readme.txt</source>
+ <filtered>true</filtered>
+ </file>
+ <file>
+ <source>changes.txt</source>
+ </file>
+ <file>
+ <source>clojure.iml</source>
+ </file>
+ <file>
+ <source>epl-v10.html</source>
+ </file>
+ </files>
+</assembly>
diff --git a/src/assembly/slim.xml b/src/assembly/slim.xml
new file mode 100644
index 00000000..5958439a
--- /dev/null
+++ b/src/assembly/slim.xml
@@ -0,0 +1,32 @@
+<assembly>
+ <id>slim</id>
+ <formats>
+ <format>jar</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <fileSets>
+ <fileSet>
+ <directory>src/clj</directory>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>src/resources</directory>
+ <outputDirectory>/</outputDirectory>
+ <filtered>true</filtered>
+ </fileSet>
+ <fileSet>
+ <directory>target/classes/clojure/asm</directory>
+ <outputDirectory>clojure/asm</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>target/classes/clojure/lang</directory>
+ <outputDirectory>clojure/lang</outputDirectory>
+ </fileSet>
+ </fileSets>
+ <files>
+ <file>
+ <source>target/classes/clojure/main.class</source>
+ <outputDirectory>clojure</outputDirectory>
+ </file>
+ </files>
+</assembly>
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index bd4c05d3..6fa139dd 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -5908,18 +5908,23 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; clojure version number ;;;;;;;;;;;;;;;;;;;;;;
-(let [version-stream (.getResourceAsStream (clojure.lang.RT/baseLoader)
- "clojure/version.properties")
+(let [version-stream (.getResourceAsStream
+ (clojure.lang.RT/baseLoader)
+ "clojure/version.properties")
properties (doto (new java.util.Properties) (.load version-stream))
- prop (fn [k] (.getProperty properties (str "clojure.version." k)))
- clojure-version {:major (Integer/valueOf ^String (prop "major"))
- :minor (Integer/valueOf ^String (prop "minor"))
- :incremental (Integer/valueOf ^String (prop "incremental"))
- :qualifier (prop "qualifier")}]
- (def ^:dynamic *clojure-version*
- (if (not (= (prop "interim") "false"))
- (clojure.lang.RT/assoc clojure-version :interim true)
- clojure-version)))
+ version-string (.getProperty properties "version")
+ [_ major minor incremental qualifier snapshot]
+ (re-matches
+ #"(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_]+))?(?:-(SNAPSHOT))?"
+ version-string)
+ clojure-version {:major (Integer/valueOf ^String major)
+ :minor (Integer/valueOf ^String minor)
+ :incremental (Integer/valueOf ^String incremental)
+ :qualifier (if (= qualifier "SNAPSHOT") nil qualifier)}]
+ (def ^:dynamic *clojure-version*
+ (if (.contains version-string "SNAPSHOT")
+ (clojure.lang.RT/assoc clojure-version :interim true)
+ clojure-version)))
(add-doc-and-meta *clojure-version*
"The version info for Clojure core, as a map containing :major :minor
@@ -5941,7 +5946,7 @@
(when-let [q (:qualifier *clojure-version*)]
(when (pos? (count q)) (str "-" q)))
(when (:interim *clojure-version*)
- "-SNAPSHOT")))
+ "-SNAPSHOT")))
(defn promise
"Alpha - subject to change.
diff --git a/src/clj/clojure/version.properties b/src/clj/clojure/version.properties
deleted file mode 100644
index 908346f1..00000000
--- a/src/clj/clojure/version.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-clojure.version.major=1
-clojure.version.minor=3
-clojure.version.incremental=0
-clojure.version.qualifier=master
-clojure.version.interim=interim
diff --git a/src/resources/clojure/version.properties b/src/resources/clojure/version.properties
new file mode 100644
index 00000000..75ac2d20
--- /dev/null
+++ b/src/resources/clojure/version.properties
@@ -0,0 +1 @@
+version=${version} \ No newline at end of file
diff --git a/src/script/run_tests.clj b/src/script/run_tests.clj
new file mode 100644
index 00000000..5b4ba07e
--- /dev/null
+++ b/src/script/run_tests.clj
@@ -0,0 +1,58 @@
+(ns clojure.test-clojure (:require clojure.test))
+
+(def test-namespaces '[
+clojure.test-clojure.agents
+clojure.test-clojure.annotations
+clojure.test-clojure.atoms
+clojure.test-clojure.clojure-set
+clojure.test-clojure.clojure-walk
+clojure.test-clojure.clojure-xml
+clojure.test-clojure.clojure-zip
+clojure.test-clojure.compilation
+clojure.test-clojure.control
+clojure.test-clojure.data
+clojure.test-clojure.data-structures
+clojure.test-clojure.def
+clojure.test-clojure.errors
+clojure.test-clojure.evaluation
+clojure.test-clojure.for
+clojure.test-clojure.genclass.examples
+clojure.test-clojure.genclass
+clojure.test-clojure.java.io
+clojure.test-clojure.java.javadoc
+clojure.test-clojure.java.shell
+clojure.test-clojure.java-interop
+clojure.test-clojure.keywords
+clojure.test-clojure.logic
+clojure.test-clojure.macros
+clojure.test-clojure.main
+clojure.test-clojure.metadata
+clojure.test-clojure.multimethods
+clojure.test-clojure.ns-libs
+clojure.test-clojure.numbers
+clojure.test-clojure.other-functions
+clojure.test-clojure.parallel
+clojure.test-clojure.pprint
+clojure.test-clojure.predicates
+clojure.test-clojure.printer
+clojure.test-clojure.protocols
+clojure.test-clojure.reader
+clojure.test-clojure.reflect
+clojure.test-clojure.refs
+clojure.test-clojure.repl
+clojure.test-clojure.rt
+clojure.test-clojure.sequences
+clojure.test-clojure.serialization
+clojure.test-clojure.special
+clojure.test-clojure.string
+clojure.test-clojure.test
+clojure.test-clojure.test-fixtures
+clojure.test-clojure.transients
+clojure.test-clojure.vars
+clojure.test-clojure.vectors
+])
+
+(apply require test-namespaces)
+
+(let [results (apply clojure.test/run-tests test-namespaces)]
+ (System/exit (+ (:error results) (:fail results))))