Added: dev/buildr/1.5.0/site/rdoc/Buildr/Packaging.html
==============================================================================
--- dev/buildr/1.5.0/site/rdoc/Buildr/Packaging.html (added)
+++ dev/buildr/1.5.0/site/rdoc/Buildr/Packaging.html Sat Sep 17 06:23:20 2016
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>module Buildr::Packaging - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../";
+</script>
+
+<script src="../js/jquery.js"></script>
+<script src="../js/darkfish.js"></script>
+
+<link href="../css/fonts.css" rel="stylesheet">
+<link href="../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="module">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" 
class="nav-section">
+  <h2>
+    <a href="../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../table_of_contents.html#pages">Pages</a>
+    <a href="../table_of_contents.html#classes">Classes</a>
+    <a href="../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section 
initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    
+    
+    
+    
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="module-Buildr::Packaging">
+  <h1 id="module-Buildr::Packaging" class="module">
+    module Buildr::Packaging
+  </h1>
+
+  <section class="description">
+    
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+
+    
+
+    
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer";>Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/";>RDoc</a> 4.2.2.
+  <p>Based on <a 
href="http://deveiate.org/projects/Darkfish-RDoc/";>Darkfish</a> by <a 
href="http://deveiate.org";>Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java.html
==============================================================================
--- dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java.html (added)
+++ dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java.html Sat Sep 17 06:23:20 
2016
@@ -0,0 +1,293 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>module Buildr::Packaging::Java - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../../";
+</script>
+
+<script src="../../js/jquery.js"></script>
+<script src="../../js/darkfish.js"></script>
+
+<link href="../../css/fonts.css" rel="stylesheet">
+<link href="../../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="module">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" 
class="nav-section">
+  <h2>
+    <a href="../../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../../table_of_contents.html#pages">Pages</a>
+    <a href="../../table_of_contents.html#classes">Classes</a>
+    <a href="../../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section 
initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    
+    <div id="includes-section" class="nav-section">
+  <h3>Included Modules</h3>
+
+  <ul class="link-list">
+  
+  
+    <li><a class="include" href="../Extension.html">Buildr::Extension</a>
+  
+  
+  </ul>
+</div>
+
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li ><a href="#method-i-package_with_javadoc">#package_with_javadoc</a>
+    
+    <li ><a href="#method-i-package_with_sources">#package_with_sources</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="module-Buildr::Packaging::Java">
+  <h1 id="module-Buildr::Packaging::Java" class="module">
+    module Buildr::Packaging::Java
+  </h1>
+
+  <section class="description">
+    
+<p>Adds packaging for <a href="Java.html">Java</a> projects: JAR, WAR, AAR,
+EAR, Javadoc.</p>
+
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+
+    
+    <section class="attribute-method-details" class="method-section">
+      <header>
+        <h3>Attributes</h3>
+      </header>
+
+      
+      <div id="attribute-i-manifest" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">manifest</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p><a href="Java/Manifest.html">Manifest</a> used for packaging. 
Inherited
+from parent project. The default value is a hash that includes the
+Build-By, Build-Jdk, Implementation-Title and Implementation-Version
+values. The later are taken from the project&#39;s comment (or name) and
+version number.</p>
+        
+        </div>
+      </div>
+      
+      <div id="attribute-i-meta_inf" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">meta_inf</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>Files to always include in the package META-INF directory. The 
default
+value include the <a href="../../LICENSE.html">LICENSE</a> file if one
+exists in the project&#39;s base directory.</p>
+        
+        </div>
+      </div>
+      
+    </section>
+    
+
+    
+     <section id="public-instance-5Buntitled-5D-method-details" 
class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-package_with_javadoc" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            package_with_javadoc(options?)
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Call this when you want the project (and all its sub-projects) to 
create a
+JavaDoc distribution. You can use the JavaDoc distribution in an IDE when
+coding against the API.</p>
+
+<p>A JavaDoc distribution is a ZIP package with the classifier
+&#39;javadoc&#39;, which includes all the sources used by the compile task.</p>
+
+<p>Packages use the project&#39;s manifest and <a
+href="Java.html#attribute-i-meta_inf">#meta_inf</a> properties, which you
+can override by passing different values (e.g. false to exclude the
+manifest) in the options.</p>
+
+<p>To create JavaDoc distributions only for specific projects, use the :only
+and :except options, for example:</p>
+
+<pre class="ruby"><span class="ruby-identifier">package_with_javadoc</span> 
:<span class="ruby-identifier">only=</span><span 
class="ruby-operator">&gt;</span>[<span 
class="ruby-string">&#39;foo:bar&#39;</span>, <span 
class="ruby-string">&#39;foo:baz&#39;</span>]
+</pre>
+
+<p>(Same as calling package :javadoc on each project/sub-project that has
+source directories.)</p>
+          
+          
+
+          
+          <div class="method-source-code" id="package_with_javadoc-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 659</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">package_with_javadoc</span>(<span 
class="ruby-identifier">options</span> = <span class="ruby-keyword">nil</span>)
+  <span class="ruby-identifier">options</span> <span 
class="ruby-operator">||=</span> {}
+  <span class="ruby-identifier">enhance</span> <span 
class="ruby-keyword">do</span>
+    <span class="ruby-identifier">selected</span> = <span 
class="ruby-identifier">options</span>[<span class="ruby-value">:only</span>] 
<span class="ruby-operator">?</span> <span 
class="ruby-identifier">projects</span>(<span 
class="ruby-identifier">options</span>[<span class="ruby-value">:only</span>]) 
<span class="ruby-operator">:</span>
+      <span class="ruby-identifier">options</span>[<span 
class="ruby-value">:except</span>] <span class="ruby-operator">?</span> ([<span 
class="ruby-keyword">self</span>] <span class="ruby-operator">+</span> <span 
class="ruby-identifier">projects</span> <span class="ruby-operator">-</span> 
<span class="ruby-identifier">projects</span>(<span 
class="ruby-identifier">options</span>[<span 
class="ruby-value">:except</span>])) <span class="ruby-operator">:</span>
+      [<span class="ruby-keyword">self</span>] <span 
class="ruby-operator">+</span> <span class="ruby-identifier">projects</span>
+    <span class="ruby-identifier">selected</span>.<span 
class="ruby-identifier">reject</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">project</span><span 
class="ruby-operator">|</span> <span 
class="ruby-identifier">project</span>.<span 
class="ruby-identifier">compile</span>.<span 
class="ruby-identifier">sources</span>.<span 
class="ruby-identifier">empty?</span> }.
+      <span class="ruby-identifier">each</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">project</span><span 
class="ruby-operator">|</span> <span 
class="ruby-identifier">project</span>.<span 
class="ruby-identifier">package</span>(<span 
class="ruby-value">:javadoc</span>) }
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-package_with_sources" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            package_with_sources(options?)
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Call this when you want the project (and all its sub-projects) to 
create a
+source distribution. You can use the source distribution in an IDE when
+debugging.</p>
+
+<p>A source distribution is a jar package with the classifier
+&#39;sources&#39;, which includes all the sources used by the compile task.</p>
+
+<p>Packages use the project&#39;s manifest and <a
+href="Java.html#attribute-i-meta_inf">#meta_inf</a> properties, which you
+can override by passing different values (e.g. false to exclude the
+manifest) in the options.</p>
+
+<p>To create source distributions only for specific projects, use the :only
+and :except options, for example:</p>
+
+<pre class="ruby"><span class="ruby-identifier">package_with_sources</span> 
:<span class="ruby-identifier">only=</span><span 
class="ruby-operator">&gt;</span>[<span 
class="ruby-string">&#39;foo:bar&#39;</span>, <span 
class="ruby-string">&#39;foo:baz&#39;</span>]
+</pre>
+
+<p>(Same as calling package :sources on each project/sub-project that has
+source directories.)</p>
+          
+          
+
+          
+          <div class="method-source-code" id="package_with_sources-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 631</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">package_with_sources</span>(<span 
class="ruby-identifier">options</span> = <span class="ruby-keyword">nil</span>)
+  <span class="ruby-identifier">options</span> <span 
class="ruby-operator">||=</span> {}
+  <span class="ruby-identifier">enhance</span> <span 
class="ruby-keyword">do</span>
+    <span class="ruby-identifier">selected</span> = <span 
class="ruby-identifier">options</span>[<span class="ruby-value">:only</span>] 
<span class="ruby-operator">?</span> <span 
class="ruby-identifier">projects</span>(<span 
class="ruby-identifier">options</span>[<span class="ruby-value">:only</span>]) 
<span class="ruby-operator">:</span>
+      <span class="ruby-identifier">options</span>[<span 
class="ruby-value">:except</span>] <span class="ruby-operator">?</span> ([<span 
class="ruby-keyword">self</span>] <span class="ruby-operator">+</span> <span 
class="ruby-identifier">projects</span> <span class="ruby-operator">-</span> 
<span class="ruby-identifier">projects</span>(<span 
class="ruby-identifier">options</span>[<span 
class="ruby-value">:except</span>])) <span class="ruby-operator">:</span>
+      [<span class="ruby-keyword">self</span>] <span 
class="ruby-operator">+</span> <span class="ruby-identifier">projects</span>
+    <span class="ruby-identifier">selected</span>.<span 
class="ruby-identifier">reject</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">project</span><span 
class="ruby-operator">|</span> <span 
class="ruby-identifier">project</span>.<span 
class="ruby-identifier">compile</span>.<span 
class="ruby-identifier">sources</span>.<span 
class="ruby-identifier">empty?</span> <span 
class="ruby-operator">&amp;&amp;</span> <span 
class="ruby-identifier">project</span>.<span 
class="ruby-identifier">resources</span>.<span 
class="ruby-identifier">target</span>.<span class="ruby-identifier">nil?</span> 
}.
+      <span class="ruby-identifier">each</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">project</span><span 
class="ruby-operator">|</span> <span 
class="ruby-identifier">project</span>.<span 
class="ruby-identifier">package</span>(<span 
class="ruby-value">:sources</span>) }
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer";>Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/";>RDoc</a> 4.2.2.
+  <p>Based on <a 
href="http://deveiate.org/projects/Darkfish-RDoc/";>Darkfish</a> by <a 
href="http://deveiate.org";>Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/AarTask.html
==============================================================================
--- dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/AarTask.html (added)
+++ dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/AarTask.html Sat Sep 17 
06:23:20 2016
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::Packaging::Java::AarTask - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../../../";
+</script>
+
+<script src="../../../js/jquery.js"></script>
+<script src="../../../js/darkfish.js"></script>
+
+<link href="../../../css/fonts.css" rel="stylesheet">
+<link href="../../../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" 
class="nav-section">
+  <h2>
+    <a href="../../../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../../../table_of_contents.html#pages">Pages</a>
+    <a href="../../../table_of_contents.html#classes">Classes</a>
+    <a href="../../../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section 
initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="JarTask.html">Buildr::Packaging::Java::JarTask</a>
+  
+</div>
+
+    <div id="includes-section" class="nav-section">
+  <h3>Included Modules</h3>
+
+  <ul class="link-list">
+  
+  
+    <li><a class="include" href="../../../Buildr.html">Buildr</a>
+  
+  
+  </ul>
+</div>
+
+    
+    
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::Packaging::Java::AarTask">
+  <h1 id="class-Buildr::Packaging::Java::AarTask" class="class">
+    class Buildr::Packaging::Java::AarTask
+  </h1>
+
+  <section class="description">
+    
+<p>Extends the <a href="JarTask.html">JarTask</a> to create an AAR file (Axis2
+service archive).</p>
+
+<p>Supports all the same options as <a href="JarTask.html">JarTask</a>, with
+the addition of :wsdls, :services_xml and :libs.</p>
+<ul><li>
+<p>:wsdls – WSDL files to include (under META-INF).  By default packaging 
will
+include all WSDL files found under src/main/axis2.</p>
+</li><li>
+<p>:services_xml – Location of services.xml file (included under META-INF). 
+By default packaging takes this from src/main/axis2/services.xml.  Use a
+different path if you genereate the services.xml file as part of the build.</p>
+</li><li>
+<p>:libs – Array of files, tasks, artifact specifications, etc that will be
+added to the /lib directory.</p>
+</li></ul>
+
+<p>For example:</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">aar</span>).<span 
class="ruby-identifier">with</span>(:<span 
class="ruby-identifier">libs=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-string">&#39;log4j:log4j:jar:1.1&#39;</span>)
+
+<span class="ruby-identifier">filter</span>.<span 
class="ruby-identifier">from</span>(<span 
class="ruby-string">&#39;src/main/axis2&#39;</span>).<span 
class="ruby-identifier">into</span>(<span 
class="ruby-string">&#39;target&#39;</span>).<span 
class="ruby-identifier">include</span>(<span 
class="ruby-string">&#39;services.xml&#39;</span>, <span 
class="ruby-string">&#39;*.wsdl&#39;</span>).<span 
class="ruby-identifier">using</span>(<span 
class="ruby-string">&#39;http_port&#39;</span>=<span 
class="ruby-operator">&gt;</span><span 
class="ruby-string">&#39;8080&#39;</span>)
+<span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">aar</span>).<span 
class="ruby-identifier">wsdls</span>.<span class="ruby-identifier">clear</span>
+<span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">aar</span>).<span 
class="ruby-identifier">with</span>(:<span 
class="ruby-identifier">services_xml=</span><span 
class="ruby-operator">&gt;</span><span class="ruby-identifier">_</span>(<span 
class="ruby-string">&#39;target/services.xml&#39;</span>), :<span 
class="ruby-identifier">wsdls=</span><span 
class="ruby-operator">&gt;</span><span class="ruby-identifier">_</span>(<span 
class="ruby-string">&#39;target/*.wsdl&#39;</span>))
+</pre>
+
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+
+    
+    <section class="attribute-method-details" class="method-section">
+      <header>
+        <h3>Attributes</h3>
+      </header>
+
+      
+      <div id="attribute-i-libs" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">libs</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>Artifacts to include under /lib.</p>
+        
+        </div>
+      </div>
+      
+      <div id="attribute-i-services_xml" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">services_xml</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>Location of services.xml file (defaults to 
src/main/axis2/services.xml).</p>
+        
+        </div>
+      </div>
+      
+      <div id="attribute-i-wsdls" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">wsdls</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>WSDLs to include under META-INF (defaults to all WSDLs under
+src/main/axis2).</p>
+        
+        </div>
+      </div>
+      
+    </section>
+    
+
+    
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer";>Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/";>RDoc</a> 4.2.2.
+  <p>Based on <a 
href="http://deveiate.org/projects/Darkfish-RDoc/";>Darkfish</a> by <a 
href="http://deveiate.org";>Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/EarTask.html
==============================================================================
--- dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/EarTask.html (added)
+++ dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/EarTask.html Sat Sep 17 
06:23:20 2016
@@ -0,0 +1,628 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::Packaging::Java::EarTask - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../../../";
+</script>
+
+<script src="../../../js/jquery.js"></script>
+<script src="../../../js/darkfish.js"></script>
+
+<link href="../../../css/fonts.css" rel="stylesheet">
+<link href="../../../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" 
class="nav-section">
+  <h2>
+    <a href="../../../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../../../table_of_contents.html#pages">Pages</a>
+    <a href="../../../table_of_contents.html#classes">Classes</a>
+    <a href="../../../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section 
initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="JarTask.html">Buildr::Packaging::Java::JarTask</a>
+  
+</div>
+
+    
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li class="calls-super" ><a href="#method-c-new">::new</a>
+    
+    <li ><a href="#method-i-3C-3C">#&lt;&lt;</a>
+    
+    <li ><a href="#method-i-add">#add</a>
+    
+    <li ><a href="#method-i-associate">#associate</a>
+    
+    <li ><a href="#method-i-component_clone">#component_clone</a>
+    
+    <li ><a href="#method-i-push">#push</a>
+    
+    <li ><a href="#method-i-update_classpath">#update_classpath</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::Packaging::Java::EarTask">
+  <h1 id="class-Buildr::Packaging::Java::EarTask" class="class">
+    class Buildr::Packaging::Java::EarTask
+  </h1>
+
+  <section class="description">
+    
+<p>Extend the <a href="JarTask.html">JarTask</a> to create an EAR file.</p>
+
+<p>The following component types are supported by the EARTask:</p>
+<ul><li>
+<p>:war – A J2EE Web Application</p>
+</li><li>
+<p>:ejb – An Enterprise <a href="../Java.html">Java</a> Bean</p>
+</li><li>
+<p>:jar – A J2EE Application <a href="1">Client.</a></p>
+</li><li>
+<p>:lib – An ear scoped shared <a href="2">library</a> (for things like
+logging,</p>
+
+<pre>spring, etc) common to the ear components</pre>
+</li></ul>
+
+<p>The <a href="EarTask.html">EarTask</a> uses the “Mechanism 2: Bundled
+Optional Classes” as described on [2]. All specified libraries are added to
+the EAR archive and the Class-Path manifiest entry is modified for each EAR
+component. Special care is taken with WebApplications, as they can contain
+libraries on their WEB-INF/lib directory, libraries already included in a
+war file are not referenced by the Class-Path entry of the war in order to
+avoid class collisions</p>
+
+<p><a href="EarTask.html">EarTask</a> supports all the same options as <a
+href="JarTask.html">JarTask</a>, in additon to these two options:</p>
+<ul><li>
+<p>:display_name – The displayname to for this ear on application.xml</p>
+</li><li>
+<p>:map – A <a href="../../../Hash.html">Hash</a> used to map component type
+to paths within the EAR.</p>
+
+<pre>By default each component type is mapped to a directory with the same 
name,
+for example, EJBs are stored in the /ejb path.  To customize:
+                  package(:ear).map[:war] = &#39;web-applications&#39;
+                  package(:ear).map[:lib] = nil # store shared libraries on 
root of archive</pre>
+</li></ul>
+
+<p>EAR components are added by means of the <a
+href="EarTask.html#method-i-add">#add</a>, <a
+href="EarTask.html#method-i-3C-3C">#<<</a>, <a
+href="EarTask.html#method-i-push">#push</a> methods Component type is
+determined from the artifact&#39;s type.</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">ear</span>) <span class="ruby-operator">&lt;&lt;</span> 
<span class="ruby-identifier">project</span>(<span 
class="ruby-string">&#39;coolWebService&#39;</span>).<span 
class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">war</span>)
+</pre>
+
+<p>The &lt;&lt; method is just an alias for push, with the later you can add
+multiple components at the same time. For example..</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">ear</span>).<span class="ruby-identifier">push</span> 
<span class="ruby-string">&#39;org.springframework:spring:jar:2.6&#39;</span>,
+                             <span 
class="ruby-identifier">projects</span>(<span 
class="ruby-string">&#39;reflectUtils&#39;</span>, <span 
class="ruby-string">&#39;springUtils&#39;</span>),
+                             <span 
class="ruby-identifier">project</span>(<span 
class="ruby-string">&#39;coolerWebService&#39;</span>).<span 
class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">war</span>)
+</pre>
+
+<p>The add method takes a single component with an optional hash. You can use
+it to override some component attributes.</p>
+
+<p>You can override the component type for a particular artifact. The
+following example shows how you can tell the <a
+href="EarTask.html">EarTask</a> to treat a JAR file as an EJB:</p>
+
+<pre class="ruby"><span class="ruby-comment"># will add an ejb entry for 
the-cool-ejb-2.5.jar in application.xml</span>
+<span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">ear</span>).<span class="ruby-identifier">add</span> 
<span class="ruby-string">&#39;org.coolguys:the-cool-ejb:jar:2.5&#39;</span>, 
:<span class="ruby-identifier">type=</span><span 
class="ruby-operator">&gt;</span>:<span class="ruby-identifier">ejb</span>
+<span class="ruby-comment"># A better syntax for this is:</span>
+<span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">ear</span>).<span class="ruby-identifier">add</span> 
:<span class="ruby-identifier">ejb=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-string">&#39;org.coolguys:the-cool-ejb:jar:2.5&#39;</span>
+</pre>
+
+<p>By default, every JAR package is assumed to be a library component, so you
+need to specify the type when including an EJB (:ejb) or Application Client
+JAR (:jar).</p>
+
+<p>For WebApplications (:war)s, you can customize the context-root that
+appears in application.xml. The following example also specifies a
+different directory inside the EAR where to store the webapp.</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">ear</span>).<span class="ruby-identifier">add</span> 
<span class="ruby-identifier">project</span>(:<span 
class="ruby-identifier">remoteService</span>).<span 
class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">war</span>),
+                           :<span class="ruby-identifier">path=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-string">&#39;web-services&#39;</span>, :<span 
class="ruby-identifier">context_root=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-string">&#39;/Some/URL/Path&#39;</span>
+</pre>
+<dl class="rdoc-list label-list"><dt>1
+<dd>
+<p><a
+href="http://java.sun.com/j2ee/sdk_1.2.1/techdocs/guides/ejb/html/Overview5.html#10106";>java.sun.com/j2ee/sdk_1.2.1/techdocs/guides/ejb/html/Overview5.html#10106</a></p>
+</dd><dt>2
+<dd>
+<p><a
+href="http://java.sun.com/j2ee/verified/packaging.html";>java.sun.com/j2ee/verified/packaging.html</a></p>
+</dd></dl>
+
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+    <section class="constants-list">
+      <header>
+        <h3>Constants</h3>
+      </header>
+      <dl>
+      
+        <dt id="SUPPORTED_TYPES">SUPPORTED_TYPES
+        
+        <dd>
+        
+      
+      </dl>
+    </section>
+    
+
+    
+    <section class="attribute-method-details" class="method-section">
+      <header>
+        <h3>Attributes</h3>
+      </header>
+
+      
+      <div id="attribute-i-description" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">description</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>The description entry for application.xml</p>
+        
+        </div>
+      </div>
+      
+      <div id="attribute-i-dirs" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">dirs</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>Map from component type to path inside the EAR.</p>
+        
+        </div>
+      </div>
+      
+      <div id="attribute-i-display_name" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">display_name</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>The display-name entry for application.xml</p>
+        
+        </div>
+      </div>
+      
+      <div id="attribute-i-security_roles" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">security_roles</span><span
+            class="attribute-access-type">[RW]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>Security roles entry for application.xml</p>
+        
+        </div>
+      </div>
+      
+    </section>
+    
+
+    
+     <section id="public-class-5Buntitled-5D-method-details" 
class="method-section">
+       <header>
+         <h3>Public Class Methods</h3>
+       </header>
+
+    
+      <div id="method-c-new" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">new</span><span
+            class="method-args">(*args)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+            <div class="method-calls-super">
+              Calls superclass method
+              
+            </div>
+          
+
+          
+          <div class="method-source-code" id="new-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 393</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">initialize</span>(<span 
class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+  <span class="ruby-keyword">super</span>
+  <span class="ruby-ivar">@dirs</span> = <span 
class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> { 
<span class="ruby-operator">|</span><span class="ruby-identifier">h</span>, 
<span class="ruby-identifier">k</span><span class="ruby-operator">|</span> 
<span class="ruby-identifier">k</span>.<span 
class="ruby-identifier">to_s</span> }
+  <span class="ruby-ivar">@libs</span>, <span 
class="ruby-ivar">@components</span>, <span 
class="ruby-ivar">@security_roles</span> = [], [], []
+  <span class="ruby-identifier">prepare</span> <span 
class="ruby-keyword">do</span>
+    <span class="ruby-ivar">@components</span>.<span 
class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span 
class="ruby-operator">|</span><span 
class="ruby-identifier">component</span><span class="ruby-operator">|</span>
+      <span class="ruby-identifier">path</span>(<span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:path</span>]).<span 
class="ruby-identifier">include</span>(<span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:clone</span>] <span class="ruby-operator">||</span> <span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:artifact</span>])
+    <span class="ruby-keyword">end</span>
+    <span class="ruby-identifier">path</span>(<span 
class="ruby-string">&#39;META-INF&#39;</span>).<span 
class="ruby-identifier">include</span>(<span 
class="ruby-identifier">descriptor</span>)
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="public-instance-5Buntitled-5D-method-details" 
class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-3C-3C" class="method-detail method-alias">
+        
+        <div class="method-heading">
+          <span class="method-name">&lt;&lt;</span><span
+            class="method-args">(*args)</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+        </div>
+
+        
+
+        
+        <div class="aliases">
+          Alias for: <a href="EarTask.html#method-i-push">push</a>
+        </div>
+        
+      </div>
+
+    
+      <div id="method-i-add" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">add</span><span
+            class="method-args">(*args)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          <p>Add an artifact to this EAR.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="add-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 406</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">add</span>(<span class="ruby-operator">*</span><span 
class="ruby-identifier">args</span>)
+  <span class="ruby-identifier">options</span> = <span 
class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span 
class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span> 
<span class="ruby-operator">?</span> <span 
class="ruby-identifier">args</span>.<span 
class="ruby-identifier">pop</span>.<span class="ruby-identifier">clone</span> 
<span class="ruby-operator">:</span> {}
+  <span class="ruby-identifier">args</span>.<span 
class="ruby-identifier">flatten!</span>
+  <span class="ruby-identifier">args</span>.<span 
class="ruby-identifier">map!</span> <span class="ruby-keyword">do</span> <span 
class="ruby-operator">|</span><span class="ruby-identifier">pkg</span><span 
class="ruby-operator">|</span>
+    <span class="ruby-keyword">case</span> <span 
class="ruby-identifier">pkg</span>
+    <span class="ruby-keyword">when</span> <span 
class="ruby-constant">Project</span>
+      <span class="ruby-identifier">pkg</span>.<span 
class="ruby-identifier">packages</span>.<span 
class="ruby-identifier">select</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">pp</span><span 
class="ruby-operator">|</span> <span class="ruby-constant">JarTask</span> <span 
class="ruby-operator">===</span> <span class="ruby-identifier">pp</span> <span 
class="ruby-operator">&amp;&amp;</span> <span 
class="ruby-constant">SUPPORTED_TYPES</span>.<span 
class="ruby-identifier">include?</span>(<span 
class="ruby-identifier">pp</span>.<span class="ruby-identifier">type</span>) }
+    <span class="ruby-keyword">when</span> <span 
class="ruby-constant">Rake</span><span class="ruby-operator">::</span><span 
class="ruby-constant">FileTask</span>
+      <span class="ruby-identifier">pkg</span> <span class="ruby-comment"># 
add the explicitly provided file</span>
+    <span class="ruby-keyword">when</span> <span 
class="ruby-constant">Hash</span>
+      <span class="ruby-constant">Buildr</span>.<span 
class="ruby-identifier">artifact</span>(<span 
class="ruby-identifier">pkg</span>)
+    <span class="ruby-keyword">when</span> <span 
class="ruby-constant">String</span>
+      <span class="ruby-keyword">begin</span>
+        <span class="ruby-constant">Buildr</span>.<span 
class="ruby-identifier">artifact</span>(<span 
class="ruby-identifier">pkg</span>)
+      <span class="ruby-keyword">rescue</span> <span class="ruby-comment"># 
not an artifact spec, it must me a filename</span>
+        <span class="ruby-identifier">file</span>(<span 
class="ruby-identifier">pkg</span>)
+      <span class="ruby-keyword">end</span>
+    <span class="ruby-keyword">else</span>
+      <span class="ruby-identifier">raise</span> <span 
class="ruby-node">&quot;Invalid EAR component #{pkg.class}: #{pkg}&quot;</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-identifier">args</span>.<span 
class="ruby-identifier">flatten!</span>
+  <span class="ruby-identifier">args</span>.<span 
class="ruby-identifier">compact!</span>
+  <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
+    <span class="ruby-identifier">raise</span> <span 
class="ruby-string">&quot;:type must not be specified for type=&gt;component 
argument style&quot;</span> <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">options</span>.<span 
class="ruby-identifier">key?</span>(<span class="ruby-value">:type</span>)
+    <span class="ruby-identifier">raise</span> <span 
class="ruby-string">&quot;:as must not be specified for type=&gt;component 
argument style&quot;</span> <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">options</span>.<span 
class="ruby-identifier">key?</span>(<span class="ruby-value">:as</span>)
+    <span class="ruby-identifier">comps</span> = {}
+    <span class="ruby-identifier">options</span>.<span 
class="ruby-identifier">delete_if</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span 
class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span 
class="ruby-identifier">comps</span>[<span class="ruby-identifier">k</span>] = 
<span class="ruby-identifier">v</span> <span class="ruby-keyword">if</span> 
<span class="ruby-constant">SUPPORTED_TYPES</span>.<span 
class="ruby-identifier">include?</span>(<span class="ruby-identifier">k</span>) 
}
+    <span class="ruby-identifier">raise</span> <span 
class="ruby-string">&quot;You must specify at least one valid component to 
add&quot;</span> <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">comps</span>.<span class="ruby-identifier">empty?</span>
+    <span class="ruby-identifier">comps</span>.<span 
class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span 
class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span 
class="ruby-operator">|</span> <span class="ruby-identifier">add</span>(<span 
class="ruby-identifier">v</span>, {<span class="ruby-value">:as</span> =<span 
class="ruby-operator">&gt;</span> <span class="ruby-identifier">k</span>}.<span 
class="ruby-identifier">merge</span>(<span 
class="ruby-identifier">options</span>)) }
+  <span class="ruby-keyword">else</span>
+    <span class="ruby-identifier">args</span>.<span 
class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span 
class="ruby-operator">|</span><span 
class="ruby-identifier">artifact</span><span class="ruby-operator">|</span>
+      <span class="ruby-identifier">type</span> = <span 
class="ruby-identifier">options</span>[<span class="ruby-value">:as</span>] 
<span class="ruby-operator">||</span> <span 
class="ruby-identifier">options</span>[<span class="ruby-value">:type</span>]
+      <span class="ruby-keyword">unless</span> <span 
class="ruby-identifier">type</span>
+        <span class="ruby-identifier">type</span> = <span 
class="ruby-identifier">artifact</span>.<span 
class="ruby-identifier">respond_to?</span>(<span 
class="ruby-value">:type</span>) <span class="ruby-operator">?</span> <span 
class="ruby-identifier">artifact</span>.<span 
class="ruby-identifier">type</span> <span class="ruby-operator">:</span> <span 
class="ruby-identifier">artifact</span>.<span 
class="ruby-identifier">to_s</span>.<span 
class="ruby-identifier">pathmap</span>(<span 
class="ruby-string">&#39;%x&#39;</span>).<span 
class="ruby-identifier">to_sym</span>
+        <span class="ruby-identifier">type</span> = <span 
class="ruby-value">:lib</span> <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span 
class="ruby-value">:jar</span>
+      <span class="ruby-keyword">end</span>
+      <span class="ruby-identifier">raise</span> <span 
class="ruby-node">&quot;Unknown EAR component type: #{type}. Perhaps you may 
explicity tell what component type to use.&quot;</span> <span 
class="ruby-keyword">unless</span>
+        <span class="ruby-constant">SUPPORTED_TYPES</span>.<span 
class="ruby-identifier">include?</span>(<span 
class="ruby-identifier">type</span>)
+      <span class="ruby-identifier">component</span> = <span 
class="ruby-identifier">options</span>.<span 
class="ruby-identifier">merge</span>(<span class="ruby-value">:artifact</span> 
=<span class="ruby-operator">&gt;</span> <span 
class="ruby-identifier">artifact</span>, <span class="ruby-value">:type</span> 
=<span class="ruby-operator">&gt;</span> <span 
class="ruby-identifier">type</span>,
+        <span class="ruby-value">:id=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-identifier">artifact</span>.<span 
class="ruby-identifier">respond_to?</span>(<span 
class="ruby-value">:to_spec</span>) <span class="ruby-operator">?</span> <span 
class="ruby-identifier">artifact</span>.<span class="ruby-identifier">id</span> 
<span class="ruby-operator">:</span> <span 
class="ruby-identifier">artifact</span>.<span 
class="ruby-identifier">to_s</span>.<span 
class="ruby-identifier">pathmap</span>(<span 
class="ruby-string">&#39;%n&#39;</span>),
+        <span class="ruby-value">:path=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-identifier">options</span>[<span class="ruby-value">:path</span>] 
<span class="ruby-operator">||</span> <span 
class="ruby-identifier">dirs</span>[<span 
class="ruby-identifier">type</span>].<span class="ruby-identifier">to_s</span>)
+      <span class="ruby-identifier">component</span>[<span 
class="ruby-value">:clone</span>] = <span 
class="ruby-identifier">component_clone</span>(<span 
class="ruby-identifier">component</span>) <span 
class="ruby-keyword">unless</span> <span class="ruby-value">:lib</span> <span 
class="ruby-operator">==</span> <span class="ruby-identifier">type</span>
+      <span class="ruby-comment"># update_classpath(component) unless :lib == 
type || Artifact === artifact</span>
+      <span class="ruby-ivar">@components</span> <span 
class="ruby-operator">&lt;&lt;</span> <span 
class="ruby-identifier">component</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+        <div class="aliases">
+          Also aliased as: <a href="EarTask.html#method-i-push">push</a>
+        </div>
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-push" class="method-detail method-alias">
+        
+        <div class="method-heading">
+          <span class="method-name">push</span><span
+            class="method-args">(*args)</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+        </div>
+
+        
+        <div class="aliases">
+          Also aliased as: <a href="EarTask.html#method-i-3C-3C">&lt;&lt;</a>
+        </div>
+        
+
+        
+        <div class="aliases">
+          Alias for: <a href="EarTask.html#method-i-add">add</a>
+        </div>
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="protected-instance-5Buntitled-5D-method-details" 
class="method-section">
+       <header>
+         <h3>Protected Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-associate" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">associate</span><span
+            class="method-args">(project)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="associate-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 478</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">associate</span>(<span 
class="ruby-identifier">project</span>)
+  <span class="ruby-ivar">@project</span> = <span 
class="ruby-identifier">project</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-component_clone" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">component_clone</span><span
+            class="method-args">(component)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="component_clone-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 461</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">component_clone</span>(<span 
class="ruby-identifier">component</span>)
+  <span class="ruby-identifier">file</span>(<span 
class="ruby-identifier">path_to</span>(<span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:path</span>], <span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:artifact</span>].<span 
class="ruby-identifier">to_s</span>.<span 
class="ruby-identifier">pathmap</span>(<span 
class="ruby-string">&#39;%f&#39;</span>)) =<span 
class="ruby-operator">&gt;</span> <span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:artifact</span>]) <span class="ruby-keyword">do</span> 
<span class="ruby-operator">|</span><span 
class="ruby-identifier">task</span><span class="ruby-operator">|</span>
+    <span class="ruby-identifier">mkpath</span> <span 
class="ruby-identifier">task</span>.<span 
class="ruby-identifier">to_s</span>.<span 
class="ruby-identifier">pathmap</span>(<span 
class="ruby-string">&#39;%d&#39;</span>)
+    <span class="ruby-identifier">cp</span> <span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:artifact</span>].<span class="ruby-identifier">to_s</span>, 
<span class="ruby-identifier">task</span>.<span 
class="ruby-identifier">to_s</span>
+    <span class="ruby-constant">Manifest</span>.<span 
class="ruby-identifier">update_manifest</span>(<span 
class="ruby-identifier">task</span>) <span class="ruby-keyword">do</span> <span 
class="ruby-operator">|</span><span 
class="ruby-identifier">manifest</span><span class="ruby-operator">|</span>
+      <span class="ruby-identifier">class_path</span> = <span 
class="ruby-identifier">manifest</span>.<span 
class="ruby-identifier">main</span>[<span 
class="ruby-string">&#39;Class-Path&#39;</span>].<span 
class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>
+      <span class="ruby-identifier">included_libs</span> = <span 
class="ruby-identifier">class_path</span>.<span 
class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span 
class="ruby-identifier">fn</span><span class="ruby-operator">|</span> <span 
class="ruby-identifier">fn</span>.<span 
class="ruby-identifier">pathmap</span>(<span 
class="ruby-string">&#39;%f&#39;</span>) }
+      <span class="ruby-constant">Zip</span><span 
class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span 
class="ruby-identifier">foreach</span>(<span 
class="ruby-identifier">task</span>.<span class="ruby-identifier">to_s</span>) 
<span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span 
class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
+        <span class="ruby-identifier">included_libs</span> <span 
class="ruby-operator">&lt;&lt;</span> <span 
class="ruby-identifier">entry</span>.<span 
class="ruby-identifier">name</span>.<span 
class="ruby-identifier">pathmap</span>(<span 
class="ruby-string">&#39;%f&#39;</span>) <span class="ruby-keyword">if</span> 
<span class="ruby-identifier">entry</span>.<span 
class="ruby-identifier">file?</span> <span 
class="ruby-operator">&amp;&amp;</span> <span 
class="ruby-identifier">entry</span>.<span class="ruby-identifier">name</span> 
<span class="ruby-operator">=~</span> <span 
class="ruby-regexp">/^WEB-INF\/lib\/[^\/]+$/</span>
+      <span class="ruby-keyword">end</span>
+      <span class="ruby-comment"># Include all other libraries in the 
classpath.</span>
+      <span class="ruby-identifier">class_path</span> <span 
class="ruby-operator">+=</span> <span 
class="ruby-identifier">libs_classpath</span>(<span 
class="ruby-identifier">component</span>).<span 
class="ruby-identifier">reject</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">path</span><span 
class="ruby-operator">|</span> <span 
class="ruby-identifier">included_libs</span>.<span 
class="ruby-identifier">include?</span>(<span 
class="ruby-constant">File</span>.<span 
class="ruby-identifier">basename</span>(<span 
class="ruby-identifier">path</span>)) }
+      <span class="ruby-identifier">manifest</span>.<span 
class="ruby-identifier">main</span>[<span 
class="ruby-string">&#39;Class-Path&#39;</span>] = <span 
class="ruby-identifier">class_path</span>.<span 
class="ruby-identifier">join</span>(<span class="ruby-string">&#39; 
&#39;</span>)
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-update_classpath" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">update_classpath</span><span
+            class="method-args">(component)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          
+          
+          
+
+          
+          <div class="method-source-code" id="update_classpath-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 487</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">update_classpath</span>(<span 
class="ruby-identifier">component</span>)
+  <span class="ruby-identifier">package</span> = <span 
class="ruby-identifier">file</span>(<span 
class="ruby-identifier">component</span>[<span 
class="ruby-value">:artifact</span>].<span class="ruby-identifier">to_s</span>)
+  <span class="ruby-identifier">package</span>.<span 
class="ruby-identifier">manifest</span> = (<span 
class="ruby-identifier">package</span>.<span 
class="ruby-identifier">manifest</span> <span class="ruby-operator">||</span> 
{}).<span class="ruby-identifier">dup</span> <span class="ruby-comment"># avoid 
mofifying parent projects manifest</span>
+  <span class="ruby-identifier">package</span>.<span 
class="ruby-identifier">prepare</span> <span class="ruby-keyword">do</span>
+    <span class="ruby-identifier">header</span> = <span 
class="ruby-keyword">case</span> <span 
class="ruby-identifier">package</span>.<span 
class="ruby-identifier">manifest</span>
+      <span class="ruby-keyword">when</span> <span 
class="ruby-constant">Hash</span> <span class="ruby-keyword">then</span> <span 
class="ruby-identifier">package</span>.<span 
class="ruby-identifier">manifest</span>
+      <span class="ruby-keyword">when</span> <span 
class="ruby-constant">Array</span> <span class="ruby-keyword">then</span> <span 
class="ruby-identifier">package</span>.<span 
class="ruby-identifier">manifest</span>.<span 
class="ruby-identifier">first</span>
+    <span class="ruby-keyword">end</span>
+    <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">header</span>
+      <span class="ruby-comment"># Determine which libraries are already 
included.</span>
+      <span class="ruby-identifier">class_path</span> = <span 
class="ruby-identifier">header</span>[<span 
class="ruby-string">&#39;Class-Path&#39;</span>].<span 
class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>
+      <span class="ruby-identifier">included_libs</span> = <span 
class="ruby-identifier">class_path</span>.<span 
class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span 
class="ruby-identifier">fn</span><span class="ruby-operator">|</span> <span 
class="ruby-constant">File</span>.<span 
class="ruby-identifier">basename</span>(<span 
class="ruby-identifier">fn</span>) }
+      <span class="ruby-identifier">included_libs</span> <span 
class="ruby-operator">+=</span> <span 
class="ruby-identifier">package</span>.<span 
class="ruby-identifier">path</span>(<span 
class="ruby-string">&#39;WEB-INF/lib&#39;</span>).<span 
class="ruby-identifier">sources</span>.<span class="ruby-identifier">map</span> 
{ <span class="ruby-operator">|</span><span 
class="ruby-identifier">fn</span><span class="ruby-operator">|</span> <span 
class="ruby-constant">File</span>.<span 
class="ruby-identifier">basename</span>(<span 
class="ruby-identifier">fn</span>) }
+      <span class="ruby-comment"># Include all other libraries in the 
classpath.</span>
+      <span class="ruby-identifier">class_path</span> <span 
class="ruby-operator">+=</span> <span 
class="ruby-identifier">libs_classpath</span>(<span 
class="ruby-identifier">component</span>).<span 
class="ruby-identifier">reject</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">path</span><span 
class="ruby-operator">|</span> <span 
class="ruby-identifier">included_libs</span>.<span 
class="ruby-identifier">include?</span>(<span 
class="ruby-constant">File</span>.<span 
class="ruby-identifier">basename</span>(<span 
class="ruby-identifier">path</span>)) }
+      <span class="ruby-identifier">header</span>[<span 
class="ruby-string">&#39;Class-Path&#39;</span>] = <span 
class="ruby-identifier">class_path</span>.<span 
class="ruby-identifier">join</span>(<span class="ruby-string">&#39; 
&#39;</span>)
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer";>Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/";>RDoc</a> 4.2.2.
+  <p>Based on <a 
href="http://deveiate.org/projects/Darkfish-RDoc/";>Darkfish</a> by <a 
href="http://deveiate.org";>Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/JarTask.html
==============================================================================
--- dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/JarTask.html (added)
+++ dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/JarTask.html Sat Sep 17 
06:23:20 2016
@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::Packaging::Java::JarTask - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../../../";
+</script>
+
+<script src="../../../js/jquery.js"></script>
+<script src="../../../js/darkfish.js"></script>
+
+<link href="../../../css/fonts.css" rel="stylesheet">
+<link href="../../../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" 
class="nav-section">
+  <h2>
+    <a href="../../../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../../../table_of_contents.html#pages">Pages</a>
+    <a href="../../../table_of_contents.html#classes">Classes</a>
+    <a href="../../../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section 
initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="../../ZipTask.html">Buildr::ZipTask</a>
+  
+</div>
+
+    
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li class="calls-super" ><a href="#method-i-with">#with</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::Packaging::Java::JarTask">
+  <h1 id="class-Buildr::Packaging::Java::JarTask" class="class">
+    class Buildr::Packaging::Java::JarTask
+  </h1>
+
+  <section class="description">
+    
+<p>Extends the <a href="../../ZipTask.html">ZipTask</a> to create a JAR 
file.</p>
+
+<p>This task supports two additional attributes: manifest and meta-inf.</p>
+
+<p>The manifest attribute specifies how to create the MANIFEST.MF file.</p>
+<ul><li>
+<p>A hash of manifest properties (name/value pairs).</p>
+</li><li>
+<p>An array of hashes, one for each section of the manifest.</p>
+</li><li>
+<p>A string providing the name of an existing manifest file.</p>
+</li><li>
+<p>A file task can be used the same way.</p>
+</li><li>
+<p>Proc or method called to return the contents of the manifest file.</p>
+</li><li>
+<p>False to not generate a manifest file.</p>
+</li></ul>
+
+<p>The meta-inf attribute lists one or more files that should be copied into
+the META-INF directory.</p>
+
+<p>For example:</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">jar</span>).<span 
class="ruby-identifier">with</span>(:<span 
class="ruby-identifier">manifest=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-string">&#39;src/MANIFEST.MF&#39;</span>)
+<span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">jar</span>).<span 
class="ruby-identifier">meta_inf</span> <span 
class="ruby-operator">&lt;&lt;</span> <span 
class="ruby-identifier">file</span>(<span 
class="ruby-string">&#39;README&#39;</span>)
+</pre>
+
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+
+    
+
+    
+     <section id="public-instance-5Buntitled-5D-method-details" 
class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-with" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            with(options) &rarr; self
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Additional Pass options to the task. Returns self. <a
+href="../../ZipTask.html">ZipTask</a> itself does not support any options,
+but other tasks (e.g. <a href="JarTask.html">JarTask</a>, <a
+href="WarTask.html">WarTask</a>) do.</p>
+
+<p>For example:</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span 
class="ruby-identifier">jar</span>).<span 
class="ruby-identifier">with</span>(:<span 
class="ruby-identifier">manifest=</span><span 
class="ruby-operator">&gt;</span><span 
class="ruby-string">&#39;MANIFEST_MF&#39;</span>)
+</pre>
+          
+          
+            <div class="method-calls-super">
+              Calls superclass method
+              <a 
href="../../ArchiveTask.html#method-i-with">Buildr::ArchiveTask#with</a>
+            </div>
+          
+
+          
+          <div class="method-source-code" id="with-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 224</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">with</span>(<span class="ruby-operator">*</span><span 
class="ruby-identifier">args</span>)
+  <span class="ruby-keyword">super</span> <span 
class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span> 
<span class="ruby-keyword">if</span> <span class="ruby-constant">Hash</span> 
<span class="ruby-operator">===</span> <span 
class="ruby-identifier">args</span>.<span class="ruby-identifier">last</span>
+  <span class="ruby-identifier">fail</span> <span 
class="ruby-string">&quot;package.with() should not contain nil 
values&quot;</span> <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">args</span>.<span 
class="ruby-identifier">include?</span> <span class="ruby-keyword">nil</span>
+  <span class="ruby-identifier">include</span> <span 
class="ruby-value">:from=</span><span class="ruby-operator">&gt;</span><span 
class="ruby-identifier">args</span> <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> 
<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+  <span class="ruby-keyword">self</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer";>Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/";>RDoc</a> 4.2.2.
+  <p>Based on <a 
href="http://deveiate.org/projects/Darkfish-RDoc/";>Darkfish</a> by <a 
href="http://deveiate.org";>Michael Granger</a>.
+</footer>
+

Added: dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/Manifest.html
==============================================================================
--- dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/Manifest.html (added)
+++ dev/buildr/1.5.0/site/rdoc/Buildr/Packaging/Java/Manifest.html Sat Sep 17 
06:23:20 2016
@@ -0,0 +1,486 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<meta charset="UTF-8">
+
+<title>class Buildr::Packaging::Java::Manifest - buildr</title>
+
+<script type="text/javascript">
+  var rdoc_rel_prefix = "../../../";
+</script>
+
+<script src="../../../js/jquery.js"></script>
+<script src="../../../js/darkfish.js"></script>
+
+<link href="../../../css/fonts.css" rel="stylesheet">
+<link href="../../../css/rdoc.css" rel="stylesheet">
+
+
+
+<body id="top" role="document" class="class">
+<nav role="navigation">
+  <div id="project-navigation">
+    <div id="home-section" role="region" title="Quick navigation" 
class="nav-section">
+  <h2>
+    <a href="../../../index.html" rel="home">Home</a>
+  </h2>
+
+  <div id="table-of-contents-navigation">
+    <a href="../../../table_of_contents.html#pages">Pages</a>
+    <a href="../../../table_of_contents.html#classes">Classes</a>
+    <a href="../../../table_of_contents.html#methods">Methods</a>
+  </div>
+</div>
+
+    <div id="search-section" role="search" class="project-section 
initially-hidden">
+  <form action="#" method="get" accept-charset="utf-8">
+    <div id="search-field-wrapper">
+      <input id="search-field" role="combobox" aria-label="Search"
+             aria-autocomplete="list" aria-controls="search-results"
+             type="text" name="search" placeholder="Search" spellcheck="false"
+             title="Type to search, Up and Down to navigate, Enter to load">
+    </div>
+
+    <ul id="search-results" aria-label="Search Results"
+        aria-busy="false" aria-expanded="false"
+        aria-atomic="false" class="initially-hidden"></ul>
+  </form>
+</div>
+
+  </div>
+
+  
+
+  <div id="class-metadata">
+    
+    <div id="parent-class-section" class="nav-section">
+  <h3>Parent</h3>
+
+  
+  <p class="link"><a href="../../../Object.html">Object</a>
+  
+</div>
+
+    <div id="includes-section" class="nav-section">
+  <h3>Included Modules</h3>
+
+  <ul class="link-list">
+  
+  
+    <li><span class="include">Enumerable</span>
+  
+  
+  </ul>
+</div>
+
+    
+    <!-- Method Quickref -->
+<div id="method-list-section" class="nav-section">
+  <h3>Methods</h3>
+
+  <ul class="link-list" role="directory">
+    
+    <li ><a href="#method-c-from_zip">::from_zip</a>
+    
+    <li ><a href="#method-c-new">::new</a>
+    
+    <li ><a href="#method-c-parse">::parse</a>
+    
+    <li ><a href="#method-c-update_manifest">::update_manifest</a>
+    
+    <li ><a href="#method-i-each">#each</a>
+    
+    <li ><a href="#method-i-main">#main</a>
+    
+    <li ><a href="#method-i-to_s">#to_s</a>
+    
+  </ul>
+</div>
+
+  </div>
+</nav>
+
+<main role="main" aria-labelledby="class-Buildr::Packaging::Java::Manifest">
+  <h1 id="class-Buildr::Packaging::Java::Manifest" class="class">
+    class Buildr::Packaging::Java::Manifest
+  </h1>
+
+  <section class="description">
+    
+  </section>
+
+  
+  
+  
+  <section id="5Buntitled-5D" class="documentation-section">
+    
+
+    
+
+    
+    <section class="constants-list">
+      <header>
+        <h3>Constants</h3>
+      </header>
+      <dl>
+      
+        <dt id="STANDARD_HEADER">STANDARD_HEADER
+        
+        <dd>
+        
+      
+      </dl>
+    </section>
+    
+
+    
+    <section class="attribute-method-details" class="method-section">
+      <header>
+        <h3>Attributes</h3>
+      </header>
+
+      
+      <div id="attribute-i-sections" class="method-detail">
+        <div class="method-heading attribute-method-heading">
+          <span class="method-name">sections</span><span
+            class="attribute-access-type">[R]</span>
+        </div>
+
+        <div class="method-description">
+        
+        <p>The sections of this manifest.</p>
+        
+        </div>
+      </div>
+      
+    </section>
+    
+
+    
+     <section id="public-class-5Buntitled-5D-method-details" 
class="method-section">
+       <header>
+         <h3>Public Class Methods</h3>
+       </header>
+
+    
+      <div id="method-c-from_zip" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            from_zip(file) &rarr; manifest
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Parse the MANIFEST.MF entry of a ZIP (or JAR) file and return a 
new <a
+href="Manifest.html">Manifest</a>.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="from_zip-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 54</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">from_zip</span>(<span 
class="ruby-identifier">file</span>)
+  <span class="ruby-constant">Zip</span><span 
class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span 
class="ruby-identifier">open</span>(<span 
class="ruby-identifier">file</span>.<span class="ruby-identifier">to_s</span>) 
<span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span 
class="ruby-identifier">zip</span><span class="ruby-operator">|</span>
+    <span class="ruby-keyword">return</span> <span 
class="ruby-constant">Manifest</span>.<span 
class="ruby-identifier">parse</span> <span 
class="ruby-identifier">zip</span>.<span 
class="ruby-identifier">read</span>(<span 
class="ruby-string">&#39;META-INF/MANIFEST.MF&#39;</span>) <span 
class="ruby-keyword">if</span> <span class="ruby-identifier">zip</span>.<span 
class="ruby-identifier">find_entry</span>(<span 
class="ruby-string">&#39;META-INF/MANIFEST.MF&#39;</span>)
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-constant">Manifest</span>.<span 
class="ruby-identifier">new</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-new" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">new</span><span
+            class="method-args">(arg = nil)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          <p>Returns a new <a href="Manifest.html">Manifest</a> object based 
on the
+argument:</p>
+<ul><li>
+<p>nil         – Empty <a href="Manifest.html">Manifest</a>.</p>
+</li><li>
+<p><a href="../../../Hash.html">Hash</a>        – <a
+href="Manifest.html">Manifest</a> with main section using the hash
+name/value pairs.</p>
+</li><li>
+<p>Array       – <a href="Manifest.html">Manifest</a> with one section from
+each entry (must be hashes).</p>
+</li><li>
+<p>String      – Parse (see Manifest#parse).</p>
+</li><li>
+<p>Proc/Method – New <a href="Manifest.html">Manifest</a> from result of
+calling proc/method.</p>
+</li></ul>
+          
+          
+
+          
+          <div class="method-source-code" id="new-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 87</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">initialize</span>(<span 
class="ruby-identifier">arg</span> = <span class="ruby-keyword">nil</span>)
+  <span class="ruby-keyword">case</span> <span 
class="ruby-identifier">arg</span>
+  <span class="ruby-keyword">when</span> <span 
class="ruby-keyword">nil</span>, <span class="ruby-constant">Hash</span> <span 
class="ruby-keyword">then</span> <span class="ruby-ivar">@sections</span> = 
[<span class="ruby-identifier">arg</span> <span class="ruby-operator">||</span> 
{}]
+  <span class="ruby-keyword">when</span> <span 
class="ruby-constant">Array</span> <span class="ruby-keyword">then</span> <span 
class="ruby-ivar">@sections</span> = <span class="ruby-identifier">arg</span>
+  <span class="ruby-keyword">when</span> <span 
class="ruby-constant">String</span> <span class="ruby-keyword">then</span> 
<span class="ruby-ivar">@sections</span> = <span 
class="ruby-constant">Manifest</span>.<span 
class="ruby-identifier">parse</span>(<span 
class="ruby-identifier">arg</span>).<span 
class="ruby-identifier">sections</span>
+  <span class="ruby-keyword">when</span> <span 
class="ruby-constant">Proc</span>, <span class="ruby-constant">Method</span> 
<span class="ruby-keyword">then</span> <span class="ruby-ivar">@sections</span> 
= <span class="ruby-constant">Manifest</span>.<span 
class="ruby-identifier">new</span>(<span 
class="ruby-identifier">arg</span>.<span 
class="ruby-identifier">call</span>).<span 
class="ruby-identifier">sections</span>
+  <span class="ruby-keyword">else</span>
+    <span class="ruby-identifier">fail</span> <span 
class="ruby-string">&#39;Invalid manifest, expecting Hash, Array, file 
name/task or proc/method.&#39;</span>
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-comment"># Add Manifest-Version and Created-By, if not 
specified.</span>
+  <span class="ruby-constant">STANDARD_HEADER</span>.<span 
class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span 
class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span 
class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+    <span class="ruby-identifier">sections</span>.<span 
class="ruby-identifier">first</span>[<span class="ruby-identifier">name</span>] 
<span class="ruby-operator">||=</span> <span 
class="ruby-identifier">value</span>
+  <span class="ruby-keyword">end</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-parse" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            parse(str) &rarr; manifest
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Parse a string in MANIFEST.MF format and return a new <a
+href="Manifest.html">Manifest</a>.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="parse-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 34</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">parse</span>(<span class="ruby-identifier">str</span>)
+  <span class="ruby-identifier">sections</span> = <span 
class="ruby-identifier">str</span>.<span 
class="ruby-identifier">split</span>(<span 
class="ruby-constant">SECTION_SEPARATOR</span>).<span 
class="ruby-identifier">reject</span> { <span 
class="ruby-operator">|</span><span class="ruby-identifier">s</span><span 
class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span 
class="ruby-identifier">strip</span>.<span 
class="ruby-identifier">empty?</span> }
+  <span class="ruby-identifier">new</span> <span 
class="ruby-identifier">sections</span>.<span 
class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span 
class="ruby-identifier">section</span><span class="ruby-operator">|</span>
+    <span class="ruby-identifier">lines</span> = <span 
class="ruby-identifier">section</span>.<span 
class="ruby-identifier">split</span>(<span 
class="ruby-constant">LINE_SEPARATOR</span>).<span 
class="ruby-identifier">inject</span>([]) { <span 
class="ruby-operator">|</span><span class="ruby-identifier">merged</span>, 
<span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
+      <span class="ruby-keyword">if</span> <span 
class="ruby-identifier">line</span>[<span class="ruby-regexp">/^ /</span>] 
<span class="ruby-operator">==</span> <span class="ruby-string">&#39; 
&#39;</span>
+        <span class="ruby-identifier">merged</span>.<span 
class="ruby-identifier">last</span> <span class="ruby-operator">&lt;&lt;</span> 
<span class="ruby-identifier">line</span>[<span 
class="ruby-value">1</span><span class="ruby-operator">..</span><span 
class="ruby-value">-1</span>]
+      <span class="ruby-keyword">else</span>
+        <span class="ruby-identifier">merged</span> <span 
class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
+      <span class="ruby-keyword">end</span>
+      <span class="ruby-identifier">merged</span>
+    }
+    <span class="ruby-identifier">lines</span>.<span 
class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span 
class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span 
class="ruby-identifier">line</span>.<span 
class="ruby-identifier">scan</span>(<span 
class="ruby-regexp">/(.*?):\s*(.*)/</span>).<span 
class="ruby-identifier">first</span> }.
+      <span class="ruby-identifier">inject</span>({}) { <span 
class="ruby-operator">|</span><span class="ruby-identifier">map</span>, (<span 
class="ruby-identifier">key</span>, <span 
class="ruby-identifier">value</span>)<span class="ruby-operator">|</span> <span 
class="ruby-identifier">map</span>.<span 
class="ruby-identifier">merge</span>(<span 
class="ruby-identifier">key</span>=<span class="ruby-operator">&gt;</span><span 
class="ruby-identifier">value</span>) }
+  }
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-c-update_manifest" class="method-detail ">
+        
+        
+        <div class="method-heading">
+          <span class="method-callseq">
+            update_manifest(file) { |manifest| ... }
+          </span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+        
+
+        <div class="method-description">
+          
+          <p>Updates the MANIFEST.MF entry of a ZIP (or JAR) file.  Reads the
+MANIFEST.MF, yields to the block with the <a
+href="Manifest.html">Manifest</a> object, and writes the modified object
+back to the file.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="update_manifest-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 67</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">update_manifest</span>(<span 
class="ruby-identifier">file</span>)
+  <span class="ruby-identifier">manifest</span> = <span 
class="ruby-identifier">from_zip</span>(<span 
class="ruby-identifier">file</span>)
+  <span class="ruby-identifier">result</span> = <span 
class="ruby-keyword">yield</span> <span class="ruby-identifier">manifest</span>
+  <span class="ruby-constant">Zip</span><span 
class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span 
class="ruby-identifier">open</span>(<span 
class="ruby-identifier">file</span>.<span class="ruby-identifier">to_s</span>) 
<span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span 
class="ruby-identifier">zip</span><span class="ruby-operator">|</span>
+    <span class="ruby-identifier">zip</span>.<span 
class="ruby-identifier">get_output_stream</span>(<span 
class="ruby-string">&#39;META-INF/MANIFEST.MF&#39;</span>) <span 
class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span 
class="ruby-identifier">out</span><span class="ruby-operator">|</span>
+      <span class="ruby-identifier">out</span>.<span 
class="ruby-identifier">write</span> <span 
class="ruby-identifier">manifest</span>.<span 
class="ruby-identifier">to_s</span>
+      <span class="ruby-identifier">out</span>.<span 
class="ruby-identifier">write</span> <span 
class="ruby-string">&quot;\n&quot;</span>
+    <span class="ruby-keyword">end</span>
+  <span class="ruby-keyword">end</span>
+  <span class="ruby-identifier">result</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+     <section id="public-instance-5Buntitled-5D-method-details" 
class="method-section">
+       <header>
+         <h3>Public Instance Methods</h3>
+       </header>
+
+    
+      <div id="method-i-each" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">each</span><span
+            class="method-args">(&block)</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          <p>Iterate over each section and yield to block.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="each-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 113</span>
+<span class="ruby-keyword">def</span> <span 
class="ruby-identifier">each</span>(<span 
class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
+  <span class="ruby-ivar">@sections</span>.<span 
class="ruby-identifier">each</span>(<span 
class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-main" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">main</span><span
+            class="method-args">()</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          <p>The main (first) section of this manifest.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="main-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 106</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">main</span>
+  <span class="ruby-identifier">sections</span>.<span 
class="ruby-identifier">first</span>
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+      <div id="method-i-to_s" class="method-detail ">
+        
+        <div class="method-heading">
+          <span class="method-name">to_s</span><span
+            class="method-args">()</span>
+          
+          <span class="method-click-advice">click to toggle source</span>
+          
+        </div>
+        
+
+        <div class="method-description">
+          
+          <p>Convert to MANIFEST.MF format.</p>
+          
+          
+
+          
+          <div class="method-source-code" id="to_s-source">
+            <pre><span class="ruby-comment"># File 
lib/buildr/java/packaging.rb, line 118</span>
+<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
+  <span class="ruby-ivar">@sections</span>.<span 
class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span 
class="ruby-identifier">section</span><span class="ruby-operator">|</span>
+    <span class="ruby-identifier">keys</span> = <span 
class="ruby-identifier">section</span>.<span class="ruby-identifier">keys</span>
+    <span class="ruby-identifier">keys</span>.<span 
class="ruby-identifier">unshift</span>(<span 
class="ruby-string">&#39;Name&#39;</span>) <span class="ruby-keyword">if</span> 
<span class="ruby-identifier">keys</span>.<span 
class="ruby-identifier">delete</span>(<span 
class="ruby-string">&#39;Name&#39;</span>)
+    <span class="ruby-identifier">lines</span> = <span 
class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span> { 
<span class="ruby-operator">|</span><span 
class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span 
class="ruby-identifier">manifest_wrap_at_72</span>(<span 
class="ruby-node">&quot;#{key}: #{section[key]}&quot;</span>) }
+    <span class="ruby-identifier">lines</span> <span 
class="ruby-operator">+</span> [<span class="ruby-string">&#39;&#39;</span>]
+  }.<span class="ruby-identifier">flatten</span>.<span 
class="ruby-identifier">join</span>(<span 
class="ruby-string">&quot;\n&quot;</span>)
+<span class="ruby-keyword">end</span></pre>
+          </div>
+          
+        </div>
+
+        
+
+        
+      </div>
+
+    
+    </section>
+  
+  </section>
+</main>
+
+
+<footer id="validator-badges" role="contentinfo">
+  <p><a href="http://validator.w3.org/check/referer";>Validate</a>
+  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/";>RDoc</a> 4.2.2.
+  <p>Based on <a 
href="http://deveiate.org/projects/Darkfish-RDoc/";>Darkfish</a> by <a 
href="http://deveiate.org";>Michael Granger</a>.
+</footer>
+


Reply via email to