<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lancet/step_3.clj</filename>
    </added>
    <added>
      <filename>lib/commons-codec-1.3.jar</filename>
    </added>
    <added>
      <filename>lib/commons-fileupload-1.2.1.jar</filename>
    </added>
    <added>
      <filename>lib/commons-io-1.4.jar</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1 +1 @@
-java -cp .;lib/jline-0.9.94.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/ant.jar;lib/ant-launcher.jar;lib/compojure.jar;lib/hsqldb.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar;classes jline.ConsoleRunner clojure.lang.Repl
\ No newline at end of file
+java -cp .;lib/commons-io-1.4.jar;lib/commons-fileupload-1.2.1.jar;lib/commons-codec-1.3.jar;lib/jline-0.9.94.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/ant.jar;lib/ant-launcher.jar;lib/compojure.jar;lib/hsqldb.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar;classes jline.ConsoleRunner clojure.lang.Repl
\ No newline at end of file</diff>
      <filename>bin/repl.bat</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-java -cp .:lib/jline-0.9.94.jar:lib/clojure.jar:lib/clojure-contrib.jar:lib/ant.jar:lib/ant-launcher.jar:lib/compojure.jar:lib/hsqldb.jar:lib/jetty-6.1.14.jar:lib/jetty-util-6.1.14.jar:lib/servlet-api-2.5-6.1.14.jar:classes jline.ConsoleRunner clojure.lang.Repl
\ No newline at end of file
+java -cp .:lib/commons-io-1.4.jar:lib/commons-fileupload-1.2.1.jar:lib/commons-codec-1.3.jar:lib/jline-0.9.94.jar:lib/clojure.jar:lib/clojure-contrib.jar:lib/ant.jar:lib/ant-launcher.jar:lib/compojure.jar:lib/hsqldb.jar:lib/jetty-6.1.14.jar:lib/jetty-util-6.1.14.jar:lib/servlet-api-2.5-6.1.14.jar:classes jline.ConsoleRunner clojure.lang.Repl
\ No newline at end of file</diff>
      <filename>bin/repl.sh</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-java -cp .;lib/jline-0.9.94.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/compojure.jar;lib/hsqldb.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl examples/server/complete.clj
\ No newline at end of file
+java -cp .;lib/commons-io-1.4.jar;lib/commons-fileupload-1.2.1.jar;lib/commons-codec-1.3.jar;lib/jline-0.9.94.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/compojure.jar;lib/hsqldb.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl examples/server/complete.clj
\ No newline at end of file</diff>
      <filename>bin/snippet-solution.bat</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-java -cp .:lib/jline-0.9.94.jar:lib/clojure.jar:lib/clojure-contrib.jar:lib/compojure.jar:lib/hsqldb.jar:lib/jetty-6.1.14.jar:lib/jetty-util-6.1.14.jar:lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl examples/server/complete.clj
\ No newline at end of file
+java -cp .:lib/commons-io-1.4.jar:lib/commons-fileupload-1.2.1.jar:lib/commons-codec-1.3.jar:lib/jline-0.9.94.jar:lib/clojure.jar:lib/clojure-contrib.jar:lib/compojure.jar:lib/hsqldb.jar:lib/jetty-6.1.14.jar:lib/jetty-util-6.1.14.jar:lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl examples/server/complete.clj
\ No newline at end of file</diff>
      <filename>bin/snippet-solution.sh</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-java -cp .;lib/jline-0.9.94.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/compojure.jar;lib/hsqldb.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl reader/snippet_server.clj
\ No newline at end of file
+java -cp .;lib/commons-io-1.4.jar;lib/commons-fileupload-1.2.1.jar;lib/commons-codec-1.3.jar;lib/jline-0.9.94.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/compojure.jar;lib/hsqldb.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl reader/snippet_server.clj
\ No newline at end of file</diff>
      <filename>bin/snippet.bat</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-java -cp .:lib/jline-0.9.94.jar:lib/clojure.jar:lib/clojure-contrib.jar:lib/compojure.jar:lib/hsqldb.jar:lib/jetty-6.1.14.jar:lib/jetty-util-6.1.14.jar:lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl reader/snippet_server.clj
