KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > icefaces > samples > showcase > util > SourceCodeLoaderServlet


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.icefaces.samples.showcase.util;
35
36 import javax.servlet.http.HttpServlet JavaDoc;
37 import javax.servlet.http.HttpServletRequest JavaDoc;
38 import javax.servlet.http.HttpServletResponse JavaDoc;
39 import java.io.File JavaDoc;
40 import java.io.FileInputStream JavaDoc;
41 import java.io.IOException JavaDoc;
42 import java.io.InputStream JavaDoc;
43 import java.io.PrintWriter JavaDoc;
44
45 /**
46  * <p>The SourceCodeLoaderServlet class is responsible for displaying the JSF
47  * source code for a particular example. </p>
48  *
49  * @since 0.3.0
50  */

51 public class SourceCodeLoaderServlet extends HttpServlet JavaDoc {
52
53     public void doGet(HttpServletRequest JavaDoc request,
54                       HttpServletResponse JavaDoc response) {
55
56         // contains the relative path to where the source code for the example
57
// is on the server
58
String JavaDoc sourcePath = request.getParameter("path");
59
60         if (sourcePath != null) {
61             InputStream JavaDoc sourceStream =
62                     getServletContext().getResourceAsStream(sourcePath);
63
64             if (sourceStream == null) {
65                 try {
66                     // Work around for websphere
67
sourceStream = new FileInputStream JavaDoc(new File JavaDoc(
68                             getServletContext().getRealPath(
69                                     sourcePath.replaceFirst("./", ""))));
70                 } catch (Exception JavaDoc e) {
71                     e.printStackTrace();
72                 }
73             }
74
75             if (sourceStream != null) {
76                 PrintWriter JavaDoc responseStream = null;
77                 try {
78                     // Setting the context type to text/xml provides style
79
// attributes for most browsers which should make reading
80
// the code easier.
81
response.setContentType("text/plain");
82                     responseStream = response.getWriter();
83                     int ch;
84                     while ((ch = sourceStream.read()) != -1) {
85                         responseStream.print((char) ch);
86                     }
87                     responseStream.close();
88                     sourceStream.close();
89                 } catch (IOException JavaDoc e) {
90                     e.printStackTrace();
91                 }
92
93             }
94         }
95     }
96 }
97
Popular Tags