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'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 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 +'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 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">&&</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">></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.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">#<<</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 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">'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 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">&&</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 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">'%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 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">'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.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">></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 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">"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.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) → 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> +