<!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>BrowseServlet 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.chemistry.opencmis.browser;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedInputStream;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedOutputStream;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStream;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.PrintWriter;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.net.HttpURLConnection;
<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.net.URLDecoder;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.servlet.ServletConfig;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.servlet.ServletException;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> javax.servlet.http.HttpServlet;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.servlet.http.HttpServletRequest;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> javax.servlet.http.HttpServletResponse;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Result;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Source;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.dom.DOMSource;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamSource;
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">/**</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * CMIS Browser Servlet.</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> */</em>
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/chemistry/opencmis/browser/BrowseServlet.html">BrowseServlet</a> <strong class="jxr_keyword">extends</strong> HttpServlet {
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log log = LogFactory.getLog(BrowseServlet.<strong class="jxr_keyword">class</strong>);
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONTEXT_PREFIX = <span class="jxr_string">"{ctx}"</span>;
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PARAM_URL = <span class="jxr_string">"url"</span>;
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PARAM_OVERRIDE_STYLESHEET = <span class="jxr_string">"overrideStylesheet"</span>;
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> PARAM_URL_MIN_LEN = PARAM_URL.length() + <span class="jxr_string">"="</span>.length() + <span class="jxr_string">"http"</span>.length() + <span class="jxr_string">"://"</span>.length()
<a name="66" href="#66">66</a>              + 1;
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INIT_PARAM_AUXROOT = <span class="jxr_string">"auxroot"</span>;
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INIT_PARAM_ALLOW = <span class="jxr_string">"allow"</span>;
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INIT_PARAM_STYLESHEET = <span class="jxr_string">"stylesheet:"</span>;
<a name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INIT_PARAM_OVERRIDE_STYLESHEET = <span class="jxr_string">"override-stylesheet:"</span>;
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> BUFFER_SIZE = 64 * 1024;
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> String fAuxRoot = <span class="jxr_string">""</span>;
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> String fAllow = <span class="jxr_string">".*"</span>;
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> Map&lt;String, Source&gt; fStyleSheets;
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> Map&lt;String, Source&gt; fOverrideStyleSheets;
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>      <em class="jxr_javadoccomment">/**</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * Initializes the browser servlet.</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
<a name="82" href="#82">82</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="83" href="#83">83</a>      @Override
<a name="84" href="#84">84</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init(ServletConfig config) <strong class="jxr_keyword">throws</strong> ServletException {
<a name="85" href="#85">85</a>          fStyleSheets = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Source&gt;();
<a name="86" href="#86">86</a>          fOverrideStyleSheets = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Source&gt;();
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>          DocumentBuilder builder = <strong class="jxr_keyword">null</strong>;
<a name="89" href="#89">89</a>          <strong class="jxr_keyword">try</strong> {
<a name="90" href="#90">90</a>              DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
<a name="91" href="#91">91</a>              builderFactory.setNamespaceAware(<strong class="jxr_keyword">true</strong>);
<a name="92" href="#92">92</a>              builder = builderFactory.newDocumentBuilder();
<a name="93" href="#93">93</a>          } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="94" href="#94">94</a>              e.printStackTrace();
<a name="95" href="#95">95</a>              <strong class="jxr_keyword">return</strong>;
<a name="96" href="#96">96</a>          }
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>          Enumeration&lt;String&gt; initParams = config.getInitParameterNames();
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">while</strong> (initParams.hasMoreElements()) {
<a name="100" href="#100">100</a>             String param = initParams.nextElement();
<a name="101" href="#101">101</a>             String stylesheetKey = <strong class="jxr_keyword">null</strong>;
<a name="102" href="#102">102</a>             <strong class="jxr_keyword">boolean</strong> isOverride = false;
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>             <strong class="jxr_keyword">if</strong> (param.startsWith(INIT_PARAM_STYLESHEET)) {
<a name="105" href="#105">105</a>                 stylesheetKey = param.substring(INIT_PARAM_STYLESHEET.length());
<a name="106" href="#106">106</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (param.startsWith(INIT_PARAM_OVERRIDE_STYLESHEET)) {
<a name="107" href="#107">107</a>                 stylesheetKey = param.substring(INIT_PARAM_OVERRIDE_STYLESHEET.length());
<a name="108" href="#108">108</a>                 isOverride = <strong class="jxr_keyword">true</strong>;
<a name="109" href="#109">109</a>             }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>             <strong class="jxr_keyword">if</strong> (stylesheetKey != <strong class="jxr_keyword">null</strong>) {
<a name="112" href="#112">112</a>                 String stylesheetFileName = config.getInitParameter(param);
<a name="113" href="#113">113</a>                 InputStream stream = config.getServletContext().getResourceAsStream(stylesheetFileName);
<a name="114" href="#114">114</a>                 <strong class="jxr_keyword">if</strong> (stream != <strong class="jxr_keyword">null</strong>) {
<a name="115" href="#115">115</a>                     <strong class="jxr_keyword">try</strong> {
<a name="116" href="#116">116</a>                         Document xslDoc = builder.parse(stream);
<a name="117" href="#117">117</a>                         addStylesheet(stylesheetKey, <strong class="jxr_keyword">new</strong> DOMSource(xslDoc), isOverride);
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a>                         log.info(<span class="jxr_string">"Stylesheet: '"</span> + stylesheetKey + <span class="jxr_string">"' -&gt; '"</span> + stylesheetFileName + <span class="jxr_string">"'"</span>);
<a name="120" href="#120">120</a>                     } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="121" href="#121">121</a>                         e.printStackTrace();
<a name="122" href="#122">122</a>                     }
<a name="123" href="#123">123</a>                 }
<a name="124" href="#124">124</a>             }
<a name="125" href="#125">125</a>         }
<a name="126" href="#126">126</a> 
<a name="127" href="#127">127</a>         String initAuxRoot = config.getInitParameter(INIT_PARAM_AUXROOT);
<a name="128" href="#128">128</a>         <strong class="jxr_keyword">if</strong> (initAuxRoot != <strong class="jxr_keyword">null</strong>) {
<a name="129" href="#129">129</a>             fAuxRoot = initAuxRoot;
<a name="130" href="#130">130</a>             log.info(<span class="jxr_string">"Auxiliary root: "</span> + fAuxRoot);
<a name="131" href="#131">131</a>         }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         String initAllow = config.getInitParameter(INIT_PARAM_ALLOW);
<a name="134" href="#134">134</a>         <strong class="jxr_keyword">if</strong> (initAllow != <strong class="jxr_keyword">null</strong>) {
<a name="135" href="#135">135</a>             fAllow = initAllow;
<a name="136" href="#136">136</a>             log.info(<span class="jxr_string">"Allow pattern: "</span> + fAllow);
<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>     <em class="jxr_javadoccomment">/**</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * Handles GET requests.</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     */</em>
<a name="143" href="#143">143</a>     @Override
<a name="144" href="#144">144</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> doGet(HttpServletRequest req, HttpServletResponse resp) <strong class="jxr_keyword">throws</strong> ServletException, IOException {
<a name="145" href="#145">145</a>         String browseUrl = <strong class="jxr_keyword">null</strong>;
<a name="146" href="#146">146</a>         String overrideStylesheet = <strong class="jxr_keyword">null</strong>;
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>         <em class="jxr_comment">// The url parameter must come first!</em>
<a name="149" href="#149">149</a>         String queryString = req.getQueryString();
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         <strong class="jxr_keyword">if</strong> ((queryString != <strong class="jxr_keyword">null</strong>) &amp;&amp; (queryString.startsWith(PARAM_URL))) {
<a name="152" href="#152">152</a>             <strong class="jxr_keyword">int</strong> urlEnd = queryString.indexOf(PARAM_OVERRIDE_STYLESHEET + <span class="jxr_string">"="</span>);
<a name="153" href="#153">153</a>             <strong class="jxr_keyword">if</strong> (urlEnd == -1) {
<a name="154" href="#154">154</a>                 urlEnd = queryString.length();
<a name="155" href="#155">155</a>             } <strong class="jxr_keyword">else</strong> {
<a name="156" href="#156">156</a>                 overrideStylesheet = queryString.substring(urlEnd + PARAM_OVERRIDE_STYLESHEET.length() + 1);
<a name="157" href="#157">157</a>                 --urlEnd;
<a name="158" href="#158">158</a>             }
<a name="159" href="#159">159</a> 
<a name="160" href="#160">160</a>             browseUrl = queryString.substring(PARAM_URL.length() + 1, urlEnd);
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>             <strong class="jxr_keyword">if</strong> (browseUrl.length() &lt; PARAM_URL_MIN_LEN) {
<a name="163" href="#163">163</a>                 browseUrl = <strong class="jxr_keyword">null</strong>;
<a name="164" href="#164">164</a>             }
<a name="165" href="#165">165</a>         }
<a name="166" href="#166">166</a> 
<a name="167" href="#167">167</a>         <strong class="jxr_keyword">if</strong> (browseUrl == <strong class="jxr_keyword">null</strong>) {
<a name="168" href="#168">168</a>             printInput(req, resp);
<a name="169" href="#169">169</a>             <strong class="jxr_keyword">return</strong>;
<a name="170" href="#170">170</a>         }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>         doBrowse(req, resp, browseUrl, overrideStylesheet);
<a name="173" href="#173">173</a>     }
<a name="174" href="#174">174</a> 
<a name="175" href="#175">175</a>     <em class="jxr_javadoccomment">/**</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * Main method of the browser.</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     */</em>
<a name="178" href="#178">178</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> doBrowse(HttpServletRequest req, HttpServletResponse resp, String browseUrl,
<a name="179" href="#179">179</a>             String overrideStylesheet) <strong class="jxr_keyword">throws</strong> ServletException, IOException {
<a name="180" href="#180">180</a>         <em class="jxr_comment">// check if decoding is necessary</em>
<a name="181" href="#181">181</a>         <em class="jxr_comment">// (if the char after 'http' or 'https' is not a colon, then it must be</em>
<a name="182" href="#182">182</a>         <em class="jxr_comment">// decoded)</em>
<a name="183" href="#183">183</a>         <strong class="jxr_keyword">if</strong> (browseUrl.charAt(4) != ':' &amp;&amp; browseUrl.charAt(5) != ':') {
<a name="184" href="#184">184</a>             browseUrl = URLDecoder.decode(browseUrl, <span class="jxr_string">"UTF-8"</span>);
<a name="185" href="#185">185</a>         }
<a name="186" href="#186">186</a> 
<a name="187" href="#187">187</a>         <em class="jxr_comment">// check URL</em>
<a name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> (!browseUrl.matches(fAllow)) {
<a name="189" href="#189">189</a>             printError(req, resp, <span class="jxr_string">"Prohibited URL!"</span>, <strong class="jxr_keyword">null</strong>);
<a name="190" href="#190">190</a>             <strong class="jxr_keyword">return</strong>;
<a name="191" href="#191">191</a>         }
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a>         <strong class="jxr_keyword">try</strong> {
<a name="194" href="#194">194</a>             <em class="jxr_comment">// get content</em>
<a name="195" href="#195">195</a>             URL url = <strong class="jxr_keyword">new</strong> URL(browseUrl);
<a name="196" href="#196">196</a>             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
<a name="197" href="#197">197</a>             conn.setDoInput(<strong class="jxr_keyword">true</strong>);
<a name="198" href="#198">198</a>             conn.setDoOutput(false);
<a name="199" href="#199">199</a>             conn.setRequestMethod(<span class="jxr_string">"GET"</span>);
<a name="200" href="#200">200</a>             String authHeader = req.getHeader(<span class="jxr_string">"Authorization"</span>);
<a name="201" href="#201">201</a>             <strong class="jxr_keyword">if</strong> (authHeader != <strong class="jxr_keyword">null</strong>) {
<a name="202" href="#202">202</a>                 conn.setRequestProperty(<span class="jxr_string">"Authorization"</span>, authHeader);
<a name="203" href="#203">203</a>             }
<a name="204" href="#204">204</a>             conn.connect();
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a>             <em class="jxr_comment">// ask for login</em>
<a name="207" href="#207">207</a>             <strong class="jxr_keyword">if</strong> (conn.getResponseCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {
<a name="208" href="#208">208</a>                 resp.setHeader(<span class="jxr_string">"WWW-Authenticate"</span>, conn.getHeaderField(<span class="jxr_string">"WWW-Authenticate"</span>));
<a name="209" href="#209">209</a>                 resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, <span class="jxr_string">"Authorization Required"</span>);
<a name="210" href="#210">210</a>                 <strong class="jxr_keyword">return</strong>;
<a name="211" href="#211">211</a>             }
<a name="212" href="#212">212</a> 
<a name="213" href="#213">213</a>             <em class="jxr_comment">// debug messages</em>
<a name="214" href="#214">214</a>             <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
<a name="215" href="#215">215</a>                 log.debug(<span class="jxr_string">"'"</span> + browseUrl + <span class="jxr_string">"' -&gt; '"</span> + conn.getContentType() + <span class="jxr_string">"'"</span>);
<a name="216" href="#216">216</a>             }
<a name="217" href="#217">217</a> 
<a name="218" href="#218">218</a>             <em class="jxr_comment">// find stylesheet</em>
<a name="219" href="#219">219</a>             Source stylesheet = getStylesheet(conn.getContentType(), overrideStylesheet);
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>             OutputStream out = <strong class="jxr_keyword">null</strong>;
<a name="222" href="#222">222</a>             InputStream in = <strong class="jxr_keyword">new</strong> BufferedInputStream(conn.getInputStream(), BUFFER_SIZE);
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>             <strong class="jxr_keyword">if</strong> (stylesheet == <strong class="jxr_keyword">null</strong>) {
<a name="225" href="#225">225</a>                 <em class="jxr_comment">// no stylesheet found -&gt; conduct content</em>
<a name="226" href="#226">226</a>                 resp.setContentType(conn.getContentType());
<a name="227" href="#227">227</a>                 out = <strong class="jxr_keyword">new</strong> BufferedOutputStream(resp.getOutputStream(), BUFFER_SIZE);
<a name="228" href="#228">228</a> 
<a name="229" href="#229">229</a>                 byte[] buffer = <strong class="jxr_keyword">new</strong> byte[BUFFER_SIZE];
<a name="230" href="#230">230</a>                 <strong class="jxr_keyword">int</strong> b;
<a name="231" href="#231">231</a>                 <strong class="jxr_keyword">while</strong> ((b = in.read(buffer)) &gt; -1) {
<a name="232" href="#232">232</a>                     out.write(buffer, 0, b);
<a name="233" href="#233">233</a>                 }
<a name="234" href="#234">234</a>             } <strong class="jxr_keyword">else</strong> {
<a name="235" href="#235">235</a>                 <em class="jxr_comment">// apply stylesheet</em>
<a name="236" href="#236">236</a>                 TransformerFactory f = TransformerFactory.newInstance();
<a name="237" href="#237">237</a>                 Transformer t = f.newTransformer(stylesheet);
<a name="238" href="#238">238</a>                 t.setParameter(<span class="jxr_string">"browseUrl"</span>, getServletUrl(req) + <span class="jxr_string">"?"</span> + PARAM_URL + <span class="jxr_string">"="</span>);
<a name="239" href="#239">239</a>                 t.setParameter(<span class="jxr_string">"auxRoot"</span>, getAuxRoot(req, fAuxRoot));
<a name="240" href="#240">240</a>                 t.setParameter(<span class="jxr_string">"browseOverrideStylesheet"</span>, <span class="jxr_string">"&amp;"</span> + PARAM_OVERRIDE_STYLESHEET + <span class="jxr_string">"="</span>);
<a name="241" href="#241">241</a> 
<a name="242" href="#242">242</a>                 resp.setContentType(<span class="jxr_string">"text/html"</span>);
<a name="243" href="#243">243</a>                 out = <strong class="jxr_keyword">new</strong> BufferedOutputStream(resp.getOutputStream(), BUFFER_SIZE);
<a name="244" href="#244">244</a> 
<a name="245" href="#245">245</a>                 Source s = <strong class="jxr_keyword">new</strong> StreamSource(in);
<a name="246" href="#246">246</a>                 Result r = <strong class="jxr_keyword">new</strong> StreamResult(out);
<a name="247" href="#247">247</a>                 t.transform(s, r);
<a name="248" href="#248">248</a>             }
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>             <strong class="jxr_keyword">try</strong> {
<a name="251" href="#251">251</a>                 out.flush();
<a name="252" href="#252">252</a>                 out.close();
<a name="253" href="#253">253</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="254" href="#254">254</a>             }
<a name="255" href="#255">255</a> 
<a name="256" href="#256">256</a>             <strong class="jxr_keyword">try</strong> {
<a name="257" href="#257">257</a>                 in.close();
<a name="258" href="#258">258</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="259" href="#259">259</a>             }
<a name="260" href="#260">260</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="261" href="#261">261</a>             printError(req, resp, e.getMessage(), e);
<a name="262" href="#262">262</a>             <strong class="jxr_keyword">return</strong>;
<a name="263" href="#263">263</a>         }
<a name="264" href="#264">264</a>     }
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>     <em class="jxr_comment">// ---- utilities ----</em>
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>     <em class="jxr_javadoccomment">/**</em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * Assigns a stylesheet to a content type.</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     */</em>
<a name="271" href="#271">271</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addStylesheet(String contentType, Source source, <strong class="jxr_keyword">boolean</strong> override) {
<a name="272" href="#272">272</a>         <strong class="jxr_keyword">if</strong> ((contentType == <strong class="jxr_keyword">null</strong>) || (source == <strong class="jxr_keyword">null</strong>)) {
<a name="273" href="#273">273</a>             <strong class="jxr_keyword">return</strong>;
<a name="274" href="#274">274</a>         }
<a name="275" href="#275">275</a> 
<a name="276" href="#276">276</a>         <strong class="jxr_keyword">if</strong> (override) {
<a name="277" href="#277">277</a>             fOverrideStyleSheets.put(contentType.trim().toLowerCase(), source);
<a name="278" href="#278">278</a>         } <strong class="jxr_keyword">else</strong> {
<a name="279" href="#279">279</a>             fStyleSheets.put(contentType.trim().toLowerCase(), source);
<a name="280" href="#280">280</a>         }
<a name="281" href="#281">281</a>     }
<a name="282" href="#282">282</a> 
<a name="283" href="#283">283</a>     <em class="jxr_javadoccomment">/**</em>
<a name="284" href="#284">284</a> <em class="jxr_javadoccomment">     * Returns the stylesheet for the given override stylesheet, if there is is</em>
<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     * not override stylesheet given then the stylesheet for the given content</em>
<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     * type or &lt;code&gt;null&lt;/code&gt; if no stylesheet is assigned to content type.</em>
<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">     */</em>
<a name="288" href="#288">288</a>     <strong class="jxr_keyword">private</strong> Source getStylesheet(String contentType, String overrideStylesheet) {
<a name="289" href="#289">289</a>         <strong class="jxr_keyword">if</strong> (contentType == <strong class="jxr_keyword">null</strong>) {
<a name="290" href="#290">290</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="291" href="#291">291</a>         }
<a name="292" href="#292">292</a> 
<a name="293" href="#293">293</a>         Source source = <strong class="jxr_keyword">null</strong>;
<a name="294" href="#294">294</a> 
<a name="295" href="#295">295</a>         <em class="jxr_comment">// First check if there is an override given and it has a match.</em>
<a name="296" href="#296">296</a>         <strong class="jxr_keyword">if</strong> (overrideStylesheet != <strong class="jxr_keyword">null</strong> &amp;&amp; overrideStylesheet.length() &gt; 0) {
<a name="297" href="#297">297</a>             source = fOverrideStyleSheets.get(overrideStylesheet);
<a name="298" href="#298">298</a>         }
<a name="299" href="#299">299</a> 
<a name="300" href="#300">300</a>         <em class="jxr_comment">// If there is not match then check the content type map.</em>
<a name="301" href="#301">301</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a name="302" href="#302">302</a>             String[] ctp = contentType.trim().toLowerCase().split(<span class="jxr_string">";"</span>);
<a name="303" href="#303">303</a> 
<a name="304" href="#304">304</a>             StringBuilder match = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="305" href="#305">305</a>             <strong class="jxr_keyword">int</strong> i = 0;
<a name="306" href="#306">306</a>             <strong class="jxr_keyword">while</strong> (source == <strong class="jxr_keyword">null</strong> &amp;&amp; i &lt; ctp.length) {
<a name="307" href="#307">307</a>                 <strong class="jxr_keyword">if</strong> (i &gt; 0) {
<a name="308" href="#308">308</a>                     match.append(<span class="jxr_string">";"</span>);
<a name="309" href="#309">309</a>                 }
<a name="310" href="#310">310</a>                 match.append(ctp[i]);
<a name="311" href="#311">311</a>                 source = fStyleSheets.get(match.toString());
<a name="312" href="#312">312</a>                 i++;
<a name="313" href="#313">313</a>             }
<a name="314" href="#314">314</a>         }
<a name="315" href="#315">315</a> 
<a name="316" href="#316">316</a>         <strong class="jxr_keyword">return</strong> source;
<a name="317" href="#317">317</a>     }
<a name="318" href="#318">318</a> 
<a name="319" href="#319">319</a>     <em class="jxr_javadoccomment">/**</em>
<a name="320" href="#320">320</a> <em class="jxr_javadoccomment">     * Returns the context URL of this servlet.</em>
<a name="321" href="#321">321</a> <em class="jxr_javadoccomment">     */</em>
<a name="322" href="#322">322</a>     <strong class="jxr_keyword">private</strong> String getContextUrl(HttpServletRequest request) {
<a name="323" href="#323">323</a>         String scheme = request.getScheme();
<a name="324" href="#324">324</a>         <strong class="jxr_keyword">int</strong> port = request.getServerPort();
<a name="325" href="#325">325</a> 
<a name="326" href="#326">326</a>         <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"http"</span>.equals(scheme) &amp;&amp; (port == 80)) {
<a name="327" href="#327">327</a>             port = -1;
<a name="328" href="#328">328</a>         }
<a name="329" href="#329">329</a>         <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"https"</span>.equals(scheme) &amp;&amp; (port == 443)) {
<a name="330" href="#330">330</a>             port = -1;
<a name="331" href="#331">331</a>         }
<a name="332" href="#332">332</a> 
<a name="333" href="#333">333</a>         <strong class="jxr_keyword">return</strong> scheme + <span class="jxr_string">"://"</span> + request.getServerName() + (port &gt; 0 ? <span class="jxr_string">":"</span> + port : <span class="jxr_string">""</span>) + request.getContextPath();
<a name="334" href="#334">334</a>     }
<a name="335" href="#335">335</a> 
<a name="336" href="#336">336</a>     <em class="jxr_javadoccomment">/**</em>
<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     * Returns the URL of this servlet.</em>
<a name="338" href="#338">338</a> <em class="jxr_javadoccomment">     */</em>
<a name="339" href="#339">339</a>     <strong class="jxr_keyword">private</strong> String getServletUrl(HttpServletRequest request) {
<a name="340" href="#340">340</a>         <strong class="jxr_keyword">return</strong> getContextUrl(request) + request.getServletPath();
<a name="341" href="#341">341</a>     }
<a name="342" href="#342">342</a> 
<a name="343" href="#343">343</a>     <em class="jxr_javadoccomment">/**</em>
<a name="344" href="#344">344</a> <em class="jxr_javadoccomment">     * Returns the root URL of auxiliary files.</em>
<a name="345" href="#345">345</a> <em class="jxr_javadoccomment">     */</em>
<a name="346" href="#346">346</a>     <strong class="jxr_keyword">private</strong> String getAuxRoot(HttpServletRequest request, String auxRoot) {
<a name="347" href="#347">347</a>         <strong class="jxr_keyword">if</strong> (auxRoot == <strong class="jxr_keyword">null</strong>) {
<a name="348" href="#348">348</a>             <strong class="jxr_keyword">return</strong> getContextUrl(request);
<a name="349" href="#349">349</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (auxRoot.startsWith(CONTEXT_PREFIX)) {
<a name="350" href="#350">350</a>             <strong class="jxr_keyword">return</strong> getContextUrl(request) + auxRoot.substring(CONTEXT_PREFIX.length());
<a name="351" href="#351">351</a>         } <strong class="jxr_keyword">else</strong> {
<a name="352" href="#352">352</a>             <strong class="jxr_keyword">return</strong> auxRoot;
<a name="353" href="#353">353</a>         }
<a name="354" href="#354">354</a>     }
<a name="355" href="#355">355</a> 
<a name="356" href="#356">356</a>     <em class="jxr_comment">// --- HTML methods ----</em>
<a name="357" href="#357">357</a> 
<a name="358" href="#358">358</a>     <em class="jxr_javadoccomment">/**</em>
<a name="359" href="#359">359</a> <em class="jxr_javadoccomment">     * Prints a HTML header with styles.</em>
<a name="360" href="#360">360</a> <em class="jxr_javadoccomment">     */</em>
<a name="361" href="#361">361</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printHeader(PrintWriter pw, String title) {
<a name="362" href="#362">362</a>         pw.print(<span class="jxr_string">"&lt;!DOCTYPE html PUBLIC \&quot;-//W3C//DTD XHTML 1.0 Transitional//EN\&quot;"</span>);
<a name="363" href="#363">363</a>         pw.println(<span class="jxr_string">"\&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\&quot;&gt;"</span>);
<a name="364" href="#364">364</a>         pw.println(<span class="jxr_string">"&lt;html xmlns=\&quot;http://www.w3.org/1999/xhtml\&quot;&gt;"</span>);
<a name="365" href="#365">365</a>         pw.println(<span class="jxr_string">"&lt;head&gt;"</span>);
<a name="366" href="#366">366</a>         pw.println(<span class="jxr_string">"&lt;title&gt;"</span> + title + <span class="jxr_string">"&lt;/title&gt;"</span>);
<a name="367" href="#367">367</a>         pw.println(<span class="jxr_string">"&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot; /&gt;"</span>);
<a name="368" href="#368">368</a>         pw.println(<span class="jxr_string">"&lt;style type=\&quot;text/css\&quot;&gt;"</span>);
<a name="369" href="#369">369</a>         pw.println(<span class="jxr_string">"body { font-family: arial,sans-serif; font-size: 10pt; }"</span>);
<a name="370" href="#370">370</a>         pw.println(<span class="jxr_string">"div.box { background-color: #f6f1de; margin-top: 10px;"</span>
<a name="371" href="#371">371</a>                 + <span class="jxr_string">" margin-bottom: 10px; margin-left: 0px; margin-right: 0px;"</span>
<a name="372" href="#372">372</a>                 + <span class="jxr_string">" padding: 5px; border-style: solid; border-width: 1px; border-color: #888a85; }"</span>);
<a name="373" href="#373">373</a>         pw.println(<span class="jxr_string">"&lt;/style&gt;"</span>);
<a name="374" href="#374">374</a>         pw.println(<span class="jxr_string">"&lt;/head&gt;"</span>);
<a name="375" href="#375">375</a>         pw.println(<span class="jxr_string">"&lt;body&gt;"</span>);
<a name="376" href="#376">376</a>     }
<a name="377" href="#377">377</a> 
<a name="378" href="#378">378</a>     <em class="jxr_javadoccomment">/**</em>
<a name="379" href="#379">379</a> <em class="jxr_javadoccomment">     * Prints a HTML footer.</em>
<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     */</em>
<a name="381" href="#381">381</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printFooter(PrintWriter pw) {
<a name="382" href="#382">382</a>         pw.println(<span class="jxr_string">"&lt;/body&gt;"</span>);
<a name="383" href="#383">383</a>         pw.println(<span class="jxr_string">"&lt;/html&gt;"</span>);
<a name="384" href="#384">384</a>     }
<a name="385" href="#385">385</a> 
<a name="386" href="#386">386</a>     <em class="jxr_javadoccomment">/**</em>
<a name="387" href="#387">387</a> <em class="jxr_javadoccomment">     * Prints a HTML error message.</em>
<a name="388" href="#388">388</a> <em class="jxr_javadoccomment">     */</em>
<a name="389" href="#389">389</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printError(HttpServletRequest req, HttpServletResponse resp, String message, Exception e)
<a name="390" href="#390">390</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a name="391" href="#391">391</a>         resp.setContentType(<span class="jxr_string">"text/html;charset=utf-8"</span>);
<a name="392" href="#392">392</a>         PrintWriter pw = resp.getWriter();
<a name="393" href="#393">393</a> 
<a name="394" href="#394">394</a>         printHeader(pw, <span class="jxr_string">"Error"</span>);
<a name="395" href="#395">395</a>         pw.println(<span class="jxr_string">"&lt;div class=\&quot;box\&quot;&gt;"</span>);
<a name="396" href="#396">396</a>         pw.println(<span class="jxr_string">"&lt;h3&gt;"</span> + message + <span class="jxr_string">"&lt;/h3&gt;"</span>);
<a name="397" href="#397">397</a> 
<a name="398" href="#398">398</a>         <strong class="jxr_keyword">if</strong> (e != <strong class="jxr_keyword">null</strong>) {
<a name="399" href="#399">399</a>             pw.print(<span class="jxr_string">"&lt;pre&gt;"</span>);
<a name="400" href="#400">400</a>             e.printStackTrace(pw);
<a name="401" href="#401">401</a>             pw.println(<span class="jxr_string">"&lt;/pre&gt;"</span>);
<a name="402" href="#402">402</a>         }
<a name="403" href="#403">403</a> 
<a name="404" href="#404">404</a>         pw.println(<span class="jxr_string">"&lt;/div&gt;"</span>);
<a name="405" href="#405">405</a>         printFooter(pw);
<a name="406" href="#406">406</a>     }
<a name="407" href="#407">407</a> 
<a name="408" href="#408">408</a>     <em class="jxr_javadoccomment">/**</em>
<a name="409" href="#409">409</a> <em class="jxr_javadoccomment">     * Prints an HTML input box.</em>
<a name="410" href="#410">410</a> <em class="jxr_javadoccomment">     */</em>
<a name="411" href="#411">411</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printInput(HttpServletRequest req, HttpServletResponse resp) <strong class="jxr_keyword">throws</strong> IOException {
<a name="412" href="#412">412</a>         resp.setContentType(<span class="jxr_string">"text/html;charset=utf-8"</span>);
<a name="413" href="#413">413</a>         PrintWriter pw = resp.getWriter();
<a name="414" href="#414">414</a> 
<a name="415" href="#415">415</a>         printHeader(pw, <span class="jxr_string">"OpenCMIS Browser"</span>);
<a name="416" href="#416">416</a>         pw.println(<span class="jxr_string">"&lt;img src=\&quot;"</span> + getAuxRoot(req, fAuxRoot) + <span class="jxr_string">"cmis.png\&quot; "</span> + <span class="jxr_string">"style=\&quot;float: right;\&quot; /&gt;"</span>);
<a name="417" href="#417">417</a>         pw.println(<span class="jxr_string">"&lt;h1 style=\&quot;font-family: Georgia;\&quot;&gt;OpenCMIS Browser&lt;/h1&gt;"</span>);
<a name="418" href="#418">418</a>         pw.println(<span class="jxr_string">"&lt;div class=\&quot;box\&quot;&gt;"</span>);
<a name="419" href="#419">419</a>         pw.println(<span class="jxr_string">"&lt;form action=\&quot;\&quot; method=\&quot;GET\&quot;&gt;"</span>);
<a name="420" href="#420">420</a>         pw.println(<span class="jxr_string">"CMIS AtomPub URL: "</span>);
<a name="421" href="#421">421</a>         pw.println(<span class="jxr_string">"&lt;input name=\&quot;url\&quot; type=\&quot;text\&quot; size=\&quot;100\&quot; value=\&quot;\&quot;/&gt;"</span>);
<a name="422" href="#422">422</a>         pw.println(<span class="jxr_string">"&lt;input type=\&quot;submit\&quot; value=\&quot; GO \&quot;/&gt;"</span>);
<a name="423" href="#423">423</a>         pw.println(<span class="jxr_string">"&lt;/form&gt;"</span>);
<a name="424" href="#424">424</a>         pw.println(<span class="jxr_string">"&lt;/div&gt;"</span>);
<a name="425" href="#425">425</a>         printFooter(pw);
<a name="426" href="#426">426</a>     }
<a name="427" href="#427">427</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

