list.jsp revision 0
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantzCDDL HEADER START
2a6c49cfaef5979a5a06098f3ce987cd76769409manojThe contents of this file are subject to the terms of the
2a6c49cfaef5979a5a06098f3ce987cd76769409manojCommon Development and Distribution License (the "License").
8163c8f6e2a9a8e4aba318d874c54a3155d57e21jerenkrantzYou may not use this file except in compliance with the License.
d8028365066fca602bf35d014530a1802114378crbbSee LICENSE.txt included in this distribution for the specific
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowelanguage governing permissions and limitations under the License.
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wroweWhen distributing Covered Code, include this CDDL HEADER in each
d89c116f82699294ca744125723651c554bc5925wrowefile and include the License file at LICENSE.txt.
4214e98fc9045e5010e66f9a967bd6d68f40d342aaronIf applicable, add the following below this CDDL HEADER, with the
8721697e2aece27b0e738519329f7976c72b27bfjerenkrantzfields enclosed by brackets "[]" replaced with your own identifying
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wroweinformation: Portions Copyright [yyyy] [name of copyright owner]
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantzCDDL HEADER END
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbbCopyright 2005 Sun Microsystems, Inc. All rights reserved.
ab71b233b3a36489e44a7b061c48293be0b17788jwoolleyUse is subject to license terms.
571760de5e60c0b459cb11be45507b923cd023eejwoolleyident "%Z%%M% %I% %E% SMI"
bcb6e1be6041dfeb549c8ea8d37f97ad4e90a0c3rbb--%><%@ page import = "javax.servlet.*,
35330e0d79ceb8027223bbb8330a381b1f989d6etrawickorg.opensolaris.opengrok.analysis.FileAnalyzer.Genre,
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb%><%@include file="mast.jsp"%><%
bd929c73ef04789b7183b840d8db6e01d03a4d86rbbString rev = null;
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanojif(!isDir && ef != null) {
af4c982a7cf4515f124935f99a329744035fc699slive } catch (IOException e) {
af4c982a7cf4515f124935f99a329744035fc699sliveif (valid) {
10270f6f94b2069d0d357805c140a9897449b9ccianh if (isDir) {
4b62424416882687387923b3130b96241503cbe0jerenkrantz// If requesting a Directory listing -------------
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz DirectoryListing dl = new DirectoryListing(IgnoredNames.ignore, ef);
630f5fc1277582643fe0f831a4830e15127bd047jwoolley String[] files = resourceFile.list();
630f5fc1277582643fe0f831a4830e15127bd047jwoolley if (files != null) {
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz Arrays.sort(files, String.CASE_INSENSITIVE_ORDER);
45b0e1c775c1cfed6473c9e5304179ccb9609f53stoddard ArrayList readMes = dl.listTo(resourceFile, out, path, files);
dbec4658981e4f9127e8676457c28d42932be7cdtrawick if(readMes != null && readMes.size() > 0) {
5221a7188270ea10c4f0f8ad0a4367638894f9fbbrianp File xdir = new File(getServletContext().getInitParameter("DATA_ROOT") + "/xref" + path);
5ebc546d1a3f1e4435a6838243ff912c2f53f806jerenkrantz char[] buf = new char[8192];
5ebc546d1a3f1e4435a6838243ff912c2f53f806jerenkrantz for(int i = 0; i< readMes.size(); i++) {
5221a7188270ea10c4f0f8ad0a4367638894f9fbbrianp BufferedReader br = new BufferedReader(new FileReader(new File(xdir, (String)readMes.get(i))));
d415c14da6d37345738e160f785dbe8458095068jwoolley int len = 0;
d415c14da6d37345738e160f785dbe8458095068jwoolley %><h3><%=(String)readMes.get(i)%></h3><div id="src"><pre><%
d415c14da6d37345738e160f785dbe8458095068jwoolley while((len = br.read(buf)) > 0) {
d415c14da6d37345738e160f785dbe8458095068jwoolley out.write(buf, 0, len);
d415c14da6d37345738e160f785dbe8458095068jwoolley %></pre></div><%
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantz } catch(IOException e) {
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz } else if ((rev = request.getParameter("r")) != null && !rev.equals("")) {
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz// Else if requesting a previous revision -------------
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz if(noHistory) {
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz response.sendError(404, "Revision not found");
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz } else if (rev.matches("^[0-9]+(\\.[0-9]+)*$")) {
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz Class a = AnalyzerGuru.find(basename);
56b2562cb4041a21bc313fde3204beabdb758800jwoolley if (g == Genre.PLAIN|| g == Genre.HTML || g == null) {
56b2562cb4041a21bc313fde3204beabdb758800jwoolley InputStream in = null;
56b2562cb4041a21bc313fde3204beabdb758800jwoolley in = HistoryGuru.getInstance().getRevision(resourceFile.getParent(), basename, rev);
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantz } catch (Exception e) {
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz response.sendError(404, "Revision not found");
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz if(in != null) {
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz if (g == null) {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz if (g == Genre.DATA || g == Genre.XREFABLE || g == null) {
f17588e04d2412bf1345783ed1d173322d728d6ftrawick %> <div id="src">Binary file [Click <a href="<%=context%>/raw<%=path%>?r=<%=rev%>">here</a> to download] </div><%
f17588e04d2412bf1345783ed1d173322d728d6ftrawick %><div id="src"><span class="pagetitle"><%=basename%> revision <%=rev%> </span><pre>
f17588e04d2412bf1345783ed1d173322d728d6ftrawick System.setProperty("urlPrefix", context+"/s?");
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz} else if (g == Genre.IMAGE) {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz %><img src="<%=context%>/raw<%=path%>?r=<%=rev%>"/><%
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz} else if (g == Genre.HTML) {
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe char[] buf = new char[8192];
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz Reader br = new InputStreamReader(in);
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz int len = 0;
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz while((len = br.read(buf)) > 0) {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz out.write(buf, 0, len);
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz %> Click <a href="<%=context%>/raw<%=path%>?r=<%=rev%>">download <%=basename%></a><%
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz } catch (IOException e) {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz %> <h3 class="error">IO Error</h3> <%
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe %></pre></div><%
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz %> <h3 class="error">Error reading file</h3> <%
1af5c0e25a649bb298e25ddfa5418fa18bdcb107aaron } else if(g == Genre.IMAGE) {
82455c2e3b6991846fbcbf0c9e41f57dbc681217brianp %><div id="src"><img src="<%=context%>/raw<%=path%>?r=<%=rev%>"/></div><%
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz %><div id="src"> Binary file [Click <a href="<%=context%>/raw<%=path%>?r=<%=rev%>">here</a> to download] </div><%
630f5fc1277582643fe0f831a4830e15127bd047jwoolley %><h3 class="error">Error: Invalid Revision Number!</h3><%
56b2562cb4041a21bc313fde3204beabdb758800jwoolley// requesting cross referenced file -------------
56b2562cb4041a21bc313fde3204beabdb758800jwoolley String xrefSource = getServletContext().getInitParameter("DATA_ROOT") + "/xref";
56b2562cb4041a21bc313fde3204beabdb758800jwoolley String resourceXFile = xrefSource + path;
56b2562cb4041a21bc313fde3204beabdb758800jwoolley File xrefFile = new File(resourceXFile);
56b2562cb4041a21bc313fde3204beabdb758800jwoolley char[] buf = new char[8192];
56b2562cb4041a21bc313fde3204beabdb758800jwoolley BufferedReader br = new BufferedReader(new FileReader(resourceXFile));
b05930e6008f69bd323abe0c10f81f40ffd27983brianp int len = 0;
b05930e6008f69bd323abe0c10f81f40ffd27983brianp %><div id="src"><pre><%
b05930e6008f69bd323abe0c10f81f40ffd27983brianp while((len = br.read(buf)) > 0) {
b05930e6008f69bd323abe0c10f81f40ffd27983brianp out.write(buf, 0, len);
15304e476fb32988bf988864ddacc5375b9a6080stoddard %></pre></div><%
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley BufferedInputStream bin = new BufferedInputStream(new FileInputStream(resourceFile));
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley Class a = AnalyzerGuru.find(basename);
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley if(g == null) {
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddard %><div id="src"><img src="<%=context%>/raw<%=path%>"/></div><%
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddard } else if( g == Genre.HTML) {
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddard char[] buf = new char[8192];
a23b1c5a74208b03884c09a6f9dd5d6c97fa6415trawick Reader br = new InputStreamReader(bin);
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe int len = 0;
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe while((len = br.read(buf)) > 0) {
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe out.write(buf, 0, len);
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe } else if(g == Genre.PLAIN) {
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe %><div id="src"><pre><%
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe System.setProperty("urlPrefix", context+"/s?");
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe %></pre></div><%
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe %> Click <a href="<%=context%>/raw<%=path%>">download <%=basename%></a><%
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe%><%@include file="foot.html"%><%
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweif(ef != null) {
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe } catch (IOException e) {