raw.jsp revision eee3266b4179dae85826d6139b3b540838ea955a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCDDL HEADER START
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThe contents of this file are subject to the terms of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCommon Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinYou may not use this file except in compliance with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSee LICENSE.txt included in this distribution for the specific
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlanguage governing permissions and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinWhen distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfile and include the License file at LICENSE.txt.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIf applicable, add the following below this CDDL HEADER, with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfields enclosed by brackets "[]" replaced with your own identifying
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrewsinformation: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCopyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPortions Copyright 2011 Jens Elkner.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein--%><%@page import="
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinorg.opensolaris.opengrok.configuration.RuntimeEnvironment,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein/* ---------------------- raw.jsp start --------------------- */
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cfg = PageConfig.get(request);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein String redir = cfg.canProcess();
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if (redir == null || redir.length() > 0) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if (redir != null) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein response.sendError(HttpServletResponse.SC_NOT_FOUND);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein String revision = cfg.getRequestedRevision();
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews revision = null;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein InputStream in = null;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if (revision != null) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein in = HistoryGuru.getInstance().getRevision(f.getParent(),
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if (request.getDateHeader("If-Modified-Since") >= flast) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein in = new FileInputStream(f);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein response.setDateHeader("Last-Modified", f.lastModified());
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } catch (Exception e) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein response.sendError(HttpServletResponse.SC_NOT_FOUND);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein String mimeType = getServletContext().getMimeType(f.getAbsolutePath());
727f5b8846457a33d06f515a10a7e1aa849ddf18Andreas Gustafsson response.setHeader("content-disposition", "attachment; filename="
727f5b8846457a33d06f515a10a7e1aa849ddf18Andreas Gustafsson response.setHeader("content-type", "text/plain");
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce OutputStream o = response.getOutputStream();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce byte[] buffer = new byte[8192];
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce while ((nr = in.read(buffer)) > 0) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce o.write(buffer, 0, nr);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein/* ---------------------- raw.jsp end-------------------- */