You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2017/04/02 23:37:44 UTC
svn commit: r19013 [27/44] - in /dev/buildr/1.5.2: ./ dist/ site/ site/css/
site/images/ site/rdoc/ site/rdoc/Buildr/ site/rdoc/Buildr/ArchiveTask/
site/rdoc/Buildr/ArtifactNamespace/ site/rdoc/Buildr/Assets/
site/rdoc/Buildr/CPom/ site/rdoc/Buildr/Che...
Added: dev/buildr/1.5.2/site/rdoc/Buildr/Packaging.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/Packaging.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/Packaging.html Sun Apr 2 23:37:43 2017
@@ -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.2/site/rdoc/Buildr/Packaging/Java.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java.html Sun Apr 2 23:37:43 2017
@@ -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'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'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
+'javadoc', which includes all the sources used by the compile task.</p>
+
+<p>Packages use the project'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">></span>[<span class="ruby-string">'foo:bar'</span>, <span class="ruby-string">'foo:baz'</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 661</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
+'sources', which includes all the sources used by the compile task.</p>
+
+<p>Packages use the project'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">></span>[<span class="ruby-string">'foo:bar'</span>, <span class="ruby-string">'foo:baz'</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 633</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">&&</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.2/site/rdoc/Buildr/Packaging/Java/AarTask.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/AarTask.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/AarTask.html Sun Apr 2 23:37:43 2017
@@ -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">></span><span class="ruby-string">'log4j:log4j:jar:1.1'</span>)
+
+<span class="ruby-identifier">filter</span>.<span class="ruby-identifier">from</span>(<span class="ruby-string">'src/main/axis2'</span>).<span class="ruby-identifier">into</span>(<span class="ruby-string">'target'</span>).<span class="ruby-identifier">include</span>(<span class="ruby-string">'services.xml'</span>, <span class="ruby-string">'*.wsdl'</span>).<span class="ruby-identifier">using</span>(<span class="ruby-string">'http_port'</span>=<span class="ruby-operator">></span><span class="ruby-string">'8080'</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">></span><span class="ruby-identifier">_</span>(<span class="ruby-string">'target/services.xml'</span>), :<span class="ruby-identifier">wsdls=</span><span class="ruby-operator">></span><span class="ruby-identifier">_</span>(<span class="ruby-string">'target/*.wsdl'</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.2/site/rdoc/Buildr/Packaging/Java/EarTask.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/EarTask.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/EarTask.html Sun Apr 2 23:37:43 2017
@@ -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">#<<</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] = 'web-applications'
+ 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's type.</p>
+
+<pre class="ruby"><span class="ruby-identifier">package</span>(:<span class="ruby-identifier">ear</span>) <span class="ruby-operator"><<</span> <span class="ruby-identifier">project</span>(<span class="ruby-string">'coolWebService'</span>).<span class="ruby-identifier">package</span>(:<span class="ruby-identifier">war</span>)
+</pre>
+
+<p>The << 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">'org.springframework:spring:jar:2.6'</span>,
+ <span class="ruby-identifier">projects</span>(<span class="ruby-string">'reflectUtils'</span>, <span class="ruby-string">'springUtils'</span>),
+ <span class="ruby-identifier">project</span>(<span class="ruby-string">'coolerWebService'</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">'org.coolguys:the-cool-ejb:jar:2.5'</span>, :<span class="ruby-identifier">type=</span><span class="ruby-operator">></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">></span><span class="ruby-string">'org.coolguys:the-cool-ejb:jar:2.5'</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">></span><span class="ruby-string">'web-services'</span>, :<span class="ruby-identifier">context_root=</span><span class="ruby-operator">></span><span class="ruby-string">'/Some/URL/Path'</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 395</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">'META-INF'</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"><<</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 408</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">&&</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">"Invalid EAR component #{pkg.class}: #{pkg}"</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">":type must not be specified for type=>component argument style"</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">":as must not be specified for type=>component argument style"</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">"You must specify at least one valid component to add"</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">></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">'%x'</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">"Unknown EAR component type: #{type}. Perhaps you may explicity tell what component type to use."</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">></span> <span class="ruby-identifier">artifact</span>, <span class="ruby-value">:type</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">type</span>,
+ <span class="ruby-value">:id=</span><span class="ruby-operator">></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">'%n'</span>),
+ <span class="ruby-value">:path=</span><span class="ruby-operator">></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"><<</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"><<</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 480</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 463</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">'%f'</span>)) =<span class="ruby-operator">></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">'%d'</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">'Class-Path'</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">'%f'</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"><<</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">pathmap</span>(<span class="ruby-string">'%f'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">file?</span> <span class="ruby-operator">&&</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">'Class-Path'</span>] = <span class="ruby-identifier">class_path</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">' '</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 489</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">'Class-Path'</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">'WEB-INF/lib'</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">'Class-Path'</span>] = <span class="ruby-identifier">class_path</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">' '</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.2/site/rdoc/Buildr/Packaging/Java/JarTask.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/JarTask.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/JarTask.html Sun Apr 2 23:37:43 2017
@@ -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">></span><span class="ruby-string">'src/MANIFEST.MF'</span>)
+<span class="ruby-identifier">package</span>(:<span class="ruby-identifier">jar</span>).<span class="ruby-identifier">meta_inf</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">file</span>(<span class="ruby-string">'README'</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) → 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">></span><span class="ruby-string">'MANIFEST_MF'</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 227</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">'package.with() should not contain nil values'</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">></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">></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.2/site/rdoc/Buildr/Packaging/Java/Manifest.html
==============================================================================
--- dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/Manifest.html (added)
+++ dev/buildr/1.5.2/site/rdoc/Buildr/Packaging/Java/Manifest.html Sun Apr 2 23:37:43 2017
@@ -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) → 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">'META-INF/MANIFEST.MF'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">zip</span>.<span class="ruby-identifier">find_entry</span>(<span class="ruby-string">'META-INF/MANIFEST.MF'</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">'Invalid manifest, expecting Hash, Array, file name/task or proc/method.'</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) → 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">' '</span>
+ <span class="ruby-identifier">merged</span>.<span class="ruby-identifier">last</span> <span class="ruby-operator"><<</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"><<</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">></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">'META-INF/MANIFEST.MF'</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">"\n"</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">&</span><span class="ruby-identifier">block</span>)
+ <span class="ruby-ivar">@sections</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&</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">'Name'</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-string">'Name'</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">"#{key}: #{section[key]}"</span>) }
+ <span class="ruby-identifier">lines</span> <span class="ruby-operator">+</span> [<span class="ruby-string">''</span>]
+ }.<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">"\n"</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>
+