\ No newline at end of file
+java -cp .:lib/commons-io-1.4.jar:lib/commons-fileupload-1.2.1.jar:lib/commons-codec-1.3.jar:lib/jline-0.9.94.jar:lib/clojure.jar:lib/clojure-contrib.jar:lib/compojure.jar:lib/hsqldb.jar:lib/jetty-6.1.14.jar:lib/jetty-util-6.1.14.jar:lib/servlet-api-2.5-6.1.14.jar jline.ConsoleRunner clojure.lang.Repl reader/snippet_server.clj
\ No newline at end of file</diff>
      <filename>bin/snippet.sh</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@
    (= n 0) 0 ; &lt;label id=&quot;code.stack-consuming-fibo.0&quot;/&gt;
    (= n 1) 1 ; &lt;label id=&quot;code.stack-consuming-fibo.1&quot;/&gt;
    :else (+ (stack-consuming-fibo (- n 1))    ; &lt;label id=&quot;code.stack-consuming-fibo.n&quot;/&gt;
-	    (stack-consuming-fibo (- n 2))))) 
+	    (stack-consuming-fibo (- n 2)))))     ; &lt;label id=&quot;code.stack-consuming-fibo.n2&quot;/&gt;
 ; END: stack-consuming-fibo
 
 ; START: tail-fibo</diff>
      <filename>examples/functional.clj</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,5 @@
 (ns examples.server.complete
-  (:use [compojure.http helpers routes servlet]
-        [compojure.html form-helpers page-helpers]
-	compojure.html
-        compojure.server.jetty
-        compojure.file-utils 
-        examples.snippet))
+  (:use compojure examples.snippet))
 
 (defn layout [title &amp; body]
   (html
@@ -18,7 +13,7 @@
 
 (defn new-snippet []
   (layout &quot;Create a Snippet&quot;
-    (form-to [POST &quot;/&quot;]
+    (form-to [:post &quot;/&quot;]
       (text-area {:rows 20 :cols 73} &quot;body&quot;)
       [:br]
       (submit-button &quot;Save&quot;))))
@@ -35,7 +30,7 @@
        [:div [:pre [:code.clojure (:body snippet)]]]
        [:div.date (:created_at snippet)]))))
 
