Hi Remy,

[EMAIL PROTECTED] wrote:
remm        2004/10/04 10:39:46

  Modified:    jasper2/src/share/org/apache/jasper/resources
                        LocalStrings.properties
               jasper2/src/share/org/apache/jasper
                        EmbeddedServletOptions.java Options.java JspC.java
               jasper2/src/share/org/apache/jasper/compiler Compiler.java
               webapps/docs changelog.xml jasper-howto.xml
  Log:
  - Allow configuring the interval following a compilation during which a JSP will not 
be checked for modifications.

how is this different from the 'checkInterval' option?

Jan


Revision Changes Path
1.2 +2 -1 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/LocalStrings.properties
Index: LocalStrings.properties
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/LocalStrings.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LocalStrings.properties 1 Sep 2004 10:08:48 -0000 1.1
+++ LocalStrings.properties 4 Oct 2004 17:39:45 -0000 1.2
@@ -143,6 +143,7 @@
jsp.warning.sendErrToClient=Warning: Invalid value for the initParam sendErrToClient. Will use the default value of \"false\"
jsp.warning.classDebugInfo=Warning: Invalid value for the initParam classdebuginfo. Will use the default value of \"false\"
jsp.warning.checkInterval=Warning: Invalid value for the initParam checkInterval. Will use the default value of \"300\" seconds
+jsp.warning.modificationTestInterval=Warning: Invalid value for the initParam modificationTestInterval. Will use the default value of \"4000\" milliseconds
jsp.warning.development=Warning: Invalid value for the initParam development. Will use the default value of \"true\"
jsp.warning.fork=Warning: Invalid value for the initParam fork. Will use the default value of \"true\"
jsp.warning.reloading=Warning: Invalid value for the initParam reloading. Will use the default value of \"true\"
1.14 +24 -4 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/EmbeddedServletOptions.java
Index: EmbeddedServletOptions.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/EmbeddedServletOptions.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- EmbeddedServletOptions.java 2 Sep 2004 16:05:06 -0000 1.13
+++ EmbeddedServletOptions.java 4 Oct 2004 17:39:45 -0000 1.14
@@ -164,7 +164,12 @@
*/
private String javaEncoding = "UTF8";
- /*
+ /**
+ * Modification test interval.
+ */
+ public int modificationTestInterval = 4000;
+ + /**
* Is generation of X-Powered-By response header enabled/disabled?
*/
private boolean xpoweredBy;
@@ -226,6 +231,13 @@
}
/**
+ * Modification test interval.
+ */
+ public int getModificationTestInterval() {
+ return modificationTestInterval;
+ }
+ + /**
* Is Jasper being used in development mode?
*/
public boolean getDevelopment() {
@@ -450,6 +462,17 @@
}
}
+ String modificationTestInterval = config.getInitParameter("modificationTestInterval");
+ if (modificationTestInterval != null) {
+ try {
+ this.modificationTestInterval = Integer.parseInt(modificationTestInterval);
+ } catch(NumberFormatException ex) {
+ if (log.isWarnEnabled()) {
+ log.warn(Localizer.getMessage("jsp.warning.modificationTestInterval"));
+ }
+ }
+ }
+
String development = config.getInitParameter("development");
if (development != null) {
if (development.equalsIgnoreCase("true")) {
@@ -589,9 +612,6 @@
}
}
- /*
- * X-Powered-By
- */
String xpoweredBy = config.getInitParameter("xpoweredBy"); if (xpoweredBy != null) {
if (xpoweredBy.equalsIgnoreCase("true")) {
1.25 +6 -0 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Options.java
Index: Options.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Options.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- Options.java 2 Sep 2004 16:05:06 -0000 1.24
+++ Options.java 4 Oct 2004 17:39:45 -0000 1.25
@@ -164,4 +164,10 @@
* Are Text strings to be generated as char arrays?
*/
public boolean genStringAsCharArray();
+ + /**
+ * Modification test interval.
+ */
+ public int getModificationTestInterval();
+ }
1.83 +7 -0 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspC.java
Index: JspC.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspC.java,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -r1.82 -r1.83
--- JspC.java 3 Oct 2004 09:03:21 -0000 1.82
+++ JspC.java 4 Oct 2004 17:39:45 -0000 1.83
@@ -373,6 +373,13 @@
}
/**
+ * Modification test interval.
+ */
+ public int getModificationTestInterval() {
+ return 4000;
+ }
+
+ /**
* Is Jasper being used in development mode?
*/
public boolean getDevelopment() {
1.93 +2 -1 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java
Index: Compiler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -r1.92 -r1.93
--- Compiler.java 16 Aug 2004 23:48:35 -0000 1.92
+++ Compiler.java 4 Oct 2004 17:39:46 -0000 1.93
@@ -321,7 +321,8 @@
boolean outDated = false;
String jsp = ctxt.getJspFile();
- if ((jsw != null) && ((jsw.getLastModificationTest() + 2000) + if ((jsw != null) && ((jsw.getLastModificationTest() + + ctxt.getOptions().getModificationTestInterval()) > System.currentTimeMillis())) {
return false;
}
1.128 +4 -0 jakarta-tomcat-catalina/webapps/docs/changelog.xml
Index: changelog.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -r1.127 -r1.128
--- changelog.xml 4 Oct 2004 15:23:59 -0000 1.127
+++ changelog.xml 4 Oct 2004 17:39:46 -0000 1.128
@@ -179,6 +179,10 @@
<fix>
Fix cosmetic issue where extra CRLF would be inserted during each precompilation in web.xml. (remm)
</fix>
+ <update>
+ Allow configuring the interval following a compilation during which a JSP will not be checked
+ for modifications. (remm)
+ </update>
</changelog>
</subsection>
1.17 +26 -1 jakarta-tomcat-catalina/webapps/docs/jasper-howto.xml
Index: jasper-howto.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/jasper-howto.xml,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- jasper-howto.xml 18 Sep 2004 17:09:31 -0000 1.16
+++ jasper-howto.xml 4 Oct 2004 17:39:46 -0000 1.17
@@ -117,6 +117,11 @@
print statement per input line, to ease debugging?
<code>true</code> or <code>false</code>, default <code>true</code>.</li>
+<li><strong>modificationTestInterval</strong> - Checks for modification for a given
+JSP file (and all its dependent files) will be performed only once every specified amount
+of milliseconds. Setting this to -1 will cause the JSP to be checked on every access.
+Default is <code>4000</code> milliseconds.</li>
+
<li><strong>reloading</strong> - Should Jasper check for modified JSPs?
<code>true</code> or <code>false</code>, default <code>false</code>.</li>
@@ -129,10 +134,26 @@
</ul>
</p>
+<p>The Java compiler from Eclipse JDT in included as the default compiler. It is an
+advanced Java compiler which will load all dependencies from the Tomcat class loader, +which will help tremendously when compiling on large installations with tens of JARs.
+On fast servers, this will allow sub-second recompilation cycles for even large JSP +pages. This new compiler will be updated to support the Java 5 syntax as soon as
+possible.</p>
+
+<p>Apache Ant, which was used in previous Tomcat releases, can be used instead instead of +the new compiler by simply removing the <code>common/lib/jasper-compiler-jdt.jar</code> file, +and placing the <code>ant.jar</code> file from the latest Ant distribution in the +<code>common/lib</code> folder.</p>
+
</section>
<section name="Production Configuration">
+<p>The main JSP optimization which can be done is precompilation of JSPs. However,
+this might not be possible (for example, when using the jsp-property-group feature)
+or practical, in which case the configuration of the Jasper servlet becomes critical.</p>
+
<p>When using Jasper 2 in a production Tomcat server you should consider
making the following changes from the default configuration.
<ul>
@@ -140,6 +161,9 @@
pages compilation set this to <code>false</code>.</li>
<li><strong>genStrAsCharArray</strong> - To generate slightly more efficient char arrays, set this to <code>true</code>.</li>
+<li><strong>modificationTestInterval</strong> - If development has to be set to
+<code>true</code> for any reason (such as dynamic generation of JSPs), setting
+this to a high value will improve performance a lot.</li>
<li><strong>trimSpaces</strong> - To remove useless bytes from the response,
set this to <code>true</code>.</li>
</ul>
@@ -150,7 +174,8 @@
<section name="Web Application Compilation">
<p>Using Ant is the preferred way to compile web applications using JSPC. -Use the script given below to precompile a webapp:
+Use the script given below (a similar script is included in the "deployer" +download) to precompile a webapp:
</p>
<p>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to