1 /*
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3 *
4 * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
5 *
6 * Portions Copyright Apache Software Foundation.
7 *
8 * The contents of this file are subject to the terms of either the GNU
9 * General Public License Version 2 only ("GPL") or the Common Development
10 * and Distribution License("CDDL") (collectively, the "License"). You
11 * may not use this file except in compliance with the License. You can obtain
12 * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
13 * or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
14 * language governing permissions and limitations under the License.
15 *
16 * When distributing the software, include this License Header Notice in each
17 * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
18 * Sun designates this particular file as subject to the "Classpath" exception
19 * as provided by Sun in the GPL Version 2 section of the License file that
20 * accompanied this code. If applicable, add the following below the License
21 * Header, with the fields enclosed by brackets [] replaced by your own
22 * identifying information: "Portions Copyrighted [year]
23 * [name of copyright owner]"
24 *
25 * Contributor(s):
26 *
27 * If you wish your version of this file to be governed by only the CDDL or
28 * only the GPL Version 2, indicate your decision by adding "[Contributor]
29 * elects to include this software in this distribution under the [CDDL or GPL
30 * Version 2] license." If you don't indicate a single choice of license, a
31 * recipient has the option to distribute your version of this file under
32 * either the CDDL, the GPL Version 2 or to extend the choice of license to
33 * its licensees as provided above. However, if you add GPL Version 2 code
34 * and therefore, elected the GPL Version 2 license, then the option applies
35 * only if the new code is made subject to such option by the copyright
36 * holder.
37 */
38
39 package org.apache.jasper;
40
41 import java.io.File;
42
43 import org.apache.jasper.compiler.JspConfig;
44 import org.apache.jasper.compiler.TagPluginManager;
45 import org.apache.jasper.compiler.TldLocationsCache;
46
47 /**
48 * A class to hold all init parameters specific to the JSP engine.
49 *
50 * @author Anil K. Vijendran
51 * @author Hans Bergsten
52 * @author Pierre Delisle
53 */
54 public interface Options {
55
56 /**
57 * Returns true if Jasper issues a compilation error instead of a runtime
58 * Instantiation error if the class attribute specified in useBean action
59 * is invalid.
60 */
61 public boolean getErrorOnUseBeanInvalidClassAttribute();
62
63 /**
64 * Are we keeping generated code around?
65 */
66 public boolean getKeepGenerated();
67
68 /**
69 * Returns true if tag handler pooling is enabled, false otherwise.
70 */
71 public boolean isPoolingEnabled();
72
73 /**
74 * Are we supporting HTML mapped servlets?
75 */
76 public boolean getMappedFile();
77
78 /**
79 * Should errors be sent to client or thrown into stderr?
80 */
81 public boolean getSendErrorToClient();
82
83 /**
84 * Should we include debug information in compiled class?
85 */
86 public boolean getClassDebugInfo();
87
88 /**
89 * Background compile thread check interval in seconds
90 */
91 public int getCheckInterval();
92
93 /**
94 * Is Jasper being used in development mode?
95 */
96 public boolean getDevelopment();
97
98 /**
99 * Is the generation of SMAP info for JSR45 debugging suppressed?
100 */
101 public boolean isSmapSuppressed();
102
103 /**
104 * Indicates whether SMAP info for JSR45 debugging should be dumped to a
105 * file.
106 * Ignored is suppressSmap() is true
107 */
108 public boolean isSmapDumped();
109
110 /**
111 * Should white spaces between directives or actions be trimmed?
112 */
113 public boolean getTrimSpaces();
114
115 /**
116 * Class ID for use in the plugin tag when the browser is IE.
117 */
118 public String getIeClassId();
119
120 /**
121 * What is my scratch dir?
122 */
123 public File getScratchDir();
124
125 /**
126 * What classpath should I use while compiling the servlets
127 * generated from JSP files?
128 */
129 public String getClassPath();
130
131 // START PWC 1.2 6311155
132 /**
133 * Gets the system class path.
134 *
135 * @return The system class path
136 */
137 public String getSystemClassPath();
138 // END PWC 1.2 6311155
139
140 /**
141 * Compiler to use.
142 */
143 public String getCompiler();
144
145 /**
146 * The compiler target VM, e.g. 1.1, 1.2, 1.3, 1.4, or 1.5.
147 */
148 public String getCompilerTargetVM();
149
150 /**
151 * Compiler source VM, e.g. 1.3, 1.4, or 1.5.
152 */
153 public String getCompilerSourceVM();
154
155 /**
156 * The cache for the location of the TLD's
157 * for the various tag libraries 'exposed'
158 * by the web application.
159 * A tag library is 'exposed' either explicitely in
160 * web.xml or implicitely via the uri tag in the TLD
161 * of a taglib deployed in a jar file (WEB-INF/lib).
162 *
163 * @return the instance of the TldLocationsCache
164 * for the web-application.
165 */
166 public TldLocationsCache getTldLocationsCache();
167
168 /**
169 * Java platform encoding to generate the JSP
170 * page servlet.
171 */
172 public String getJavaEncoding();
173
174 /**
175 * boolean flag to tell Ant whether to fork JSP page compilations.
176 */
177 public boolean getFork();
178
179 /**
180 * Obtain JSP configuration informantion specified in web.xml.
181 */
182 public JspConfig getJspConfig();
183
184 /**
185 * Is generation of X-Powered-By response header enabled/disabled?
186 */
187 public boolean isXpoweredBy();
188
189 /**
190 * Obtain a Tag Plugin Manager
191 */
192 public TagPluginManager getTagPluginManager();
193
194 /**
195 * Are Text strings to be generated as char arrays?
196 */
197 public boolean genStringAsCharArray();
198
199 /**
200 * Are text strings to be generated as byte arrays, if the page is
201 * unbuffered?
202 */
203 public boolean genStringAsByteArray();
204
205 /**
206 * If the buffer attribute for the page directive is not specified,
207 * is the default "none"?
208 */
209 public boolean isDefaultBufferNone();
210
211 /**
212 * Modification test interval.
213 */
214 public int getModificationTestInterval();
215
216 // BEGIN S1AS 6181923
217 /**
218 * Returns the value of the usePrecompiled (or use-precompiled) init
219 * param.
220 */
221 public boolean getUsePrecompiled();
222 // END S1AS 6181923
223
224 // START SJSWS
225 /**
226 * Gets initial capacity of HashMap which maps JSPs to their corresponding
227 * servlets.
228 */
229 public int getInitialCapacity();
230 // END SJSWS
231
232 // START SJSAS 6384538
233 public boolean isValidationEnabled();
234 // END SJSAS 6384538
235
236 /**
237 * If class files are generated as byte arrays, should they be saved to
238 * disk at the end of compilations?
239 */
240
241 public boolean getSaveBytecode();
242
243 }