<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>ScrPlugin xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedReader;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.TreeSet;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamSource;
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Descriptors.PackageRef;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Processor;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Resource;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.service.AnalyzerPlugin;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> aQute.libg.generics.Create;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.utils.manifest.Attribute;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.utils.manifest.Clause;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.osgi.framework.Constants;
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.felix.utils.manifest.Parser.parseHeader;
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/ScrPlugin.html">ScrPlugin</a> implements AnalyzerPlugin
<a name="59" href="#59">59</a>  {
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>      Transformer transformer;
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/ScrPlugin.html">ScrPlugin</a>() <strong class="jxr_keyword">throws</strong> Exception
<a name="64" href="#64">64</a>      {
<a name="65" href="#65">65</a>          transformer = getTransformer( getClass().getResource( <span class="jxr_string">"scr.xsl"</span> ) );
<a name="66" href="#66">66</a>      }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> analyzeJar( Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> Exception
<a name="70" href="#70">70</a>      {
<a name="71" href="#71">71</a>          Set&lt;String&gt; headers = Create.set();
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>          String bpHeader = analyzer.getProperty( <span class="jxr_string">"Service-Component"</span> );
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>          Map&lt;String, ? <strong class="jxr_keyword">extends</strong> Map&lt;String, String&gt;&gt; map = Processor.parseHeader( bpHeader, <strong class="jxr_keyword">null</strong> );
<a name="76" href="#76">76</a>          <strong class="jxr_keyword">for</strong> ( String root : map.keySet() )
<a name="77" href="#77">77</a>          {
<a name="78" href="#78">78</a>              Resource resource = analyzer.getJar().getResource(root);
<a name="79" href="#79">79</a>              <strong class="jxr_keyword">if</strong> ( resource != <strong class="jxr_keyword">null</strong> ) {
<a name="80" href="#80">80</a>                  process(analyzer, root, resource, headers);
<a name="81" href="#81">81</a>              }
<a name="82" href="#82">82</a>          }
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>          <em class="jxr_comment">// Group and analyze</em>
<a name="85" href="#85">85</a>          <strong class="jxr_keyword">for</strong> ( String str : headers )
<a name="86" href="#86">86</a>          {
<a name="87" href="#87">87</a>              <strong class="jxr_keyword">int</strong> idx = str.indexOf( ':' );
<a name="88" href="#88">88</a>              <strong class="jxr_keyword">if</strong> ( idx &lt; 0 )
<a name="89" href="#89">89</a>              {
<a name="90" href="#90">90</a>                  analyzer.warning( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Error analyzing services in scr resource: "</span> ) ).append( str ).toString() );
<a name="91" href="#91">91</a>                  <strong class="jxr_keyword">continue</strong>;
<a name="92" href="#92">92</a>              }
<a name="93" href="#93">93</a>              String h = str.substring( 0, idx ).trim();
<a name="94" href="#94">94</a>              String v = str.substring( idx + 1 ).trim();
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>              StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="97" href="#97">97</a>              String header = analyzer.getProperty( h );
<a name="98" href="#98">98</a>              <strong class="jxr_keyword">if</strong> (header != <strong class="jxr_keyword">null</strong> &amp;&amp; !header.isEmpty())
<a name="99" href="#99">99</a>              {
<a name="100" href="#100">100</a>                 sb.append(header);
<a name="101" href="#101">101</a>                 sb.append(<span class="jxr_string">","</span>);
<a name="102" href="#102">102</a>             }
<a name="103" href="#103">103</a>             sb.append( v );
<a name="104" href="#104">104</a>             analyzer.setProperty(h, sb.toString());
<a name="105" href="#105">105</a>         }
<a name="106" href="#106">106</a>         <strong class="jxr_keyword">return</strong> false;
<a name="107" href="#107">107</a>     }
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> process( Analyzer analyzer, String path, Resource resource, Set&lt;String&gt; headers )
<a name="111" href="#111">111</a>     {
<a name="112" href="#112">112</a>         InputStream in = <strong class="jxr_keyword">null</strong>;
<a name="113" href="#113">113</a>         <strong class="jxr_keyword">try</strong>
<a name="114" href="#114">114</a>         {
<a name="115" href="#115">115</a>             in = resource.openInputStream();
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>             <em class="jxr_comment">// Retrieve headers</em>
<a name="118" href="#118">118</a>             Set&lt;String&gt; set = analyze( in );
<a name="119" href="#119">119</a>             headers.addAll( set );
<a name="120" href="#120">120</a>         }
<a name="121" href="#121">121</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
<a name="122" href="#122">122</a>         {
<a name="123" href="#123">123</a>             analyzer.error( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Unexpected exception in processing scr resources("</span> ) )
<a name="124" href="#124">124</a>                 .append( path ).append( <span class="jxr_string">"): "</span> ).append( e ).toString() );
<a name="125" href="#125">125</a>         }
<a name="126" href="#126">126</a>         <strong class="jxr_keyword">finally</strong>
<a name="127" href="#127">127</a>         {
<a name="128" href="#128">128</a>             <strong class="jxr_keyword">try</strong>
<a name="129" href="#129">129</a>             {
<a name="130" href="#130">130</a>                 <strong class="jxr_keyword">if</strong> ( in != <strong class="jxr_keyword">null</strong> )
<a name="131" href="#131">131</a>                 {
<a name="132" href="#132">132</a>                     in.close();
<a name="133" href="#133">133</a>                 }
<a name="134" href="#134">134</a>             }
<a name="135" href="#135">135</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
<a name="136" href="#136">136</a>             {
<a name="137" href="#137">137</a>             }
<a name="138" href="#138">138</a>         }
<a name="139" href="#139">139</a>     }
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>     <strong class="jxr_keyword">public</strong> Set&lt;String&gt; analyze( InputStream in ) <strong class="jxr_keyword">throws</strong> Exception
<a name="143" href="#143">143</a>     {
<a name="144" href="#144">144</a>         Set&lt;String&gt; refers = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a name="145" href="#145">145</a>         ByteArrayOutputStream bout = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a name="146" href="#146">146</a>         javax.xml.transform.Result r = <strong class="jxr_keyword">new</strong> StreamResult( bout );
<a name="147" href="#147">147</a>         javax.xml.transform.Source s = <strong class="jxr_keyword">new</strong> StreamSource( in );
<a name="148" href="#148">148</a>         transformer.transform( s, r );
<a name="149" href="#149">149</a>         ByteArrayInputStream bin = <strong class="jxr_keyword">new</strong> ByteArrayInputStream( bout.toByteArray() );
<a name="150" href="#150">150</a>         bout.close();
<a name="151" href="#151">151</a>         BufferedReader br = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> InputStreamReader( bin ) );
<a name="152" href="#152">152</a>         <strong class="jxr_keyword">for</strong> ( String line = br.readLine(); line != <strong class="jxr_keyword">null</strong>; line = br.readLine() )
<a name="153" href="#153">153</a>         {
<a name="154" href="#154">154</a>             line = line.trim();
<a name="155" href="#155">155</a>             <strong class="jxr_keyword">if</strong> ( line.length() &gt; 0 )
<a name="156" href="#156">156</a>             {
<a name="157" href="#157">157</a>                 refers.add( line );
<a name="158" href="#158">158</a>             }
<a name="159" href="#159">159</a>         }
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>         br.close();
<a name="162" href="#162">162</a>         <strong class="jxr_keyword">return</strong> refers;
<a name="163" href="#163">163</a>     }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>     <strong class="jxr_keyword">protected</strong> Transformer getTransformer( URL url ) <strong class="jxr_keyword">throws</strong> Exception
<a name="167" href="#167">167</a>     {
<a name="168" href="#168">168</a>         TransformerFactory tf = TransformerFactory.newInstance();
<a name="169" href="#169">169</a>         javax.xml.transform.Source source = <strong class="jxr_keyword">new</strong> StreamSource( url.openStream() );
<a name="170" href="#170">170</a>         <strong class="jxr_keyword">return</strong> tf.newTransformer( source );
<a name="171" href="#171">171</a>     }
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

