blob: 4dd39636686f8ac0fa4d751f660f8b7e8bcd7a68 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Coverage Report</title>
<link title="Style" type="text/css" rel="stylesheet" href="css/main.css"/>
<script type="text/javascript" src="js/popup.js"></script>
</head>
<body>
<h5>Coverage Report - org.netbeans.nbm.CreateClusterAppMojo</h5>
<div class="separator">&nbsp;</div>
<table class="report">
<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
<tr><td><a href="org.netbeans.nbm.CreateClusterAppMojo.html">CreateClusterAppMojo</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:16px"><span class="text">93/577</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">14%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:14px"><span class="text">46/308</span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.521739130434783;</span>8.522</td></tr>
<tr><td><a href="org.netbeans.nbm.CreateClusterAppMojo.html">CreateClusterAppMojo$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.521739130434783;</span>8.522</td></tr>
<tr><td><a href="org.netbeans.nbm.CreateClusterAppMojo.html">CreateClusterAppMojo$2</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.521739130434783;</span>8.522</td></tr>
<tr><td><a href="org.netbeans.nbm.CreateClusterAppMojo.html">CreateClusterAppMojo$3</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.521739130434783;</span>8.522</td></tr>
<tr><td><a href="org.netbeans.nbm.CreateClusterAppMojo.html">CreateClusterAppMojo$4</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.521739130434783;</span>8.522</td></tr>
<tr><td><a href="org.netbeans.nbm.CreateClusterAppMojo.html">CreateClusterAppMojo$BundleTuple</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">4/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.521739130434783;</span>8.522</td></tr>
<tr><td><a href="org.netbeans.nbm.CreateClusterAppMojo.html">CreateClusterAppMojo$ClusterTuple</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/5</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.521739130434783;</span>8.522</td></tr>
</table>
<div class="separator">&nbsp;</div>
<table cellspacing="0" cellpadding="0" class="src">
<tr> <td class="numLine">&nbsp;1</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment">/* ==========================================================================</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;2</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Copyright Milos Kleint</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;3</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;4</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;5</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * you may not use this file except in compliance with the License.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;6</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * You may obtain a copy of the License at</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;7</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;8</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;9</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;10</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;11</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;12</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;13</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * See the License for the specific language governing permissions and</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;14</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * limitations under the License.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;15</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * =========================================================================</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;16</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;17</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">package</span> org.netbeans.nbm;</pre></td></tr>
<tr> <td class="numLine">&nbsp;18</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;19</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> com.google.common.collect.Sets;</pre></td></tr>
<tr> <td class="numLine">&nbsp;20</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.io.*;</pre></td></tr>
<tr> <td class="numLine">&nbsp;21</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.net.URL;</pre></td></tr>
<tr> <td class="numLine">&nbsp;22</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.ArrayList;</pre></td></tr>
<tr> <td class="numLine">&nbsp;23</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Arrays;</pre></td></tr>
<tr> <td class="numLine">&nbsp;24</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Collection;</pre></td></tr>
<tr> <td class="numLine">&nbsp;25</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Collections;</pre></td></tr>
<tr> <td class="numLine">&nbsp;26</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Date;</pre></td></tr>
<tr> <td class="numLine">&nbsp;27</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Enumeration;</pre></td></tr>
<tr> <td class="numLine">&nbsp;28</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.HashMap;</pre></td></tr>
<tr> <td class="numLine">&nbsp;29</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.HashSet;</pre></td></tr>
<tr> <td class="numLine">&nbsp;30</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Iterator;</pre></td></tr>
<tr> <td class="numLine">&nbsp;31</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.List;</pre></td></tr>
<tr> <td class="numLine">&nbsp;32</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Map;</pre></td></tr>
<tr> <td class="numLine">&nbsp;33</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Set;</pre></td></tr>
<tr> <td class="numLine">&nbsp;34</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.jar.JarEntry;</pre></td></tr>
<tr> <td class="numLine">&nbsp;35</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.jar.JarFile;</pre></td></tr>
<tr> <td class="numLine">&nbsp;36</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.jar.JarOutputStream;</pre></td></tr>
<tr> <td class="numLine">&nbsp;37</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.jar.Pack200;</pre></td></tr>
<tr> <td class="numLine">&nbsp;38</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.regex.Matcher;</pre></td></tr>
<tr> <td class="numLine">&nbsp;39</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.regex.Pattern;</pre></td></tr>
<tr> <td class="numLine">&nbsp;40</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.zip.CRC32;</pre></td></tr>
<tr> <td class="numLine">&nbsp;41</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.zip.GZIPInputStream;</pre></td></tr>
<tr> <td class="numLine">&nbsp;42</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.zip.ZipEntry;</pre></td></tr>
<tr> <td class="numLine">&nbsp;43</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.zip.ZipFile;</pre></td></tr>
<tr> <td class="numLine">&nbsp;44</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.artifact.Artifact;</pre></td></tr>
<tr> <td class="numLine">&nbsp;45</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.artifact.factory.ArtifactFactory;</pre></td></tr>
<tr> <td class="numLine">&nbsp;46</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.artifact.repository.ArtifactRepository;</pre></td></tr>
<tr> <td class="numLine">&nbsp;47</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;</pre></td></tr>
<tr> <td class="numLine">&nbsp;48</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.artifact.resolver.ArtifactNotFoundException;</pre></td></tr>
<tr> <td class="numLine">&nbsp;49</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.artifact.resolver.ArtifactResolutionException;</pre></td></tr>
<tr> <td class="numLine">&nbsp;50</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.artifact.resolver.ArtifactResolver;</pre></td></tr>
<tr> <td class="numLine">&nbsp;51</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugin.MojoExecutionException;</pre></td></tr>
<tr> <td class="numLine">&nbsp;52</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugin.MojoFailureException;</pre></td></tr>
<tr> <td class="numLine">&nbsp;53</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugin.logging.Log;</pre></td></tr>
<tr> <td class="numLine">&nbsp;54</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugins.annotations.Component;</pre></td></tr>
<tr> <td class="numLine">&nbsp;55</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugins.annotations.LifecyclePhase;</pre></td></tr>
<tr> <td class="numLine">&nbsp;56</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugins.annotations.Mojo;</pre></td></tr>
<tr> <td class="numLine">&nbsp;57</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugins.annotations.Parameter;</pre></td></tr>
<tr> <td class="numLine">&nbsp;58</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.plugins.annotations.ResolutionScope;</pre></td></tr>
<tr> <td class="numLine">&nbsp;59</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.maven.project.MavenProject;</pre></td></tr>
<tr> <td class="numLine">&nbsp;60</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.netbeans.nbm.utils.ExamineManifest;</pre></td></tr>
<tr> <td class="numLine">&nbsp;61</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.tools.ant.BuildException;</pre></td></tr>
<tr> <td class="numLine">&nbsp;62</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.tools.ant.Project;</pre></td></tr>
<tr> <td class="numLine">&nbsp;63</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.tools.ant.filters.StringInputStream;</pre></td></tr>
<tr> <td class="numLine">&nbsp;64</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.tools.ant.taskdefs.Chmod;</pre></td></tr>
<tr> <td class="numLine">&nbsp;65</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.tools.ant.types.FileSet;</pre></td></tr>
<tr> <td class="numLine">&nbsp;66</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.codehaus.plexus.util.FileUtils;</pre></td></tr>
<tr> <td class="numLine">&nbsp;67</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.codehaus.plexus.util.IOUtil;</pre></td></tr>
<tr> <td class="numLine">&nbsp;68</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.codehaus.plexus.util.StringUtils;</pre></td></tr>
<tr> <td class="numLine">&nbsp;69</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.codehaus.plexus.util.io.InputStreamFacade;</pre></td></tr>
<tr> <td class="numLine">&nbsp;70</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.netbeans.nbbuild.MakeListOfNBM;</pre></td></tr>
<tr> <td class="numLine">&nbsp;71</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;72</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;73</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Create the NetBeans module clusters/application for the 'nbm-application' packaging</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;74</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * projects</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;75</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;76</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @author &lt;a href="mailto:mkleint@codehaus.org"&gt;Milos Kleint&lt;/a&gt;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;77</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;78</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;@Mojo(name=<span class="string">"cluster-app"</span>, </pre></td></tr>
<tr> <td class="numLine">&nbsp;79</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; defaultPhase= LifecyclePhase.PACKAGE, </pre></td></tr>
<tr> <td class="numLine">&nbsp;80</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; requiresProject=<span class="keyword">true</span>, </pre></td></tr>
<tr> <td class="numLine">&nbsp;81</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; threadSafe = <span class="keyword">true</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;82</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; requiresDependencyResolution= ResolutionScope.RUNTIME )</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;83</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<span class="keyword">public</span> <span class="keyword">class</span> CreateClusterAppMojo</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;84</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">extends</span> AbstractNbmMojo</pre></td></tr>
<tr> <td class="numLine">&nbsp;85</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;{</pre></td></tr>
<tr> <td class="numLine">&nbsp;86</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;87</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;88</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * output directory where the the NetBeans application will be created.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;89</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;90</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(defaultValue=<span class="string">"${project.build.directory}"</span>, required=<span class="keyword">true</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;91</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> File outputDirectory;</pre></td></tr>
<tr> <td class="numLine">&nbsp;92</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;93</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;94</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * The Maven Project.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;95</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;96</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(required=<span class="keyword">true</span>, readonly=<span class="keyword">true</span>, property=<span class="string">"project"</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;97</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> MavenProject project;</pre></td></tr>
<tr> <td class="numLine">&nbsp;98</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;99</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;100</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * The branding token for the application based on NetBeans platform.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;101</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;102</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(property=<span class="string">"netbeans.branding.token"</span>, required=<span class="keyword">true</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;103</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> String brandingToken;</pre></td></tr>
<tr> <td class="numLine">&nbsp;104</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;105</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;106</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Optional path to custom etc/${brandingToken}.conf file. If not defined,</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;107</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * a default template will be used.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;108</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;109</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter( property=<span class="string">"netbeans.conf.file"</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;110</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> File etcConfFile;</pre></td></tr>
<tr> <td class="numLine">&nbsp;111</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;112</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;113</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Optional path to custom etc/${brandingToken}.clusters file. If not defined,</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;114</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * a default one will be generated.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;115</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;116</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(property=<span class="string">"netbeans.clusters.file"</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;117</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> File etcClustersFile;</pre></td></tr>
<tr> <td class="numLine">&nbsp;118</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;119</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;120</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Directory which contains the executables that will be copied to</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;121</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * the final application's bin/ directory.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;122</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Please note that the name of the executables shall generally</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;123</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * match the brandingToken parameter. Otherwise the application can be wrongly branded.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;124</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;125</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(property=<span class="string">"netbeans.bin.directory"</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;126</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> File binDirectory;</pre></td></tr>
<tr> <td class="numLine">&nbsp;127</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;128</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;129</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * If the depending NBM file doesn't contain any application cluster information,</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;130</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * use this value as default location for such module NBMs.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;131</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @since 3.2</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;132</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;133</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(defaultValue=<span class="string">"extra"</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;134</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> String defaultCluster;</pre></td></tr>
<tr> <td class="numLine">&nbsp;135</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;136</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;137</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * attempts to verify the integrity of module artifacts making sure that all dependencies are included</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;138</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * and that all required tokens are provided</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;139</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @since 3.10</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;140</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;141</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(defaultValue = <span class="string">"true"</span>, property = <span class="string">"netbeans.verify.integrity"</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;142</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">boolean</span> verifyIntegrity;</pre></td></tr>
<tr> <td class="numLine">&nbsp;143</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;144</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">private</span> <span class="keyword">final</span> Collection&lt;String&gt; defaultPlatformTokens = Arrays.asList( <span class="keyword">new</span> String[] {</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;145</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.os.Windows"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;146</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.os.Unix"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;147</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.os.MacOSX"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;148</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.os.OS2"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;149</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.os.PlainUnix"</span>, </pre></td></tr>
<tr> <td class="numLine">&nbsp;150</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.os.Linux"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;151</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.os.Solaris"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;152</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.ModuleFormat1"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;153</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.ModuleFormat2"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;154</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.openide.modules.jre.JavaFX"</span> <span class="comment">//MNBMODULE-234</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;155</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; });</pre></td></tr>
<tr> <td class="numLine">&nbsp;156</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;157</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;158</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// &lt;editor-fold defaultstate="collapsed" desc="Component parameters"&gt;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;159</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;160</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Component</pre></td></tr>
<tr> <td class="numLine">&nbsp;161</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> ArtifactFactory artifactFactory;</pre></td></tr>
<tr> <td class="numLine">&nbsp;162</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;163</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Component</pre></td></tr>
<tr> <td class="numLine">&nbsp;164</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> ArtifactResolver artifactResolver;</pre></td></tr>
<tr> <td class="numLine">&nbsp;165</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;166</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;167</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Local maven repository.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;168</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;169</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;170</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Parameter(required=<span class="keyword">true</span>, readonly=<span class="keyword">true</span>, property=<span class="string">"localRepository"</span>)</pre></td></tr>
<tr> <td class="numLine">&nbsp;171</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> ArtifactRepository localRepository;</pre></td></tr>
<tr> <td class="numLine">&nbsp;172</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;173</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment">// end of component params custom code folding</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;174</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment">// &lt;/editor-fold&gt;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;175</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;176</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Override</pre></td></tr>
<tr> <td class="numLine">&nbsp;177</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> execute()</pre></td></tr>
<tr> <td class="numLine">&nbsp;178</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">throws</span> MojoExecutionException, MojoFailureException</pre></td></tr>
<tr> <td class="numLine">&nbsp;179</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;180</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;181</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File nbmBuildDirFile = <span class="keyword">new</span> File( outputDirectory, brandingToken );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;182</td> <td class="nbHitsUncovered"><a title="Line 182: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 182: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !nbmBuildDirFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;183</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;184</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; nbmBuildDirFile.mkdirs();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;185</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;186</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;187</td> <td class="nbHitsUncovered"><a title="Line 187: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 187: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( <span class="string">"nbm-application"</span>.equals( project.getPackaging() ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;188</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;189</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Project antProject = registerNbmAntTasks();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;190</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;191</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; wrappedBundleCNBs = <span class="keyword">new</span> HashSet&lt;&gt;(100);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;192</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Map&lt;String, Set&lt;String&gt;&gt; clusterDependencies = <span class="keyword">new</span> HashMap&lt;&gt;();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;193</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Map&lt;String, Set&lt;String&gt;&gt; clusterModules = <span class="keyword">new</span> HashMap&lt;&gt;();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;194</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;195</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//verify integrity</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;196</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; modulesCNBs = <span class="keyword">new</span> HashSet&lt;&gt;(200);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;197</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; dependencyCNBs = <span class="keyword">new</span> HashSet&lt;&gt;(200);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;198</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Map&lt;String, Set&lt;String&gt;&gt; dependencyCNBBacktraces = <span class="keyword">new</span> HashMap&lt;&gt;(50);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;199</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; requireTokens = <span class="keyword">new</span> HashSet&lt;&gt;(50);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;200</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Map&lt;String, Set&lt;String&gt;&gt; requireTokensBacktraces = <span class="keyword">new</span> HashMap&lt;&gt;(50);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;201</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; provideTokens = <span class="keyword">new</span> HashSet&lt;&gt;(50);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;202</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; osgiImports = <span class="keyword">new</span> HashSet&lt;&gt;(50);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;203</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Map&lt;String, Set&lt;String&gt;&gt; osgiImportsBacktraces = <span class="keyword">new</span> HashMap&lt;&gt;(50);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;204</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; osgiExports = <span class="keyword">new</span> HashSet&lt;&gt;(50);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;205</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; osgiExportsSubs = <span class="keyword">new</span> HashSet&lt;&gt;(50); <span class="comment">//a way to deal with nb module declaring xxx.** (subpackages) declaration that is consumed by osgi imports</span></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;206</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;207</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; List&lt;BundleTuple&gt; bundles = <span class="keyword">new</span> ArrayList&lt;&gt;();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;208</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;209</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @SuppressWarnings( <span class="string">"unchecked"</span> )</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;210</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;Artifact&gt; artifacts = project.getArtifacts();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;211</td> <td class="nbHitsUncovered"><a title="Line 211: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 211: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( Artifact art : artifacts )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;212</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;213</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ArtifactResult res = turnJarToNbmFile( art, artifactFactory, artifactResolver, project, localRepository );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;214</td> <td class="nbHitsUncovered"><a title="Line 214: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 214: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( res.hasConvertedArtifact() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;215</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;216</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; art = res.getConvertedArtifact();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;217</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;218</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;219</td> <td class="nbHitsUncovered"><a title="Line 219: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 219: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( art.getType().equals( <span class="string">"nbm-file"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;220</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;221</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;222</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;223</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; JarFile jf = <span class="keyword">new</span> JarFile( art.getFile() );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;224</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;225</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;226</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String clusterName = findCluster( jf ); </span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;227</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ClusterTuple cluster = processCluster( clusterName, nbmBuildDirFile, art );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;228</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;229</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().debug( <span class="string">"Copying "</span> + art.getId() + <span class="string">" to cluster "</span> + clusterName );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;230</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Enumeration&lt;JarEntry&gt; enu = jf.entries();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;231</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;232</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// we need to trigger this ant task to generate the update_tracking file.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;233</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; MakeListOfNBM makeTask = (MakeListOfNBM) antProject.createTask( <span class="string">"genlist"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;234</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; antProject.setNewProperty( <span class="string">"module.name"</span>, art.getFile().getName() ); <span class="comment">// TODO</span></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;235</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; antProject.setProperty( <span class="string">"cluster.dir"</span>, clusterName );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;236</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileSet set = makeTask.createFileSet();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;237</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; set.setDir( cluster.location );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;238</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; makeTask.setOutputfiledir( cluster.location );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;239</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String[] executables = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;240</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File classpathRoot = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;241</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String classPath = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;242</td> <td class="nbHitsUncovered"><a title="Line 242: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 242: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> ( enu.hasMoreElements() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;243</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;244</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; JarEntry ent = enu.nextElement();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;245</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String name = ent.getName();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;246</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//MNBMODULE-176</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;247</td> <td class="nbHitsUncovered"><a title="Line 247: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 247: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (name.equals(<span class="string">"Info/executables.list"</span>)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;248</td> <td class="nbHitsUncovered"><a title="Line 248: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 248: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cluster.newer) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;249</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; InputStream is = jf.getInputStream( ent );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;250</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; executables = StringUtils.split( IOUtil.toString( is, <span class="string">"UTF-8"</span> ), <span class="string">"\n"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;251</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;252</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;253</td> <td class="nbHitsUncovered"><a title="Line 253: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 253: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( name.startsWith( <span class="string">"netbeans/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;254</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; { <span class="comment">// ignore everything else.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;255</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String path = clusterName + name.substring( <span class="string">"netbeans"</span>.length() );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;256</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">boolean</span> ispack200 = path.endsWith( <span class="string">".jar.pack.gz"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;257</td> <td class="nbHitsUncovered"><a title="Line 257: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 257: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ispack200 )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;258</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;259</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; path = path.replace( <span class="string">".jar.pack.gz"</span>, <span class="string">".jar"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;260</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;261</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File fl = <span class="keyword">new</span> File( nbmBuildDirFile, path.replace( <span class="string">"/"</span>, File.separator ) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;262</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String part = name.substring( <span class="string">"netbeans/"</span>.length() );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;263</td> <td class="nbHitsUncovered"><a title="Line 263: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 263: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ispack200 )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;264</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;265</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; part = part.replace( <span class="string">".jar.pack.gz"</span>, <span class="string">".jar"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;266</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;267</td> <td class="nbHitsUncovered"><a title="Line 267: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 267: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cluster.newer) </a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;268</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;269</td> <td class="nbHitsUncovered"><a title="Line 269: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 269: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ent.isDirectory() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;270</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;271</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; fl.mkdirs();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;272</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;273</td> <td class="nbHitsUncovered"><a title="Line 273: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 273: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( path.endsWith( <span class="string">".external"</span> ) ) <span class="comment">// MNBMODULE-138</span></a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;274</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;275</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; InputStream is = jf.getInputStream( ent );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;276</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;277</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;278</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; externalDownload( <span class="keyword">new</span> File( fl.getParentFile(),</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;279</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; fl.getName().replaceFirst( <span class="string">"[.]external$"</span>,</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;280</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">""</span> ) ), is );</pre></td></tr>
<tr> <td class="numLine">&nbsp;281</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;282</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">finally</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;283</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;284</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; is.close();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;285</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;286</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//MNBMODULE-192</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;287</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; set.appendIncludes( <span class="keyword">new</span> String[] { name.substring( <span class="string">"netbeans/"</span>.length(), name.length() - <span class="string">".external"</span>.length() ) } );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;288</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;289</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;290</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;291</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; set.appendIncludes( <span class="keyword">new</span> String[] { part } );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;292</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;293</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; fl.getParentFile().mkdirs();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;294</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; fl.createNewFile();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;295</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; BufferedOutputStream outstream = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;296</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;297</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;298</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; outstream = <span class="keyword">new</span> BufferedOutputStream( <span class="keyword">new</span> FileOutputStream( fl ) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;299</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; InputStream instream = jf.getInputStream( ent );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;300</td> <td class="nbHitsUncovered"><a title="Line 300: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 300: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ispack200 )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;301</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;302</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Pack200.Unpacker unp = Pack200.newUnpacker();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;303</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; JarOutputStream jos = <span class="keyword">new</span> JarOutputStream( outstream );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;304</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; GZIPInputStream gzip = <span class="keyword">new</span> GZIPInputStream( instream );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;305</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;306</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;307</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; unp.unpack( gzip, jos );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;308</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;309</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">finally</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;310</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;311</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; jos.close();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;312</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;313</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;314</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;315</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;316</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; IOUtil.copy( instream, outstream );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;317</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;318</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;319</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">finally</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;320</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;321</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; IOUtil.close( outstream );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;322</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;323</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;324</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;325</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;326</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//TODO examine netbeans/config/Modules to see if the module is autoload/eager</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;327</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// in verifyIntegrity these could be handled more gracefully than regular modules.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;328</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//eager is simpler, does not need to have module dependencies satisfied.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;329</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//autoload needs checking if any of the other modules declares a dependency on it. if not, also safe to ignore?</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;330</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;331</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;332</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// now figure which one of the jars is the module jar..</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;333</td> <td class="nbHitsUncovered"><a title="Line 333: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 333: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( part.matches(<span class="string">"(modules|core|lib)/[^/]+[.]jar"</span>) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;334</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;335</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ExamineManifest ex = <span class="keyword">new</span> ExamineManifest( getLog() );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;336</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ex.setJarFile( fl );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;337</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ex.setPopulateDependencies( <span class="keyword">true</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;338</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ex.checkFile();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;339</td> <td class="nbHitsUncovered"><a title="Line 339: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 339: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ex.isNetBeansModule() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;340</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;341</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; makeTask.setModule( part );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;342</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; addToMap(clusterDependencies, clusterName, ex.getDependencyTokens());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;343</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; addToMap(clusterModules, clusterName, Collections.singletonList( ex.getModule() ));</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;344</td> <td class="nbHitsUncovered"><a title="Line 344: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 344: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ex.getClasspath().length() &gt; 0) { <span class="comment">//MNBMODULE-220</span></a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;345</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; classPath = ex.getClasspath();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;346</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; classpathRoot = fl.getParentFile();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;347</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;348</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;349</td> <td class="nbHitsUncovered"><a title="Line 349: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 349: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (verifyIntegrity) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;350</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dependencyCNBs.addAll(ex.getDependencyTokens());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;351</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; modulesCNBs.add(ex.getModule());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;352</td> <td class="nbHitsUncovered"><a title="Line 352: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 352: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String d : ex.getDependencyTokens()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;353</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; addToMap(dependencyCNBBacktraces, d, Collections.singletonList( ex.getModule() ));</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;354</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;355</td> <td class="nbHitsUncovered"><a title="Line 355: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 355: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ex.isNetBeansModule()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;356</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; requireTokens.addAll(ex.getNetBeansRequiresTokens());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;357</td> <td class="nbHitsUncovered"><a title="Line 357: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 357: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String r : ex.getNetBeansRequiresTokens()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;358</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; addToMap( requireTokensBacktraces, r, Collections.singletonList( ex.getModule()));</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;359</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;360</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; provideTokens.addAll(ex.getNetBeansProvidesTokens());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;361</td> <td class="nbHitsUncovered"><a title="Line 361: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 361: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String pack : ex.getPackages()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;362</td> <td class="nbHitsUncovered"><a title="Line 362: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 362: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (pack.endsWith( <span class="string">".**"</span>)) {</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;363</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//what to do with subpackages?</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;364</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; pack = pack.substring( 0, pack.length() - <span class="string">".**"</span>.length());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;365</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; osgiExportsSubs.add( pack );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;366</td> <td class="nbHitsUncovered"><a title="Line 366: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 366: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (pack.endsWith( <span class="string">".*"</span>)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;367</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; pack = pack.substring( 0, pack.length() - <span class="string">".*"</span>.length());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;368</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; osgiExports.add(pack); </span></pre></td></tr>
<tr> <td class="numLine">&nbsp;369</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;370</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;371</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;372</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;373</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;374</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;375</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;376</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;377</td> <td class="nbHitsUncovered"><a title="Line 377: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 377: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (classPath != <span class="keyword">null</span>) { <span class="comment">//MNBMODULE-220 collect wrappedbundleCNBs, later useful in assignClustersToBundles(), these get removed from list of bundles.</span></a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;378</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String[] paths = StringUtils.split( classPath, <span class="string">" "</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;379</td> <td class="nbHitsUncovered"><a title="Line 379: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 379: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String path : paths) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;380</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; path = path.trim();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;381</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File classpathFile = <span class="keyword">new</span> File(classpathRoot, path);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;382</td> <td class="nbHitsUncovered"><a title="Line 382: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 382: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (path.equals(<span class="string">"${java.home}/lib/ext/jfxrt.jar"</span>)) { <span class="comment">//MNBMODULE-228</span></a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;383</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String jhm = System.getProperty(<span class="string">"java.home"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;384</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; classpathFile = <span class="keyword">new</span> File(<span class="keyword">new</span> File(<span class="keyword">new</span> File(<span class="keyword">new</span> File(jhm), <span class="string">"lib"</span>), <span class="string">"ext"</span>), <span class="string">"jfxrt.jar"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;385</td> <td class="nbHitsUncovered"><a title="Line 385: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 385: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!classpathFile.exists()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;386</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File jdk7 = <span class="keyword">new</span> File(<span class="keyword">new</span> File(<span class="keyword">new</span> File(jhm), <span class="string">"lib"</span>), <span class="string">"jfxrt.jar"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;387</td> <td class="nbHitsUncovered"><a title="Line 387: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 387: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (jdk7.exists()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;388</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; classpathFile = jdk7;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;389</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;390</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;391</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;392</td> <td class="nbHitsUncovered"><a title="Line 392: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 392: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!classpathFile.isFile()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;393</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().warn( <span class="string">"Could not resolve Class-Path item in "</span> + art.getId() + <span class="string">", path is:"</span> + path + <span class="string">", skipping"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;394</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">continue</span>; <span class="comment">//try to guard against future failures</span></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;395</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;396</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ExamineManifest ex = <span class="keyword">new</span> ExamineManifest( getLog() );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;397</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ex.setJarFile( classpathFile );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;398</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//ex.setPopulateDependencies( true );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;399</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ex.checkFile();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;400</td> <td class="nbHitsUncovered"><a title="Line 400: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 400: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ex.isOsgiBundle()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;401</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; wrappedBundleCNBs.add( ex.getModule() );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;402</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;403</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;404</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;405</td> <td class="nbHitsUncovered"><a title="Line 405: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 405: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( cluster.newer )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;406</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;407</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;408</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;409</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; makeTask.execute();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;410</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;411</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( BuildException e )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;412</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;413</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().error( <span class="string">"Cannot Generate update_tracking XML file from "</span> + art.getFile() );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;414</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoExecutionException( e.getMessage(), e );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;415</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;416</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;417</td> <td class="nbHitsUncovered"><a title="Line 417: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 417: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( executables != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;418</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;419</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//MNBMODULE-176</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;420</td> <td class="nbHitsUncovered"><a title="Line 420: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 420: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String exec : executables )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;421</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;422</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; exec = exec.replace( <span class="string">"/"</span>, File.separator );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;423</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File execFile = <span class="keyword">new</span> File( cluster.location, exec );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;424</td> <td class="nbHitsUncovered"><a title="Line 424: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 424: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( execFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;425</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;426</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; execFile.setExecutable( <span class="keyword">true</span>, <span class="keyword">false</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;427</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;428</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;429</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;430</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;431</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;432</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;433</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">finally</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;434</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;435</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; jf.close();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;436</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;437</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;438</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( IOException ex )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;439</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;440</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().error( art.getFile().getAbsolutePath(), ex );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;441</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;442</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;443</td> <td class="nbHitsUncovered"><a title="Line 443: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 443: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( res.isOSGiBundle() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;444</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;445</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ExamineManifest ex = res.getExaminedManifest();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;446</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; bundles.add( <span class="keyword">new</span> BundleTuple( art, ex) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;447</td> <td class="nbHitsUncovered"><a title="Line 447: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 447: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (verifyIntegrity) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;448</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dependencyCNBs.addAll(ex.getDependencyTokens());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;449</td> <td class="nbHitsUncovered"><a title="Line 449: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 449: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String d : ex.getDependencyTokens() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;450</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;451</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; addToMap( dependencyCNBBacktraces, d, Collections.singletonList( ex.getModule() ) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;452</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;453</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; modulesCNBs.add(ex.getModule());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;454</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; osgiImports.addAll( ex.getOsgiImports());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;455</td> <td class="nbHitsUncovered"><a title="Line 455: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 455: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String d : ex.getOsgiImports() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;456</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;457</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; addToMap( osgiImportsBacktraces, d, Collections.singletonList( ex.getModule() ) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;458</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;459</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;460</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; osgiExports.addAll( ex.getOsgiExports());</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;461</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;462</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;463</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;464</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;465</td> <td class="nbHitsUncovered"><a title="Line 465: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 465: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (verifyIntegrity) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;466</td> <td class="nbHitsUncovered"><a title="Line 466: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 466: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (getLog().isDebugEnabled()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;467</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().debug( <span class="string">"All found codenamebases:"</span> + Arrays.toString( modulesCNBs.toArray()) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;468</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().debug( <span class="string">"All found OSGI exports:"</span> + Arrays.toString( osgiExports.toArray()) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;469</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().debug( <span class="string">"All found provided tokens:"</span> + Arrays.toString( provideTokens.toArray()) );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;470</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;471</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dependencyCNBs.removeAll( modulesCNBs );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;472</td> <td class="nbHitsUncovered"><a title="Line 472: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 472: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (modulesCNBs.contains( <span class="string">"org.netbeans.modules.netbinox"</span>)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;473</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dependencyCNBs.remove( <span class="string">"org.eclipse.osgi"</span>); <span class="comment">//this is special.</span></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;474</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;475</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; osgiImports.removeAll( osgiExports );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;476</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Iterator&lt;String&gt; it = osgiImports.iterator();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;477</td> <td class="nbHitsUncovered"><a title="Line 477: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 477: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (it.hasNext()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;478</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String s = it.next();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;479</td> <td class="nbHitsUncovered"><a title="Line 479: Conditional coverage 0% (0/12) [each condition: 0%, 0%, 0%, 0%, 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 479: Conditional coverage 0% (0/12) [each condition: 0%, 0%, 0%, 0%, 0%, 0%]."> <span class="keyword">if</span> (s.startsWith( <span class="string">"java."</span>) || s.startsWith( <span class="string">"javax."</span>) || s.startsWith( <span class="string">"sun."</span>) || s.startsWith( <span class="string">"org.xml.sax"</span>) || s.startsWith( <span class="string">"org.w3c.dom"</span>) || s.startsWith( <span class="string">"org.ietf.jgss"</span>)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;480</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; it.remove();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;481</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">continue</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;482</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;483</td> <td class="nbHitsUncovered"><a title="Line 483: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 483: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String sub : osgiExportsSubs) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;484</td> <td class="nbHitsUncovered"><a title="Line 484: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 484: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (s.startsWith( sub )) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;485</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; it.remove();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;486</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">break</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;487</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;488</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;489</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;490</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; requireTokens.removeAll( provideTokens );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;491</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; requireTokens.removeAll( defaultPlatformTokens );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;492</td> <td class="nbHitsUncovered"><a title="Line 492: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 492: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (!dependencyCNBs.isEmpty() || !osgiImports.isEmpty() ||!requireTokens.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;493</td> <td class="nbHitsUncovered"><a title="Line 493: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 493: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!dependencyCNBs.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;494</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().error( <span class="string">"Some included modules/bundles depend on these codenamebases but they are not included. The application will fail starting up. The missing codenamebases are:"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;495</td> <td class="nbHitsUncovered"><a title="Line 495: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 495: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String s : dependencyCNBs) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;496</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; back = dependencyCNBBacktraces.get( s );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;497</td> <td class="nbHitsUncovered"><a title="Line 497: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 497: Conditional coverage 0% (0/2)."> getLog().error(<span class="string">" "</span> + s + (back != <span class="keyword">null</span> ? <span class="string">" ref: "</span> + Arrays.toString( back.toArray()) : <span class="string">""</span>));</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;498</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;499</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;500</td> <td class="nbHitsUncovered"><a title="Line 500: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 500: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!osgiImports.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;501</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().error(<span class="string">"Some OSGi imports are not satisfied by included bundles' exports. The application will fail starting up. The missing imports are:"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;502</td> <td class="nbHitsUncovered"><a title="Line 502: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 502: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String s : osgiImports) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;503</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; back = osgiImportsBacktraces.get( s );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;504</td> <td class="nbHitsUncovered"><a title="Line 504: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 504: Conditional coverage 0% (0/2)."> getLog().error(<span class="string">" "</span> + s + (back != <span class="keyword">null</span> ? <span class="string">" ref: "</span> + Arrays.toString( back.toArray()) : <span class="string">""</span>));</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;505</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;506</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;507</td> <td class="nbHitsUncovered"><a title="Line 507: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 507: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!requireTokens.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;508</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().error(<span class="string">"Some tokens required by included modules are not provided by included modules. The application will fail starting up. The missing tokens are:"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;509</td> <td class="nbHitsUncovered"><a title="Line 509: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 509: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String s : requireTokens) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;510</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; back = requireTokensBacktraces.get( s );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;511</td> <td class="nbHitsUncovered"><a title="Line 511: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 511: Conditional coverage 0% (0/2)."> getLog().error(<span class="string">" "</span> + s + (back != <span class="keyword">null</span> ? <span class="string">" ref: "</span> + Arrays.toString( back.toArray()) : <span class="string">""</span>));</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;512</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;513</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;514</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoFailureException(<span class="string">"See above for consistency validation check failures. Either fix those by adding the relevant dependencies to the application or disable the check by setting the verifyIntegrity parameter to false or by running with -Dnetbeans.verify.integrity=false cmd line parameter."</span>);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;515</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;516</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().info( <span class="string">"Integrity verification passed."</span>);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;517</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;518</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">else</span> {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;519</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().info( <span class="string">"Integrity verification skipped."</span>);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;520</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;521</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;522</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//attempt to sort clusters based on the dependencies and cluster content.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;523</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Map&lt;String, Set&lt;String&gt;&gt; cluster2depClusters = computeClusterOrdering( clusterDependencies, clusterModules );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;524</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; clusterModules.clear();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;525</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;526</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//now assign the cluster to bundles based on dependencies..</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;527</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; assignClustersToBundles( bundles, wrappedBundleCNBs, clusterDependencies, cluster2depClusters, getLog() );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;528</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;529</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;530</td> <td class="nbHitsUncovered"><a title="Line 530: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 530: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (BundleTuple ent : bundles) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;531</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Artifact art = ent.artifact;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;532</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> ExamineManifest ex = ent.manifest;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;533</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;534</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String clstr = ent.cluster;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;535</td> <td class="nbHitsUncovered"><a title="Line 535: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 535: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (clstr == <span class="keyword">null</span>) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;536</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; clstr = defaultCluster;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;537</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;538</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;539</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ClusterTuple cluster = processCluster( clstr, nbmBuildDirFile, art );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;540</td> <td class="nbHitsUncovered"><a title="Line 540: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 540: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( cluster.newer )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;541</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;542</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().info( <span class="string">"Copying "</span> + art.getId() + <span class="string">" to cluster "</span> + clstr );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;543</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File modules = <span class="keyword">new</span> File( cluster.location, <span class="string">"modules"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;544</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; modules.mkdirs();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;545</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File config = <span class="keyword">new</span> File( cluster.location, <span class="string">"config"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;546</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File confModules = <span class="keyword">new</span> File( config, <span class="string">"Modules"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;547</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; confModules.mkdirs();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;548</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File updateTracking = <span class="keyword">new</span> File( cluster.location, <span class="string">"update_tracking"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;549</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; updateTracking.mkdirs();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;550</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> String cnb = ex.getModule();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;551</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> String cnbDashed = cnb.replace( <span class="string">"."</span>, <span class="string">"-"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;552</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> File moduleArt = <span class="keyword">new</span> File( modules, cnbDashed + <span class="string">".jar"</span> ); <span class="comment">//do we need the file in some canotical name pattern?</span></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;553</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> String specVer = ex.getSpecVersion();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;554</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;555</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;556</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyFile( art.getFile(), moduleArt );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;557</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> File moduleConf = <span class="keyword">new</span> File( confModules, cnbDashed + <span class="string">".xml"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;558</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyStreamToFile( <span class="keyword">new</span> InputStreamFacade() {</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;559</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Override</pre></td></tr>
<tr> <td class="numLine">&nbsp;560</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> InputStream getInputStream() <span class="keyword">throws</span> IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;561</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;562</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> StringInputStream( createBundleConfigFile( cnb, ex.isBundleAutoload() ), <span class="string">"UTF-8"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;563</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;564</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }, moduleConf );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;565</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyStreamToFile( <span class="keyword">new</span> InputStreamFacade() {</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;566</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Override</pre></td></tr>
<tr> <td class="numLine">&nbsp;567</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> InputStream getInputStream() <span class="keyword">throws</span> IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;568</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;569</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> StringInputStream( createBundleUpdateTracking( cnb, moduleArt, moduleConf, specVer ), <span class="string">"UTF-8"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;570</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;571</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }, <span class="keyword">new</span> File( updateTracking, cnbDashed + <span class="string">".xml"</span> ) );</pre></td></tr>
<tr> <td class="numLine">&nbsp;572</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;573</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( IOException exc )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;574</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;575</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().error( exc );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;576</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;577</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;578</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;579</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;580</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().info(</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;581</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="string">"Created NetBeans module cluster(s) at "</span> + nbmBuildDirFile.getAbsoluteFile() );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;582</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;583</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;584</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;585</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;586</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoExecutionException(</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;587</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"This goal only makes sense on project with nbm-application packaging"</span> );</pre></td></tr>
<tr> <td class="numLine">&nbsp;588</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;589</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//in 6.1 the rebuilt modules will be cached if the timestamp is not touched.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;590</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File[] files = nbmBuildDirFile.listFiles();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;591</td> <td class="nbHitsUncovered"><a title="Line 591: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 591: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( File file : files )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;592</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;593</td> <td class="nbHitsUncovered"><a title="Line 593: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 593: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( file.isDirectory() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;594</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;595</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File stamp = <span class="keyword">new</span> File( file, <span class="string">".lastModified"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;596</td> <td class="nbHitsUncovered"><a title="Line 596: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 596: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !stamp.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;597</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;598</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;599</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;600</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; stamp.createNewFile();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;601</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;602</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( IOException ex )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;603</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;604</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ex.printStackTrace();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;605</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;606</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;607</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; stamp.setLastModified( <span class="keyword">new</span> Date().getTime() );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;608</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;609</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;610</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;611</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;612</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; createBinEtcDir( nbmBuildDirFile, brandingToken );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;613</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;614</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( IOException ex )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;615</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;616</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoExecutionException(</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;617</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"Cannot process etc folder content creation."</span>, ex );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;618</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;619</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;620</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">static</span> Pattern patt = Pattern.compile(</pre></td></tr>
<tr> <td class="numLine">&nbsp;621</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">".*targetcluster=\"([a-zA-Z0-9_\\.\\-]+)\".*"</span>, Pattern.DOTALL );</pre></td></tr>
<tr> <td class="numLine">&nbsp;622</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;623</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> String findCluster( JarFile jf )</pre></td></tr>
<tr> <td class="numLine">&nbsp;624</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">throws</span> MojoFailureException, IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;625</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;626</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ZipEntry entry = jf.getEntry( <span class="string">"Info/info.xml"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;627</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; InputStream ins = jf.getInputStream( entry );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;628</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String str = IOUtil.toString( ins, <span class="string">"UTF8"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;629</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Matcher m = patt.matcher( str );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;630</td> <td class="nbHitsUncovered"><a title="Line 630: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 630: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !m.matches() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;631</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;632</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().info( <span class="string">"Cannot find cluster for "</span> + jf.getName() + <span class="string">" Falling back to default value - '"</span></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;633</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; + defaultCluster + <span class="string">"'."</span> );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;634</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> defaultCluster;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;635</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;636</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;637</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;638</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> m.group( 1 );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;639</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;640</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;641</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;642</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;643</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * </span></pre></td></tr>
<tr> <td class="numLine">&nbsp;644</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @param buildDir Directory where the platform bundle is built</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;645</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @param brandingToken</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;646</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * </span></pre></td></tr>
<tr> <td class="numLine">&nbsp;647</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @throws java.io.IOException</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;648</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;649</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">void</span> createBinEtcDir( File buildDir, String brandingToken )</pre></td></tr>
<tr> <td class="numLine">&nbsp;650</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">throws</span> IOException, MojoExecutionException</pre></td></tr>
<tr> <td class="numLine">&nbsp;651</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;652</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File etcDir = <span class="keyword">new</span> File( buildDir + File.separator + <span class="string">"etc"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;653</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; etcDir.mkdir();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;654</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;655</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// create app.clusters which contains a list of clusters to include in the application</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;656</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;657</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File clusterConf = <span class="keyword">new</span> File( etcDir + File.separator + brandingToken + <span class="string">".clusters"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;658</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; String clustersString;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;659</td> <td class="nbHitsUncovered"><a title="Line 659: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 659: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( etcClustersFile != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;660</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;661</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; clustersString = FileUtils.fileRead( etcClustersFile, <span class="string">"UTF-8"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;662</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;663</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;664</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;665</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; clusterConf.createNewFile();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;666</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; StringBuilder buffer = <span class="keyword">new</span> StringBuilder();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;667</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File[] clusters = buildDir.listFiles( <span class="keyword">new</span> FileFilter()</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;668</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; {</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;669</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;670</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Override</pre></td></tr>
<tr> <td class="numLine">&nbsp;671</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">boolean</span> accept( File pathname )</pre></td></tr>
<tr> <td class="numLine">&nbsp;672</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;673</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> File( pathname, <span class="string">".lastModified"</span> ).exists();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;674</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;675</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;676</td> <td class="nbHitsUncovered"><a title="Line 676: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 676: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( File cluster : clusters )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;677</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;678</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; buffer.append( cluster.getName() );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;679</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; buffer.append( <span class="string">"\n"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;680</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;681</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; clustersString = buffer.toString();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;682</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;683</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;684</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.fileWrite( clusterConf.getAbsolutePath(), clustersString );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;685</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;686</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File confFile = etcConfFile;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;687</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; String str;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;688</td> <td class="nbHitsUncovered"><a title="Line 688: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 688: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( confFile == <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;689</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;690</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File harnessDir = <span class="keyword">new</span> File( buildDir, <span class="string">"harness"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;691</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// app.conf contains default options and other settings</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;692</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; confFile = <span class="keyword">new</span> File(</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;693</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; harnessDir.getAbsolutePath() + File.separator + <span class="string">"etc"</span> + File.separator + <span class="string">"app.conf"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;694</td> <td class="nbHitsUncovered"><a title="Line 694: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 694: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( confFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;695</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;696</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; str = FileUtils.fileRead( confFile, <span class="string">"UTF-8"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;697</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;698</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span> </pre></td></tr>
<tr> <td class="numLine">&nbsp;699</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;700</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().debug( <span class="string">"Using fallback app.conf shipping with the nbm-maven-plugin."</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;701</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; InputStream instream = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;702</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;703</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;704</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; instream = getClass().getClassLoader().getResourceAsStream( <span class="string">"harness/etc/app.conf"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;705</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; str = IOUtil.toString( instream, <span class="string">"UTF-8"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;706</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;707</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">finally</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;708</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;709</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; IOUtil.close( instream );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;710</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;711</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;712</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;713</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;714</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;715</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; str = FileUtils.fileRead( confFile, <span class="string">"UTF-8"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;716</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;717</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File confDestFile = <span class="keyword">new</span> File(</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;718</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; etcDir.getAbsolutePath() + File.separator + brandingToken + <span class="string">".conf"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;719</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;720</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; str = str.replace( <span class="string">"${branding.token}"</span>, brandingToken );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;721</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.fileWrite( confDestFile.getAbsolutePath(), <span class="string">"UTF-8"</span>, str );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;722</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;723</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File destBinDir = <span class="keyword">new</span> File( buildDir + File.separator + <span class="string">"bin"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;724</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; destBinDir.mkdir();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;725</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;726</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; File binDir;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;727</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File destExeW = <span class="keyword">new</span> File( destBinDir, brandingToken + <span class="string">"_w.exe"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;728</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File destExe = <span class="keyword">new</span> File( destBinDir, brandingToken + <span class="string">".exe"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;729</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File destExe64 = <span class="keyword">new</span> File( destBinDir, brandingToken + <span class="string">"64.exe"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;730</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File destSh = <span class="keyword">new</span> File( destBinDir, brandingToken );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;731</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;732</td> <td class="nbHitsUncovered"><a title="Line 732: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 732: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( binDirectory != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;733</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;734</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//we have custom launchers.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;735</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; binDir = binDirectory;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;736</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File[] fls = binDir.listFiles();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;737</td> <td class="nbHitsUncovered"><a title="Line 737: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 737: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( fls == <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;738</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;739</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoExecutionException( <span class="string">"Parameter 'binDirectory' has to point to an existing folder."</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;740</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;741</td> <td class="nbHitsUncovered"><a title="Line 741: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 741: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( File fl : fls )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;742</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;743</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String name = fl.getName();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;744</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File dest = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;745</td> <td class="nbHitsUncovered"><a title="Line 745: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 745: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( name.endsWith( <span class="string">"_w.exe"</span> ) ) </a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;746</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;747</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dest = destExeW;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;748</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;749</td> <td class="nbHitsUncovered"><a title="Line 749: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 749: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( name.endsWith( <span class="string">"64.exe"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;750</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;751</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dest = destExe64;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;752</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;753</td> <td class="nbHitsUncovered"><a title="Line 753: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 753: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( name.endsWith( <span class="string">".exe"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;754</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;755</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dest = destExe;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;756</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;757</td> <td class="nbHitsUncovered"><a title="Line 757: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 757: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">else</span> <span class="keyword">if</span> ( !name.contains( <span class="string">"."</span> ) || name.endsWith( <span class="string">".sh"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;758</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;759</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; dest = destSh;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;760</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;761</td> <td class="nbHitsUncovered"><a title="Line 761: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 761: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( dest != <span class="keyword">null</span> &amp;&amp; fl.exists() ) <span class="comment">//in 6.7 the _w.exe file is no more.</span></a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;762</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;763</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyFile( fl, dest );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;764</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;765</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;766</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;767</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//warn about file not being copied</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;768</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;769</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;770</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;771</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;772</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;773</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File harnessDir = <span class="keyword">new</span> File( buildDir, <span class="string">"harness"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;774</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//we have org-netbeans-modules-apisupport-harness in target area, just use it's own launchers.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;775</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; binDir = <span class="keyword">new</span> File(</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;776</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; harnessDir.getAbsolutePath() + File.separator + <span class="string">"launchers"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;777</td> <td class="nbHitsUncovered"><a title="Line 777: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 777: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( binDir.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;778</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;779</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File exe = <span class="keyword">new</span> File( binDir, <span class="string">"app.exe"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;780</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyFile( exe, destExe );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;781</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File exe64 = <span class="keyword">new</span> File( binDir, <span class="string">"app64.exe"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;782</td> <td class="nbHitsUncovered"><a title="Line 782: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 782: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( exe64.isFile() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;783</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;784</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyFile( exe64, destExe64 );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;785</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;786</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File exew = <span class="keyword">new</span> File( binDir, <span class="string">"app_w.exe"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;787</td> <td class="nbHitsUncovered"><a title="Line 787: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 787: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( exew.exists() ) <span class="comment">//in 6.7 the _w.exe file is no more.</span></a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;788</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;789</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyFile( exew, destExeW );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;790</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;791</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File sh = <span class="keyword">new</span> File( binDir, <span class="string">"app.sh"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;792</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyFile( sh, destSh );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;793</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;794</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;795</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;796</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File nbm = getHarnessNbm();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;797</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">try</span> (ZipFile zip = <span class="keyword">new</span> ZipFile( nbm )) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;798</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().debug( <span class="string">"Using fallback executables from downloaded org-netbeans-modules-apisupport-harness nbm file."</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;799</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; writeFromZip(zip, <span class="string">"netbeans/launchers/app.sh"</span>, destSh, <span class="keyword">true</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;800</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; writeFromZip(zip, <span class="string">"netbeans/launchers/app.exe"</span>, destExe, <span class="keyword">true</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;801</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; writeFromZip(zip, <span class="string">"netbeans/launchers/app64.exe"</span>, destExe64, <span class="keyword">false</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;802</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; writeFromZip(zip, <span class="string">"netbeans/launchers/app_w.exe"</span>, destExeW, <span class="keyword">false</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;803</td> <td class="nbHitsUncovered"><a title="Line 803: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 803: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> }</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;804</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;805</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;806</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;807</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Project antProject = antProject();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;808</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;809</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Chmod chmod = (Chmod) antProject.createTask( <span class="string">"chmod"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;810</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileSet fs = <span class="keyword">new</span> FileSet();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;811</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; fs.setDir( destBinDir );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;812</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; fs.setIncludes( <span class="string">"*"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;813</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; chmod.addFileset( fs );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;814</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; chmod.setPerm( <span class="string">"755"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;815</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; chmod.execute();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;816</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;817</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;818</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">void</span> writeFile( String path, File destSh )</pre></td></tr>
<tr> <td class="numLine">&nbsp;819</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">throws</span> IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;820</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;821</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; InputStream instream = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;822</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; OutputStream output = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;823</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;824</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;825</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; instream = getClass().getClassLoader().getResourceAsStream( path );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;826</td> <td class="nbHitsUncovered"><a title="Line 826: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 826: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( instream == <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;827</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;828</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> FileNotFoundException( path );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;829</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;830</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; destSh.createNewFile();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;831</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; output = <span class="keyword">new</span> BufferedOutputStream( <span class="keyword">new</span> FileOutputStream( destSh ) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;832</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; IOUtil.copy( instream, output );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;833</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;834</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">finally</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;835</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;836</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; IOUtil.close( instream );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;837</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; IOUtil.close( output );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;838</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;839</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;840</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;841</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> ClusterTuple processCluster( String cluster, File nbmBuildDirFile, Artifact art )</pre></td></tr>
<tr> <td class="numLine">&nbsp;842</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;843</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File clusterFile = <span class="keyword">new</span> File( nbmBuildDirFile, cluster );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;844</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">boolean</span> newer = <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;845</td> <td class="nbHitsUncovered"><a title="Line 845: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 845: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !clusterFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;846</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;847</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; clusterFile.mkdir();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;848</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; newer = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;849</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;850</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;851</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;852</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; File stamp = <span class="keyword">new</span> File( clusterFile, <span class="string">".lastModified"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;853</td> <td class="nbHitsUncovered"><a title="Line 853: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 853: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( stamp.lastModified() &lt; art.getFile().lastModified() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;854</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;855</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; newer = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;856</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;857</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;858</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> ClusterTuple( clusterFile, newer );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;859</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;860</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;861</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">void</span> externalDownload( File f, InputStream is )</pre></td></tr>
<tr> <td class="numLine">&nbsp;862</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">throws</span> IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;863</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;864</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// Cf. org.netbeans.nbbuild.AutoUpdate</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;865</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; BufferedReader r = <span class="keyword">new</span> BufferedReader( <span class="keyword">new</span> InputStreamReader( is, <span class="string">"UTF-8"</span> ) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;866</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">long</span> crc = -1;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;867</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">long</span> size = -1;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;868</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">boolean</span> found = <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;869</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; String line;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;870</td> <td class="nbHitsUncovered"><a title="Line 870: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 870: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> ( ( line = r.readLine() ) != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;871</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;872</td> <td class="nbHitsUncovered"><a title="Line 872: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 872: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( line.startsWith( <span class="string">"CRC:"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;873</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;874</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; crc = Long.parseLong( line.substring( 4 ).trim() );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;875</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;876</td> <td class="nbHitsUncovered"><a title="Line 876: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 876: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( line.startsWith( <span class="string">"URL:m2:/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;877</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;878</td> <td class="nbHitsUncovered"><a title="Line 878: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 878: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ! found )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;879</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;880</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String[] coords = line.substring( 8 ).trim().split( <span class="string">":"</span> );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;881</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; Artifact artifact;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;882</td> <td class="nbHitsUncovered"><a title="Line 882: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 882: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( coords.length == 4 )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;883</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;884</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; artifact = artifactFactory.createArtifact( coords[0], coords[1], coords[2], <span class="keyword">null</span>, coords[3] );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;885</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;886</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;887</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;888</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; artifact = artifactFactory.createArtifactWithClassifier( coords[0], coords[1], coords[2], coords[3], coords[4] );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;889</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;890</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;891</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;892</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; artifactResolver.resolve( artifact, project.getRemoteArtifactRepositories(), localRepository );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;893</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyFile( artifact.getFile(), f );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;894</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; found = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;895</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;896</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( AbstractArtifactResolutionException x )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;897</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;898</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().warn( <span class="string">"Cannot find "</span> + line.substring( 8 ), x );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;899</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;900</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;901</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;902</td> <td class="nbHitsUncovered"><a title="Line 902: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 902: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( line.startsWith( <span class="string">"URL:"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;903</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;904</td> <td class="nbHitsUncovered"><a title="Line 904: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 904: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ! found )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;905</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;906</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String url = line.substring( 4 ).trim();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;907</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;908</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;909</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// XXX use Wagon API instead</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;910</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyURLToFile( <span class="keyword">new</span> URL( url ), f );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;911</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; found = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;912</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;913</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( IOException x )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;914</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;915</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().warn( <span class="string">"Cannot download "</span> + url, x );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;916</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;917</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;918</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;919</td> <td class="nbHitsUncovered"><a title="Line 919: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 919: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( line.startsWith( <span class="string">"SIZE:"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;920</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;921</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; size = Long.parseLong( line.substring( 5 ).trim() );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;922</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;923</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;924</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;925</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().warn( <span class="string">"Unrecognized line: "</span> + line );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;926</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;927</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;928</td> <td class="nbHitsUncovered"><a title="Line 928: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 928: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( ! found )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;929</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;930</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> IOException( <span class="string">"Could not download "</span> + f );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;931</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;932</td> <td class="nbHitsUncovered"><a title="Line 932: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 932: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( crc != -1 &amp;&amp; crc != crcForFile( f ).getValue() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;933</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;934</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> IOException( <span class="string">"CRC-32 of "</span> + f + <span class="string">" does not match declared "</span> + crc );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;935</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;936</td> <td class="nbHitsUncovered"><a title="Line 936: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 936: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( size != -1 &amp;&amp; size != f.length() )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;937</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;938</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> IOException( <span class="string">"Size of "</span> + f + <span class="string">" does not match declared "</span> + size );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;939</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;940</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;941</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;942</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> File getHarnessNbm() <span class="keyword">throws</span> MojoExecutionException</pre></td></tr>
<tr> <td class="numLine">&nbsp;943</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;944</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @SuppressWarnings( <span class="string">"unchecked"</span> )</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;945</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;Artifact&gt; artifacts = project.getArtifacts();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;946</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String version = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;947</td> <td class="nbHitsUncovered"><a title="Line 947: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 947: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (Artifact a : artifacts) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;948</td> <td class="nbHitsUncovered"><a title="Line 948: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 948: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (<span class="string">"org.netbeans.modules"</span>.equals(a.getGroupId()) &amp;&amp; <span class="string">"org-netbeans-bootstrap"</span>.equals(a.getArtifactId())) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;949</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; version = a.getBaseVersion(); <span class="comment">//base version in non-snapshot should equals version, in snapshots to X-SNAPSHOT, not timestamp</span></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;950</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">break</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;951</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;952</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;953</td> <td class="nbHitsUncovered"><a title="Line 953: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 953: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (version == <span class="keyword">null</span>) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;954</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoExecutionException( <span class="string">"We could not find org-netbeans-bootstrap among the modules in the application. Launchers could not be found."</span>);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;955</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;956</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Artifact nbmArt = artifactFactory.createArtifact(</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;957</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org.netbeans.modules"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;958</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"org-netbeans-modules-apisupport-harness"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;959</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; version,</pre></td></tr>
<tr> <td class="numLine">&nbsp;960</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"compile"</span>,</pre></td></tr>
<tr> <td class="numLine">&nbsp;961</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="string">"nbm-file"</span>);</pre></td></tr>
<tr> <td class="numLine">&nbsp;962</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;963</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;964</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; artifactResolver.resolve( nbmArt, project.getRemoteArtifactRepositories(), localRepository );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;965</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;966</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;967</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">catch</span> ( ArtifactResolutionException | ArtifactNotFoundException ex )</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;968</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;969</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoExecutionException( <span class="string">"Failed to retrieve the nbm file from repository"</span>, ex );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;970</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;971</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> nbmArt.getFile();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;972</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;973</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;974</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">void</span> writeFromZip( <span class="keyword">final</span> ZipFile zip, String zipPath, File destFile, <span class="keyword">boolean</span> mandatory ) <span class="keyword">throws</span> MojoExecutionException, IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;975</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;976</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> ZipEntry path = zip.getEntry( zipPath );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;977</td> <td class="nbHitsUncovered"><a title="Line 977: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 977: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (path == <span class="keyword">null</span>) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;978</td> <td class="nbHitsUncovered"><a title="Line 978: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 978: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (mandatory) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;979</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> MojoExecutionException( zipPath + <span class="string">" not found in "</span> + zip.getName());</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;980</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;981</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; getLog().debug(zipPath + <span class="string">" is not present in "</span> + zip.getName());</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;982</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;983</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;984</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; FileUtils.copyStreamToFile( <span class="keyword">new</span> InputStreamFacade() {</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;985</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;986</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; @Override</pre></td></tr>
<tr> <td class="numLine">&nbsp;987</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> InputStream getInputStream() <span class="keyword">throws</span> IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;988</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;989</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> zip.getInputStream( path );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;990</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;991</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }, destFile);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;992</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;993</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;994</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">void</span> addToMap( Map&lt;String, Set&lt;String&gt;&gt; map, String clusterName, List&lt;String&gt; newValues )</pre></td></tr>
<tr> <td class="numLine">&nbsp;995</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;996</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; Set&lt;String&gt; lst = map.get( clusterName );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;997</td> <td class="nbHitsCovered"><a title="Line 997: Conditional coverage 100% (2/2).">&nbsp;6</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 997: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> ( lst == <span class="keyword">null</span> )</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;998</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;999</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; lst = <span class="keyword">new</span> HashSet&lt;&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1000</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; map.put( clusterName, lst );</pre></td></tr>
<tr> <td class="numLine">&nbsp;1001</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1002</td> <td class="nbHitsUncovered"><a title="Line 1002: Conditional coverage 50% (1/2).">&nbsp;6</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1002: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> ( newValues != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1003</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1004</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; lst.addAll( newValues );</pre></td></tr>
<tr> <td class="numLine">&nbsp;1005</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1006</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1007</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;1008</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> List&lt;String&gt; findByDependencies( Map&lt;String, Set&lt;String&gt;&gt; clusterDependencies, String spec)</pre></td></tr>
<tr> <td class="numLine">&nbsp;1009</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1010</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; List&lt;String&gt; toRet = <span class="keyword">new</span> ArrayList&lt;&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1011</td> <td class="nbHitsCovered"><a title="Line 1011: Conditional coverage 100% (2/2).">&nbsp;8</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1011: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( Map.Entry&lt;String, Set&lt;String&gt;&gt; entry : clusterDependencies.entrySet() )</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1012</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1013</td> <td class="nbHitsCovered"><a title="Line 1013: Conditional coverage 100% (2/2).">&nbsp;16</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1013: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> ( entry.getValue().contains( spec ) )</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1014</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1015</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; toRet.add(entry.getKey());</pre></td></tr>
<tr> <td class="numLine">&nbsp;1016</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1017</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1018</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> toRet;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1019</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1020</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1021</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//the basic idea is that bundle's cluster can be determined by who depends on it.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1022</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//simplest case is when a module depends on it. If there are more, we need to pick one that is "lower in the stack, that's what cluster2depClusters is for.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1023</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//the rest needs to be determined in more sofisticated manner.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1024</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//start from bundles with known cluster and see what other bundles they depend on. stamp all these with the same cluster. do it recursively.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1025</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//At the end process the remaining bundles in reverse order. Check if *they* depend on a bundle with known cluster and so on..</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1026</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//A few unsolved cases:</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1027</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// - we never update the cluster information once a match was found, but there is a possibility that later in the processing the cluster could be "lowered".</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1028</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// - 2 or more modules from unrelated clusters we cannot easily decide, most likely should be in common denominator cluster but our cluster2depClusters map is not transitive, only lists direct dependencies</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1029</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> <span class="keyword">void</span> assignClustersToBundles( List&lt;BundleTuple&gt; bundles, Set&lt;String&gt; wrappedBundleCNBs, Map&lt;String, Set&lt;String&gt;&gt; clusterDependencies, Map&lt;String, Set&lt;String&gt;&gt; cluster2depClusters, Log log)</pre></td></tr>
<tr> <td class="numLine">&nbsp;1030</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1031</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; List&lt;BundleTuple&gt; toProcess = <span class="keyword">new</span> ArrayList&lt;&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1032</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; List&lt;BundleTuple&gt; known = <span class="keyword">new</span> ArrayList&lt;&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1033</td> <td class="nbHitsCovered"><a title="Line 1033: Conditional coverage 100% (2/2).">&nbsp;4</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1033: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( Iterator&lt;BundleTuple&gt; it = bundles.iterator(); it.hasNext(); )</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1034</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1035</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; BundleTuple ent = it.next();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1036</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; Artifact art = ent.artifact;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1037</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; ExamineManifest ex = ent.manifest;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1038</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; String spec = ex.getModule();</pre></td></tr>
<tr> <td class="numLine">&nbsp;1039</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//null check for tests</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1040</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//have a way to force inclusion of osgi items. Direct dependency is never wrapped by modules.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1041</td> <td class="nbHitsUncovered"><a title="Line 1041: Conditional coverage 16% (1/6) [each condition: 50%, 0%, 0%].">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1041: Conditional coverage 16% (1/6) [each condition: 50%, 0%, 0%]."> <span class="keyword">if</span> ( art != <span class="keyword">null</span> &amp;&amp; art.getDependencyTrail().size() &gt; 2 &amp;&amp; wrappedBundleCNBs.contains( spec ) )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1042</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;1043</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// we already have this one as a wrapped module.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1044</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; log.debug( <span class="string">"Not including bundle "</span> + art.getDependencyConflictId()</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1045</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; + <span class="string">". It is already included in a NetBeans module"</span> );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1046</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; it.remove();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1047</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">continue</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1048</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1049</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; List&lt;String&gt; depclusters = findByDependencies(clusterDependencies, spec);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1050</td> <td class="nbHitsCovered"><a title="Line 1050: Conditional coverage 100% (2/2).">&nbsp;8</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1050: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (depclusters.size() == 1) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1051</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; ent.cluster = depclusters.get( 0 );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1052</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; known.add( ent );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1053</td> <td class="nbHitsUncovered"><a title="Line 1053: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1053: Conditional coverage 50% (1/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (depclusters.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1054</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; toProcess.add(ent);</pre></td></tr>
<tr> <td class="numLine">&nbsp;1055</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLine">&nbsp;1056</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//more results.. from 2 dependent clusters pick the one that is lower in the stack.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1057</td> <td class="nbHitsUncovered"><a title="Line 1057: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1057: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( Iterator&lt;String&gt; it2 = depclusters.iterator(); it2.hasNext(); )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1058</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1059</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; String s = it2.next();</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1060</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Set&lt;String&gt; depsCs = cluster2depClusters.get( s );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1061</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">boolean</span> removeS = <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1062</td> <td class="nbHitsUncovered"><a title="Line 1062: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1062: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String sDep : depclusters) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1063</td> <td class="nbHitsUncovered"><a title="Line 1063: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1063: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (s.equals( sDep) ) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1064</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">continue</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1065</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1066</td> <td class="nbHitsUncovered"><a title="Line 1066: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1066: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (depsCs != <span class="keyword">null</span> &amp;&amp; depsCs.contains( sDep ) ) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1067</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; removeS = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1068</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1069</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1070</td> <td class="nbHitsUncovered"><a title="Line 1070: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1070: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (removeS) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1071</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; it2.remove();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1072</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1073</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1074</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; ent.cluster = depclusters.get( 0 ); <span class="comment">//TODO still some free room there, what if they don't directly depend on each other but still are related</span></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1075</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; known.add (ent);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1076</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1077</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1078</td> <td class="nbHitsUncovered"><a title="Line 1078: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1078: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!toProcess.isEmpty())</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1079</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1080</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; walkKnownBundleDependenciesDown(known, toProcess);</pre></td></tr>
<tr> <td class="numLine">&nbsp;1081</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1082</td> <td class="nbHitsCovered"><a title="Line 1082: Conditional coverage 100% (2/2).">&nbsp;4</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1082: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!toProcess.isEmpty())</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1083</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1084</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; walkKnownBundleDependenciesUp(known, toProcess);</pre></td></tr>
<tr> <td class="numLine">&nbsp;1085</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1086</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1087</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1088</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">void</span> walkKnownBundleDependenciesDown( List&lt;BundleTuple&gt; known, List&lt;BundleTuple&gt; toProcess )</pre></td></tr>
<tr> <td class="numLine">&nbsp;1089</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1090</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">boolean</span> atLeastOneWasFound = <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1091</td> <td class="nbHitsCovered"><a title="Line 1091: Conditional coverage 100% (2/2).">&nbsp;4</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1091: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( Iterator&lt;BundleTuple&gt; it = toProcess.iterator(); it.hasNext(); )</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1092</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1093</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; BundleTuple bundleTuple = it.next();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1094</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">boolean</span> found = <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1095</td> <td class="nbHitsCovered"><a title="Line 1095: Conditional coverage 100% (2/2).">&nbsp;4</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1095: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( BundleTuple knownBT : known)</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1096</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1097</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; Sets.SetView&lt;String&gt; is = Sets.intersection(bundleTuple.manifest.getOsgiExports() , knownBT.manifest.getOsgiImports() );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1098</td> <td class="nbHitsCovered"><a title="Line 1098: Conditional coverage 100% (2/2).">&nbsp;4</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1098: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!is.isEmpty()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1099</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; found = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1100</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; bundleTuple.cluster = knownBT.cluster;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1101</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">break</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1102</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1103</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//dependencyTokens are requireBundle - matches the module property</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1104</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; is = Sets.intersection(Collections.singleton( bundleTuple.manifest.getModule()), <span class="keyword">new</span> HashSet(knownBT.manifest.getDependencyTokens()) );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1105</td> <td class="nbHitsUncovered"><a title="Line 1105: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1105: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!is.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1106</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; found = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1107</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; bundleTuple.cluster = knownBT.cluster;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1108</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">break</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1109</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1110</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1111</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1112</td> <td class="nbHitsCovered"><a title="Line 1112: Conditional coverage 100% (2/2).">&nbsp;4</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1112: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (found) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1113</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; atLeastOneWasFound = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1114</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; it.remove();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1115</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; known.add(bundleTuple);</pre></td></tr>
<tr> <td class="numLine">&nbsp;1116</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1117</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1118</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1119</td> <td class="nbHitsUncovered"><a title="Line 1119: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1119: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (!toProcess.isEmpty() &amp;&amp; atLeastOneWasFound) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1120</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; walkKnownBundleDependenciesDown( known, toProcess );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1121</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1122</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1123</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1124</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">void</span> walkKnownBundleDependenciesUp( List&lt;BundleTuple&gt; known, List&lt;BundleTuple&gt; toProcess )</pre></td></tr>
<tr> <td class="numLine">&nbsp;1125</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1126</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">boolean</span> atLeastOneWasFound = <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1127</td> <td class="nbHitsCovered"><a title="Line 1127: Conditional coverage 100% (2/2).">&nbsp;2</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1127: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( Iterator&lt;BundleTuple&gt; it = toProcess.iterator(); it.hasNext(); )</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1128</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1129</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; BundleTuple bundleTuple = it.next();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1130</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">boolean</span> found = <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1131</td> <td class="nbHitsUncovered"><a title="Line 1131: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1131: Conditional coverage 50% (1/2)."> <span class="keyword">for</span> ( BundleTuple knownBT : known)</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1132</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1133</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; Sets.SetView&lt;String&gt; is = Sets.intersection(bundleTuple.manifest.getOsgiImports() , knownBT.manifest.getOsgiExports() );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1134</td> <td class="nbHitsUncovered"><a title="Line 1134: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1134: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!is.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1135</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; found = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1136</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; bundleTuple.cluster = knownBT.cluster;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1137</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">break</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1138</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1139</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//dependencyTokens are requireBundle - matches the module property</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1140</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; is = Sets.intersection(Collections.singleton( knownBT.manifest.getModule()), <span class="keyword">new</span> HashSet(bundleTuple.manifest.getDependencyTokens()) );</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1141</td> <td class="nbHitsUncovered"><a title="Line 1141: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1141: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!is.isEmpty()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1142</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; found = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1143</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; bundleTuple.cluster = knownBT.cluster;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1144</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">break</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1145</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1146</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1147</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1148</td> <td class="nbHitsUncovered"><a title="Line 1148: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1148: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (found) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1149</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; atLeastOneWasFound = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1150</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; it.remove();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1151</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; known.add(bundleTuple);</pre></td></tr>
<tr> <td class="numLine">&nbsp;1152</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1153</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1154</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1155</td> <td class="nbHitsUncovered"><a title="Line 1155: Conditional coverage 25% (1/4) [each condition: 50%, 0%].">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1155: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (!toProcess.isEmpty() &amp;&amp; atLeastOneWasFound) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1156</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; walkKnownBundleDependenciesDown( known, toProcess );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1157</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1158</td> <td class="nbHitsUncovered"><a title="Line 1158: Conditional coverage 25% (1/4) [each condition: 50%, 0%].">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1158: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (!toProcess.isEmpty() &amp;&amp; atLeastOneWasFound) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1159</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; walkKnownBundleDependenciesUp( known, toProcess );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1160</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1161</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1162</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1163</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//static and default for tests..</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1164</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> Map&lt;String, Set&lt;String&gt;&gt; computeClusterOrdering( Map&lt;String, Set&lt;String&gt;&gt; clusterDependencies, Map&lt;String, Set&lt;String&gt;&gt; clusterModules )</pre></td></tr>
<tr> <td class="numLine">&nbsp;1165</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1166</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; Map&lt;String, Set&lt;String&gt;&gt; cluster2depClusters = <span class="keyword">new</span> HashMap&lt;&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1167</td> <td class="nbHitsCovered"><a title="Line 1167: Conditional coverage 100% (2/2).">&nbsp;2</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1167: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> ( Map.Entry&lt;String, Set&lt;String&gt;&gt; entry : clusterDependencies.entrySet() )</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;1168</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1169</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; String cluster = entry.getKey();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1170</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; Set&lt;String&gt; deps = entry.getValue();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1171</td> <td class="nbHitsCovered"><a title="Line 1171: Conditional coverage 100% (2/2).">&nbsp;4</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1171: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Map.Entry&lt;String, Set&lt;String&gt;&gt; subEnt : clusterModules.entrySet()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1172</td> <td class="nbHitsCovered"><a title="Line 1172: Conditional coverage 100% (2/2).">&nbsp;12</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1172: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (subEnt.getKey().equals( cluster) ) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1173</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">continue</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1174</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1175</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; Sets.SetView&lt;String&gt; is = Sets.intersection(subEnt.getValue(), deps );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1176</td> <td class="nbHitsCovered"><a title="Line 1176: Conditional coverage 100% (2/2).">&nbsp;8</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 1176: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!is.isEmpty()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1177</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; addToMap( cluster2depClusters, cluster, Collections.singletonList( subEnt.getKey() ) );</pre></td></tr>
<tr> <td class="numLine">&nbsp;1178</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1179</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1180</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1181</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> cluster2depClusters;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1182</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1183</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;1184</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> <span class="keyword">class</span> BundleTuple {</pre></td></tr>
<tr> <td class="numLine">&nbsp;1185</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> Artifact artifact;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1186</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> ExamineManifest manifest;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1187</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; String cluster;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1188</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1189</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; BundleTuple( Artifact artifact, ExamineManifest manifest )</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1190</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1191</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.artifact = artifact;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1192</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.manifest = manifest;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1193</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1194</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;1195</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1196</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1197</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">class</span> ClusterTuple</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1198</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;1199</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> File location;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1200</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> <span class="keyword">boolean</span> newer;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1201</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1202</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> ClusterTuple( File clusterFile, <span class="keyword">boolean</span> newer )</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1203</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1204</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; location = clusterFile;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1205</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">this</span>.newer = newer;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1206</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; }</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1207</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1208</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1209</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> String createBundleConfigFile( String cnb, <span class="keyword">boolean</span> autoload)</pre></td></tr>
<tr> <td class="numLine">&nbsp;1210</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1211</td> <td class="nbHitsUncovered"><a title="Line 1211: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1211: Conditional coverage 0% (0/2)."> <span class="keyword">return</span></a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1212</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1213</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">"&lt;!DOCTYPE module PUBLIC \"-//NetBeans//DTD Module Status 1.0//EN\"\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1214</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">" \"http://www.netbeans.org/dtds/module-status-1_0.dtd\"&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1215</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">"&lt;module name=\""</span> + cnb +<span class="string">"\"&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1216</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">" &lt;param name=\"autoload\"&gt;"</span> + autoload + <span class="string">"&lt;/param&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1217</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">" &lt;param name=\"eager\"&gt;false&lt;/param&gt;\n"</span> + (autoload ? <span class="string">""</span> : <span class="string">" &lt;param name=\"enabled\"&gt;true&lt;/param&gt;\n"</span>) +</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1218</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<span class="string">" &lt;param name=\"jar\"&gt;modules/"</span> + cnb.replace( <span class="string">"."</span>, <span class="string">"-"</span>) + <span class="string">".jar&lt;/param&gt;\n"</span> +</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1219</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">" &lt;param name=\"reloadable\"&gt;false&lt;/param&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1220</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">"&lt;/module&gt;\n"</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1221</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1222</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1223</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> String createBundleUpdateTracking( String cnb, File moduleArt, File moduleConf, String specVersion )</pre></td></tr>
<tr> <td class="numLine">&nbsp;1224</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">throws</span> FileNotFoundException, IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;1225</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLine">&nbsp;1226</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1227</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1228</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1229</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">"&lt;module codename=\""</span> + cnb + <span class="string">"\"&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1230</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<span class="string">" &lt;module_version install_time=\""</span> + System.currentTimeMillis() + <span class="string">"\" last=\"true\" origin=\"installer\" specification_version=\""</span> + specVersion + <span class="string">"\"&gt;\n"</span> +</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1231</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<span class="string">" &lt;file crc=\""</span> + crcForFile( moduleConf ).getValue() + <span class="string">"\" name=\"config/Modules/"</span> + cnb.replace( <span class="string">"."</span>, <span class="string">"-"</span> ) + <span class="string">".xml\"/&gt;\n"</span> +</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1232</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<span class="string">" &lt;file crc=\""</span> + crcForFile( moduleArt ).getValue() + <span class="string">"\" name=\"modules/"</span> + cnb.replace( <span class="string">"."</span>, <span class="string">"-"</span> ) + <span class="string">".jar\"/&gt;\n"</span> +</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1233</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">" &lt;/module_version&gt;\n"</span> +</pre></td></tr>
<tr> <td class="numLine">&nbsp;1234</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="string">"&lt;/module&gt;"</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1235</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1236</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1237</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1238</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> CRC32 crcForFile( File inFile )</pre></td></tr>
<tr> <td class="numLine">&nbsp;1239</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">throws</span> FileNotFoundException, IOException</pre></td></tr>
<tr> <td class="numLine">&nbsp;1240</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1241</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; CRC32 crc = <span class="keyword">new</span> CRC32();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1242</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> (InputStream inFileStream = <span class="keyword">new</span> FileInputStream( inFile )) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1243</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">byte</span>[] array = <span class="keyword">new</span> <span class="keyword">byte</span>[(<span class="keyword">int</span>) inFile.length()];</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1244</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> len = inFileStream.read( array );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1245</td> <td class="nbHitsUncovered"><a title="Line 1245: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1245: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> ( len != array.length )</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1246</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1247</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> IOException( <span class="string">"Cannot fully read "</span> + inFile );</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1248</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1249</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; crc.update( array );</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1250</td> <td class="nbHitsUncovered"><a title="Line 1250: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1250: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> }</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1251</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> crc;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1252</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1253</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1254</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 11/2/18 4:20 PM.</div>
</body>
</html>