-(defservlet snippet-servlet
+(defroutes snippet-app
   &quot;Create and view snippets.&quot;
   (GET &quot;/ping&quot; &quot;Pong&quot;)
 
@@ -43,20 +38,18 @@
      (new-snippet))
 
   (GET &quot;/:id&quot;
-     (show-snippet (route :id)))
+     (show-snippet (params :id)))
 
   (POST &quot;/&quot;
     (create-snippet (:body params)))	
 
   (GET &quot;/public/*&quot;
-    (or (serve-file (route :*)) :next))
+    (or (serve-file (params :*)) :next))
 
   (ANY &quot;*&quot;
     (page-not-found)))
 
-(defserver snippet-server
-  {:port 8080}
-  &quot;/*&quot; snippet-servlet)
-
 (ensure-snippets-table-exists)
-(start snippet-server)
\ No newline at end of file
+(run-server {:port 8080}
+  &quot;/*&quot; (servlet snippet-app))
+</diff>
      <filename>examples/server/complete.clj</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,18 @@
 (ns examples.server.step-1)
 
-; START: defservlet
-(use '[compojure.http servlet routes helpers])
-(defservlet snippet-servlet
+; START: defroutes
+(use 'compojure)
+(defroutes snippet-app
   &quot;Create and view snippets.&quot;
   (GET &quot;/ping&quot; &quot;pong&quot;)
 
   (ANY &quot;*&quot;
     (page-not-found)))
-; END: defservlet
+; END: defroutes
 
-; START: defserver
-(use 'compojure.server.jetty)
-(defserver snippet-server
-  {:port 8080}
-  &quot;/*&quot; snippet-servlet)
-; END: defserver
+; START: run-server
+(run-server {:port 8080}
+  &quot;/*&quot; (servlet snippet-app))
+; END: run-server
 
 </diff>
      <filename>examples/server/step_1.clj</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,10 @@
 (ns examples.server.step-2
-  (:use [compojure.http helpers routes servlet]
-        [compojure.html form-helpers page-helpers]
-	compojure.html
-        compojure.server.jetty
-        compojure.file-utils 
-        examples.snippet))
+  (:use compojure examples.snippet))
 
 ; START: new-snippet
 (defn new-snippet []
   (html
-    (form-to [POST &quot;/&quot;]
+    (form-to [:post &quot;/&quot;]
       (text-area {:rows 20 :cols 73} &quot;body&quot;)
       [:br]
       (submit-button &quot;Save&quot;))))
@@ -30,7 +25,7 @@
      [:div (:created_at snippet)])))
 ; END: show-snippet
 
-(defservlet snippet-servlet
+(defroutes snippet-app
   &quot;Create and view snippets.&quot;
   (GET &quot;/ping&quot; &quot;Pong&quot;)
 
@@ -39,7 +34,7 @@
      (new-snippet))
 
   (GET &quot;/:id&quot;
-     (show-snippet (route :id)))
+     (show-snippet (params :id)))
 
   (POST &quot;/&quot;
     (create-snippet (:body params)))	
@@ -48,9 +43,8 @@
   (ANY &quot;*&quot;
     (page-not-found)))
 
-(defserver snippet-server
-  {:port 8080}
-  &quot;/*&quot; snippet-servlet)
+(run-server {:port 8080}
+  &quot;/*&quot; (servlet snippet-app))
 
 
 </diff>
      <filename>examples/server/step_2.clj</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,5 @@
 (ns examples.server.step-3
-  (:use [compojure.http helpers routes servlet]
-        [compojure.html form-helpers page-helpers]
-	compojure.html
-        compojure.server.jetty
-        compojure.file-utils 
-        examples.snippet))
+  (:use compojure examples.snippet))
 
 ; START: layout
 (defn layout [title &amp; body]
@@ -22,7 +17,7 @@
 ; START: new-snippet
 (defn new-snippet []
   (layout &quot;Create a Snippet&quot;
-    (form-to [POST &quot;/&quot;]
+    (form-to [:post &quot;/&quot;]
       (text-area {:rows 20 :cols 73} &quot;body&quot;)
       [:br]
       (submit-button &quot;Save&quot;))))
@@ -42,7 +37,7 @@
        [:div (:created_at snippet)]))))
 ; END: show-snippet
 
-(defservlet snippet-servlet
+(defroutes snippet-app
   &quot;Create and view snippets.&quot;
   (GET &quot;/ping&quot; &quot;Pong&quot;)
 
@@ -50,20 +45,19 @@
      (new-snippet))
 
   (GET &quot;/:id&quot;
-     (show-snippet (route :id)))
+     (show-snippet (params :id)))
 
   (POST &quot;/&quot;
     (create-snippet (:body params)))	
 
   ; START: public
   (GET &quot;/public/*&quot;
-    (or (serve-file (route :*)) :next))
+    (or (serve-file (params :*)) :next))
   ; END: public
 
   (ANY &quot;*&quot;
     (page-not-found)))
 
-(defserver snippet-server
-  {:port 8080}
-  &quot;/*&quot; snippet-servlet)
+(run-server {:port 8080}
+  &quot;/*&quot; (servlet snippet-app))
 </diff>
      <filename>examples/server/step_3.clj</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
  [function]
  (let [sentinel (Object.) 
        result (atom sentinel)
-       reset-fn (fn [] (reset! result sentinel)) ; &lt;label id=&quot;concurrency.lancet.reset-fn&quot;/&gt;
+       reset-fn (fn [] (reset! result sentinel) nil) ; &lt;label id=&quot;concurrency.lancet.reset-fn&quot;/&gt;
        has-run? #(not= @result sentinel)] ; &lt;label id=&quot;concurrency.lancet.has-run&quot;/&gt;
    [has-run?
     reset-fn</diff>
      <filename>lancet/step_3_complete.clj</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>lib/clojure-contrib.jar</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>lib/clojure.jar</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>lib/compojure.jar</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,4 @@
-(ns examples.server.complete
-  (:use [compojure.http helpers routes servlet]
-        [compojure.html form-helpers page-helpers]
-	compojure.html
-        compojure.server.jetty
-        compojure.file-utils 
-        examples.snippet))
+(ns reader.snippet-server
+  (:use compojure examples.snippet))
 
 (println &quot;TODO: implement reader/snippet_server.clj!&quot;) 
-
-</diff>
      <filename>reader/snippet_server.clj</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>6edc127e67ef1ddf16b8b0ecd4a1b40b5facb21f</id>
    </parent>
  </parents>
  <author>
    <name>Stuart Halloway</name>
    <email>stu@thinkrelevance.com</email>
  </author>
  <url>http://github.com/stuarthalloway/programming-clojure/commit/5c668309459f088826774f66d9e286bd2571fad6</url>
  <id>5c668309459f088826774f66d9e286bd2571fad6</id>
  <committed-date>2009-05-01T09:00:11-07:00</committed-date>
  <authored-date>2009-05-01T09:00:11-07:00</authored-date>
  <message>RC0 testing spike</message>
  <tree>1b272e96b1e4a9860803df1cdcc0b467880635ec</tree>
  <committer>
    <name>Stuart Halloway</name>
    <email>stu@thinkrelevance.com</email>
  </committer>
</commit>
