You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by ga...@apache.org on 2012/04/03 07:31:27 UTC

svn commit: r1308701 [3/3] - in /chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser: ./ css/ images/ images/logos/ xref/ xref/org/ xref/org/apache/ xref/org/apache/chemistry/ xref/org/apache/chemistry/...

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/team-list.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/team-list.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/team-list.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/team-list.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Generated by Apache Maven Doxia at Apr 3, 2012 -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <title>OpenCMIS Browser - Team list</title>
+    <style type="text/css" media="all">
+      @import url("./css/maven-base.css");
+      @import url("./css/maven-theme.css");
+      @import url("./css/site.css");
+    </style>
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+    <meta name="Date-Revision-yyyymmdd" content="20120403" />
+    <meta http-equiv="Content-Language" content="en" />
+        
+  </head>
+  <body class="composite">
+    <div id="banner">
+                  <a href="../.." id="bannerLeft">
+                                                <img src="../../images/chemistry-logo.png" alt="Apache Chemistry OpenCMIS" />
+                </a>
+                        <a href="http://www.apache.org/" id="bannerRight">
+                                                <img src="../../images/apache-logo.gif" alt="The Apache Software Foundation" />
+                </a>
+            <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="breadcrumbs">
+            
+                
+                <div class="xleft">
+        <span id="publishDate">Last Published: 2012-04-03</span>
+                      </div>
+            <div class="xright">        
+                
+                 <span id="projectVersion">Version: 0.7.0</span>
+      </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="leftColumn">
+      <div id="navcolumn">
+             
+                
+                                <h5>Parent Project</h5>
+                  <ul>
+                  <li class="none">
+                          <a href="../../index.html" title="Apache Chemistry OpenCMIS">Apache Chemistry OpenCMIS</a>
+            </li>
+          </ul>
+                       <h5>Project Documentation</h5>
+                  <ul>
+                                                                                                                                                                                                                                                <li class="expanded">
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+                    <ul>
+                      <li class="none">
+                          <a href="index.html" title="About">About</a>
+            </li>
+                      <li class="none">
+                          <a href="integration.html" title="Continuous Integration">Continuous Integration</a>
+            </li>
+                      <li class="none">
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+            </li>
+                      <li class="none">
+                          <a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a>
+            </li>
+                      <li class="none">
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+            </li>
+                      <li class="none">
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+            </li>
+                      <li class="none">
+                          <a href="license.html" title="Project License">Project License</a>
+            </li>
+                      <li class="none">
+                          <a href="project-summary.html" title="Project Summary">Project Summary</a>
+            </li>
+                      <li class="none">
+            <strong>Project Team</strong>
+          </li>
+                      <li class="none">
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+            </li>
+              </ul>
+        </li>
+                                                                                      <li class="collapsed">
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+                  </li>
+          </ul>
+                       <h5>Chemistry</h5>
+                  <ul>
+                  <li class="none">
+                          <a href="http://chemistry.apache.org" class="externalLink" title="Main Website">Main Website</a>
+            </li>
+          </ul>
+                                                                                                                   <a href="http://maven.apache.org/" title="Maven" class="poweredBy">
+        <img class="poweredBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
+      </a>
+                       
+                
+            </div>
+    </div>
+    <div id="bodyColumn">
+      <div id="contentBox">
+        <div class="section"><h2>The Team<a name="The_Team"></a></h2><p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p><p>The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p><div class="section"><h3>Members<a name="Members"></a></h3><p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p><table border="0" class="bodyTable"><tr class="a"><th>Id</th><th>Name</th><th>Email</th><th>URL</th><th>Organization</th><th>Organization URL</th><th>Roles</th><th>Ti
 me Zone</th><th>Actual Time (GMT)</th><th>Properties</th></tr><tr class="b"><td>fmui</td><td>Florian M&#xfc;ller</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-0">-</span></td><td>-</td></tr><tr class="a"><td>jenshuebel</td><td>Jens H&#xfc;bel</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-1">-</span></td><td>-</td></tr><tr class="b"><td>dward</td><td>David Ward</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-2">-</span></td><td>-</td></tr><tr class="a"><td>klevenzs</td><td>Stephan Klevenz</td><td><a class="externalLink" href="mailto:sklevenz@apache.org">sklevenz@apache.org</a></td><td>-</td><td>-</td><td>-</td><td>committer</td><td>CET</td><td><span id="developer-3">CET</span></td><td>-</td></tr><tr class="b"><td>hermesm</td><td>Martin Hermes</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="dev
 eloper-4">-</span></td><td>-</td></tr><tr class="a"><td>paulgoetz</td><td>Paul Goetz</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-5">-</span></td><td>-</td></tr><tr class="b"><td>dcaruana</td><td>David Caruana</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-6">-</span></td><td>-</td></tr><tr class="a"><td>gabriele</td><td>Gabriele Columbro</td><td><a class="externalLink" href="mailto:gabriele@apache.org">gabriele@apache.org</a></td><td>-</td><td>-</td><td>-</td><td>release manager</td><td>-</td><td><span id="developer-7">-</span></td><td>-</td></tr><tr class="b"><td>fguillaume</td><td>Florent Guillaume</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-8">-</span></td><td>-</td></tr><tr class="a"><td>sfermigier</td><td>Stefane Fermigier</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-9"
 >-</span></td><td>-</td></tr></table></div><div class="section"><h3>Contributors<a name="Contributors"></a></h3><p>There are no contributors listed for this project. Please check back again later.</p></div></div><script type="text/javascript">
