<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>doc/images/1442160941-frontcover.jpg</filename>
    </added>
    <added>
      <filename>doc/images/asf-logo.png</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -28,7 +28,7 @@ end
 
 # Load the Gem specification for the current platform (Ruby or JRuby).
 def spec(platform = RUBY_PLATFORM[/java/] || 'ruby')
-  @specs ||= ['ruby', 'java'].inject({}) { |hash, spec_platform|
+  @specs ||= ['ruby', 'java', 'x86-mswin32'].inject({}) { |hash, spec_platform|
     $platform = spec_platform
     hash.update(spec_platform=&gt;Gem::Specification.load('buildr.gemspec'))
   }</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -55,9 +55,10 @@ for those one-off tasks, with a language that's a joy to use.
   spec.add_dependency 'highline',             '1.5.1'
   spec.add_dependency 'rubyforge',            '1.0.3'
   spec.add_dependency 'hoe',                  '~&gt;2.0'
-  spec.add_dependency 'rjb',                  '1.1.6' if spec.platform.to_s == 'ruby' 
+  spec.add_dependency 'rjb',                  '1.1.7' if spec.platform.to_s == 'ruby'
+  spec.add_dependency 'rjb',                  '1.1.6' if spec.platform.to_s == 'x86-mswin32'
   spec.add_dependency 'Antwrap',              '0.7.0'
-  spec.add_dependency 'rspec',                '1.2.6'
+  spec.add_dependency 'rspec',                '1.2.7'
   spec.add_dependency 'xml-simple',           '1.0.12'
   spec.add_dependency 'archive-tar-minitar',  '0.5.2'
   spec.add_dependency 'jruby-openssl',        '0.5.1' if spec.platform.to_s == 'java'</diff>
      <filename>buildr.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;html&gt;
   &lt;head&gt;
-    &lt;meta content='text/html;charset=UTF-8' http-equiv='Content-Type' /&gt;
+    &lt;meta content='text/html;charset=UTF-8' http-equiv='Content-Type'&gt;
     &lt;title&gt;buildr &amp;mdash; {{ page.title }}&lt;/title&gt;
     &lt;style type='text/css'&gt;
       @import 'css/default.css';
@@ -9,16 +9,14 @@
     &lt;style media='print' type='text/css'&gt;
       @import 'css/print.css';
     &lt;/style&gt;
-    &lt;meta content='Official Buildr documentation from the people in the know' name='subject' /&gt;
-    &lt;link href='images/favicon.png' rel='shortcut icon' /&gt;
+    &lt;meta content='Official Buildr documentation from the people in the know' name='subject'&gt;
+    &lt;link href='images/favicon.png' rel='shortcut icon'&gt;
   &lt;/head&gt;
   &lt;body&gt;
     &lt;div id='wrap'&gt;
       &lt;div id='header'&gt;
-        &lt;a href='http://buildr.apache.org/'&gt;
-          &lt;img alt='buildr' src='images/buildr.png' /&gt;
-        &lt;/a&gt;
-        &lt;div class='tagline'&gt;&lt;/div&gt;
+        &lt;a href='http://buildr.apache.org/' title=&quot;The build system that doesn't suck&quot;&gt;&lt;img alt='buildr' src='images/buildr.png'&gt;&lt;/a&gt;
+        &lt;div class='tagline'&gt;The build system that doesn't suck&lt;/div&gt;
       &lt;/div&gt;
       &lt;div id='pages'&gt;
         &lt;ol class='toc'&gt;
@@ -46,7 +44,7 @@
             &lt;/ol&gt;
           &lt;/li&gt;
           &lt;li&gt;Reference
-            &lt;ol  class=&quot;toc&quot;&gt;
+            &lt;ol class=&quot;toc&quot;&gt;
               &lt;li&gt;&lt;a href='rdoc'&gt;API&lt;/a&gt;&lt;/li&gt;
               &lt;li&gt;&lt;a href='http://docs.rubyrake.org'&gt;Rake&lt;/a&gt;&lt;/li&gt;
               &lt;li&gt;&lt;a href='http://antwrap.rubyforge.org'&gt;Antwrap&lt;/a&gt;&lt;/li&gt;
@@ -54,7 +52,7 @@
             &lt;/ol&gt;
           &lt;/li&gt;
           &lt;li&gt;Get Involved
-            &lt;ol  class=&quot;toc&quot;&gt;
+            &lt;ol class=&quot;toc&quot;&gt;
               &lt;li&gt;&lt;a href='mailing_lists.html'&gt;Mailing Lists&lt;/a&gt;&lt;/li&gt;
               &lt;li&gt;&lt;a href='http://issues.apache.org/jira/browse/Buildr'&gt;Issues/Bugs&lt;/a&gt;&lt;/li&gt;
               &lt;li&gt;&lt;a href='contributing.html'&gt;Contributing&lt;/a&gt;&lt;/li&gt;
@@ -62,14 +60,21 @@
               &lt;li&gt;&lt;a href='coverage/index.html'&gt;Coverage&lt;/a&gt;&lt;/li&gt;
             &lt;/ol&gt;
           &lt;/li&gt;
+          &lt;li&gt;
+            &lt;form action='http://www.google.com/cse' id='searchbox_003673095760649043902:ogcgrzu0l2y'&gt;
+              &lt;input name='cx' type='hidden' value='003673095760649043902:ogcgrzu0l2y'&gt;
+              &lt;input name='cof' type='hidden' value='FORID:0'&gt;
+              &lt;input name='q' size='20' type='text'&gt;
+              &lt;input name='sa' type='submit' value='Search'&gt;
+              &lt;img alt='Google Custom Search' src='http://www.google.com/coop/images/google_custom_search_smnar.gif'&gt;
+            &lt;/form&gt;
+          &lt;/li&gt;
+          &lt;li&gt;The Buildr Book
+            &lt;p&gt;&lt;a href='http://www.amazon.com/Buildr/dp/1442160942/'&gt;&lt;img src='images/1442160941-frontcover.jpg' style='width:120px'&gt;&lt;/a&gt;&lt;/p&gt;
+            &lt;p&gt;Based on the Buildr documentation, available from &lt;a href='http://www.amazon.com/Buildr/dp/1442160942/'&gt;Amazon&lt;/a&gt; and
+            &lt;a href='http://www.createspace.com/3382199'&gt;CreateSpace&lt;/a&gt;&lt;/p&gt;
+          &lt;/li&gt;
         &lt;/ol&gt;
-        &lt;form action='http://www.google.com/cse' id='searchbox_003673095760649043902:ogcgrzu0l2y'&gt;
-          &lt;input name='cx' type='hidden' value='003673095760649043902:ogcgrzu0l2y' /&gt;
-          &lt;input name='cof' type='hidden' value='FORID:0' /&gt;
-          &lt;input name='q' size='20' type='text' /&gt;
-          &lt;input name='sa' type='submit' value='Search' /&gt;
-          &lt;img alt='Google Custom Search' src='http://www.google.com/coop/images/google_custom_search_smnar.gif' /&gt;
-        &lt;/form&gt;
       &lt;/div&gt;
       &lt;div id='content'&gt;
         &lt;h1 id='{{ page.title | downcase | replace(' ', '_') }}'&gt;{{ page.title }}&lt;/h1&gt;</diff>
      <filename>doc/_layouts/default.html</filename>
    </modified>
    <modified>
      <diff>@@ -176,17 +176,45 @@ Yes, we do make typos, spelling errors and sometimes we write things that don't
 
 For simple typos and quick fixes, just send a message to the mailing list or log an issue in JIRA.
 
-If you end up rewriting a significant piece of text, or add new documentation (you rock!), send a patch.  Making documentation patches is fairly easy.  All the documentation is generated from text files in the @doc/pages@ directory, so all you need to do is check it out from SVN, edit, and @svn diff@ to create a patch.
+If you end up rewriting a significant piece of text, or add new documentation (you rock!), send a patch.  Making documentation patches is fairly easy.  All the documentation is generated from text files in the @doc/pages@ directory, so all you need to do is check it out from Git/SVN, edit, and @svn diff@ to create a patch.
 
 We use &quot;Textile&quot;:http://www.textism.com/tools/textile/ as the markup language, it takes all of a few minutes to learn, it's intuitive to use, and produces clean HTML.  You can learn it all in a few minutes from the &quot;Textile Reference Manual&quot;:http://redcloth.org/textile.  Also check out the &quot;Textile Quick Reference&quot;:http://hobix.com/textile/quick.html.
 
-You can always check the documentation to see which conventions we use, and also a couple of extensions we have for styling source code (with syntax highlighting!) and handling footnotes.  The table of contents is auto-generated form H1/H2 headers.
+Syntax highlighting handled by &quot;Pygments&quot;:http://pygments.org.  Use the special @highlight@ tag to separate code sample from the rest of the text and to tell Pygments which language to use.  For example:
 
-The tool we use for this is called Docter, which we developed specifically for Buildr, and use to create the Web site and printable PDF.  If you want to try it out you'll need to first @gem install docter@.  To generate a copy of the Web site, simple run @rake html@ .
+&lt;notextile&gt;&lt;pre&gt;
+&amp;#123;&amp;#37; highlight ruby &amp;#37;&amp;#125;
+define 'project' do
+  # Just a sample
+end
+&amp;#123;&amp;#37; endhighlight &amp;#37;&amp;#125;
+&lt;/pre&gt;&lt;/notextile&gt;
 
-If you're thinking of editing the docs, and using @rake html@ to see what the HTML looks like, you may want to try something simpler.  Start by running the Docter Web server with @rake docter@ and then point your browser at @http://localhost:3000@.  To see your edits, simply refresh the page.
+Have a look at existing documentation to see writing conventions, specifically:
 
-Generating the PDF is a bit more tricky, we use the HTML in combination with print media CSS stylesheets and run them through the wonderful &quot;PrinceXML&quot;:http://www.princexml.com/, so you'll need to install PrinceXML first before you can @rake pdf@.
+* Separate paragraphs with two newlines.
+* Use one newline only if you need a &amp;lt;br&amp;gt; tag, otherwise, no newlines inside the paragraph.
+* When creating a new page, don't forget the YAML premable at the top (Jekyll needs the page title and layout).
+* The layout uses H1 to render the page title; only use H2 through H4 for the page content.
+* Use H2 headers for the major page sections.  Give each H2 header a unique ID so the table of contents can link to it.
+* Separating sentences with two spaces, just a convenience when editing in a text editor using monospaced fonts.
+* If in doubt, ask.
+
+To go from Textile to HTML we use &quot;Jekyll&quot;:http://github.com/mojombo/jekyll.  You can use the @jekyll@ rake task to transform the files under @doc@ and create a copy of the Web site in the directory @_site@.  For example:
+
+{% highlight sh %}
+$ rake jekyll
+$ open _site/index.html
+{% endhighlight %}
+
+There is no live editing, but you can run @rake jekyll auto=true@, and when you update and save a Textile page it will regenerate the corresponding HTML page.
+
+To go from HTML to PDF we use &quot;PrinceXML&quot;:http://www.princexml.com/.  The target file @buildr.pdf@ is generated by first running Jekyll and then merging the generated HTML pages into a single PDF document.  For example:
+
+{% highlight sh %}
+$ rake buildr.pdf
+$ open buildr.pdf
+{% endhighlight %}
 
 
 h2(#contributors).  Contributors</diff>
      <filename>doc/contributing.textile</filename>
    </modified>
    <modified>
      <diff>@@ -79,7 +79,7 @@ blockquote {
   padding-right: 2em;
   margin-left: 0.3em;
   margin-right: 0;
-  border-left: 1px solid #3c78b5;
+  font-style: italic;
 }
 
 ul { 
@@ -121,14 +121,16 @@ th, thead td {
 
 #header {
   margin: 0 0 3em 18em;
+  position: relative;
 }
 
 #header .tagline {
   float: right;
-  font-size: 1.5em;
+  font-size: 1.2em;
   font-weight: bold;
-  position: relative;
-  bottom: 4.5em;
+  position: absolute;
+  top: 0.6em;
+  right: 0;
 }
 
 
@@ -168,6 +170,11 @@ th, thead td {
   margin-top: 2em;
   padding: 0.3em 0 0.5em 0.5em;
 }
+#pages ol li p  {
+  font-weight: normal;
+  color: #000;
+  vertical-align: center;
+}
 
 
 #content { /* Parent Wrapper for inside boxes */</diff>
      <filename>doc/css/default.css</filename>
    </modified>
    <modified>
      <diff>@@ -93,5 +93,9 @@
     page-break-before: always;
     padding-top: 1.5in;
   }
