You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2011/10/22 23:26:25 UTC
svn commit: r1187809 [4/5] - in /tomcat/trunk/webapps: ROOT/ ROOT/WEB-INF/
docs/ docs/WEB-INF/ docs/api/ docs/appdev/ docs/appdev/sample/
docs/appdev/sample/src/mypackage/ docs/architecture/
docs/architecture/startup/ docs/config/ docs/elapi/ docs/imag...
Modified: tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml (original)
+++ tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml Sat Oct 22 21:26:20 2011
@@ -35,20 +35,20 @@
<section name="Introduction">
-<p>Tomcat uses JMX MBeans as the technology for implementing
+<p>Tomcat uses JMX MBeans as the technology for implementing
manageability of Tomcat.</p>
-<p>The descriptions of JMX MBeans for Catalina are in the mbeans-descriptor.xml
+<p>The descriptions of JMX MBeans for Catalina are in the mbeans-descriptor.xml
file in each package.</p>
-<p>You will need to add MBean descriptions for your custom components
+<p>You will need to add MBean descriptions for your custom components
in order to avoid a "ManagedBean is not found" exception.</p>
</section>
<section name="Adding MBean descriptions">
-<p>You may also add MBean descriptions for custom components in
+<p>You may also add MBean descriptions for custom components in
a mbeans-descriptor.xml file, located in the same package as the class files
it describes.</p>
Modified: tomcat/trunk/webapps/docs/monitoring.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/monitoring.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/monitoring.xml (original)
+++ tomcat/trunk/webapps/docs/monitoring.xml Sat Oct 22 21:26:20 2011
@@ -38,8 +38,8 @@
<p>Monitoring is a key aspect of system administration. Looking inside a
running server, obtaining some statistics or reconfiguring some aspects of
- an application are all daily administration tasks.</p>
-
+ an application are all daily administration tasks.</p>
+
</section>
<section name="Enabling JMX Remote">
@@ -89,20 +89,20 @@ controlRole tomcat
<section name="Manage Tomcat with JMX remote Ant Tasks">
<p>To simplify JMX usage with Ant 1.6.x, a set of tasks is provided that may
- be used with antlib.</p>
+ be used with antlib.</p>
<p><b>antlib</b>Copy your catalina-ant.jar from $CATALINA_HOME/lib to $ANT_HOME/lib.</p>
<p>The following example shows the JMX Accessor usage:</p>
<table border="1">
<tr><td><p><pre>
-<project name="Catalina Ant JMX"
- xmlns:jmx="antlib:org.apache.catalina.ant.jmx"
+<project name="Catalina Ant JMX"
+ xmlns:jmx="antlib:org.apache.catalina.ant.jmx"
default="state"
basedir=".">
<property name="jmx.server.name" value="localhost" />
<property name="jmx.server.port" value="9012" />
<property name="cluster.server.address" value="192.168.1.75" />
<property name="cluster.server.port" value="9025" />
-
+
<target name="state" description="Show JMX Cluster state">
<jmx:open
host="${jmx.server.name}"
@@ -110,23 +110,23 @@ controlRole tomcat
username="controlRole"
password="tomcat"/>
<jmx:get
- name="Catalina:type=IDataSender,host=localhost,senderAddress=${cluster.server.address},senderPort=${cluster.server.port}"
+ name="Catalina:type=IDataSender,host=localhost,senderAddress=${cluster.server.address},senderPort=${cluster.server.port}"
attribute="connected"
resultproperty="IDataSender.backup.connected"
echo="false"
/>
<jmx:get
- name="Catalina:type=ClusterSender,host=localhost"
+ name="Catalina:type=ClusterSender,host=localhost"
attribute="senderObjectNames"
resultproperty="senderObjectNames"
echo="false"
/>
<!-- get current maxActiveSession from ClusterTest application
- echo it to Ant output and store at
+ echo it to Ant output and store at
property <em>clustertest.maxActiveSessions.orginal</em>
-->
<jmx:get
- name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
+ name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
attribute="maxActiveSessions"
resultproperty="clustertest.maxActiveSessions.orginal"
echo="true"
@@ -134,7 +134,7 @@ controlRole tomcat
<!-- set maxActiveSession to 100
-->
<jmx:set
- name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
+ name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
attribute="maxActiveSessions"
value="100"
type="int"
@@ -143,7 +143,7 @@ controlRole tomcat
access all session ids directly with Ant property sessions.[0..n].
-->
<jmx:invoke
- name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
+ name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
operation="listSessionIds"
resultproperty="sessions"
echo="false"
@@ -152,19 +152,19 @@ controlRole tomcat
<!-- Access session attribute <em>Hello</em> from first session.
-->
<jmx:invoke
- name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
+ name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
operation="getSessionAttribute"
resultproperty="Hello"
echo="false"
>
<arg value="${sessions.0}"/>
<arg value="Hello"/>
- </jmx:invoke>
+ </jmx:invoke>
<!-- Query for all application manager.of the server from all hosts
and bind all attributes from all found manager MBeans.
-->
<jmx:query
- name="Catalina:type=Manager,*"
+ name="Catalina:type=Manager,*"
resultproperty="manager"
echo="true"
attributebinding="true"
@@ -182,22 +182,22 @@ controlRole tomcat
manager.ClusterTest.0.activeSessions: ${manager.ClusterTest.0.activeSessions}
manager.ClusterTest.0.counterSend_EVT_SESSION_EXPIRED: ${manager.ClusterTest.0.counterSend_EVT_SESSION_EXPIRED}
manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS: ${manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS}
- </echo>
+ </echo>
</target>
-
+
</project>
</pre></p>
</td></tr>
</table>
- <p><b>import:</b> Import the JMX Accessor Project with
+ <p><b>import:</b> Import the JMX Accessor Project with
<em><import file="${CATALINA.HOME}/bin/catalina-tasks.xml" /></em> and
reference the tasks with <em>jmxOpen</em>, <em>jmxSet</em>, <em>jmxGet</em>,
<em>jmxQuery</em>, <em>jmxInvoke</em>,<em>jmxEquals</em> and <em>jmxCondition</em>. </p>
</section>
-<!-- Open #########################################################################
+<!-- Open #########################################################################
-->
<section name="JMXAccessorOpenTask - JMX open connection task">
@@ -227,7 +227,7 @@ List of Attributes<br/>
<tr>
<td>port</td>
- <td>Set the remote connection port
+ <td>Set the remote connection port
</td>
<td><code>8050</code></td>
</tr>
@@ -260,7 +260,7 @@ List of Attributes<br/>
</td>
<td><code>false</code></td>
</tr>
-
+
<tr>
<td>if</td>
<td>Only execute if a property of the given name <b>exists</b> in the current project.
@@ -285,42 +285,42 @@ Example to open a new JMX connection<br/
port="${jmx.server.port}"
/>
</source>
-</p>
+</p>
<p>
-Example to open a JMX connection from URL, with authorization and
+Example to open a JMX connection from URL, with authorization and
store at other reference <br/>
<source>
<jmx:open
url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
ref="jmx.server.9024"
username="controlRole"
- password="tomcat"
+ password="tomcat"
/>
</source>
-</p>
+</p>
<p>
-Example to open a JMX connection from URL, with authorization and
-store at other reference, but only when property <em>jmx.if</em> exists and
+Example to open a JMX connection from URL, with authorization and
+store at other reference, but only when property <em>jmx.if</em> exists and
<em>jmx.unless</em> not exists<br/>
<source>
<jmx:open
url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
ref="jmx.server.9024"
username="controlRole"
- password="tomcat"
- if="jmx.if"
- unless="jmx.unless"
+ password="tomcat"
+ if="jmx.if"
+ unless="jmx.unless"
/>
</source>
-</p>
-<p><b>Note</b>: All properties from <em>jmxOpen</em> task also exists at all
-other tasks and conditions.
+</p>
+<p><b>Note</b>: All properties from <em>jmxOpen</em> task also exists at all
+other tasks and conditions.
</p>
</section>
-<!-- Get #########################################################################
+<!-- Get #########################################################################
-->
<section name="JMXAccessorGetTask: get attribute value Ant task">
@@ -371,7 +371,7 @@ List of Attributes<br/>
<tr>
<td>delimiter</td>
- <td>Split result with delimiter (java.util.StringTokenizier)
+ <td>Split result with delimiter (java.util.StringTokenizier)
and use resultproperty as prefix to store tokens.
</td>
<td></td>
@@ -379,8 +379,8 @@ List of Attributes<br/>
<tr>
<td>separatearrayresults</td>
- <td>When return value is an array, save result as property list
- (<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
+ <td>When return value is an array, save result as property list
+ (<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
</td>
<td><code>true</code></td>
</tr>
@@ -391,17 +391,17 @@ List of Attributes<br/>
Example to get remote MBean attribute from default JMX connection <br/>
<source>
<jmx:get
- name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
+ name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
attribute="maxActiveSessions"
resultproperty="servlets-examples.maxActiveSessions"
/>
</source>
-</p>
+</p>
<p>
Example to get and result array and split it at separate properties<br/>
<source>
<jmx:get
- name="Catalina:type=ClusterSender,host=localhost"
+ name="Catalina:type=ClusterSender,host=localhost"
attribute="senderObjectNames"
resultproperty="senderObjectNames"
/>
@@ -411,7 +411,7 @@ Access the senderObjectNames properties
${senderObjectNames.length} give the number of returned sender list.
${senderObjectNames.[0..N]} found all sender object names
</source>
-</p>
+</p>
<p>
Example to get IDataSender attribute connected only when cluster is configured.
@@ -422,16 +422,16 @@ Example to get IDataSender attribute con
resultproperty="cluster"
/>
<jmx:get
- name="Catalina:type=IDataSender,host=${tomcat.application.host},senderAddress=${cluster.backup.address},senderPort=${cluster.backup.port}"
+ name="Catalina:type=IDataSender,host=${tomcat.application.host},senderAddress=${cluster.backup.address},senderPort=${cluster.backup.port}"
attribute="connected"
resultproperty="datasender.connected"
if="cluster.0.name" />
</source>
-</p>
+</p>
</section>
-<!-- Set #########################################################################
+<!-- Set #########################################################################
-->
<section name="JMXAccessorSetTask: set attribute value Ant task">
@@ -461,7 +461,7 @@ List of Attributes<br/>
<tr>
<td>value</td>
- <td>value that set to attribute
+ <td>value that set to attribute
</td>
<td></td>
</tr>
@@ -493,17 +493,17 @@ List of Attributes<br/>
Example to set remote MBean attribute value<br/>
<source>
<jmx:set
- name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
+ name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
attribute="maxActiveSessions"
value="500"
type="int"
/>
</source>
-</p>
+</p>
</section>
-<!-- Invoke #########################################################################
+<!-- Invoke #########################################################################
-->
<section name="JMXAccessorInvokeTask: invoke MBean operation Ant task">
@@ -526,7 +526,7 @@ List of Attributes<br/>
<tr>
<td>operation</td>
- <td>Existing MBean operation (see Tomcat
+ <td>Existing MBean operation (see Tomcat
<a href="funcspecs/fs-admin-opers.html">funcspecs/fs-admin-opers.html</a>).
</td>
<td></td>
@@ -555,7 +555,7 @@ List of Attributes<br/>
<tr>
<td>delimiter</td>
- <td>Split result with delimiter (java.util.StringTokenizier)
+ <td>Split result with delimiter (java.util.StringTokenizier)
and use resultproperty as prefix to store tokens.
</td>
<td></td>
@@ -563,8 +563,8 @@ List of Attributes<br/>
<tr>
<td>separatearrayresults</td>
- <td>When return value is an array, save result as property list
- (<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
+ <td>When return value is an array, save result as property list
+ (<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
</td>
<td><code>true</code></td>
</tr>
@@ -575,30 +575,30 @@ List of Attributes<br/>
stop an application <br/>
<source>
<jmx:invoke
- name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
+ name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
operation="stop"/>
</source>
Now you can find the sessionid at <em>${sessions.[0..N}</em> properties and access the count
with ${sessions.length} property.
-</p>
+</p>
<p>
Example to get all sessionids <br/>
<source>
<jmx:invoke
- name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
+ name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
operation="listSessionIds"
resultproperty="sessions"
- delimiter=" "
+ delimiter=" "
/>
</source>
Now you can find the sessionid at <em>${sessions.[0..N}</em> properties and access the count
with ${sessions.length} property.
-</p>
+</p>
<p>
Example to get remote MBean session attribute from session ${sessionid.0}<br/>
<source>
<jmx:invoke
- name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
+ name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
operation="getSessionAttribute"
resultproperty="hello">
<arg value="${sessionid.0}"/>
@@ -610,7 +610,7 @@ Example to get remote MBean session attr
Example to create a new access logger valve at vhost <em>localhost</em>
<source>
<jmx:invoke
- name="Catalina:type=MBeanFactory"
+ name="Catalina:type=MBeanFactory"
operation="createAccessLoggerValve"
resultproperty="accessLoggerObjectName"
>
@@ -619,11 +619,11 @@ Example to create a new access logger va
</source>
Now you can find new MBean with name stored at <em>${accessLoggerObjectName}</em>
property.
-</p>
+</p>
</section>
-<!-- Query #########################################################################
+<!-- Query #########################################################################
-->
<section name="JMXAccessorQueryTask: query MBean Ant task">
@@ -674,7 +674,7 @@ List of Attributes<br/>
<tr>
<td>delimiter</td>
- <td>Split result with delimiter (java.util.StringTokenizier)
+ <td>Split result with delimiter (java.util.StringTokenizier)
and use resultproperty as prefix to store tokens.
</td>
<td></td>
@@ -682,8 +682,8 @@ List of Attributes<br/>
<tr>
<td>separatearrayresults</td>
- <td>When return value is an array, save result as property list
- (<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
+ <td>When return value is an array, save result as property list
+ (<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
</td>
<td><code>true</code></td>
</tr>
@@ -694,29 +694,29 @@ List of Attributes<br/>
Get all Manager ObjectNames from all services and Hosts <br/>
<source>
<jmx:query
- name="Catalina:type=Manager,*
+ name="Catalina:type=Manager,*
resultproperty="manager" />
</source>
-Now you can find the Session Manager at <em>${manager.[0..N].name}</em>
+Now you can find the Session Manager at <em>${manager.[0..N].name}</em>
properties and access the result object counter with ${manager.length} property.
-</p>
+</p>
<p>
Example to get the Manager from <em>servlet-examples</em> application an bind all MBean properties<br/>
<source>
<jmx:query
- name="Catalina:type=Manager,context=/servlet-examples,host=localhost*"
+ name="Catalina:type=Manager,context=/servlet-examples,host=localhost*"
attributebinding="true"
resultproperty="manager.servletExamples" />
</source>
Now you can find the manager at <em>${manager.servletExamples.0.name}</em> property
and can access all properties from this manager with <em>${manager.servletExamples.0.[manager attribute names]</em>}.
The result object counter from MBeans is stored ad ${manager.length} property.
-</p>
+</p>
<p>
Example to get all MBeans from a server and store inside an external XML property file<br/>
<source>
-<project name="jmx.query"
+<project name="jmx.query"
xmlns:jmx="antlib:org.apache.catalina.ant.jmx"
default="query-all" basedir=".">
<property name="jmx.host" value="localhost"/>
@@ -726,23 +726,23 @@ Example to get all MBeans from a server
<target name="query-all" description="Query all MBeans of a server">
<!-- Configure connection -->
-<jmx:open
+<jmx:open
host="${jmx.host}"
port="${jmx.port}"
ref="jmx.server"
username="${jmx.username}"
password="${jmx.password}"/>
<!-- Query MBean list -->
-<jmx:query
+<jmx:query
name="*:*"
resultproperty="mbeans"
attributebinding="false"/>
-
+
<echoproperties
destfile="mbeans.properties"
prefix="mbeans."
format="xml"/>
-
+
<!-- Print results -->
<echo
message="Number of MBeans in server ${jmx.host}:${jmx.port} is ${mbeans.length}"/>
@@ -750,11 +750,11 @@ Example to get all MBeans from a server
</project>
</source>
Now you can find all MBeans inside the file <em>mbeans.properties</em>.
-</p>
+</p>
</section>
-<!-- Create #########################################################################
+<!-- Create #########################################################################
-->
<section name="JMXAccessorCreateTask: remote create MBean Ant task">
@@ -786,7 +786,7 @@ List of Attributes<br/>
<td>classLoader</td>
<td>ObjectName of server or web application classloader <br/>
( <em>Catalina:type=ServerClassLoader,name=[server,common,shared]</em> or<br/>
- <em>Catalina:type=WebappClassLoader,context=/myapps,host=localhost</em>)
+ <em>Catalina:type=WebappClassLoader,context=/myapps,host=localhost</em>)
</td>
<td></td>
</tr>
@@ -814,11 +814,11 @@ Example to create remote MBean<br/>
ref="${jmx.reference}"
name="Catalina:type=MBeanFactory"
className="org.apache.commons.modeler.BaseModelMBean"
- classLoader="Catalina:type=ServerClassLoader,name=server">
+ classLoader="Catalina:type=ServerClassLoader,name=server">
<Arg value="org.apache.catalina.mbeans.MBeanFactory" />
- </jmx:create>
+ </jmx:create>
</source>
-</p>
+</p>
<p>
<b>Warning</b>: Many Tomcat MBeans can't be linked to their parent once<br/>
created. The Valve, Cluster and Realm MBeans are not automatically<br/>
@@ -828,7 +828,7 @@ Example to create remote MBean<br/>
</section>
-<!-- Unregister #########################################################################
+<!-- Unregister #########################################################################
-->
<section name="JMXAccessorUnregisterTask: remote unregister MBean Ant task">
@@ -869,10 +869,10 @@ List of Attributes<br/>
Example to unregister remote MBean<br/>
<source>
<jmx:unregister
- name="Catalina:type=MBeanFactory"
+ name="Catalina:type=MBeanFactory"
/>
</source>
-</p>
+</p>
<p>
<b>Warning</b>: A lot of Tomcat MBeans can't be unregister.<br/>
The MBeans are not unlinked from their parent. Use <em>MBeanFacrory</em><br/>
@@ -881,7 +881,7 @@ Example to unregister remote MBean<br/>
</section>
-<!-- condition #########################################################################
+<!-- condition #########################################################################
-->
<section name="JMXAccessorCondition: express condition">
@@ -911,7 +911,7 @@ List of Attributes<br/>
<tr>
<td>port</td>
- <td>Set the remote connection port
+ <td>Set the remote connection port
</td>
<td><code>8050</code></td>
</tr>
@@ -982,7 +982,7 @@ List of Attributes<br/>
<tr>
<td>operation</td>
- <td> express one
+ <td> express one
<ul>
<li>== equals</li>
<li>!= not equals</li>
@@ -990,7 +990,7 @@ List of Attributes<br/>
<li>>= greater than or equals (&gt;=)</li>
<li>< lesser than (&lt;)</li>
<li><= lesser than or equals (&lt;=)</li>
- </ul>
+ </ul>
</td>
<td><code>==</code></td>
</tr>
@@ -1006,8 +1006,8 @@ Wait for server connection and that clus
<socket server="${server.name}" port="${server.port}"/>
<http url="${url}"/>
<jmx:condition
- operation="=="
- host="localhost"
+ operation="=="
+ host="localhost"
port="9014"
username="controlRole"
password="tomcat"
@@ -1021,11 +1021,11 @@ Wait for server connection and that clus
<echo message="Server ${url} alive" />
</target>
</source>
-</p>
+</p>
</section>
-<!-- Equals #########################################################################
+<!-- Equals #########################################################################
-->
<section name="JMXAccessorEqualsCondition: equals MBean Ant condition">
@@ -1055,7 +1055,7 @@ List of Attributes<br/>
<tr>
<td>port</td>
- <td>Set the remote connection port
+ <td>Set the remote connection port
</td>
<td><code>8050</code></td>
</tr>
@@ -1107,8 +1107,8 @@ Wait for server connection and that clus
<and>
<socket server="${server.name}" port="${server.port}"/>
<http url="${url}"/>
- <jmx:equals
- host="localhost"
+ <jmx:equals
+ host="localhost"
port="9014"
username="controlRole"
password="tomcat"
@@ -1122,7 +1122,7 @@ Wait for server connection and that clus
<echo message="Server ${url} alive" />
</target>
</source>
-</p>
+</p>
</section>
Modified: tomcat/trunk/webapps/docs/project.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/project.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/project.xml (original)
+++ tomcat/trunk/webapps/docs/project.xml Sat Oct 22 21:26:20 2011
@@ -56,7 +56,7 @@
<item name="18) Clustering" href="cluster-howto.html"/>
<item name="19) Load Balancer" href="balancer-howto.html"/>
<item name="20) Connectors" href="connectors.html"/>
- <item name="21) Monitoring and Management"
+ <item name="21) Monitoring and Management"
href="monitoring.html"/>
<item name="22) Logging" href="logging.html"/>
<item name="23) APR/Native" href="apr.html"/>
@@ -68,9 +68,9 @@
<item name="28) Security Considerations"
href="security-howto.html"/>
<item name="29) Windows Service" href="windows-service-howto.html"/>
- <item name="30) Windows Authentication"
+ <item name="30) Windows Authentication"
href="windows-auth-howto.html"/>
- <item name="31) Tomcat's JDBC Pool"
+ <item name="31) Tomcat's JDBC Pool"
href="jdbc-pool.html"/>
</menu>
@@ -81,7 +81,7 @@
<item name="Servlet Javadocs" href="servletapi/index.html"/>
<item name="JSP 2.2 Javadocs" href="jspapi/index.html"/>
<item name="EL 2.2 Javadocs" href="elapi/index.html"/>
- <item name="JK 1.2 Documentation"
+ <item name="JK 1.2 Documentation"
href="http://tomcat.apache.org/connectors-doc/"/>
</menu>
Modified: tomcat/trunk/webapps/docs/proxy-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/proxy-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/proxy-howto.xml (original)
+++ tomcat/trunk/webapps/docs/proxy-howto.xml Sat Oct 22 21:26:20 2011
@@ -137,7 +137,7 @@ ProxyPassReverse /myapp http://localho
<p>When requests are proxied in this manner, <strong>all</strong> requests
for the configured web applications will be processed by Tomcat (including
requests for static content). You can improve performance by using the
-<code>mod_jk</code> web connector instead of <code>mod_proxy</code>.
+<code>mod_jk</code> web connector instead of <code>mod_proxy</code>.
<code>mod_jk</code> can be configured so that the web server serves static
content that is not processed by filters or security constraints defined
within the web application's deployment descriptor
Modified: tomcat/trunk/webapps/docs/realm-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/realm-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/realm-howto.xml (original)
+++ tomcat/trunk/webapps/docs/realm-howto.xml Sat Oct 22 21:26:20 2011
@@ -128,7 +128,7 @@ configuration file, that looks something
... other attributes for this implementation .../>
</source>
-<p>The <code><Realm></code> element can be nested inside any one of
+<p>The <code><Realm></code> element can be nested inside any one of
of the following <code>Container</code> elements. The location of the
Realm element has a direct impact on the "scope" of that Realm
(i.e. which web applications will share the same authentication information):
@@ -204,7 +204,7 @@ techniques are supported:</p>
<p>If using digested passwords with DIGEST authentication, the cleartext used
to generate the digest is different. In the examples above
- <code>{cleartext-password}</code> must be replaced with
+ <code>{cleartext-password}</code> must be replaced with
<code>{username}:{realm}:{cleartext-password}</code>. For example, in a
development environment this might take the form
<code>testUser:Authentication required:testPassword</code>. The value for
@@ -402,7 +402,7 @@ as your database structure conforms to t
<li>Password to be recognized by Tomcat when the user logs in.
This value may in cleartext or digested - see below for more
information.</li>
- </ul></li>
+ </ul></li>
<li>There must be a table, referenced below as the <em>user roles</em> table,
that contains one row for every valid role that is assigned to a
particular user. It is legal for a user to have zero, one, or more than
@@ -417,9 +417,9 @@ as your database structure conforms to t
</ul>
<h3>Quick Start</h3>
-
+
<p>To set up Tomcat to use DataSourceRealm, you will need to follow these steps:</p>
-<ol>
+<ol>
<li>If you have not yet done so, create tables and columns in your database
that conform to the requirements described above.</li>
<li>Configure a database username and password for use by Tomcat, that has
@@ -1038,10 +1038,10 @@ integration with the CMA as implemented
you will need to follow these steps:</p>
<ol>
<li>Write your own LoginModule, User and Role classes based
-on JAAS (see
+on JAAS (see
<a href="http://download.oracle.com/javase/1.4.2/docs/guide/security/jaas/tutorials/GeneralAcnOnly.html">the
-JAAS Authentication Tutorial</a> and
-<a href="http://download.oracle.com/javase/1.4.2/docs/guide/security/jaas/JAASLMDevGuide.html">the JAAS Login Module
+JAAS Authentication Tutorial</a> and
+<a href="http://download.oracle.com/javase/1.4.2/docs/guide/security/jaas/JAASLMDevGuide.html">the JAAS Login Module
Developer's Guide</a>) to be managed by the JAAS Login
Context (<code>javax.security.auth.login.LoginContext</code>)
When developing your LoginModule, note that JAASRealm's built-in <code>CallbackHandler</code>
@@ -1068,7 +1068,7 @@ the resources you want to protect</li>
</ol>
<h3>Realm Element Attributes</h3>
<p>To configure JAASRealm as for step 6 above, you create
-a <code><Realm></code> element and nest it in your
+a <code><Realm></code> element and nest it in your
<code>$CATALINA_BASE/conf/server.xml</code>
file within your <code><Engine></code> node. The attributes for the
JAASRealm are defined in the <a href="config/realm.html">Realm</a>
@@ -1079,25 +1079,25 @@ configuration documentation.</p>
<p>Here is an example of how your server.xml snippet should look.</p>
<source>
-<Realm className="org.apache.catalina.realm.JAASRealm"
- appName="MyFooRealm"
- userClassNames="org.foobar.realm.FooUser"
+<Realm className="org.apache.catalina.realm.JAASRealm"
+ appName="MyFooRealm"
+ userClassNames="org.foobar.realm.FooUser"
roleClassNames="org.foobar.realm.FooRole"/>
</source>
-<p>It is the responsibility of your login module to create and save User and
-Role objects representing Principals for the user
-(<code>javax.security.auth.Subject</code>). If your login module doesn't
-create a user object but also doesn't throw a login exception, then the
-Tomcat CMA will break and you will be left at the
-http://localhost:8080/myapp/j_security_check URI or at some other
+<p>It is the responsibility of your login module to create and save User and
+Role objects representing Principals for the user
+(<code>javax.security.auth.Subject</code>). If your login module doesn't
+create a user object but also doesn't throw a login exception, then the
+Tomcat CMA will break and you will be left at the
+http://localhost:8080/myapp/j_security_check URI or at some other
unspecified location.</p>
<p>The flexibility of the JAAS approach is two-fold: </p>
<ul>
<li>you can carry out whatever processing you require behind
the scenes in your own login module.</li>
- <li>you can plug in a completely different LoginModule by changing the configuration
+ <li>you can plug in a completely different LoginModule by changing the configuration
and restarting the server, without any code changes to your application.</li>
</ul>
@@ -1118,7 +1118,7 @@ and restarting the server, without any c
<li>As with other <code>Realm</code> implementations, digested passwords
are supported if the <code><Realm></code> element in <code>server.xml</code>
contains a <code>digest</code> attribute; JAASRealm's <code>CallbackHandler</code>
- will digest the password prior to passing it back to the <code>LoginModule</code></li>
+ will digest the password prior to passing it back to the <code>LoginModule</code></li>
</ul>
</subsection>
@@ -1149,7 +1149,7 @@ and restarting the server, without any c
file within your <code><Engine></code> or <code><Host></code>.
You can also nest inside a <code><Context></code> node in a
<code>context.xml</code> file.</p>
-
+
<h3>Example</h3>
<p>Here is an example of how your server.xml snippet should look to use a
@@ -1176,10 +1176,10 @@ UserDatabase Realm and a DataSource Real
<code>Realm</code> interface that extends the CombinedRealm to provide lock
out functionality to provide a user lock out mechanism if there are too many
failed authentication attempts in a given period of time.</p>
-
+
<p>To ensure correct operation, there is a reasonable degree of
synchronisation in this Realm.</p>
-
+
<p>This Realm does not require modification to the underlying Realms or the
associated user storage mecahisms. It achieves this by recording all failed
logins, including those for users that do not exist. To prevent a DOS by
@@ -1201,7 +1201,7 @@ UserDatabase Realm and a DataSource Real
<code>context.xml</code> file. The attributes for the
LockOutRealm are defined in the <a href="config/realm.html">Realm</a>
configuration documentation.</p>
-
+
<h3>Example</h3>
<p>Here is an example of how your server.xml snippet should look to add lock out
Modified: tomcat/trunk/webapps/docs/security-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/security-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/security-howto.xml (original)
+++ tomcat/trunk/webapps/docs/security-howto.xml Sat Oct 22 21:26:20 2011
@@ -40,7 +40,7 @@
expected impact of changing those options. The intention is to provide a
list of configuration options that should be considered when assessing the
security of a Tomcat installation.</p>
-
+
<p><strong>Note</strong>: Reading this page is not a substitute for reading
and understanding the detailed configuration documentation. Fuller
descriptions of these attributes may be found in the relevant documentation
@@ -70,14 +70,14 @@
and outgoing connections to only those connections you expect to be
present.</p>
</section>
-
+
<section name="Default web applications">
<p>Tomcat ships with a number of web applications by default.
Vulnerabilities have been discovered in these applications in the past.
Applications that are not required should be removed so the system will not
be at risk if another vulnerability is discovered.</p>
</section>
-
+
<section name="Security manager">
<p>Enabling the security manager causes web applications to be run in a
sandbox, significantly limiting a web application's ability to perform
@@ -97,12 +97,12 @@
application is deployed to a separate Tomcat instance (and ideally separate
hosts) to reduce the ability of a malicious web application impacting the
availability of other applications.</p>
-
+
<p>Tomcat is tested with the security manager enabled; but the majority of
Tomcat users do not run with a security manager, so Tomcat is not as well
user-tested in this configuration. There have been, and continue to be,
bugs reported that are triggered by running under a security manager.</p>
-
+
<p>The restrictions imposed by a security manager are likely to break most
applications if the security manager is enabled. The security manager should
not be used without extensive testing. Ideally, the use of a security
@@ -120,47 +120,47 @@
<p>If a component type is not listed, then there are no settings for that
type that directly impact security.</p>
</subsection>
-
+
<subsection name="Server">
<p>Setting the <strong>port</strong> attribute to <code>-1</code> disables
the shutdown port.</p>
<p>If the shutdown port is not disabled, a strong password should be
configured for <strong>shutdown</strong>.</p>
</subsection>
-
+
<subsection name="Listeners">
<p>The APR Lifecycle Listener is not stable if compiled on Solaris using
gcc. If using the APR/native connector on Solaris, compile it with the
Sun Studio compiler.</p>
-
- <p>The Security Listener should be enabled and configured as appropriate.
+
+ <p>The Security Listener should be enabled and configured as appropriate.
</p>
</subsection>
-
+
<subsection name="Connectors">
<p>By default, an HTTP and an AJP connector are configured. Connectors
that will not be used should be removed from server.xml.</p>
-
+
<p>The <strong>address</strong> attribute may be used to control which IP
address the connector listens on for connections. By default, the
connector listens on all configured IP addresses.</p>
-
+
<p>The <strong>allowTrace</strong> attribute may be used to enable TRACE
requests which can be useful for debugging. Due to the way some browsers
handle the response from a TRACE request (which exposes the browser to an
XSS attack), support for TRACE requests is disabled by default.</p>
-
+
<p>The <strong>maxPostSize</strong> attribute controls the maximum size
of a POST request that will be parsed for parameters. The parameters are
cached for the duration of the request so this is limited to 2MB by
default to reduce exposure to a DOS attack.</p>
-
+
<p>The <strong>maxSavePostSize</strong> attribute controls the saving of
POST requests during FORM and CLIENT-CERT authentication. The parameters
are cached for the duration of the authentication (which may be many
minutes) so this is limited to 4KB by default to reduce exposure to a DOS
attack.</p>
-
+
<p>The <strong>xpoweredBy</strong> attribute controls whether or not the
X-Powered-By HTTP header is sent with each request. If sent, the value of
the header contains the Servlet and JSP specification versions, the full
@@ -168,7 +168,7 @@
the version of the JVM. This header is disabled by default. This header
can provide useful information to both legitimate clients and attackers.
</p>
-
+
<p>The <strong>server</strong> attribute controls the value of the Server
HTTP header. The default value of this header for Tomcat 4.1.x, 5.0.x,
5.5.x, 6.0.x and 7.0.x is Apache-Coyote/1.1. This header can provide
@@ -186,18 +186,18 @@
connectors to pass secure and non-secure requests to Tomcat. If the
proxy uses AJP then the SSL attributes of the client connection are
passed via the AJP protocol and separate connectors are not needed.</p>
-
+
<p>The <strong>ciphers</strong> attribute controls the ciphers used for
SSL connections. By default, the default ciphers for the JVM will be used.
This usually means that the weak export grade ciphers will be included in
the list of available ciphers. Secure environments will normally want to
configure a more limited set of ciphers.</p>
-
+
<p>The <strong>tomcatAuthentication</strong> attribute is used with the
AJP connectors to determine if Tomcat should authenticate the user or if
authentication can be delegated to the reverse proxy that will then pass
the authenticated username to Tomcat as part of the AJP protocol.</p>
-
+
<p>The <strong>allowUnsafeLegacyRenegotiation</strong> attribute provides
a workaround for
<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555">
@@ -208,7 +208,7 @@
<a href="http://tomcat.apache.org/security-7.html">Tomcat 7 security
page</a>.</p>
</subsection>
-
+
<subsection name="Host">
<p>The host element controls deployment. Automatic deployment allows for
simpler management but also makes it easier for an attacker to deploy a
@@ -217,19 +217,19 @@
attributes. If both are <code>false</code>, only Contexts defined in
server.xml will be deployed and any changes will require a Tomcat restart.
</p>
-
+
<p>In a hosted environment where web applications may not be trusted, set
the <strong>deployXml</strong> attribute to false to ignore any
context.xml packaged with the web application that may try to assigned
- increased privileges to the web application. </p>
+ increased privileges to the web application. </p>
</subsection>
-
+
<subsection name="Context">
<p>The <strong>crossContext</strong> attribute controls if a context is
allowed to access the resources of another context. It is
<code>false</code> by default and should only be changed for trusted web
applications.</p>
-
+
<p>The <strong>privileged</strong> attribute controls if a context is
allowed to use container provided servlets like the Manager servlet. It is
<code>false</code> by default and should only be changed for trusted web
@@ -244,23 +244,23 @@
security measures and allow, among other things, direct access to the
WEB-INF directory.</p>
</subsection>
-
+
<subsection name="Valves">
<p>It is strongly recommended that an AccessLogValve is configured. The
default Tomcat configuration includes an AccessLogValve. These are
normally configured per host but may also be configured per engine or per
context as required.</p>
-
+
<p>Any administrative application should be protected by a
RemoteAddressValve. (Note that this Valve is also available as a Filter.)
The <strong>allow</strong> attribute should be used to limit access to a
set of known trusted hosts.</p>
-
+
<p>The default ErrorReportValve includes the Tomcat version number in the
response sent to clients. To avoid this, custom error handling can be
configured within each web application. Alternatively, the version number
- can be changed by creating the file
- CATALINA_HOME/lib/org/apache/catalina/util/ServerInfo.properties with
+ can be changed by creating the file
+ CATALINA_HOME/lib/org/apache/catalina/util/ServerInfo.properties with
content as follows:</p>
<source>
server.info=Apache Tomcat/7.0.x
@@ -269,62 +269,62 @@ server.info=Apache Tomcat/7.0.x
number reported in some of the management tools and may make it harder to
determine the real version installed. The CATALINA_HOME/bin/version.bat|sh
script will still report the version number.</p>
-
+
<p>The default ErrorReportValve can display stack traces and/or JSP
source code to clients when an error occurs. To avoid this, custom error
handling can be configured within each web application.</p>
</subsection>
-
+
<subsection name="Realms">
<p>The MemoryRealm is not intended for production use as any changes to
tomcat-users.xml require a restart of Tomcat to take effect.</p>
-
+
<p>The JDBCRealm is not recommended for production use as it is single
threaded for all authentication and authorization options. Use the
DataSourceRealm instead.</p>
-
+
<p>The UserDatabaseRealm is not intended for large-scale installations. It
is intended for small-scale, relatively static environments.</p>
-
+
<p>The JAASRealm is not widely used and therefore the code is not as
mature as the other realms. Additional testing is recommended before using
this realm.</p>
-
+
<p>By default, the realms do not implement any form of account lock-out.
This means that brute force attacks can be successful. To prevent a brute
force attack, the chosen realm should be wrapped in a LockOutRealm.</p>
</subsection>
-
+
<subsection name="Manager">
<p>The manager component is used to generate session IDs.</p>
-
+
<p>The default <strong>entropy</strong> value has been shown to generate predictable values
under certain conditions. For more secure session generation, this should
be set to a long string. This is done automatically if the APR/native
library is installed; a random value will be obtained from the APR/native
library.</p>
-
+
<p>The class used to generate random session IDs may be changed with
the <strong>randomClass</strong> attribute.</p>
-
+
<p>The length of the session ID may be changed with the
<strong>sessionIdLength</strong> attribute.</p>
</subsection>
</section>
-
+
<section name="System Properties">
<p>Setting <strong>org.apache.catalina.connector.RECYCLE_FACADES</strong>
system property to <code>true</code> will cause a new facade object to be
created for each request. This reduces the chances of a bug in an
application exposing data from one request to another.</p>
-
+
<p>The <strong>
org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH</strong> and
<strong>org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH</strong>
system properties allow non-standard parsing of the request URI. Using
these options when behind a reverse proxy may enable an attacker to bypass
any security constraints enforced by the proxy.</p>
-
+
<p>The <strong>
org.apache.catalina.connector.Response.ENFORCE_ENCODING_IN_GET_WRITER
</strong> system property has security implications if disabled. Many user
@@ -334,26 +334,26 @@ server.info=Apache Tomcat/7.0.x
that are safe for ISO-8859-1 but trigger an XSS vulnerability if interpreted
as UTF-7.</p>
</section>
-
+
<section name="CATALINA_BASE/conf/web.xml">
<p>The DefaultServlet is configured with <strong>readonly</strong> set to
<code>true</code>. Changing this to <code>false</code> allows clients to
delete or modify static resources on the server and to upload new
resources. This should not normally be changed without requiring
authentication.</p>
-
+
<p>The DefaultServlet is configured with <strong>listings</strong> set to
<code>false</code>. This isn't because allowing directory listings is
considered unsafe but because generating listings of directories with
thousands of files can consume significant CPU leading to a DOS attack.
</p>
</section>
-
+
<section name="General">
<p>BASIC and FORM authentication pass user names and passwords in clear
text. Web applications using these authentication mechanisms with clients
connecting over untrusted networks should use SSL.</p>
-
+
<p>The session cookie for a session with an authenticated user are nearly
as useful as the user's password to an attacker and in nearly all
circumstances should be afforded the same level of protection as the
Modified: tomcat/trunk/webapps/docs/security-manager-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/security-manager-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/security-manager-howto.xml (original)
+++ tomcat/trunk/webapps/docs/security-manager-howto.xml Sat Oct 22 21:26:20 2011
@@ -58,10 +58,10 @@
<p><strong>WARNING</strong> - A security audit
have been conducted using the Tomcat codebase. Most of the critical
- package have been protected and a new security package protection mechanism
- has been implemented. Still, make sure that you are satisfied with your SecurityManager
- configuration before allowing untrusted users to publish web applications,
- JSPs, servlets, beans, or tag libraries. <strong>However, running with a
+ package have been protected and a new security package protection mechanism
+ has been implemented. Still, make sure that you are satisfied with your SecurityManager
+ configuration before allowing untrusted users to publish web applications,
+ JSPs, servlets, beans, or tag libraries. <strong>However, running with a
SecurityManager is definitely better than running without one.</strong></p>
</section>
@@ -134,7 +134,7 @@ permission java.io.FilePermission
permission java.io.FilePermission
"** application working directory**/-", "read,write,delete";
</source>
- <p>Where **your application context** equals the folder (or WAR file) under which
+ <p>Where **your application context** equals the folder (or WAR file) under which
your application has been deployed and **application working directory** is the
temporary directory provided to your application as required by the
Servlet Specification.</p>
@@ -201,17 +201,17 @@ $CATALINA_HOME/bin/catalina.sh start -se
internal package are protected againts package definition and access. See
<a href="http://java.sun.com/security/seccodeguide.html">
http://java.sun.com/security/seccodeguide.html</a>
- for more information.</p>
+ for more information.</p>
+
-
- <p><strong>WARNING</strong>: Be aware that removing the default package protection
+ <p><strong>WARNING</strong>: Be aware that removing the default package protection
could possibly open a security hole</p>
<h3>The Default Properties File</h3>
<p>The default <code>$CATALINA_BASE/conf/catalina.properties</code> file
looks like this:</p>
-<source>
+<source>
#
# List of comma-separated packages that start with or equal this string
# will cause a security exception to be thrown when
Modified: tomcat/trunk/webapps/docs/servletapi/index.html
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/servletapi/index.html?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/servletapi/index.html (original)
+++ tomcat/trunk/webapps/docs/servletapi/index.html Sat Oct 22 21:26:20 2011
@@ -23,10 +23,10 @@
<body>
-The Servlet Javadoc is not installed by default. Download and install
+The Servlet Javadoc is not installed by default. Download and install
the "fulldocs" package to get it.
-You can also access the javadoc online in the Tomcat
+You can also access the javadoc online in the Tomcat
<a href="http://tomcat.apache.org/tomcat-@VERSION_MAJOR_MINOR@-doc/">
documentation bundle</a>.
Modified: tomcat/trunk/webapps/docs/setup.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/setup.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/setup.xml (original)
+++ tomcat/trunk/webapps/docs/setup.xml Sat Oct 22 21:26:20 2011
@@ -37,7 +37,7 @@
<p>
This document introduces several ways to set up Tomcat for running
on different platforms. Please note that some advanced setup issues
- are not covered here: the full distribution (ZIP file or tarball)
+ are not covered here: the full distribution (ZIP file or tarball)
includes a file called
RUNNING.txt which discusses these issues. We encourage you to refer
to it if the information below does not answer some of your questions.
@@ -47,14 +47,14 @@
<section name="Windows">
<p>
- Installing Tomcat on Windows can be done easily using the Windows
+ Installing Tomcat on Windows can be done easily using the Windows
installer. Its interface and functionality is similar to other wizard
based installers, with only a few items of interest.
</p>
<p>
<ul>
- <li><strong>Installation as a service</strong>: Tomcat will be
+ <li><strong>Installation as a service</strong>: Tomcat will be
installed as a Windows service no matter what setting is selected.
Using the checkbox on the component page sets the service as "auto"
startup, so that Tomcat is automatically started when Windows
@@ -76,19 +76,19 @@
<li>Refer to the
<a href="windows-service-howto.html">Windows Service HOW-TO</a>
for information on how to manage Tomcat as a Windows service.
- </li>
+ </li>
</ul>
</p>
- <p>The installer will create shortcuts allowing starting and configuring
- Tomcat. It is important to note that the Tomcat administration web
+ <p>The installer will create shortcuts allowing starting and configuring
+ Tomcat. It is important to note that the Tomcat administration web
application can only be used when Tomcat is running.</p>
</section>
<section name="Unix daemon">
- <p>Tomcat can be run as a daemon using the jsvc tool from the
+ <p>Tomcat can be run as a daemon using the jsvc tool from the
commons-daemon project. Source tarballs for jsvc are included with the
Tomcat binaries, and need to be compiled. Building jsvc requires
a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.</p>
@@ -101,10 +101,10 @@
<p>Using the following commands should result in a compiled jsvc binary,
located in the <code>$CATALINA_HOME/bin</code> folder. This assumes
- that GNU TAR is used, and that <code>CATALINA_HOME</code> is an
- environment variable pointing to the base path of the Tomcat
+ that GNU TAR is used, and that <code>CATALINA_HOME</code> is an
+ environment variable pointing to the base path of the Tomcat
installation.</p>
-
+
<p>Please note that you should use the GNU make (gmake) instead of
the native BSD make on FreeBSD systems.</p>
@@ -131,15 +131,15 @@
to using a server VM rather than a client VM. This has been observed on
OSX.</p>
- <p>jsvc has other useful parameters, such as <code>-user</code> which
+ <p>jsvc has other useful parameters, such as <code>-user</code> which
causes it to switch to another user after the daemon initialization is
complete. This allows, for example, running Tomcat as a non privileged
user while still being able to use privileged ports. Note that if you
use this option and start Tomcat as root, you'll need to disable the
<code>org.apache.catalina.security.SecurityListener</code> check that
- prevents Tomcat starting when running as root.</p>
-
- <p><code>jsvc --help</code> will return the full jsvc usage
+ prevents Tomcat starting when running as root.</p>
+
+ <p><code>jsvc --help</code> will return the full jsvc usage
information. In particular, the <code>-debug</code> option is useful
to debug issues running jsvc.</p>
@@ -149,12 +149,12 @@
boot time from <code>/etc/init.d</code>. The file is currently setup for
running Tomcat 5.5.x, so it will be necessary to edit it a little.</p>
- <p>Note that the Commons-Daemon JAR file must be on your runtime classpath
+ <p>Note that the Commons-Daemon JAR file must be on your runtime classpath
to run Tomcat in this manner. The Commons-Daemon JAR file is in the
Class-Path entry of the bootstrap.jar manifest, but if you get a
ClassNotFoundException or a NoClassDefFoundError for a Commons-Daemon
class, add the Commons-Daemon JAR to the -cp argument when launching
- jsvc.</p>
+ jsvc.</p>
</section>
Modified: tomcat/trunk/webapps/docs/ssi-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/ssi-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/ssi-howto.xml (original)
+++ tomcat/trunk/webapps/docs/ssi-howto.xml Sat Oct 22 21:26:20 2011
@@ -211,7 +211,7 @@ Apache Introduction to SSI</a> for more
<tr>
<td>CONTENT_LENGTH</td>
<td>
- The length of the data (in bytes or the number of
+ The length of the data (in bytes or the number of
characters) passed from a form.</td>
</tr>
@@ -246,7 +246,7 @@ Virtual path to the file</td>
<tr>
<td>GATEWAY_INTERFACE</td>
<td>
- The revision of the Common Gateway Interface that the
+ The revision of the Common Gateway Interface that the
server uses if enabled: "CGI/1.1".</td>
</tr>
@@ -313,7 +313,7 @@ The query string that follows the "
<tr>
<td>QUERY_STRING_UNESCAPED</td>
<td>
-Undecoded query string with all shell metacharacters escaped
+Undecoded query string with all shell metacharacters escaped
with "\"</td>
</tr>
<tr>
@@ -380,7 +380,7 @@ with "\"</td>
<tr>
<td>SERVER_SOFTWARE</td>
<td>
- The name and version of the server software that is
+ The name and version of the server software that is
answering the client request.</td>
</tr>
<tr>
Modified: tomcat/trunk/webapps/docs/ssl-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/ssl-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/ssl-howto.xml (original)
+++ tomcat/trunk/webapps/docs/ssl-howto.xml Sat Oct 22 21:26:20 2011
@@ -60,7 +60,7 @@ $JAVA_HOME/bin/keytool -genkey -alias to
<p></p>
and specify a password value of "changeit".</li><br/><br/>
<li>Uncomment the "SSL HTTP/1.1 Connector" entry in
- <code>$CATALINA_BASE/conf/server.xml</code> and modify as described in
+ <code>$CATALINA_BASE/conf/server.xml</code> and modify as described in
the <a href="#Configuration">Configuration section</a> below.</li>
<br/><br/>
</ol>
@@ -212,7 +212,7 @@ Note that OpenSSL often adds readable co
<code>keytool</code>does not support that, so remove the OpenSSL comments if
they exist before importing the key using <code>keytool</code>.
</p>
-<p>To import an existing certificate signed by your own CA into a PKCS12
+<p>To import an existing certificate signed by your own CA into a PKCS12
keystore using OpenSSL you would execute a command like:
<source>openssl pkcs12 -export -in mycert.crt -inkey mykey.key \
-out mycert.p12 -name tomcat -CAfile myCA.crt \
@@ -287,13 +287,13 @@ Tomcat can use two different implementat
</ul>
The exact configuration details depend on which implementation is being used.
The implementation used by Tomcat is chosen automatically unless it is overriden as described below.
-If the installation uses <a href="apr.html">APR</a>
+If the installation uses <a href="apr.html">APR</a>
- i.e. you have installed the Tomcat native library -
-then it will use the APR SSL implementation, otherwise it will use the Java JSSE implementation.
+then it will use the APR SSL implementation, otherwise it will use the Java JSSE implementation.
</p>
<p>
- To avoid auto configuration you can define which implementation to use by specifying a classname
+ To avoid auto configuration you can define which implementation to use by specifying a classname
in the <b>protocol</b> attribute of the Connector.<br/>
To define a Java (JSSE) connector, regardless of whether the APR library is loaded or not do:
<source>
@@ -347,7 +347,7 @@ file installed with Tomcat. For JSSE, i
<source>
<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
-<Connector
+<Connector
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${user.home}/.keystore" keystorePass="changeit"
@@ -356,15 +356,15 @@ file installed with Tomcat. For JSSE, i
</source>
<p>
The example above will throw an error if you have the APR and the Tomcat Native libraries in your path,
- as Tomcat will try to use the APR connector. The APR connector uses different attributes for
+ as Tomcat will try to use the APR connector. The APR connector uses different attributes for
SSL keys and certificates. An example of an APR configuration is:
<source>
<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
-<Connector
+<Connector
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
- SSLCertificateFile="/usr/local/ssl/server.crt"
+ SSLCertificateFile="/usr/local/ssl/server.crt"
SSLCertificateKeyFile="/usr/local/ssl/server.pem"
clientAuth="optional" SSLProtocol="TLSv1"/>
-->
@@ -412,20 +412,20 @@ contains some troubleshooting tips.</p>
</section>
<section name="Installing a Certificate from a Certificate Authority">
-<p>To obtain and install a Certificate from a Certificate Authority (like verisign.com, thawte.com
+<p>To obtain and install a Certificate from a Certificate Authority (like verisign.com, thawte.com
or trustcenter.de), read the previous section and then follow these instructions:</p>
<subsection name="Create a local Certificate Signing Request (CSR)">
-<p>In order to obtain a Certificate from the Certificate Authority of your choice
-you have to create a so called Certificate Signing Request (CSR). That CSR will be used
-by the Certificate Authority to create a Certificate that will identify your website
+<p>In order to obtain a Certificate from the Certificate Authority of your choice
+you have to create a so called Certificate Signing Request (CSR). That CSR will be used
+by the Certificate Authority to create a Certificate that will identify your website
as "secure". To create a CSR follow these steps:</p>
<ul>
<li>Create a local Certificate (as described in the previous section):
<source>keytool -genkey -alias tomcat -keyalg RSA \
-keystore <your_keystore_filename></source>
Note: In some cases you will have to enter the domain of your website (i.e. <code>www.myside.org</code>)
- in the field "first- and lastname" in order to create a working Certificate.
+ in the field "first- and lastname" in order to create a working Certificate.
</li>
<li>The CSR is then created with:
<source>keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr \
@@ -437,8 +437,8 @@ documentation of the Certificate Authori
</subsection>
<subsection name="Importing the Certificate">
-<p>Now that you have your Certificate you can import it into you local keystore.
-First of all you have to import a so called Chain Certificate or Root Certificate into your keystore.
+<p>Now that you have your Certificate you can import it into you local keystore.
+First of all you have to import a so called Chain Certificate or Root Certificate into your keystore.
After that you can proceed with importing your Certificate.</p>
<ul>
@@ -565,7 +565,7 @@ public class SessionTrackingModeListener
ServletContext context = event.getServletContext();
EnumSet<SessionTrackingMode> modes =
EnumSet.of(SessionTrackingMode.SSL);
-
+
context.setSessionTrackingModes(modes);
}
@@ -574,7 +574,7 @@ public class SessionTrackingModeListener
</p>
<p>Note: SSL session tracking is implemented for the BIO and NIO connectors.
It is not yet implemented for the APR connector.</p>
-
+
</section>
<section name="Miscellaneous Tips and Bits">
Modified: tomcat/trunk/webapps/docs/tomcat-docs.xsl
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/tomcat-docs.xsl?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/tomcat-docs.xsl (original)
+++ tomcat/trunk/webapps/docs/tomcat-docs.xsl Sat Oct 22 21:26:20 2011
@@ -284,7 +284,7 @@
<xsl:value-of select="@anchor" />
</xsl:when>
<xsl:otherwise>
- <xsl:if test="local-name()='subsection' and
+ <xsl:if test="local-name()='subsection' and
count(//*[(local-name()='section' or local-name()='subsection') and @name=current()/@name]) > 1
">
<xsl:value-of select="concat(ancestor::section/@name, '/')"/>
@@ -518,7 +518,7 @@
<xsl:variable name="link"><xsl:value-of select="$buglink"/><xsl:value-of select="text()"/></xsl:variable>
<a href="{$link}"><xsl:apply-templates/></a>
</xsl:template>
-
+
<!-- Link to a SVN revision report -->
<xsl:template match="rev">
<xsl:variable name="link"><xsl:value-of select="$revlink"/><xsl:value-of select="text()"/></xsl:variable>
@@ -546,7 +546,7 @@
</font>
</td>
</xsl:template>
-
+
<!-- Process everything else by just passing it through -->
<xsl:template match="*|@*">
<xsl:copy>
Modified: tomcat/trunk/webapps/docs/tribes/introduction.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/tribes/introduction.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/tribes/introduction.xml (original)
+++ tomcat/trunk/webapps/docs/tribes/introduction.xml Sat Oct 22 21:26:20 2011
@@ -151,8 +151,8 @@
<b>Guaranteed Messaging</b><br/>
In the default implementation of Tribes uses TCP or UDP for messaging. TCP already has guaranteed message delivery
and flow control built in. I believe that the performance of Java TCP, will outperform an implementation of
- Java/UDP/flow-control/message guarantee since the logic happens further down the stack. UDP messaging has been added in for
- sending messages over UDP instead of TCP when desired. The same guarantee scenarios as described below are still available
+ Java/UDP/flow-control/message guarantee since the logic happens further down the stack. UDP messaging has been added in for
+ sending messages over UDP instead of TCP when desired. The same guarantee scenarios as described below are still available
over UDP, however, when a UDP message is lost, it's considered failed.<br/>
Tribes supports both non-blocking and blocking IO operations. The recommended setting is to use non blocking
as it promotes better parallelism when sending and receiving messages. The blocking implementation is available
@@ -265,7 +265,7 @@
<section name="Where can I get Tribes">
<p>
- Tribes ships as a module with Tomcat, and is released as part of the Apache Tomcat release.
+ Tribes ships as a module with Tomcat, and is released as part of the Apache Tomcat release.
</p>
Modified: tomcat/trunk/webapps/docs/virtual-hosting-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/virtual-hosting-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/virtual-hosting-howto.xml (original)
+++ tomcat/trunk/webapps/docs/virtual-hosting-howto.xml Sat Oct 22 21:26:20 2011
@@ -41,7 +41,7 @@
</p>
<p>
Also, this how-to uses Unix-style path separators and commands; if you're
- on Windows modify accordingly.
+ on Windows modify accordingly.
</p>
</section>
Modified: tomcat/trunk/webapps/docs/windows-auth-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/windows-auth-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/windows-auth-howto.xml (original)
+++ tomcat/trunk/webapps/docs/windows-auth-howto.xml Sat Oct 22 21:26:20 2011
@@ -238,7 +238,7 @@ com.sun.security.jgss.krb5.accept {
<li>Pure Java solution</li>
</ul>
</subsection>
-
+
<subsection name="SPNEGO project at SourceForge">
<p>Full details of this solution can be found through the
<a href="http://spnego.sourceforge.net/index.html/">project site</a>. The key
@@ -275,7 +275,7 @@ com.sun.security.jgss.krb5.accept {
<li><a href="http://adldap.sourceforge.net/wiki/doku.php?id=mod_auth_ntlm_winbind">
mod_auth_ntlm_winbind</a> for non-Windows platforms. Known to work with httpd
2.0.x on 32-bit platforms. Some users have reported stability issues with both
- httpd 2.2.x builds and 64-bit Linux builds.</li>
+ httpd 2.2.x builds and 64-bit Linux builds.</li>
</ol>
<p>There are three steps to configuring httpd to provide Windows
authentication. They are:</p>
@@ -293,4 +293,4 @@ com.sun.security.jgss.krb5.accept {
</section>
</body>
-</document>
+</document>
Modified: tomcat/trunk/webapps/docs/windows-service-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/windows-service-howto.xml?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/windows-service-howto.xml (original)
+++ tomcat/trunk/webapps/docs/windows-service-howto.xml Sat Oct 22 21:26:20 2011
@@ -42,9 +42,9 @@
<p>
<b>Tomcat7w</b> is a GUI application for monitoring and configuring Tomcat
services.
-</p>
+</p>
<p>The available command line options are:</p>
-<p>
+<p>
<table>
<tr><th>//ES//</th>
<td>Edit service configuration</td>
@@ -63,7 +63,7 @@
Each command line directive is in the form of <b>//XX//ServiceName</b>
</p>
<p>The available command line options are:</p>
-<p>
+<p>
<table>
<tr><th>//TS//</th>
<td>Run the service as console application</td>
@@ -90,9 +90,9 @@
<tr><th>//DS//</th>
<td>Delete service</td>
<td>Stops the service if running</td>
- </tr>
+ </tr>
</table>
-</p>
+</p>
</section>
<section name="Command line parameters">
<p>
@@ -103,7 +103,7 @@
prefixed with <code>PR_</code> exists it will take precedence.
For example:
<source>set PR_CLASSPATH=xx.jar</source>
-</p>
+</p>
<p>is equivalent to providing
<source>--Classpath=xx.jar</source>
</p>
@@ -112,13 +112,13 @@
PR_JVMMS, PR_JVMMX, PR_JVMSS, PR_STARTPARAMS, PR_STOPPARAMS and
PR_STOPTIMEOUT will not work until this bug is fixed:
<a href="http://issues.apache.org/jira/browse/DAEMON-49">DAEMON-49</a></p>
-<p>
+<p>
<table>
<tr>
<th>ParameterName</th>
<th>Default</th>
<th>Description</th>
- </tr>
+ </tr>
<tr>
<td>--Description</td>
<td></td>
@@ -298,9 +298,9 @@
<td>--StdError</td>
<td></td>
<td>Redirected stderr filename</td>
- </tr>
+ </tr>
</table>
-</p>
+</p>
</section>
<section name="Installing services">
<p>
@@ -314,7 +314,7 @@ a user to use for the installation of th
Account Control (UAC) you must either disable UAC or right-click on cmd.exe and
select "Run as administrator" in order to run this script. If UAC is enabled
neither being logged on with an Administrator account, nor using the
-<code>/user</code> switch is sufficient.
+<code>/user</code> switch is sufficient.
</p>
<p>
<source>
@@ -378,4 +378,4 @@ C:\> tomcat7
</p>
</section>
</body>
-</document>
+</document>
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/CookieExample.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/CookieExample.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/CookieExample.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/CookieExample.java Sat Oct 22 21:26:20 2011
@@ -41,13 +41,13 @@ public class CookieExample extends HttpS
private static final long serialVersionUID = 1L;
private static final ResourceBundle RB = ResourceBundle.getBundle("LocalStrings");
-
+
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
-
+
String cookieName = request.getParameter("cookiename");
String cookieValue = request.getParameter("cookievalue");
Cookie aCookie = null;
@@ -72,7 +72,7 @@ public class CookieExample extends HttpS
// XXX
// making these absolute till we work out the
- // addition of a PathInfo issue
+ // addition of a PathInfo issue
out.println("<a href=\"../cookies.html\">");
out.println("<img src=\"../images/code.gif\" height=24 " +
@@ -90,7 +90,7 @@ public class CookieExample extends HttpS
Cookie cookie = cookies[i];
out.print("Cookie Name: " + HTMLFilter.filter(cookie.getName())
+ "<br>");
- out.println(" Cookie Value: "
+ out.println(" Cookie Value: "
+ HTMLFilter.filter(cookie.getValue())
+ "<br><br>");
}
@@ -101,12 +101,12 @@ public class CookieExample extends HttpS
if (aCookie != null) {
out.println("<P>");
out.println(RB.getString("cookies.set") + "<br>");
- out.print(RB.getString("cookies.name") + " "
+ out.print(RB.getString("cookies.name") + " "
+ HTMLFilter.filter(cookieName) + "<br>");
- out.print(RB.getString("cookies.value") + " "
+ out.print(RB.getString("cookies.value") + " "
+ HTMLFilter.filter(cookieValue));
}
-
+
out.println("<P>");
out.println(RB.getString("cookies.make-cookie") + "<br>");
out.print("<form action=\"");
@@ -116,8 +116,8 @@ public class CookieExample extends HttpS
out.print(RB.getString("cookies.value") + " ");
out.println("<input type=text length=20 name=cookievalue><br>");
out.println("<input type=submit></form>");
-
-
+
+
out.println("</body>");
out.println("</html>");
}
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/RequestHeaderExample.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/RequestHeaderExample.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/RequestHeaderExample.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/RequestHeaderExample.java Sat Oct 22 21:26:20 2011
@@ -41,7 +41,7 @@ public class RequestHeaderExample extend
private static final long serialVersionUID = 1L;
private static final ResourceBundle RB = ResourceBundle.getBundle("LocalStrings");
-
+
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
@@ -63,7 +63,7 @@ public class RequestHeaderExample extend
// XXX
// making these absolute till we work out the
- // addition of a PathInfo issue
+ // addition of a PathInfo issue
out.println("<a href=\"../reqheaders.html\">");
out.println("<img src=\"../images/code.gif\" height=24 " +
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/RequestInfoExample.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/RequestInfoExample.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/RequestInfoExample.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/RequestInfoExample.java Sat Oct 22 21:26:20 2011
@@ -79,30 +79,30 @@ public class RequestInfoExample extends
out.println(request.getMethod());
out.println("</td></tr><tr><td>");
out.println(RB.getString("requestinfo.label.requesturi"));
- out.println("</td><td>");
+ out.println("</td><td>");
out.println(HTMLFilter.filter(request.getRequestURI()));
- out.println("</td></tr><tr><td>");
+ out.println("</td></tr><tr><td>");
out.println(RB.getString("requestinfo.label.protocol"));
- out.println("</td><td>");
+ out.println("</td><td>");
out.println(request.getProtocol());
out.println("</td></tr><tr><td>");
out.println(RB.getString("requestinfo.label.pathinfo"));
- out.println("</td><td>");
+ out.println("</td><td>");
out.println(HTMLFilter.filter(request.getPathInfo()));
out.println("</td></tr><tr><td>");
out.println(RB.getString("requestinfo.label.remoteaddr"));
String cipherSuite=
(String)request.getAttribute("javax.servlet.request.cipher_suite");
- out.println("</td><td>");
+ out.println("</td><td>");
out.println(request.getRemoteAddr());
out.println("</table>");
-
+
if(cipherSuite!=null){
out.println("</td></tr><tr><td>");
out.println("SSLCipherSuite:");
out.println("</td>");
- out.println("<td>");
+ out.println("<td>");
out.println(request.getAttribute("javax.servlet.request.cipher_suite"));
out.println("</td>");
}
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/RequestParamExample.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/RequestParamExample.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/RequestParamExample.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/RequestParamExample.java Sat Oct 22 21:26:20 2011
@@ -40,7 +40,7 @@ public class RequestParamExample extends
private static final long serialVersionUID = 1L;
private static final ResourceBundle RB = ResourceBundle.getBundle("LocalStrings");
-
+
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
@@ -64,7 +64,7 @@ public class RequestParamExample extends
// XXX
// making these absolute till we work out the
- // addition of a PathInfo issue
+ // addition of a PathInfo issue
out.println("<a href=\"../reqparams.html\">");
out.println("<img src=\"../images/code.gif\" height=24 " +
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/SessionExample.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/SessionExample.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/SessionExample.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/SessionExample.java Sat Oct 22 21:26:20 2011
@@ -43,7 +43,7 @@ public class SessionExample extends Http
private static final long serialVersionUID = 1L;
private static final ResourceBundle RB = ResourceBundle.getBundle("LocalStrings");
-
+
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
@@ -66,8 +66,8 @@ public class SessionExample extends Http
// XXX
// making these absolute till we work out the
- // addition of a PathInfo issue
-
+ // addition of a PathInfo issue
+
out.println("<a href=\"../sessions.html\">");
out.println("<img src=\"../images/code.gif\" height=24 " +
"width=24 align=right border=0 alt=\"view code\"></a>");
@@ -95,9 +95,9 @@ public class SessionExample extends Http
out.println(RB.getString("sessions.data") + "<br>");
Enumeration<String> names = session.getAttributeNames();
while (names.hasMoreElements()) {
- String name = names.nextElement();
+ String name = names.nextElement();
String value = session.getAttribute(name).toString();
- out.println(HTMLFilter.filter(name) + " = "
+ out.println(HTMLFilter.filter(name) + " = "
+ HTMLFilter.filter(value) + "<br>");
}
@@ -132,10 +132,10 @@ public class SessionExample extends Http
out.print("<p><a href=\"");
out.print(response.encodeURL("SessionExample?dataname=foo&datavalue=bar"));
out.println("\" >URL encoded </a>");
-
+
out.println("</body>");
out.println("</html>");
-
+
out.println("</body>");
out.println("</html>");
}
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async1.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async1.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async1.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async1.java Sat Oct 22 21:26:20 2011
@@ -57,6 +57,6 @@ public class Async1 extends HttpServlet
Thread t = new Thread(run);
t.start();
}
-
+
}
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async2.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async2.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async2.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async2.java Sat Oct 22 21:26:20 2011
@@ -59,6 +59,6 @@ public class Async2 extends HttpServlet
Thread t = new Thread(run);
t.start();
}
-
+
}
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async3.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async3.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async3.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/async/Async3.java Sat Oct 22 21:26:20 2011
@@ -34,6 +34,6 @@ public class Async3 extends HttpServlet
actx.setTimeout(30*1000);
actx.dispatch("/jsp/async/async3.jsp");
}
-
+
}
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java Sat Oct 22 21:26:20 2011
@@ -41,12 +41,12 @@ public class AsyncStockServlet extends H
public static final String POLL = "POLL";
public static final String LONG_POLL = "LONG-POLL";
public static final String STREAM = "STREAM";
-
+
static ArrayList<Stock> ticks = new ArrayList<Stock>();
static ConcurrentLinkedQueue<AsyncContext> clients = new ConcurrentLinkedQueue<AsyncContext>();
static AtomicInteger clientcount = new AtomicInteger(0);
static Stockticker ticker = new Stockticker();
-
+
public AsyncStockServlet() {
System.out.println("AsyncStockServlet created");
}
@@ -81,7 +81,7 @@ public class AsyncStockServlet extends H
writeStock(actx, stock);
}
}
-
+
public void writeStock(AsyncContext actx, Stock stock) {
HttpServletResponse response = (HttpServletResponse)actx.getResponse();
try {
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/async/Stockticker.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/async/Stockticker.java?rev=1187809&r1=1187808&r2=1187809&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/async/Stockticker.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/async/Stockticker.java Sat Oct 22 21:26:20 2011
@@ -27,14 +27,14 @@ public class Stockticker implements Runn
ArrayList<TickListener> listeners = new ArrayList<TickListener>();
protected volatile Thread ticker = null;
protected volatile int ticknr = 0;
-
+
public synchronized void start() {
run = true;
ticker = new Thread(this);
ticker.setName("Ticker Thread");
ticker.start();
}
-
+
public synchronized void stop() {
run = false;
try {
@@ -42,15 +42,15 @@ public class Stockticker implements Runn
}catch (InterruptedException x) {
Thread.interrupted();
}
-
+
ticker = null;
}
-
+
public void addTickListener(TickListener listener) {
if (listeners.add(listener)) {
if (counter.incrementAndGet()==1) start();
}
-
+
}
public void removeTickListener(TickListener listener) {
@@ -83,7 +83,7 @@ public class Stockticker implements Runn
for (TickListener l : listeners) {
l.tick(stock);
}
-
+
}
Thread.sleep(850);
}
@@ -93,12 +93,12 @@ public class Stockticker implements Runn
x.printStackTrace();
}
}
-
-
+
+
public static interface TickListener {
public void tick(Stock stock);
}
-
+
public static final class Stock implements Cloneable {
protected static DecimalFormat df = new DecimalFormat("0.00");
protected String symbol = "";
@@ -159,7 +159,7 @@ public class Stockticker implements Runn
if (other instanceof Stock) {
return this.symbol.equals(((Stock) other).symbol);
}
-
+
return false;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org