+function offsetDate(id, offset) {
+    var now = new Date();
+    var nowTime = now.getTime();
+    var localOffset = now.getTimezoneOffset();
+    var developerTime = nowTime + ( offset * 60 * 60 * 1000 ) + ( localOffset * 60 * 1000 );
+    var developerDate = new Date(developerTime);
+
+    document.getElementById(id).innerHTML = developerDate;
+}
+
+function init(){
+    offsetDate('developer-3', 'CET');
+}
+
+window.onLoad = init();
+</script>
+      </div>
+    </div>
+    <div class="clear">
+      <hr/>
+    </div>
+    <div id="footer">
+      <div class="xright">Copyright &#169;                    2009-2012
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All Rights Reserved.      
+                
+      </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/allclasses-frame.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/allclasses-frame.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/allclasses-frame.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/allclasses-frame.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,20 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>All Classes</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+    </head>
+    <body>
+
+		<h3>All Classes</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/chemistry/opencmis/browser/BrowseServlet.html" target="classFrame">BrowseServlet</a>
+			</li>
+			      </ul>
+
+    </body>
+  </html>

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/index.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/index.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/index.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/index.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,24 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>OpenCMIS Browser 0.7.0 Reference</title>
+	</head>
+    <frameset cols="20%,80%">
+		<frameset rows="30%,70%">
+			<frame src="overview-frame.html" name="packageListFrame" />
+			<frame src="allclasses-frame.html" name="packageFrame" />
+		</frameset>
+		<frame src="overview-summary.html" name="classFrame" />
+        <noframes>
+            <body>
+                <h1>Frame Alert</h1>
+                <p>
+                    You don't have frames. Go <a href="overview-summary.html">here</a>
+                </p>
+            </body>
+        </noframes>
+    </frameset>
+</html>
+

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/BrowseServlet.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/BrowseServlet.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/BrowseServlet.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/BrowseServlet.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,441 @@
+<!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>
+

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-frame.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-frame.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-frame.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-frame.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,24 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>OpenCMIS Browser 0.7.0 Reference Package org.apache.chemistry.opencmis.browser</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.chemistry.opencmis.browser</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="BrowseServlet.html" target="classFrame">BrowseServlet</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-summary.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-summary.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-summary.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-summary.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,67 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>OpenCMIS Browser 0.7.0 Reference Package org.apache.chemistry.opencmis.browser</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+		
+		      	<h2>Package org.apache.chemistry.opencmis.browser</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="BrowseServlet.html" target="classFrame">BrowseServlet</a>
+              		</td>
+            	</tr>
+				        	</tbody>
+      	</table>
+		
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+				<hr />
+		Copyright &copy; 2009-2012 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-frame.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-frame.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-frame.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-frame.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,25 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>OpenCMIS Browser 0.7.0 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+			<a href="allclasses-frame.html" target="packageFrame">All Classes</a>
+		</h3>
+
+		<h3>Packages</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/chemistry/opencmis/browser/package-frame.html" target="packageFrame">org.apache.chemistry.opencmis.browser</a>
+			</li>
+					</ul>
+
+	</body>
+</html>
+

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-summary.html
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-summary.html?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-summary.html (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-summary.html Tue Apr  3 05:31:25 2012
@@ -0,0 +1,64 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>OpenCMIS Browser 0.7.0 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		      	<h2>OpenCMIS Browser 0.7.0 Reference</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Packages</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+    	    	            	<tr>
+              		<td>
+                		<a href="org/apache/chemistry/opencmis/browser/package-summary.html">org.apache.chemistry.opencmis.browser</a>
+              		</td>
+            	</tr>
+	          	        	</tbody>
+      	</table>
+		
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		<hr />
+		Copyright &copy; 2009-2012 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file

Added: chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/stylesheet.css
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/stylesheet.css?rev=1308701&view=auto
==============================================================================
--- chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/stylesheet.css (added)
+++ chemistry/site/trunk/content/java/0.7.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/stylesheet.css Tue Apr  3 05:31:25 2012
@@ -0,0 +1,116 @@
+/* Javadoc style sheet */
+/* Define colors, fonts and other style attributes here to override the defaults  */
+body {
+    background-color: #fff;
+    font-family: Arial, Helvetica, sans-serif;
+}
+
+a:link {
+    color: #00f;
+}
+a:visited {
+    color: #00a;
+}
+
+a:active, a:hover {
+    color: #f30 !important;
+}
+
+ul, li {
+    list-style-type:none;
+    margin:0;
+    padding:0;
+}
+
+table td {
+    padding: 3px;
+    border: 1px solid #000;
+}
+table {
+    width:100%;
+    border: 1px solid #000;
+    border-collapse: collapse;
+}
+
+div.overview {
+    background-color:#ddd;
+    padding: 4px 4px 4px 0;
+}
+div.overview li, div.framenoframe li {
+    display: inline;
+}
+div.framenoframe {
+    text-align: center;
+    font-size: x-small;
+}
+div.framenoframe li {
+    margin: 0 3px 0 3px;
+}
+div.overview li {
+    margin:3px 3px 0 3px;
+    padding: 4px;
+}
+li.selected {
+    background-color:#888;
+    color: #fff;
+    font-weight: bold;
+}
+
+table.summary {
+    margin-bottom: 20px;
+}
+table.summary td, table.summary th {
+    font-weight: bold;
+    text-align: left;
+    padding: 3px;
+}
+table.summary th {
+    background-color:#036;
+    color: #fff;
+}
+table.summary td {
+    background-color:#eee;
+    border: 1px solid black;
+}
+
+em {
+    color: #A00;
+}
+em.comment {
+    color: #390;
+}
+.string {
+    color: #009;
+}
+div#footer {
+    text-align:center;
+}
+#overview {
+    padding:2px;
+}
+
+hr {
+    height: 1px;
+    color: #000;
+}
+
+/* JXR style sheet */
+.jxr_comment
+{
+    color: #390;
+}
+
+.jxr_javadoccomment
+{
+    color: #A00;
+}
+
+.jxr_string
+{
+    color: #009;
+}
+
+.jxr_keyword
+{
+    color: #000;
+}