Added: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/source-repository.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/source-repository.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/source-repository.html Mon Apr 6 17:18:49 2015 @@ -0,0 +1,171 @@ +<!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 Site Renderer 1.6 at 2015-04-06 --> +<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 – Source Repository</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="20150406" /> + <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: 2015-04-06</span> + </div> + <div class="xright"> + + <span id="projectVersion">Version: 0.13.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="plugin-management.html" title="Plugin Management">Plugin Management</a> + </li> + <li class="none"> + <a href="distribution-management.html" title="Distribution Management">Distribution Management</a> + </li> + <li class="none"> + <a href="dependency-info.html" title="Dependency Information">Dependency Information</a> + </li> + <li class="none"> + <strong>Source Repository</strong> + </li> + <li class="none"> + <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a> + </li> + <li class="none"> + <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a> + </li> + <li class="none"> + <a href="integration.html" title="Continuous Integration">Continuous Integration</a> + </li> + <li class="none"> + <a href="plugins.html" title="Project Plugins">Project Plugins</a> + </li> + <li class="none"> + <a href="license.html" title="Project License">Project License</a> + </li> + <li class="none"> + <a href="team-list.html" title="Project Team">Project Team</a> + </li> + <li class="none"> + <a href="project-summary.html" title="Project Summary">Project Summary</a> + </li> + <li class="none"> + <a href="dependencies.html" title="Dependencies">Dependencies</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="../../.." 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><a name="Overview"></a>Overview</h2><a name="Overview"></a> +<p>This project uses <a class="externalLink" href="http://subversion.apache.org/">Subversion</a> to manage its source code. Instructions on Subversion use can be found at <a class="externalLink" href="http://svnbook.red-bean.com/">http://svnbook.red-bean.com/</a>.</p></div> +<div class="section"> +<h2><a name="Web_Access"></a>Web Access</h2><a name="Web_Access"></a> +<p>The following is a link to the online source repository.</p> +<div class="source"> +<pre><a class="externalLink" href="http://svn.apache.org/viewvc/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-test/chemistry-opencmis-test-browser">http://svn.apache.org/viewvc/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-test/chemistry-opencmis-test-browser</a></pre></div></div> +<div class="section"> +<h2><a name="Anonymous_access"></a>Anonymous access</h2><a name="Anonymous_access"></a> +<p>The source can be checked out anonymously from SVN with this command:</p> +<div class="source"> +<pre>$ svn checkout http://svn.apache.org/repos/asf/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-test/chemistry-opencmis-test-browser chemistry-opencmis-test-browser</pre></div></div> +<div class="section"> +<h2><a name="Developer_access"></a>Developer access</h2><a name="Developer_access"></a> +<p>Everyone can access the Subversion repository via HTTP, but Committers must checkout the Subversion repository via HTTPS.</p> +<div class="source"> +<pre>$ svn checkout https://svn.apache.org/repos/asf/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-test/chemistry-opencmis-test-browser chemistry-opencmis-test-browser</pre></div> +<p>To commit changes to the repository, execute the following command to commit your changes (svn will prompt you for your password)</p> +<div class="source"> +<pre>$ svn commit --username your-username -m "A message"</pre></div></div> +<div class="section"> +<h2><a name="Access_from_behind_a_firewall"></a>Access from behind a firewall</h2><a name="Access_from_behind_a_firewall"></a> +<p>For those users who are stuck behind a corporate firewall which is blocking HTTP access to the Subversion repository, you can try to access it via the developer connection:</p> +<div class="source"> +<pre>$ svn checkout https://svn.apache.org/repos/asf/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-test/chemistry-opencmis-test-browser chemistry-opencmis-test-browser</pre></div></div> +<div class="section"> +<h2><a name="Access_through_a_proxy"></a>Access through a proxy</h2><a name="Access_through_a_proxy"></a> +<p>The Subversion client can go through a proxy, if you configure it to do so. First, edit your "servers" configuration file to indicate which proxy to use. The file's location depends on your operating system. On Linux or Unix it is located in the directory "~/.subversion". On Windows it is in "%APPDATA%\Subversion". (Try "echo %APPDATA%", note this is a hidden directory.)</p> +<p>There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.</p> +<p>Example: Edit the 'servers' file and add something like:</p> +<div class="source"> +<pre>[global] +http-proxy-host = your.proxy.name +http-proxy-port = 3128 +</pre></div></div> + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2009–2015 + <a href="http://www.apache.org/">The Apache Software Foundation</a>. + All rights reserved. + + </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html>
Added: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/team-list.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/team-list.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/team-list.html Mon Apr 6 17:18:49 2015 @@ -0,0 +1,227 @@ +<!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 Site Renderer 1.6 at 2015-04-06 --> +<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="20150406" /> + <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: 2015-04-06</span> + </div> + <div class="xright"> + + <span id="projectVersion">Version: 0.13.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="plugin-management.html" title="Plugin Management">Plugin Management</a> + </li> + <li class="none"> + <a href="distribution-management.html" title="Distribution Management">Distribution Management</a> + </li> + <li class="none"> + <a href="dependency-info.html" title="Dependency Information">Dependency Information</a> + </li> + <li class="none"> + <a href="source-repository.html" title="Source Repository">Source Repository</a> + </li> + <li class="none"> + <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a> + </li> + <li class="none"> + <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a> + </li> + <li class="none"> + <a href="integration.html" title="Continuous Integration">Continuous Integration</a> + </li> + <li class="none"> + <a href="plugins.html" title="Project Plugins">Project Plugins</a> + </li> + <li class="none"> + <a href="license.html" title="Project License">Project License</a> + </li> + <li class="none"> + <strong>Project Team</strong> + </li> + <li class="none"> + <a href="project-summary.html" title="Project Summary">Project Summary</a> + </li> + <li class="none"> + <a href="dependencies.html" title="Dependencies">Dependencies</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="../../.." 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><a name="The_Team"></a>The Team</h2><a name="The_Team"></a> +<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><a name="Members"></a>Members</h3><a name="Members"></a> +<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>Image</th> +<th>Id</th> +<th>Name</th> +<th>Email</th> +<th>Roles</th></tr> +<tr class="b"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="fmui"></a>fmui</td> +<td>Florian Müller</td> +<td>-</td> +<td>committer</td></tr> +<tr class="a"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="jenshuebel"></a>jenshuebel</td> +<td>Jens Hübel</td> +<td>-</td> +<td>committer</td></tr> +<tr class="b"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="dward"></a>dward</td> +<td>David Ward</td> +<td>-</td> +<td>committer</td></tr> +<tr class="a"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="hermesm"></a>hermesm</td> +<td>Martin Hermes</td> +<td>-</td> +<td>committer</td></tr> +<tr class="b"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="paulgoetz"></a>paulgoetz</td> +<td>Paul Goetz</td> +<td>-</td> +<td>committer</td></tr> +<tr class="a"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="dcaruana"></a>dcaruana</td> +<td>David Caruana</td> +<td>-</td> +<td>committer</td></tr> +<tr class="b"> +<td><img src="http://www.gravatar.com/avatar/9fdd1f2ea859ecdb396a5c92e4045b2c?d=mm&s=60" alt="" /></td> +<td><a name="gabriele"></a>gabriele</td> +<td>Gabriele Columbro</td> +<td><a class="externalLink" href="mailto:[email protected]">[email protected]</a></td> +<td>release manager</td></tr> +<tr class="a"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="fguillaume"></a>fguillaume</td> +<td>Florent Guillaume</td> +<td>-</td> +<td>committer</td></tr> +<tr class="b"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="sfermigier"></a>sfermigier</td> +<td>Stefane Fermigier</td> +<td>-</td> +<td>committer</td></tr> +<tr class="a"> +<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&f=y&s=60" alt="" /></td> +<td><a name="jmpascal"></a>jmpascal</td> +<td>Jean Marie Pascal</td> +<td>-</td> +<td>committer</td></tr></table></div> +<div class="section"> +<h3><a name="Contributors"></a>Contributors</h3><a name="Contributors"></a> +<p>There are no contributors listed for this project. Please check back again later.</p><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(){ +} + +window.onLoad = init(); +</script></div></div> + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2009–2015 + <a href="http://www.apache.org/">The Apache Software Foundation</a>. + All rights reserved. + + </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html> Added: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/allclasses-frame.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/allclasses-frame.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/allclasses-frame.html Mon Apr 6 17:18:49 2015 @@ -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=UTF-8" /> + <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: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/index.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/index.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/index.html Mon Apr 6 17:18:49 2015 @@ -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=UTF-8" /> + <title>OpenCMIS Browser 0.13.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: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/BrowseServlet.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/BrowseServlet.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/BrowseServlet.html Mon Apr 6 17:18:49 2015 @@ -0,0 +1,443 @@ +<!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=UTF-8" /> +<title>BrowseServlet xref</title> +<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" /> +</head> +<body> +<div id="overview"><a href="../../../../../../apidocs/org/apache/chemistry/opencmis/browser/BrowseServlet.html">View Javadoc</a></div><pre> + +<a class="jxr_linenumber" name="1" href="#1">1</a> <em class="jxr_comment">/*</em> +<a class="jxr_linenumber" name="2" href="#2">2</a> <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em> +<a class="jxr_linenumber" name="3" href="#3">3</a> <em class="jxr_comment"> * or more contributor license agreements. See the NOTICE file</em> +<a class="jxr_linenumber" name="4" href="#4">4</a> <em class="jxr_comment"> * distributed with this work for additional information</em> +<a class="jxr_linenumber" name="5" href="#5">5</a> <em class="jxr_comment"> * regarding copyright ownership. The ASF licenses this file</em> +<a class="jxr_linenumber" name="6" href="#6">6</a> <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em> +<a class="jxr_linenumber" name="7" href="#7">7</a> <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em> +<a class="jxr_linenumber" name="8" href="#8">8</a> <em class="jxr_comment"> * with the License. You may obtain a copy of the License at</em> +<a class="jxr_linenumber" name="9" href="#9">9</a> <em class="jxr_comment"> *</em> +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="11" href="#11">11</a> <em class="jxr_comment"> *</em> +<a class="jxr_linenumber" name="12" href="#12">12</a> <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em> +<a class="jxr_linenumber" name="13" href="#13">13</a> <em class="jxr_comment"> * software distributed under the License is distributed on an</em> +<a class="jxr_linenumber" name="14" href="#14">14</a> <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em> +<a class="jxr_linenumber" name="15" href="#15">15</a> <em class="jxr_comment"> * KIND, either express or implied. See the License for the</em> +<a class="jxr_linenumber" name="16" href="#16">16</a> <em class="jxr_comment"> * specific language governing permissions and limitations</em> +<a class="jxr_linenumber" name="17" href="#17">17</a> <em class="jxr_comment"> * under the License.</em> +<a class="jxr_linenumber" name="18" href="#18">18</a> <em class="jxr_comment"> */</em> +<a class="jxr_linenumber" name="19" href="#19">19</a> <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.browser; +<a class="jxr_linenumber" name="20" href="#20">20</a> +<a class="jxr_linenumber" name="21" href="#21">21</a> <strong class="jxr_keyword">import</strong> java.io.BufferedInputStream; +<a class="jxr_linenumber" name="22" href="#22">22</a> <strong class="jxr_keyword">import</strong> java.io.BufferedOutputStream; +<a class="jxr_linenumber" name="23" href="#23">23</a> <strong class="jxr_keyword">import</strong> java.io.IOException; +<a class="jxr_linenumber" name="24" href="#24">24</a> <strong class="jxr_keyword">import</strong> java.io.InputStream; +<a class="jxr_linenumber" name="25" href="#25">25</a> <strong class="jxr_keyword">import</strong> java.io.OutputStream; +<a class="jxr_linenumber" name="26" href="#26">26</a> <strong class="jxr_keyword">import</strong> java.io.PrintWriter; +<a class="jxr_linenumber" name="27" href="#27">27</a> <strong class="jxr_keyword">import</strong> java.net.HttpURLConnection; +<a class="jxr_linenumber" name="28" href="#28">28</a> <strong class="jxr_keyword">import</strong> java.net.URL; +<a class="jxr_linenumber" name="29" href="#29">29</a> <strong class="jxr_keyword">import</strong> java.net.URLDecoder; +<a class="jxr_linenumber" name="30" href="#30">30</a> <strong class="jxr_keyword">import</strong> java.util.Enumeration; +<a class="jxr_linenumber" name="31" href="#31">31</a> <strong class="jxr_keyword">import</strong> java.util.HashMap; +<a class="jxr_linenumber" name="32" href="#32">32</a> <strong class="jxr_keyword">import</strong> java.util.Map; +<a class="jxr_linenumber" name="33" href="#33">33</a> +<a class="jxr_linenumber" name="34" href="#34">34</a> <strong class="jxr_keyword">import</strong> javax.servlet.ServletConfig; +<a class="jxr_linenumber" name="35" href="#35">35</a> <strong class="jxr_keyword">import</strong> javax.servlet.ServletException; +<a class="jxr_linenumber" name="36" href="#36">36</a> <strong class="jxr_keyword">import</strong> javax.servlet.http.HttpServlet; +<a class="jxr_linenumber" name="37" href="#37">37</a> <strong class="jxr_keyword">import</strong> javax.servlet.http.HttpServletRequest; +<a class="jxr_linenumber" name="38" href="#38">38</a> <strong class="jxr_keyword">import</strong> javax.servlet.http.HttpServletResponse; +<a class="jxr_linenumber" name="39" href="#39">39</a> <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder; +<a class="jxr_linenumber" name="40" href="#40">40</a> <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory; +<a class="jxr_linenumber" name="41" href="#41">41</a> <strong class="jxr_keyword">import</strong> javax.xml.transform.Result; +<a class="jxr_linenumber" name="42" href="#42">42</a> <strong class="jxr_keyword">import</strong> javax.xml.transform.Source; +<a class="jxr_linenumber" name="43" href="#43">43</a> <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer; +<a class="jxr_linenumber" name="44" href="#44">44</a> <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory; +<a class="jxr_linenumber" name="45" href="#45">45</a> <strong class="jxr_keyword">import</strong> javax.xml.transform.dom.DOMSource; +<a class="jxr_linenumber" name="46" href="#46">46</a> <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult; +<a class="jxr_linenumber" name="47" href="#47">47</a> <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamSource; +<a class="jxr_linenumber" name="48" href="#48">48</a> +<a class="jxr_linenumber" name="49" href="#49">49</a> <strong class="jxr_keyword">import</strong> org.slf4j.Logger; +<a class="jxr_linenumber" name="50" href="#50">50</a> <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory; +<a class="jxr_linenumber" name="51" href="#51">51</a> <strong class="jxr_keyword">import</strong> org.w3c.dom.Document; +<a class="jxr_linenumber" name="52" href="#52">52</a> +<a class="jxr_linenumber" name="53" href="#53">53</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="54" href="#54">54</a> <em class="jxr_javadoccomment"> * CMIS Browser Servlet.</em> +<a class="jxr_linenumber" name="55" href="#55">55</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="57" href="#57">57</a> +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="59" href="#59">59</a> +<a class="jxr_linenumber" name="60" href="#60">60</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(BrowseServlet.<strong class="jxr_keyword">class</strong>); +<a class="jxr_linenumber" name="61" href="#61">61</a> +<a class="jxr_linenumber" 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 class="jxr_linenumber" 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 class="jxr_linenumber" 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 class="jxr_linenumber" 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 class="jxr_linenumber" name="66" href="#66">66</a> + 1; +<a class="jxr_linenumber" 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 class="jxr_linenumber" 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 class="jxr_linenumber" 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 class="jxr_linenumber" 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 class="jxr_linenumber" name="71" href="#71">71</a> +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="73" href="#73">73</a> +<a class="jxr_linenumber" name="74" href="#74">74</a> <strong class="jxr_keyword">private</strong> String fAuxRoot = <span class="jxr_string">""</span>; +<a class="jxr_linenumber" name="75" href="#75">75</a> <strong class="jxr_keyword">private</strong> String fAllow = <span class="jxr_string">".*"</span>; +<a class="jxr_linenumber" name="76" href="#76">76</a> <strong class="jxr_keyword">private</strong> Map<String, Source> fStyleSheets; +<a class="jxr_linenumber" name="77" href="#77">77</a> <strong class="jxr_keyword">private</strong> Map<String, Source> fOverrideStyleSheets; +<a class="jxr_linenumber" name="78" href="#78">78</a> +<a class="jxr_linenumber" name="79" href="#79">79</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="80" href="#80">80</a> <em class="jxr_javadoccomment"> * Initializes the browser servlet.</em> +<a class="jxr_linenumber" name="81" href="#81">81</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="82" href="#82">82</a> @SuppressWarnings(<span class="jxr_string">"unchecked"</span>) +<a class="jxr_linenumber" name="83" href="#83">83</a> @Override +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="85" href="#85">85</a> fStyleSheets = <strong class="jxr_keyword">new</strong> HashMap<String, Source>(); +<a class="jxr_linenumber" name="86" href="#86">86</a> fOverrideStyleSheets = <strong class="jxr_keyword">new</strong> HashMap<String, Source>(); +<a class="jxr_linenumber" name="87" href="#87">87</a> +<a class="jxr_linenumber" name="88" href="#88">88</a> DocumentBuilder builder = <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="89" href="#89">89</a> <strong class="jxr_keyword">try</strong> { +<a class="jxr_linenumber" name="90" href="#90">90</a> DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); +<a class="jxr_linenumber" name="91" href="#91">91</a> builderFactory.setNamespaceAware(<strong class="jxr_keyword">true</strong>); +<a class="jxr_linenumber" name="92" href="#92">92</a> builder = builderFactory.newDocumentBuilder(); +<a class="jxr_linenumber" name="93" href="#93">93</a> } <strong class="jxr_keyword">catch</strong> (Exception e) { +<a class="jxr_linenumber" name="94" href="#94">94</a> LOG.error(e.getMessage(), e); +<a class="jxr_linenumber" name="95" href="#95">95</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="96" href="#96">96</a> } +<a class="jxr_linenumber" name="97" href="#97">97</a> +<a class="jxr_linenumber" name="98" href="#98">98</a> Enumeration<String> initParams = config.getInitParameterNames(); +<a class="jxr_linenumber" name="99" href="#99">99</a> <strong class="jxr_keyword">while</strong> (initParams.hasMoreElements()) { +<a class="jxr_linenumber" name="100" href="#100">100</a> String param = initParams.nextElement(); +<a class="jxr_linenumber" name="101" href="#101">101</a> String stylesheetKey = <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">boolean</strong> isOverride = false; +<a class="jxr_linenumber" name="103" href="#103">103</a> +<a class="jxr_linenumber" name="104" href="#104">104</a> <strong class="jxr_keyword">if</strong> (param.startsWith(INIT_PARAM_STYLESHEET)) { +<a class="jxr_linenumber" name="105" href="#105">105</a> stylesheetKey = param.substring(INIT_PARAM_STYLESHEET.length()); +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="107" href="#107">107</a> stylesheetKey = param.substring(INIT_PARAM_OVERRIDE_STYLESHEET.length()); +<a class="jxr_linenumber" name="108" href="#108">108</a> isOverride = <strong class="jxr_keyword">true</strong>; +<a class="jxr_linenumber" name="109" href="#109">109</a> } +<a class="jxr_linenumber" name="110" href="#110">110</a> +<a class="jxr_linenumber" name="111" href="#111">111</a> <strong class="jxr_keyword">if</strong> (stylesheetKey != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="112" href="#112">112</a> String stylesheetFileName = config.getInitParameter(param); +<a class="jxr_linenumber" name="113" href="#113">113</a> InputStream stream = config.getServletContext().getResourceAsStream(stylesheetFileName); +<a class="jxr_linenumber" name="114" href="#114">114</a> <strong class="jxr_keyword">if</strong> (stream != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="115" href="#115">115</a> <strong class="jxr_keyword">try</strong> { +<a class="jxr_linenumber" name="116" href="#116">116</a> Document xslDoc = builder.parse(stream); +<a class="jxr_linenumber" name="117" href="#117">117</a> addStylesheet(stylesheetKey, <strong class="jxr_keyword">new</strong> DOMSource(xslDoc), isOverride); +<a class="jxr_linenumber" name="118" href="#118">118</a> +<a class="jxr_linenumber" name="119" href="#119">119</a> LOG.info(<span class="jxr_string">"Stylesheet: '"</span> + stylesheetKey + <span class="jxr_string">"' -> '"</span> + stylesheetFileName + <span class="jxr_string">"'"</span>); +<a class="jxr_linenumber" name="120" href="#120">120</a> } <strong class="jxr_keyword">catch</strong> (Exception e) { +<a class="jxr_linenumber" name="121" href="#121">121</a> LOG.error(e.getMessage(), e); +<a class="jxr_linenumber" name="122" href="#122">122</a> } +<a class="jxr_linenumber" name="123" href="#123">123</a> } +<a class="jxr_linenumber" name="124" href="#124">124</a> } +<a class="jxr_linenumber" name="125" href="#125">125</a> } +<a class="jxr_linenumber" name="126" href="#126">126</a> +<a class="jxr_linenumber" name="127" href="#127">127</a> String initAuxRoot = config.getInitParameter(INIT_PARAM_AUXROOT); +<a class="jxr_linenumber" name="128" href="#128">128</a> <strong class="jxr_keyword">if</strong> (initAuxRoot != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="129" href="#129">129</a> fAuxRoot = initAuxRoot; +<a class="jxr_linenumber" name="130" href="#130">130</a> LOG.info(<span class="jxr_string">"Auxiliary root: "</span> + fAuxRoot); +<a class="jxr_linenumber" name="131" href="#131">131</a> } +<a class="jxr_linenumber" name="132" href="#132">132</a> +<a class="jxr_linenumber" name="133" href="#133">133</a> String initAllow = config.getInitParameter(INIT_PARAM_ALLOW); +<a class="jxr_linenumber" name="134" href="#134">134</a> <strong class="jxr_keyword">if</strong> (initAllow != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="135" href="#135">135</a> fAllow = initAllow; +<a class="jxr_linenumber" name="136" href="#136">136</a> LOG.info(<span class="jxr_string">"Allow pattern: "</span> + fAllow); +<a class="jxr_linenumber" name="137" href="#137">137</a> } +<a class="jxr_linenumber" name="138" href="#138">138</a> } +<a class="jxr_linenumber" name="139" href="#139">139</a> +<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="141" href="#141">141</a> <em class="jxr_javadoccomment"> * Handles GET requests.</em> +<a class="jxr_linenumber" name="142" href="#142">142</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="143" href="#143">143</a> @Override +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="145" href="#145">145</a> String browseUrl = <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="146" href="#146">146</a> String overrideStylesheet = <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="147" href="#147">147</a> +<a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_comment">// The url parameter must come first!</em> +<a class="jxr_linenumber" name="149" href="#149">149</a> String queryString = req.getQueryString(); +<a class="jxr_linenumber" name="150" href="#150">150</a> +<a class="jxr_linenumber" name="151" href="#151">151</a> <strong class="jxr_keyword">if</strong> ((queryString != <strong class="jxr_keyword">null</strong>) && (queryString.startsWith(PARAM_URL))) { +<a class="jxr_linenumber" name="152" href="#152">152</a> <strong class="jxr_keyword">int</strong> urlEnd = queryString.indexOf(PARAM_OVERRIDE_STYLESHEET + <span class="jxr_string">"="</span>); +<a class="jxr_linenumber" name="153" href="#153">153</a> <strong class="jxr_keyword">if</strong> (urlEnd == -1) { +<a class="jxr_linenumber" name="154" href="#154">154</a> urlEnd = queryString.length(); +<a class="jxr_linenumber" name="155" href="#155">155</a> } <strong class="jxr_keyword">else</strong> { +<a class="jxr_linenumber" name="156" href="#156">156</a> overrideStylesheet = queryString.substring(urlEnd + PARAM_OVERRIDE_STYLESHEET.length() + 1); +<a class="jxr_linenumber" name="157" href="#157">157</a> --urlEnd; +<a class="jxr_linenumber" name="158" href="#158">158</a> } +<a class="jxr_linenumber" name="159" href="#159">159</a> +<a class="jxr_linenumber" name="160" href="#160">160</a> browseUrl = queryString.substring(PARAM_URL.length() + 1, urlEnd); +<a class="jxr_linenumber" name="161" href="#161">161</a> +<a class="jxr_linenumber" name="162" href="#162">162</a> <strong class="jxr_keyword">if</strong> (browseUrl.length() < PARAM_URL_MIN_LEN) { +<a class="jxr_linenumber" name="163" href="#163">163</a> browseUrl = <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="164" href="#164">164</a> } +<a class="jxr_linenumber" name="165" href="#165">165</a> } +<a class="jxr_linenumber" name="166" href="#166">166</a> +<a class="jxr_linenumber" name="167" href="#167">167</a> <strong class="jxr_keyword">if</strong> (browseUrl == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="168" href="#168">168</a> printInput(req, resp); +<a class="jxr_linenumber" name="169" href="#169">169</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="170" href="#170">170</a> } +<a class="jxr_linenumber" name="171" href="#171">171</a> +<a class="jxr_linenumber" name="172" href="#172">172</a> doBrowse(req, resp, browseUrl, overrideStylesheet); +<a class="jxr_linenumber" name="173" href="#173">173</a> } +<a class="jxr_linenumber" name="174" href="#174">174</a> +<a class="jxr_linenumber" name="175" href="#175">175</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="176" href="#176">176</a> <em class="jxr_javadoccomment"> * Main method of the browser.</em> +<a class="jxr_linenumber" name="177" href="#177">177</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="179" href="#179">179</a> String overrideStylesheet) <strong class="jxr_keyword">throws</strong> ServletException, IOException { +<a class="jxr_linenumber" name="180" href="#180">180</a> <em class="jxr_comment">// check if decoding is necessary</em> +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="182" href="#182">182</a> <em class="jxr_comment">// decoded)</em> +<a class="jxr_linenumber" name="183" href="#183">183</a> <strong class="jxr_keyword">if</strong> (browseUrl.charAt(4) != ':' && browseUrl.charAt(5) != ':') { +<a class="jxr_linenumber" name="184" href="#184">184</a> browseUrl = URLDecoder.decode(browseUrl, <span class="jxr_string">"UTF-8"</span>); +<a class="jxr_linenumber" name="185" href="#185">185</a> } +<a class="jxr_linenumber" name="186" href="#186">186</a> +<a class="jxr_linenumber" name="187" href="#187">187</a> <em class="jxr_comment">// check URL</em> +<a class="jxr_linenumber" name="188" href="#188">188</a> <strong class="jxr_keyword">if</strong> (!browseUrl.matches(fAllow)) { +<a class="jxr_linenumber" name="189" href="#189">189</a> printError(req, resp, <span class="jxr_string">"Prohibited URL!"</span>, <strong class="jxr_keyword">null</strong>); +<a class="jxr_linenumber" name="190" href="#190">190</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="191" href="#191">191</a> } +<a class="jxr_linenumber" name="192" href="#192">192</a> +<a class="jxr_linenumber" name="193" href="#193">193</a> <strong class="jxr_keyword">try</strong> { +<a class="jxr_linenumber" name="194" href="#194">194</a> <em class="jxr_comment">// get content</em> +<a class="jxr_linenumber" name="195" href="#195">195</a> URL url = <strong class="jxr_keyword">new</strong> URL(browseUrl); +<a class="jxr_linenumber" name="196" href="#196">196</a> HttpURLConnection conn = (HttpURLConnection) url.openConnection(); +<a class="jxr_linenumber" name="197" href="#197">197</a> conn.setDoInput(<strong class="jxr_keyword">true</strong>); +<a class="jxr_linenumber" name="198" href="#198">198</a> conn.setDoOutput(false); +<a class="jxr_linenumber" name="199" href="#199">199</a> conn.setRequestMethod(<span class="jxr_string">"GET"</span>); +<a class="jxr_linenumber" name="200" href="#200">200</a> String authHeader = req.getHeader(<span class="jxr_string">"Authorization"</span>); +<a class="jxr_linenumber" name="201" href="#201">201</a> <strong class="jxr_keyword">if</strong> (authHeader != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="202" href="#202">202</a> conn.setRequestProperty(<span class="jxr_string">"Authorization"</span>, authHeader); +<a class="jxr_linenumber" name="203" href="#203">203</a> } +<a class="jxr_linenumber" name="204" href="#204">204</a> conn.connect(); +<a class="jxr_linenumber" name="205" href="#205">205</a> +<a class="jxr_linenumber" name="206" href="#206">206</a> <em class="jxr_comment">// ask for login</em> +<a class="jxr_linenumber" name="207" href="#207">207</a> <strong class="jxr_keyword">if</strong> (conn.getResponseCode() == HttpURLConnection.HTTP_UNAUTHORIZED) { +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="209" href="#209">209</a> resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, <span class="jxr_string">"Authorization Required"</span>); +<a class="jxr_linenumber" name="210" href="#210">210</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="211" href="#211">211</a> } +<a class="jxr_linenumber" name="212" href="#212">212</a> +<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_comment">// debug messages</em> +<a class="jxr_linenumber" name="214" href="#214">214</a> <strong class="jxr_keyword">if</strong> (LOG.isDebugEnabled()) { +<a class="jxr_linenumber" name="215" href="#215">215</a> LOG.debug(<span class="jxr_string">"'"</span> + browseUrl + <span class="jxr_string">"' -> '"</span> + conn.getContentType() + <span class="jxr_string">"'"</span>); +<a class="jxr_linenumber" name="216" href="#216">216</a> } +<a class="jxr_linenumber" name="217" href="#217">217</a> +<a class="jxr_linenumber" name="218" href="#218">218</a> <em class="jxr_comment">// find stylesheet</em> +<a class="jxr_linenumber" name="219" href="#219">219</a> Source stylesheet = getStylesheet(conn.getContentType(), overrideStylesheet); +<a class="jxr_linenumber" name="220" href="#220">220</a> +<a class="jxr_linenumber" name="221" href="#221">221</a> OutputStream out = <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="222" href="#222">222</a> InputStream in = <strong class="jxr_keyword">new</strong> BufferedInputStream(conn.getInputStream(), BUFFER_SIZE); +<a class="jxr_linenumber" name="223" href="#223">223</a> +<a class="jxr_linenumber" name="224" href="#224">224</a> <strong class="jxr_keyword">if</strong> (stylesheet == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="225" href="#225">225</a> <em class="jxr_comment">// no stylesheet found -> conduct content</em> +<a class="jxr_linenumber" name="226" href="#226">226</a> resp.setContentType(conn.getContentType()); +<a class="jxr_linenumber" name="227" href="#227">227</a> out = <strong class="jxr_keyword">new</strong> BufferedOutputStream(resp.getOutputStream(), BUFFER_SIZE); +<a class="jxr_linenumber" name="228" href="#228">228</a> +<a class="jxr_linenumber" name="229" href="#229">229</a> byte[] buffer = <strong class="jxr_keyword">new</strong> byte[BUFFER_SIZE]; +<a class="jxr_linenumber" name="230" href="#230">230</a> <strong class="jxr_keyword">int</strong> b; +<a class="jxr_linenumber" name="231" href="#231">231</a> <strong class="jxr_keyword">while</strong> ((b = in.read(buffer)) > -1) { +<a class="jxr_linenumber" name="232" href="#232">232</a> out.write(buffer, 0, b); +<a class="jxr_linenumber" name="233" href="#233">233</a> } +<a class="jxr_linenumber" name="234" href="#234">234</a> } <strong class="jxr_keyword">else</strong> { +<a class="jxr_linenumber" name="235" href="#235">235</a> <em class="jxr_comment">// apply stylesheet</em> +<a class="jxr_linenumber" name="236" href="#236">236</a> TransformerFactory f = TransformerFactory.newInstance(); +<a class="jxr_linenumber" name="237" href="#237">237</a> Transformer t = f.newTransformer(stylesheet); +<a class="jxr_linenumber" 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 class="jxr_linenumber" name="239" href="#239">239</a> t.setParameter(<span class="jxr_string">"auxRoot"</span>, getAuxRoot(req, fAuxRoot)); +<a class="jxr_linenumber" name="240" href="#240">240</a> t.setParameter(<span class="jxr_string">"browseOverrideStylesheet"</span>, <span class="jxr_string">"&"</span> + PARAM_OVERRIDE_STYLESHEET + <span class="jxr_string">"="</span>); +<a class="jxr_linenumber" name="241" href="#241">241</a> +<a class="jxr_linenumber" name="242" href="#242">242</a> resp.setContentType(<span class="jxr_string">"text/html"</span>); +<a class="jxr_linenumber" name="243" href="#243">243</a> out = <strong class="jxr_keyword">new</strong> BufferedOutputStream(resp.getOutputStream(), BUFFER_SIZE); +<a class="jxr_linenumber" name="244" href="#244">244</a> +<a class="jxr_linenumber" name="245" href="#245">245</a> Source s = <strong class="jxr_keyword">new</strong> StreamSource(in); +<a class="jxr_linenumber" name="246" href="#246">246</a> Result r = <strong class="jxr_keyword">new</strong> StreamResult(out); +<a class="jxr_linenumber" name="247" href="#247">247</a> t.transform(s, r); +<a class="jxr_linenumber" name="248" href="#248">248</a> } +<a class="jxr_linenumber" name="249" href="#249">249</a> +<a class="jxr_linenumber" name="250" href="#250">250</a> <strong class="jxr_keyword">try</strong> { +<a class="jxr_linenumber" name="251" href="#251">251</a> out.flush(); +<a class="jxr_linenumber" name="252" href="#252">252</a> out.close(); +<a class="jxr_linenumber" name="253" href="#253">253</a> } <strong class="jxr_keyword">catch</strong> (Exception e) { +<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_comment">// ignore, there isn't anything we can do</em> +<a class="jxr_linenumber" name="255" href="#255">255</a> } +<a class="jxr_linenumber" name="256" href="#256">256</a> +<a class="jxr_linenumber" name="257" href="#257">257</a> <strong class="jxr_keyword">try</strong> { +<a class="jxr_linenumber" name="258" href="#258">258</a> in.close(); +<a class="jxr_linenumber" name="259" href="#259">259</a> } <strong class="jxr_keyword">catch</strong> (Exception e) { +<a class="jxr_linenumber" name="260" href="#260">260</a> <em class="jxr_comment">// ignore, there isn't anything we can do</em> +<a class="jxr_linenumber" name="261" href="#261">261</a> } +<a class="jxr_linenumber" name="262" href="#262">262</a> } <strong class="jxr_keyword">catch</strong> (Exception e) { +<a class="jxr_linenumber" name="263" href="#263">263</a> printError(req, resp, e.getMessage(), e); +<a class="jxr_linenumber" name="264" href="#264">264</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="265" href="#265">265</a> } +<a class="jxr_linenumber" name="266" href="#266">266</a> } +<a class="jxr_linenumber" name="267" href="#267">267</a> +<a class="jxr_linenumber" name="268" href="#268">268</a> <em class="jxr_comment">// ---- utilities ----</em> +<a class="jxr_linenumber" name="269" href="#269">269</a> +<a class="jxr_linenumber" name="270" href="#270">270</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="271" href="#271">271</a> <em class="jxr_javadoccomment"> * Assigns a stylesheet to a content type.</em> +<a class="jxr_linenumber" name="272" href="#272">272</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="273" href="#273">273</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 class="jxr_linenumber" name="274" href="#274">274</a> <strong class="jxr_keyword">if</strong> ((contentType == <strong class="jxr_keyword">null</strong>) || (source == <strong class="jxr_keyword">null</strong>)) { +<a class="jxr_linenumber" name="275" href="#275">275</a> <strong class="jxr_keyword">return</strong>; +<a class="jxr_linenumber" name="276" href="#276">276</a> } +<a class="jxr_linenumber" name="277" href="#277">277</a> +<a class="jxr_linenumber" name="278" href="#278">278</a> <strong class="jxr_keyword">if</strong> (override) { +<a class="jxr_linenumber" name="279" href="#279">279</a> fOverrideStyleSheets.put(contentType.trim().toLowerCase(), source); +<a class="jxr_linenumber" name="280" href="#280">280</a> } <strong class="jxr_keyword">else</strong> { +<a class="jxr_linenumber" name="281" href="#281">281</a> fStyleSheets.put(contentType.trim().toLowerCase(), source); +<a class="jxr_linenumber" name="282" href="#282">282</a> } +<a class="jxr_linenumber" name="283" href="#283">283</a> } +<a class="jxr_linenumber" name="284" href="#284">284</a> +<a class="jxr_linenumber" name="285" href="#285">285</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="286" href="#286">286</a> <em class="jxr_javadoccomment"> * Returns the stylesheet for the given override stylesheet, if there is is</em> +<a class="jxr_linenumber" name="287" href="#287">287</a> <em class="jxr_javadoccomment"> * not override stylesheet given then the stylesheet for the given content</em> +<a class="jxr_linenumber" name="288" href="#288">288</a> <em class="jxr_javadoccomment"> * type or <code>null</code> if no stylesheet is assigned to content type.</em> +<a class="jxr_linenumber" name="289" href="#289">289</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="290" href="#290">290</a> <strong class="jxr_keyword">private</strong> Source getStylesheet(String contentType, String overrideStylesheet) { +<a class="jxr_linenumber" name="291" href="#291">291</a> <strong class="jxr_keyword">if</strong> (contentType == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="292" href="#292">292</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="293" href="#293">293</a> } +<a class="jxr_linenumber" name="294" href="#294">294</a> +<a class="jxr_linenumber" name="295" href="#295">295</a> Source source = <strong class="jxr_keyword">null</strong>; +<a class="jxr_linenumber" name="296" href="#296">296</a> +<a class="jxr_linenumber" name="297" href="#297">297</a> <em class="jxr_comment">// First check if there is an override given and it has a match.</em> +<a class="jxr_linenumber" name="298" href="#298">298</a> <strong class="jxr_keyword">if</strong> (overrideStylesheet != <strong class="jxr_keyword">null</strong> && overrideStylesheet.length() > 0) { +<a class="jxr_linenumber" name="299" href="#299">299</a> source = fOverrideStyleSheets.get(overrideStylesheet); +<a class="jxr_linenumber" name="300" href="#300">300</a> } +<a class="jxr_linenumber" name="301" href="#301">301</a> +<a class="jxr_linenumber" name="302" href="#302">302</a> <em class="jxr_comment">// If there is not match then check the content type map.</em> +<a class="jxr_linenumber" name="303" href="#303">303</a> <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="304" href="#304">304</a> String[] ctp = contentType.trim().toLowerCase().split(<span class="jxr_string">";"</span>); +<a class="jxr_linenumber" name="305" href="#305">305</a> +<a class="jxr_linenumber" name="306" href="#306">306</a> StringBuilder match = <strong class="jxr_keyword">new</strong> StringBuilder(); +<a class="jxr_linenumber" name="307" href="#307">307</a> <strong class="jxr_keyword">int</strong> i = 0; +<a class="jxr_linenumber" name="308" href="#308">308</a> <strong class="jxr_keyword">while</strong> (source == <strong class="jxr_keyword">null</strong> && i < ctp.length) { +<a class="jxr_linenumber" name="309" href="#309">309</a> <strong class="jxr_keyword">if</strong> (i > 0) { +<a class="jxr_linenumber" name="310" href="#310">310</a> match.append(<span class="jxr_string">";"</span>); +<a class="jxr_linenumber" name="311" href="#311">311</a> } +<a class="jxr_linenumber" name="312" href="#312">312</a> match.append(ctp[i]); +<a class="jxr_linenumber" name="313" href="#313">313</a> source = fStyleSheets.get(match.toString()); +<a class="jxr_linenumber" name="314" href="#314">314</a> i++; +<a class="jxr_linenumber" name="315" href="#315">315</a> } +<a class="jxr_linenumber" name="316" href="#316">316</a> } +<a class="jxr_linenumber" name="317" href="#317">317</a> +<a class="jxr_linenumber" name="318" href="#318">318</a> <strong class="jxr_keyword">return</strong> source; +<a class="jxr_linenumber" name="319" href="#319">319</a> } +<a class="jxr_linenumber" name="320" href="#320">320</a> +<a class="jxr_linenumber" name="321" href="#321">321</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="322" href="#322">322</a> <em class="jxr_javadoccomment"> * Returns the context URL of this servlet.</em> +<a class="jxr_linenumber" name="323" href="#323">323</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="324" href="#324">324</a> <strong class="jxr_keyword">private</strong> String getContextUrl(HttpServletRequest request) { +<a class="jxr_linenumber" name="325" href="#325">325</a> String scheme = request.getScheme(); +<a class="jxr_linenumber" name="326" href="#326">326</a> <strong class="jxr_keyword">int</strong> port = request.getServerPort(); +<a class="jxr_linenumber" name="327" href="#327">327</a> +<a class="jxr_linenumber" name="328" href="#328">328</a> <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"http"</span>.equals(scheme) && (port == 80)) { +<a class="jxr_linenumber" name="329" href="#329">329</a> port = -1; +<a class="jxr_linenumber" name="330" href="#330">330</a> } +<a class="jxr_linenumber" name="331" href="#331">331</a> <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"https"</span>.equals(scheme) && (port == 443)) { +<a class="jxr_linenumber" name="332" href="#332">332</a> port = -1; +<a class="jxr_linenumber" name="333" href="#333">333</a> } +<a class="jxr_linenumber" name="334" href="#334">334</a> +<a class="jxr_linenumber" name="335" href="#335">335</a> <strong class="jxr_keyword">return</strong> scheme + <span class="jxr_string">"://"</span> + request.getServerName() + (port > 0 ? <span class="jxr_string">":"</span> + port : <span class="jxr_string">""</span>) + request.getContextPath(); +<a class="jxr_linenumber" name="336" href="#336">336</a> } +<a class="jxr_linenumber" name="337" href="#337">337</a> +<a class="jxr_linenumber" name="338" href="#338">338</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="339" href="#339">339</a> <em class="jxr_javadoccomment"> * Returns the URL of this servlet.</em> +<a class="jxr_linenumber" name="340" href="#340">340</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="341" href="#341">341</a> <strong class="jxr_keyword">private</strong> String getServletUrl(HttpServletRequest request) { +<a class="jxr_linenumber" name="342" href="#342">342</a> <strong class="jxr_keyword">return</strong> getContextUrl(request) + request.getServletPath(); +<a class="jxr_linenumber" name="343" href="#343">343</a> } +<a class="jxr_linenumber" name="344" href="#344">344</a> +<a class="jxr_linenumber" name="345" href="#345">345</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="346" href="#346">346</a> <em class="jxr_javadoccomment"> * Returns the root URL of auxiliary files.</em> +<a class="jxr_linenumber" name="347" href="#347">347</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="348" href="#348">348</a> <strong class="jxr_keyword">private</strong> String getAuxRoot(HttpServletRequest request, String auxRoot) { +<a class="jxr_linenumber" name="349" href="#349">349</a> <strong class="jxr_keyword">if</strong> (auxRoot == <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="350" href="#350">350</a> <strong class="jxr_keyword">return</strong> getContextUrl(request); +<a class="jxr_linenumber" name="351" href="#351">351</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (auxRoot.startsWith(CONTEXT_PREFIX)) { +<a class="jxr_linenumber" name="352" href="#352">352</a> <strong class="jxr_keyword">return</strong> getContextUrl(request) + auxRoot.substring(CONTEXT_PREFIX.length()); +<a class="jxr_linenumber" name="353" href="#353">353</a> } <strong class="jxr_keyword">else</strong> { +<a class="jxr_linenumber" name="354" href="#354">354</a> <strong class="jxr_keyword">return</strong> auxRoot; +<a class="jxr_linenumber" name="355" href="#355">355</a> } +<a class="jxr_linenumber" name="356" href="#356">356</a> } +<a class="jxr_linenumber" name="357" href="#357">357</a> +<a class="jxr_linenumber" name="358" href="#358">358</a> <em class="jxr_comment">// --- HTML methods ----</em> +<a class="jxr_linenumber" name="359" href="#359">359</a> +<a class="jxr_linenumber" name="360" href="#360">360</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="361" href="#361">361</a> <em class="jxr_javadoccomment"> * Prints a HTML header with styles.</em> +<a class="jxr_linenumber" name="362" href="#362">362</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="363" href="#363">363</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printHeader(PrintWriter pw, String title) { +<a class="jxr_linenumber" name="364" href="#364">364</a> pw.print(<span class="jxr_string">"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""</span>); +<a class="jxr_linenumber" name="365" href="#365">365</a> pw.println(<span class="jxr_string">"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"</span>); +<a class="jxr_linenumber" name="366" href="#366">366</a> pw.println(<span class="jxr_string">"<html xmlns=\"http://www.w3.org/1999/xhtml\">"</span>); +<a class="jxr_linenumber" name="367" href="#367">367</a> pw.println(<span class="jxr_string">"<head>"</span>); +<a class="jxr_linenumber" name="368" href="#368">368</a> pw.println(<span class="jxr_string">"<title>"</span> + title + <span class="jxr_string">"</title>"</span>); +<a class="jxr_linenumber" name="369" href="#369">369</a> pw.println(<span class="jxr_string">"<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />"</span>); +<a class="jxr_linenumber" name="370" href="#370">370</a> pw.println(<span class="jxr_string">"<style type=\"text/css\">"</span>); +<a class="jxr_linenumber" name="371" href="#371">371</a> pw.println(<span class="jxr_string">"body { font-family: arial,sans-serif; font-size: 10pt; }"</span>); +<a class="jxr_linenumber" name="372" href="#372">372</a> pw.println(<span class="jxr_string">"div.box { background-color: #f6f1de; margin-top: 10px;"</span> +<a class="jxr_linenumber" name="373" href="#373">373</a> + <span class="jxr_string">" margin-bottom: 10px; margin-left: 0px; margin-right: 0px;"</span> +<a class="jxr_linenumber" name="374" href="#374">374</a> + <span class="jxr_string">" padding: 5px; border-style: solid; border-width: 1px; border-color: #888a85; }"</span>); +<a class="jxr_linenumber" name="375" href="#375">375</a> pw.println(<span class="jxr_string">"</style>"</span>); +<a class="jxr_linenumber" name="376" href="#376">376</a> pw.println(<span class="jxr_string">"</head>"</span>); +<a class="jxr_linenumber" name="377" href="#377">377</a> pw.println(<span class="jxr_string">"<body>"</span>); +<a class="jxr_linenumber" name="378" href="#378">378</a> } +<a class="jxr_linenumber" name="379" href="#379">379</a> +<a class="jxr_linenumber" name="380" href="#380">380</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="381" href="#381">381</a> <em class="jxr_javadoccomment"> * Prints a HTML footer.</em> +<a class="jxr_linenumber" name="382" href="#382">382</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="383" href="#383">383</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printFooter(PrintWriter pw) { +<a class="jxr_linenumber" name="384" href="#384">384</a> pw.println(<span class="jxr_string">"</body>"</span>); +<a class="jxr_linenumber" name="385" href="#385">385</a> pw.println(<span class="jxr_string">"</html>"</span>); +<a class="jxr_linenumber" name="386" href="#386">386</a> } +<a class="jxr_linenumber" name="387" href="#387">387</a> +<a class="jxr_linenumber" name="388" href="#388">388</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="389" href="#389">389</a> <em class="jxr_javadoccomment"> * Prints a HTML error message.</em> +<a class="jxr_linenumber" name="390" href="#390">390</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="391" href="#391">391</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> printError(HttpServletRequest req, HttpServletResponse resp, String message, Exception e) +<a class="jxr_linenumber" name="392" href="#392">392</a> <strong class="jxr_keyword">throws</strong> IOException { +<a class="jxr_linenumber" name="393" href="#393">393</a> resp.setContentType(<span class="jxr_string">"text/html;charset=utf-8"</span>); +<a class="jxr_linenumber" name="394" href="#394">394</a> PrintWriter pw = resp.getWriter(); +<a class="jxr_linenumber" name="395" href="#395">395</a> +<a class="jxr_linenumber" name="396" href="#396">396</a> printHeader(pw, <span class="jxr_string">"Error"</span>); +<a class="jxr_linenumber" name="397" href="#397">397</a> pw.println(<span class="jxr_string">"<div class=\"box\">"</span>); +<a class="jxr_linenumber" name="398" href="#398">398</a> pw.println(<span class="jxr_string">"<h3>"</span> + message + <span class="jxr_string">"</h3>"</span>); +<a class="jxr_linenumber" name="399" href="#399">399</a> +<a class="jxr_linenumber" name="400" href="#400">400</a> <strong class="jxr_keyword">if</strong> (e != <strong class="jxr_keyword">null</strong>) { +<a class="jxr_linenumber" name="401" href="#401">401</a> pw.print(<span class="jxr_string">"<pre>"</span>); +<a class="jxr_linenumber" name="402" href="#402">402</a> e.printStackTrace(pw); +<a class="jxr_linenumber" name="403" href="#403">403</a> pw.println(<span class="jxr_string">"</pre>"</span>); +<a class="jxr_linenumber" name="404" href="#404">404</a> } +<a class="jxr_linenumber" name="405" href="#405">405</a> +<a class="jxr_linenumber" name="406" href="#406">406</a> pw.println(<span class="jxr_string">"</div>"</span>); +<a class="jxr_linenumber" name="407" href="#407">407</a> printFooter(pw); +<a class="jxr_linenumber" name="408" href="#408">408</a> } +<a class="jxr_linenumber" name="409" href="#409">409</a> +<a class="jxr_linenumber" name="410" href="#410">410</a> <em class="jxr_javadoccomment">/**</em> +<a class="jxr_linenumber" name="411" href="#411">411</a> <em class="jxr_javadoccomment"> * Prints an HTML input box.</em> +<a class="jxr_linenumber" name="412" href="#412">412</a> <em class="jxr_javadoccomment"> */</em> +<a class="jxr_linenumber" name="413" href="#413">413</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 class="jxr_linenumber" name="414" href="#414">414</a> resp.setContentType(<span class="jxr_string">"text/html;charset=utf-8"</span>); +<a class="jxr_linenumber" name="415" href="#415">415</a> PrintWriter pw = resp.getWriter(); +<a class="jxr_linenumber" name="416" href="#416">416</a> +<a class="jxr_linenumber" name="417" href="#417">417</a> printHeader(pw, <span class="jxr_string">"OpenCMIS Browser"</span>); +<a class="jxr_linenumber" name="418" href="#418">418</a> pw.println(<span class="jxr_string">"<img src=\""</span> + getAuxRoot(req, fAuxRoot) + <span class="jxr_string">"cmis.png\" "</span> + <span class="jxr_string">"style=\"float: right;\" />"</span>); +<a class="jxr_linenumber" name="419" href="#419">419</a> pw.println(<span class="jxr_string">"<h1 style=\"font-family: Georgia;\">OpenCMIS Browser</h1>"</span>); +<a class="jxr_linenumber" name="420" href="#420">420</a> pw.println(<span class="jxr_string">"<div class=\"box\">"</span>); +<a class="jxr_linenumber" name="421" href="#421">421</a> pw.println(<span class="jxr_string">"<form action=\"\" method=\"GET\">"</span>); +<a class="jxr_linenumber" name="422" href="#422">422</a> pw.println(<span class="jxr_string">"CMIS AtomPub URL: "</span>); +<a class="jxr_linenumber" name="423" href="#423">423</a> pw.println(<span class="jxr_string">"<input name=\"url\" type=\"text\" size=\"100\" value=\"\"/>"</span>); +<a class="jxr_linenumber" name="424" href="#424">424</a> pw.println(<span class="jxr_string">"<input type=\"submit\" value=\" GO \"/>"</span>); +<a class="jxr_linenumber" name="425" href="#425">425</a> pw.println(<span class="jxr_string">"</form>"</span>); +<a class="jxr_linenumber" name="426" href="#426">426</a> pw.println(<span class="jxr_string">"</div>"</span>); +<a class="jxr_linenumber" name="427" href="#427">427</a> printFooter(pw); +<a class="jxr_linenumber" name="428" href="#428">428</a> } +<a class="jxr_linenumber" name="429" href="#429">429</a> } +</pre> +<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body> +</html> + Added: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-frame.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-frame.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-frame.html Mon Apr 6 17:18:49 2015 @@ -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=UTF-8" /> + <title>OpenCMIS Browser 0.13.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: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-summary.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-summary.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/org/apache/chemistry/opencmis/browser/package-summary.html Mon Apr 6 17:18:49 2015 @@ -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=UTF-8" /> + <title>OpenCMIS Browser 0.13.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 © 2009-2015 The Apache Software Foundation. All Rights Reserved. + </body> +</html> \ No newline at end of file Added: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-frame.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-frame.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-frame.html Mon Apr 6 17:18:49 2015 @@ -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=UTF-8" /> + <title>OpenCMIS Browser 0.13.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: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-summary.html ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-summary.html (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/overview-summary.html Mon Apr 6 17:18:49 2015 @@ -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=UTF-8" /> + <title>OpenCMIS Browser 0.13.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.13.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 © 2009-2015 The Apache Software Foundation. All Rights Reserved. + </body> +</html> \ No newline at end of file Added: websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/stylesheet.css ============================================================================== --- websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/stylesheet.css (added) +++ websites/staging/chemistry/trunk/content/java/0.13.0/maven/chemistry-opencmis-test/chemistry-opencmis-test-browser/xref/stylesheet.css Mon Apr 6 17:18:49 2015 @@ -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; +}