+  div.preface.quotes {
+    page-break-before: always;
+    padding-top: 1in;
+  }
 
 }</diff>
      <filename>doc/css/print.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,13 +1,31 @@
 ---
 layout: default
-title: Welcome
+title: Apache Buildr
 ---
 
-h2(#what_is_apache_buildr).  What is Apache Buildr?
-
 Apache Buildr is a build system for Java-based applications, including support for Scala, Groovy and a growing number of JVM languages and tools.  We wanted something that's simple and intuitive to use, so we only need to tell it what to do, and it takes care of the rest.  But also something we can easily extend for those one-off tasks, with a language that's a joy to use.  And of course, we wanted it to be fast, reliable and have outstanding dependency management.
 
-Here's what we got:
+
+h2(#why).  Why Buildr Rocks
+
+&quot;Daniel Spiewak&quot;:http://www.codecommit.com/blog:
+
+bq. If you think about it, the question isn&#8217;t &#8220;Why use Buildr?&#8221;, it&#8217;s really &#8220;Why use anything else?&#8221; The advantages afforded by Buildr are so substantial, I really can&#8217;t see myself going with any other tool, at least not when I have a choice.
+
+&quot;Tristan Juricek&quot;:http://tristanhunt.com/:
+
+bq. That&#8217;s still the strongest sell: it builds everything I need, and as I&#8217;ve needed more, I just got things working without a lot of fuss.
+
+&quot;Matthieu Riou&quot;:http://offthelip.org/:
+
+bq. We used to rely on Ant, with a fairly extensive set of scripts. It worked but was expensive to maintain. The biggest mistake afterward was to migrate to Maven2. I could write pages of rants explaining all the problems we ran into and we still ended up with thousands of lines of XML.
+
+&quot;Martin Grotzke&quot;:http://www.javakaffee.de/blog/:
+
+bq. The positive side effect for me as a java user is that I learn a little ruby, and that&#8217;s easy but lots of fun&#8230; :-)
+
+
+h2(#what).  What You Get
 
 * A simple way to specify projects, and build large projects out of smaller sub-projects.
 * Pre-canned tasks that require the least amount of configuration, keeping the build script DRY and simple.
@@ -23,7 +41,7 @@ Here's what we got:
 So let's get started.  You can &quot;read the documentation online&quot;:getting_started.html, or &quot;download the PDF&quot;:buildr.pdf.
 
 
-h2(#news).  Project News
+h2(#news).  What's New
 
 New in Buildr 1.3.4:
 
@@ -38,8 +56,12 @@ New in Buildr 1.3.4:
 See the &quot;CHANGELOG&quot;:CHANGELOG for full details.
 
 
-h2(#legal).  Legal Notices
+h2(#notices).  Credits &amp; Notices
+
+!http://www.apache.org/images/asf-logo.gif(A project of the Apache Software Foundation)!:http://www.apache.org
 
 The Apache Software Foundation is a non-profit organization, consider &quot;sponsoring&quot;:http://www.apache.org/foundation/sponsorship.html and check the &quot;thanks&quot;:http://www.apache.org/foundation/thanks.html page.
 
 &quot;ColorCons&quot;:http://www.mouserunner.com/Spheres_ColoCons1_Free_Icons.html, copyright of Ken Saunders.  &quot;DejaVu fonts&quot;:http://dejavu.sourceforge.net, copyright of Bitstream, Inc.
+
+Community member quotes from a thread on &quot;Stack Overflow&quot;:http://stackoverflow.com/questions/1015525/why-use-buildr-instead-of-ant-or-maven/1055864.</diff>
      <filename>doc/index.textile</filename>
    </modified>
    <modified>
      <diff>@@ -4,24 +4,50 @@ layout: preface
 
 p(title). !images/zbuildr.png!
 
-#(toc) &quot;Getting Started&quot;:getting_started.html
-# &quot;Projects&quot;:projects.html
-# &quot;Building&quot;:building.html
-# &quot;Artifacts&quot;:artifacts.html
-# &quot;Packaging&quot;:packaging.html
-# &quot;Testing&quot;:testing.html
-# &quot;Settings &amp; Profiles&quot;:settings_profiles.html
-# &quot;Languages&quot;:languages.html
-# &quot;More Stuff&quot;:more_stuff.html
-# &quot;Extending Buildr&quot;:extending.html
-# &quot;Contributing&quot;:contributing.html
+&lt;ol class='toc'&gt;
+  &lt;li&gt;&quot;Getting Started&quot;:getting_started.html&lt;/li&gt;
+  &lt;li&gt;&quot;Projects&quot;:projects.html&lt;/li&gt;
+  &lt;li&gt;&quot;Building&quot;:building.html&lt;/li&gt;
+  &lt;li&gt;&quot;Artifacts&quot;:artifacts.html&lt;/li&gt;
+  &lt;li&gt;&quot;Packaging&quot;:packaging.html&lt;/li&gt;
+  &lt;li&gt;&quot;Testing&quot;:testing.html&lt;/li&gt;
+  &lt;li&gt;&quot;Settings &amp; Profiles&quot;:settings_profiles.html&lt;/li&gt;
+  &lt;li&gt;&quot;Languages&quot;:languages.html&lt;/li&gt;
+  &lt;li&gt;&quot;More Stuff&quot;:more_stuff.html&lt;/li&gt;
+  &lt;li&gt;&quot;Extending Buildr&quot;:extending.html&lt;/li&gt;
+  &lt;li&gt;&quot;Contributing&quot;:contributing.html&lt;/li&gt;
+&lt;/ol&gt;
 
 
-p(preface). Copyright 2007-2009 Apache Buildr
+p(preface).  !images/asf-logo.png!
+
+Copyright 2007-2009 Apache Buildr
 
 Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at
 
-http://www.apache.org/licenses/LICENSE-2.0
+  http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
+
+
+&lt;div class='preface quotes'&gt;
+&quot;Daniel Spiewak&quot;:http://www.codecommit.com/blog:
+
+bq. If you think about it, the question isn&#8217;t &#8220;Why use Buildr?&#8221;, it&#8217;s really &#8220;Why use anything else?&#8221; The advantages afforded by Buildr are so substantial, I really can&#8217;t see myself going with any other tool, at least not when I have a choice.
+
+&quot;Tristan Juricek&quot;:http://tristanhunt.com/:
+
+bq. That&#8217;s still the strongest sell: it builds everything I need, and as I&#8217;ve needed more, I just got things working without a lot of fuss.
+
+&quot;Matthieu Riou&quot;:http://offthelip.org/:
+
+bq. We used to rely on Ant, with a fairly extensive set of scripts. It worked but was expensive to maintain. The biggest mistake afterward was to migrate to Maven2. I could write pages of rants explaining all the problems we ran into and we still ended up with thousands of lines of XML.
+
+&quot;Martin Grotzke&quot;:http://www.javakaffee.de/blog/:
+
+bq. The positive side effect for me as a java user is that I learn a little ruby, and that&#8217;s easy but lots of fun&#8230; :-)
+&lt;/div&gt;
+
+
+p(preface).  </diff>
      <filename>doc/preface.textile</filename>
    </modified>
    <modified>
      <diff>@@ -108,8 +108,7 @@ module Buildr
 
 
   module Git  #:nodoc:
-
-  module_function
+    module_function
 
     # :call-seq:
     #   git(*args)
@@ -148,23 +147,19 @@ module Buildr
     # Return the name of the remote repository whose branch the current local branch tracks,
     # or nil if none.
     def remote(branch = current_branch)
-      remote = git('config', '--get', &quot;branch.#{branch}.remote&quot;).strip
-      remote if git('remote').include?(remote)
-    rescue
-      nil
+      remote = git('config', '--get', &quot;branch.#{branch}.remote&quot;).to_s.strip
+      remote if !remote.empty? &amp;&amp; git('remote').include?(remote)
     end
 
     # Return the name of the current branch
     def current_branch
       git('branch')[/^\* (.*)$/, 1]
     end
-
   end
 
 
   module Svn #:nodoc:
-
-  module_function
+    module_function
 
     # :call-seq:
     #   svn(*args)</diff>
      <filename>lib/buildr/core/build.rb</filename>
    </modified>
    <modified>
      <diff>@@ -317,11 +317,12 @@ module Buildr
       #
       # The optional block is called with the project name when the task executes
       # and returns a message that, for example &quot;Building project #{name}&quot;.
-      def local_task(args, &amp;block)
-        task args do |task|
+      def local_task(*args, &amp;block)
+        task *args do |task, args|
+          args = task.arg_names.map {|n| args[n]}
           local_projects do |project|
             info block.call(project.name) if block
-            task(&quot;#{project.name}:#{task.name}&quot;).invoke
+            task(&quot;#{project.name}:#{task.name}&quot;).invoke *args
           end
         end
       end</diff>
      <filename>lib/buildr/core/project.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ module Buildr
     class JIRB &lt; Base
       include JavaRebel
       
-      JRUBY_VERSION = '1.1.6'
+      JRUBY_VERSION = '1.3.1'
       
       class &lt;&lt; self
         def lang
@@ -54,7 +54,7 @@ module Buildr
           ]
           
           Java::Commands.java 'org.jruby.Main', &quot;#{jruby_home}#{File::SEPARATOR}bin#{File::SEPARATOR}jirb&quot;, {
-            :properties =&gt; props.merge(rebel_props project),
+            :properties =&gt; props.merge(rebel_props(project)),
             :classpath =&gt; cp,
             :java_args =&gt; args + rebel_args
           }</diff>
      <filename>lib/buildr/core/shell.rb</filename>
    </modified>
    <modified>
      <diff>@@ -367,7 +367,7 @@ if Buildr::Util.java_platform?
   end
 
   module FileUtils
-    extend extend FFI::Library
+    extend FFI::Library
     attach_function :system, [:string], :int
     alias_method :__native_system__, :system
     
@@ -407,4 +407,4 @@ if Buildr::Util.java_platform?
     end
 
   end
-end
\ No newline at end of file
+end</diff>
      <filename>lib/buildr/core/util.rb</filename>
    </modified>
    <modified>
      <diff>@@ -236,8 +236,7 @@ module Buildr
     end
 
     def tests(dependencies) #:nodoc:
-      Dir[task.project.path_to(:source, bdd_dir, lang, '**/*_spec.rb')].
-        select do |name| 
+      Dir[task.project.path_to(:source, bdd_dir, lang, '**/*_spec.rb')].select do |name| 
         selector = ENV['SPEC']
         selector.nil? || Regexp.new(selector) === name
       end</diff>
      <filename>lib/buildr/java/bdd.rb</filename>
    </modified>
    <modified>
      <diff>@@ -74,8 +74,9 @@ module Buildr
           elsif content.nil? || File.directory?(content.to_s)
             mkpath.call path
           else
-            zip.put_next_entry(path, compression_level)
+            entry = zip.put_next_entry(path, compression_level)
             File.open content.to_s, 'rb' do |is|
+              entry.unix_perms = is.stat.mode &amp; 07777
               while data = is.read(4096)
                 zip &lt;&lt; data
               end
@@ -155,6 +156,7 @@ module Buildr
             dest = File.expand_path(dest, target.to_s)
             trace &quot;Extracting #{dest}&quot;
             mkpath File.dirname(dest) rescue nil
+            entry.restore_permissions = true
             entry.extract(dest) { true }
           end
         end</diff>
      <filename>lib/buildr/packaging/ziptask.rb</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ module Buildr
         }
         
         Java::Commands.java 'scala.tools.nsc.MainGenericRunner', {
-          :properties =&gt; props.merge(rebel_props project),
+          :properties =&gt; props.merge(rebel_props(project)),
           :classpath =&gt; cp,
           :java_args =&gt; rebel_args
         }</diff>
      <filename>lib/buildr/scala/shell.rb</filename>
    </modified>
    <modified>
      <diff>@@ -59,7 +59,7 @@ end
 
 desc &quot;Generate Buildr documentation as buildr.pdf&quot;
 file 'buildr.pdf'=&gt;'_site' do |task|
-  pages = File.read('doc/preface.textile').scan(/^#.*&quot;:(\S*)$/).flatten.map { |f| &quot;_site/#{f}&quot; }
+  pages = File.read('_site/preface.html').scan(/&lt;li&gt;&lt;a href=['&quot;]([^'&quot;]+)/).flatten.map { |f| &quot;_site/#{f}&quot; }
   sh 'prince', '--input=html', '--no-network', '--log=prince_errors.log', &quot;--output=#{task.name}&quot;, '_site/preface.html', *pages
 end
 </diff>
      <filename>rakelib/doc.rake</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@
 # the License.
 
 
-#gem 'RedCloth', '4.2.0'
+gem 'mojombo-jekyll', '~&gt; 0.5.2' # skip past some buggy versions
 require 'rake/tasklib'
 require 'jekyll'
 
@@ -84,3 +84,37 @@ module TocFilter
   end
 end
 Liquid::Template.register_filter(TocFilter)
+
+
+
+# Under Ruby 1.9 [a,b,c].to_s doesn't join the array first. (Jekyll 0.5.2 requires this)
+module Jekyll
+  class HighlightBlock &lt; Liquid::Block
+    def render(context)
+      if context.registers[:site].pygments
+        render_pygments(context, super.join)
+      else
+        render_codehighlighter(context, super.join)
+      end
+    end
+  end
+end
+
+# Ruby 1.9 has sane closure scoping which manages to mess Liquid filters. (Liquid 2.0.0 requires this)
+module Liquid
+  class Variable
+    def render(context)
+      return '' if @name.nil?
+      @filters.inject(context[@name]) do |output, filter|
+        filterargs = filter[1].to_a.collect do |a|
+         context[a]
+        end
+        begin
+          context.invoke(filter[0], output, *filterargs)
+        rescue FilterNotFound
+          raise FilterNotFound, &quot;Error - filter '#{filter[0]}' in '#{@markup.strip}' could not be found.&quot;
+        end
+      end
+    end
+  end
+end</diff>
      <filename>rakelib/jekylltask.rb</filename>
    </modified>
    <modified>
      <diff>@@ -51,9 +51,11 @@ end
 file Rake::GemPackageTask.new(spec).package_dir=&gt;:compile
 file Rake::GemPackageTask.new(spec).package_dir_path=&gt;:compile
 
-# We also need the other package (JRuby if building on Ruby, and vice versa)
+# We also need the other packages (JRuby if building on Ruby, and vice versa)
 # Must call new with block, even if block does nothing, otherwise bad things happen.
-Rake::GemPackageTask.new(spec(RUBY_PLATFORM[/java/] ? 'ruby' : 'java')) { |task| }
+@specs.values.each do |s|
+  Rake::GemPackageTask.new(s) { |task| }
+end
 
 
 desc &quot;Upload snapshot packages over to people.apache.org&quot;</diff>
      <filename>rakelib/package.rake</filename>
    </modified>
    <modified>
      <diff>@@ -511,7 +511,7 @@ describe URI::SFTP, '#write' do
   end
 
   it 'should create missing paths on server' do
-    @sftp_session.should_receive(:opendir!).twice { |path| fail unless path == '/root' }
+    @sftp_session.should_receive(:opendir!) { |path| fail unless path == '/root' }
     @sftp_session.should_receive(:mkdir!).once.with('/root/path', {})
     @uri.write @content
   end</diff>
      <filename>spec/core/transport_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -375,6 +375,15 @@ describe ZipTask do
     archive(@archive).invoke
     inspect_archive { |archive| archive.keys.should include('code/') }
   end
+
+  it 'should preserve file permissions' do
+    write 'src/main/bin/hello', 'echo hi'
+    chmod 0777,  'src/main/bin/hello'
+    zip('foo.zip').include('src/main/bin/*').invoke
+    unzip('target' =&gt; 'foo.zip').extract
+    (File.stat('target/hello').mode &amp; 0777).should == 0777
+  end
+
 end
 
 </diff>
      <filename>spec/packaging/archive_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9b09a448e05be08b3ae4eb5970daee85457ed87c</id>
    </parent>
    <parent>
      <id>761abbffa1e551911fb22e87eb27a6b5be79df42</id>
    </parent>
    <parent>
      <id>b52963ea67501984efdbf13cd192670a2d4a37ca</id>
    </parent>
  </parents>
  <author>
    <name>Daniel Spiewak</name>
    <email>djspiewak@apache.org</email>
  </author>
  <url>http://github.com/djspiewak/buildr/commit/df1ef5c4a2c9e5633e262e3d61ea762d5a73b19a</url>
  <id>df1ef5c4a2c9e5633e262e3d61ea762d5a73b19a</id>
  <committed-date>2009-07-08T18:35:46-07:00</committed-date>
  <authored-date>2009-07-08T18:35:46-07:00</authored-date>
  <message>Merge branches 'trunk' and 'process-status' into HEAD</message>
  <tree>a3a702663db549f83dd6dc37390e890e9c9c151a</tree>
  <committer>
    <name>Daniel Spiewak</name>
    <email>djspiewak@apache.org</email>
  </committer>
</commit>
