on master help sign in
Add Java Server Page (JSP) syntax test file
commit64cbfbed470926c7ed18521da3081797d1b7633d authorMohamed Abdelnour <mohamed.k.abdelnour@gmail.com> dateSat 29 May 2021, 02:27 (5 years ago) parent1ced35e
4 files changed+1603
tests/syntax-tests/highlighted/Java Server Page (JSP)/sessionDetail.jsp+197 tests/syntax-tests/source/Java Server Page (JSP)/LICENSE.md+1141 tests/syntax-tests/source/Java Server Page (JSP)/NOTICE+68 tests/syntax-tests/source/Java Server Page (JSP)/sessionDetail.jsp+197
tests/syntax-tests/highlighted/Java Server Page (JSP)/sessionDetail.jspnew file+197
@@ -0,0 +1,197 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<%--
3+ Licensed to the Apache Software Foundation (ASF) under one or more
4+ contributor license agreements. See the NOTICE file distributed with
5+ this work for additional information regarding copyright ownership.
6+ The ASF licenses this file to You under the Apache License, Version 2.0
7+ (the "License"); you may not use this file except in compliance with
8+ the License. You may obtain a copy of the License at
9+
10+ http://www.apache.org/licenses/LICENSE-2.0
11+
12+ Unless required by applicable law or agreed to in writing, software
13+ distributed under the License is distributed on an "AS IS" BASIS,
14+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+ See the License for the specific language governing permissions and
16+ limitations under the License.
17+--%>
18+<%@page session="false" contentType="text/html; charset=ISO-8859-1" %>
19+<%@page import="java.util.Enumeration" %>
20+<%@page import="jakarta.servlet.http.HttpSession" %>
21+<%@page import="org.apache.catalina.Session" %>
22+<%@page import="org.apache.catalina.manager.JspHelper" %>
23+<%@page import="org.apache.catalina.util.ContextName" %>
24+<!DOCTYPE html
25+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
26+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
27+<%--!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
28+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"--%>
29+
30+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
31+<% String path = (String) request.getAttribute("path");
32+ String version = (String) request.getAttribute("version");
33+ ContextName cn = new ContextName(path, version);
34+ Session currentSession = (Session)request.getAttribute("currentSession");
35+ String currentSessionId = null;
36+ HttpSession currentHttpSession = null;
37+ if (currentSession != null) {
38+ currentHttpSession = currentSession.getSession();
39+ currentSessionId = JspHelper.escapeXml(currentSession.getId());
40+ } else {
41+ currentSessionId = "Session invalidated";
42+ }
43+ String submitUrl = JspHelper.escapeXml(response.encodeURL(
44+ ((HttpServletRequest) pageContext.getRequest()).getRequestURI() +
45+ "?path=" + path + "&version=" + version));
46+%>
47+<head>
48+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
49+ <meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 -->
50+ <meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP 1.1 -->
51+ <meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->
52+ <meta http-equiv="content-language" content="en"/>
53+ <meta name="author" content="Cedrik LIME"/>
54+ <meta name="copyright" content="copyright 2005-2021 the Apache Software Foundation"/>
55+ <meta name="robots" content="noindex,nofollow,noarchive"/>
56+ <title>Sessions Administration: details for <%= currentSessionId %></title>
57+</head>
58+<body>
59+<% if (currentHttpSession == null) { %>
60+ <h1><%=currentSessionId%></h1>
61+<% } else { %>
62+ <h1>Details for Session <%= currentSessionId %></h1>
63+
64+ <table style="text-align: left;" border="0">
65+ <tr>
66+ <th>Session Id</th>
67+ <td><%= currentSessionId %></td>
68+ </tr>
69+ <tr>
70+ <th>Guessed Locale</th>
71+ <td><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>
72+ </tr>
73+ <tr>
74+ <th>Guessed User</th>
75+ <td><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>
76+ </tr>
77+ <tr>
78+ <th>Creation Time</th>
79+ <td><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>
80+ </tr>
81+ <tr>
82+ <th>Last Accessed Time</th>
83+ <td><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>
84+ </tr>
85+ <tr>
86+ <th>Session Max Inactive Interval</th>
87+ <td><%= JspHelper.secondsToTimeString(currentSession.getMaxInactiveInterval()) %></td>
88+ </tr>
89+ <tr>
90+ <th>Used Time</th>
91+ <td><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>
92+ </tr>
93+ <tr>
94+ <th>Inactive Time</th>
95+ <td><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>
96+ </tr>
97+ <tr>
98+ <th>TTL</th>
99+ <td><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>
100+ </tr>
101+ </table>
102+
103+ <form method="post" action="<%= submitUrl %>">
104+ <div>
105+ <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />
106+ <input type="hidden" name="action" value="sessionDetail" />
107+ <%
108+ if ("Primary".equals(request.getParameter("sessionType"))) {
109+ %>
110+ <input type="hidden" name="sessionType" value="Primary" />
111+ <%
112+ }
113+ %> <input type="submit" value="Refresh" />
114+ </div>
115+ </form>
116+
117+ <div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div>
118+ <div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div>
119+
120+ <table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">
121+ <% int nAttributes = 0;
122+ Enumeration<String> attributeNamesEnumeration = currentHttpSession.getAttributeNames();
123+ while (attributeNamesEnumeration.hasMoreElements()) {
124+ attributeNamesEnumeration.nextElement();
125+ ++nAttributes;
126+ }
127+ %>
128+ <caption style="font-variant: small-caps;"><%= JspHelper.formatNumber(nAttributes) %> attributes</caption>
129+ <thead>
130+ <tr>
131+ <th>Remove Attribute</th>
132+ <th>Attribute name</th>
133+ <th>Attribute value</th>
134+ </tr>
135+ </thead>
136+ <%--tfoot>
137+ <tr>
138+ <td colspan="3" style="text-align: center;">
139+ TODO: set Max Inactive Interval on sessions
140+ </td>
141+ </tr>
142+ </tfoot--%>
143+ <tbody>
144+ <% attributeNamesEnumeration = currentHttpSession.getAttributeNames();
145+ while (attributeNamesEnumeration.hasMoreElements()) {
146+ String attributeName = attributeNamesEnumeration.nextElement();
147+ %>
148+ <tr>
149+ <td align="center">
150+ <form method="post" action="<%= submitUrl %>">
151+ <div>
152+ <input type="hidden" name="action" value="removeSessionAttribute" />
153+ <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />
154+ <input type="hidden" name="attributeName" value="<%= JspHelper.escapeXml(attributeName) %>" />
155+ <%
156+ if ("Primary".equals(request.getParameter("sessionType"))) {
157+ %>
158+ <input type="submit" value="Remove" />
159+ <input type="hidden" name="sessionType" value="Primary" />
160+ <%
161+ } else {
162+ out.print("Primary sessions only");
163+ }
164+ %>
165+ </div>
166+ </form>
167+ </td>
168+ <td><%= JspHelper.escapeXml(attributeName) %></td>
169+ <td><% Object attributeValue = currentHttpSession.getAttribute(attributeName); %><span title="<%= attributeValue == null ? "" : attributeValue.getClass().toString() %>"><%= JspHelper.escapeXml(attributeValue) %></span></td>
170+ </tr>
171+ <% } // end while %>
172+ </tbody>
173+ </table>
174+<% } // endif%>
175+
176+<form method="post" action="<%=submitUrl%>">
177+ <p style="text-align: center;">
178+ <input type="submit" value="Return to session list" />
179+ </p>
180+</form>
181+
182+<%--div style="display: none;">
183+<p>
184+ <a href="http://validator.w3.org/check?uri=referer"><img
185+ src="http://www.w3.org/Icons/valid-html401"
186+ alt="Valid HTML 4.01!" height="31" width="88"></a>
187+ <a href="http://validator.w3.org/check?uri=referer"><img
188+ src="http://www.w3.org/Icons/valid-xhtml10"
189+ alt="Valid XHTML 1.0!" height="31" width="88" /></a>
190+ <a href="http://validator.w3.org/check?uri=referer"><img
191+ src="http://www.w3.org/Icons/valid-xhtml11"
192+ alt="Valid XHTML 1.1!" height="31" width="88" /></a>
193+</p>
194+</div--%>
195+
196+</body>
197+</html>
tests/syntax-tests/source/Java Server Page (JSP)/LICENSE.mdnew file+1141
@@ -0,0 +1,1141 @@
1+The `sessionDetail.jsp` file has been added from https://github.com/apache/tomcat under the following license:
2+
3+```text
4+
5+ Apache License
6+ Version 2.0, January 2004
7+ http://www.apache.org/licenses/
8+
9+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
10+
11+ 1. Definitions.
12+
13+ "License" shall mean the terms and conditions for use, reproduction,
14+ and distribution as defined by Sections 1 through 9 of this document.
15+
16+ "Licensor" shall mean the copyright owner or entity authorized by
17+ the copyright owner that is granting the License.
18+
19+ "Legal Entity" shall mean the union of the acting entity and all
20+ other entities that control, are controlled by, or are under common
21+ control with that entity. For the purposes of this definition,
22+ "control" means (i) the power, direct or indirect, to cause the
23+ direction or management of such entity, whether by contract or
24+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
25+ outstanding shares, or (iii) beneficial ownership of such entity.
26+
27+ "You" (or "Your") shall mean an individual or Legal Entity
28+ exercising permissions granted by this License.
29+
30+ "Source" form shall mean the preferred form for making modifications,
31+ including but not limited to software source code, documentation
32+ source, and configuration files.
33+
34+ "Object" form shall mean any form resulting from mechanical
35+ transformation or translation of a Source form, including but
36+ not limited to compiled object code, generated documentation,
37+ and conversions to other media types.
38+
39+ "Work" shall mean the work of authorship, whether in Source or
40+ Object form, made available under the License, as indicated by a
41+ copyright notice that is included in or attached to the work
42+ (an example is provided in the Appendix below).
43+
44+ "Derivative Works" shall mean any work, whether in Source or Object
45+ form, that is based on (or derived from) the Work and for which the
46+ editorial revisions, annotations, elaborations, or other modifications
47+ represent, as a whole, an original work of authorship. For the purposes
48+ of this License, Derivative Works shall not include works that remain
49+ separable from, or merely link (or bind by name) to the interfaces of,
50+ the Work and Derivative Works thereof.
51+
52+ "Contribution" shall mean any work of authorship, including
53+ the original version of the Work and any modifications or additions
54+ to that Work or Derivative Works thereof, that is intentionally
55+ submitted to Licensor for inclusion in the Work by the copyright owner
56+ or by an individual or Legal Entity authorized to submit on behalf of
57+ the copyright owner. For the purposes of this definition, "submitted"
58+ means any form of electronic, verbal, or written communication sent
59+ to the Licensor or its representatives, including but not limited to
60+ communication on electronic mailing lists, source code control systems,
61+ and issue tracking systems that are managed by, or on behalf of, the
62+ Licensor for the purpose of discussing and improving the Work, but
63+ excluding communication that is conspicuously marked or otherwise
64+ designated in writing by the copyright owner as "Not a Contribution."
65+
66+ "Contributor" shall mean Licensor and any individual or Legal Entity
67+ on behalf of whom a Contribution has been received by Licensor and
68+ subsequently incorporated within the Work.
69+
70+ 2. Grant of Copyright License. Subject to the terms and conditions of
71+ this License, each Contributor hereby grants to You a perpetual,
72+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
73+ copyright license to reproduce, prepare Derivative Works of,
74+ publicly display, publicly perform, sublicense, and distribute the
75+ Work and such Derivative Works in Source or Object form.
76+
77+ 3. Grant of Patent License. Subject to the terms and conditions of
78+ this License, each Contributor hereby grants to You a perpetual,
79+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
80+ (except as stated in this section) patent license to make, have made,
81+ use, offer to sell, sell, import, and otherwise transfer the Work,
82+ where such license applies only to those patent claims licensable
83+ by such Contributor that are necessarily infringed by their
84+ Contribution(s) alone or by combination of their Contribution(s)
85+ with the Work to which such Contribution(s) was submitted. If You
86+ institute patent litigation against any entity (including a
87+ cross-claim or counterclaim in a lawsuit) alleging that the Work
88+ or a Contribution incorporated within the Work constitutes direct
89+ or contributory patent infringement, then any patent licenses
90+ granted to You under this License for that Work shall terminate
91+ as of the date such litigation is filed.
92+
93+ 4. Redistribution. You may reproduce and distribute copies of the
94+ Work or Derivative Works thereof in any medium, with or without
95+ modifications, and in Source or Object form, provided that You
96+ meet the following conditions:
97+
98+ (a) You must give any other recipients of the Work or
99+ Derivative Works a copy of this License; and
100+
101+ (b) You must cause any modified files to carry prominent notices
102+ stating that You changed the files; and
103+
104+ (c) You must retain, in the Source form of any Derivative Works
105+ that You distribute, all copyright, patent, trademark, and
106+ attribution notices from the Source form of the Work,
107+ excluding those notices that do not pertain to any part of
108+ the Derivative Works; and
109+
110+ (d) If the Work includes a "NOTICE" text file as part of its
111+ distribution, then any Derivative Works that You distribute must
112+ include a readable copy of the attribution notices contained
113+ within such NOTICE file, excluding those notices that do not
114+ pertain to any part of the Derivative Works, in at least one
115+ of the following places: within a NOTICE text file distributed
116+ as part of the Derivative Works; within the Source form or
117+ documentation, if provided along with the Derivative Works; or,
118+ within a display generated by the Derivative Works, if and
119+ wherever such third-party notices normally appear. The contents
120+ of the NOTICE file are for informational purposes only and
121+ do not modify the License. You may add Your own attribution
122+ notices within Derivative Works that You distribute, alongside
123+ or as an addendum to the NOTICE text from the Work, provided
124+ that such additional attribution notices cannot be construed
125+ as modifying the License.
126+
127+ You may add Your own copyright statement to Your modifications and
128+ may provide additional or different license terms and conditions
129+ for use, reproduction, or distribution of Your modifications, or
130+ for any such Derivative Works as a whole, provided Your use,
131+ reproduction, and distribution of the Work otherwise complies with
132+ the conditions stated in this License.
133+
134+ 5. Submission of Contributions. Unless You explicitly state otherwise,
135+ any Contribution intentionally submitted for inclusion in the Work
136+ by You to the Licensor shall be under the terms and conditions of
137+ this License, without any additional terms or conditions.
138+ Notwithstanding the above, nothing herein shall supersede or modify
139+ the terms of any separate license agreement you may have executed
140+ with Licensor regarding such Contributions.
141+
142+ 6. Trademarks. This License does not grant permission to use the trade
143+ names, trademarks, service marks, or product names of the Licensor,
144+ except as required for reasonable and customary use in describing the
145+ origin of the Work and reproducing the content of the NOTICE file.
146+
147+ 7. Disclaimer of Warranty. Unless required by applicable law or
148+ agreed to in writing, Licensor provides the Work (and each
149+ Contributor provides its Contributions) on an "AS IS" BASIS,
150+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
151+ implied, including, without limitation, any warranties or conditions
152+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
153+ PARTICULAR PURPOSE. You are solely responsible for determining the
154+ appropriateness of using or redistributing the Work and assume any
155+ risks associated with Your exercise of permissions under this License.
156+
157+ 8. Limitation of Liability. In no event and under no legal theory,
158+ whether in tort (including negligence), contract, or otherwise,
159+ unless required by applicable law (such as deliberate and grossly
160+ negligent acts) or agreed to in writing, shall any Contributor be
161+ liable to You for damages, including any direct, indirect, special,
162+ incidental, or consequential damages of any character arising as a
163+ result of this License or out of the use or inability to use the
164+ Work (including but not limited to damages for loss of goodwill,
165+ work stoppage, computer failure or malfunction, or any and all
166+ other commercial damages or losses), even if such Contributor
167+ has been advised of the possibility of such damages.
168+
169+ 9. Accepting Warranty or Additional Liability. While redistributing
170+ the Work or Derivative Works thereof, You may choose to offer,
171+ and charge a fee for, acceptance of support, warranty, indemnity,
172+ or other liability obligations and/or rights consistent with this
173+ License. However, in accepting such obligations, You may act only
174+ on Your own behalf and on Your sole responsibility, not on behalf
175+ of any other Contributor, and only if You agree to indemnify,
176+ defend, and hold each Contributor harmless for any liability
177+ incurred by, or claims asserted against, such Contributor by reason
178+ of your accepting any such warranty or additional liability.
179+
180+ END OF TERMS AND CONDITIONS
181+
182+ APPENDIX: How to apply the Apache License to your work.
183+
184+ To apply the Apache License to your work, attach the following
185+ boilerplate notice, with the fields enclosed by brackets "[]"
186+ replaced with your own identifying information. (Don't include
187+ the brackets!) The text should be enclosed in the appropriate
188+ comment syntax for the file format. We also recommend that a
189+ file or class name and description of purpose be included on the
190+ same "printed page" as the copyright notice for easier
191+ identification within third-party archives.
192+
193+ Copyright [yyyy] [name of copyright owner]
194+
195+ Licensed under the Apache License, Version 2.0 (the "License");
196+ you may not use this file except in compliance with the License.
197+ You may obtain a copy of the License at
198+
199+ http://www.apache.org/licenses/LICENSE-2.0
200+
201+ Unless required by applicable law or agreed to in writing, software
202+ distributed under the License is distributed on an "AS IS" BASIS,
203+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
204+ See the License for the specific language governing permissions and
205+ limitations under the License.
206+
207+
208+
209+APACHE TOMCAT SUBCOMPONENTS:
210+
211+Apache Tomcat includes a number of subcomponents with separate copyright notices
212+and license terms. Your use of these subcomponents is subject to the terms and
213+conditions of the following licenses.
214+
215+
216+For the Eclipse JDT Core Batch Compiler (ecj-x.x.x.jar) component and the
217+following Jakarta EE Schemas:
218+- jakartaee_9.xsd
219+- jakarta_web-services_2_0.xsd
220+- jakarta_web-services_client_2_0.xsd
221+- jsp_3_0.xsd
222+- web-app_5_0.xsd
223+- web-commonn_5_0.xsd
224+- web-fragment_5_0.xsd
225+- web-jsptaglibrary_3_0.xsd
226+
227+Eclipse Public License - v 2.0
228+
229+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
230+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
231+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
232+
233+1. DEFINITIONS
234+
235+"Contribution" means:
236+
237+ a) in the case of the initial Contributor, the initial content
238+ Distributed under this Agreement, and
239+
240+ b) in the case of each subsequent Contributor:
241+ i) changes to the Program, and
242+ ii) additions to the Program;
243+ where such changes and/or additions to the Program originate from
244+ and are Distributed by that particular Contributor. A Contribution
245+ "originates" from a Contributor if it was added to the Program by
246+ such Contributor itself or anyone acting on such Contributor's behalf.
247+ Contributions do not include changes or additions to the Program that
248+ are not Modified Works.
249+
250+"Contributor" means any person or entity that Distributes the Program.
251+
252+"Licensed Patents" mean patent claims licensable by a Contributor which
253+are necessarily infringed by the use or sale of its Contribution alone
254+or when combined with the Program.
255+
256+"Program" means the Contributions Distributed in accordance with this
257+Agreement.
258+
259+"Recipient" means anyone who receives the Program under this Agreement
260+or any Secondary License (as applicable), including Contributors.
261+
262+"Derivative Works" shall mean any work, whether in Source Code or other
263+form, that is based on (or derived from) the Program and for which the
264+editorial revisions, annotations, elaborations, or other modifications
265+represent, as a whole, an original work of authorship.
266+
267+"Modified Works" shall mean any work in Source Code or other form that
268+results from an addition to, deletion from, or modification of the
269+contents of the Program, including, for purposes of clarity any new file
270+in Source Code form that contains any contents of the Program. Modified
271+Works shall not include works that contain only declarations,
272+interfaces, types, classes, structures, or files of the Program solely
273+in each case in order to link to, bind by name, or subclass the Program
274+or Modified Works thereof.
275+
276+"Distribute" means the acts of a) distributing or b) making available
277+in any manner that enables the transfer of a copy.
278+
279+"Source Code" means the form of a Program preferred for making
280+modifications, including but not limited to software source code,
281+documentation source, and configuration files.
282+
283+"Secondary License" means either the GNU General Public License,
284+Version 2.0, or any later versions of that license, including any
285+exceptions or additional permissions as identified by the initial
286+Contributor.
287+
288+2. GRANT OF RIGHTS
289+
290+ a) Subject to the terms of this Agreement, each Contributor hereby
291+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
292+ license to reproduce, prepare Derivative Works of, publicly display,
293+ publicly perform, Distribute and sublicense the Contribution of such
294+ Contributor, if any, and such Derivative Works.
295+
296+ b) Subject to the terms of this Agreement, each Contributor hereby
297+ grants Recipient a non-exclusive, worldwide, royalty-free patent
298+ license under Licensed Patents to make, use, sell, offer to sell,
299+ import and otherwise transfer the Contribution of such Contributor,
300+ if any, in Source Code or other form. This patent license shall
301+ apply to the combination of the Contribution and the Program if, at
302+ the time the Contribution is added by the Contributor, such addition
303+ of the Contribution causes such combination to be covered by the
304+ Licensed Patents. The patent license shall not apply to any other
305+ combinations which include the Contribution. No hardware per se is
306+ licensed hereunder.
307+
308+ c) Recipient understands that although each Contributor grants the
309+ licenses to its Contributions set forth herein, no assurances are
310+ provided by any Contributor that the Program does not infringe the
311+ patent or other intellectual property rights of any other entity.
312+ Each Contributor disclaims any liability to Recipient for claims
313+ brought by any other entity based on infringement of intellectual
314+ property rights or otherwise. As a condition to exercising the
315+ rights and licenses granted hereunder, each Recipient hereby
316+ assumes sole responsibility to secure any other intellectual
317+ property rights needed, if any. For example, if a third party
318+ patent license is required to allow Recipient to Distribute the
319+ Program, it is Recipient's responsibility to acquire that license
320+ before distributing the Program.
321+
322+ d) Each Contributor represents that to its knowledge it has
323+ sufficient copyright rights in its Contribution, if any, to grant
324+ the copyright license set forth in this Agreement.
325+
326+ e) Notwithstanding the terms of any Secondary License, no
327+ Contributor makes additional grants to any Recipient (other than
328+ those set forth in this Agreement) as a result of such Recipient's
329+ receipt of the Program under the terms of a Secondary License
330+ (if permitted under the terms of Section 3).
331+
332+3. REQUIREMENTS
333+
334+3.1 If a Contributor Distributes the Program in any form, then:
335+
336+ a) the Program must also be made available as Source Code, in
337+ accordance with section 3.2, and the Contributor must accompany
338+ the Program with a statement that the Source Code for the Program
339+ is available under this Agreement, and informs Recipients how to
340+ obtain it in a reasonable manner on or through a medium customarily
341+ used for software exchange; and
342+
343+ b) the Contributor may Distribute the Program under a license
344+ different than this Agreement, provided that such license:
345+ i) effectively disclaims on behalf of all other Contributors all
346+ warranties and conditions, express and implied, including
347+ warranties or conditions of title and non-infringement, and
348+ implied warranties or conditions of merchantability and fitness
349+ for a particular purpose;
350+
351+ ii) effectively excludes on behalf of all other Contributors all
352+ liability for damages, including direct, indirect, special,
353+ incidental and consequential damages, such as lost profits;
354+
355+ iii) does not attempt to limit or alter the recipients' rights
356+ in the Source Code under section 3.2; and
357+
358+ iv) requires any subsequent distribution of the Program by any
359+ party to be under a license that satisfies the requirements
360+ of this section 3.
361+
362+3.2 When the Program is Distributed as Source Code:
363+
364+ a) it must be made available under this Agreement, or if the
365+ Program (i) is combined with other material in a separate file or
366+ files made available under a Secondary License, and (ii) the initial
367+ Contributor attached to the Source Code the notice described in
368+ Exhibit A of this Agreement, then the Program may be made available
369+ under the terms of such Secondary Licenses, and
370+
371+ b) a copy of this Agreement must be included with each copy of
372+ the Program.
373+
374+3.3 Contributors may not remove or alter any copyright, patent,
375+trademark, attribution notices, disclaimers of warranty, or limitations
376+of liability ("notices") contained within the Program from any copy of
377+the Program which they Distribute, provided that Contributors may add
378+their own appropriate notices.
379+
380+4. COMMERCIAL DISTRIBUTION
381+
382+Commercial distributors of software may accept certain responsibilities
383+with respect to end users, business partners and the like. While this
384+license is intended to facilitate the commercial use of the Program,
385+the Contributor who includes the Program in a commercial product
386+offering should do so in a manner which does not create potential
387+liability for other Contributors. Therefore, if a Contributor includes
388+the Program in a commercial product offering, such Contributor
389+("Commercial Contributor") hereby agrees to defend and indemnify every
390+other Contributor ("Indemnified Contributor") against any losses,
391+damages and costs (collectively "Losses") arising from claims, lawsuits
392+and other legal actions brought by a third party against the Indemnified
393+Contributor to the extent caused by the acts or omissions of such
394+Commercial Contributor in connection with its distribution of the Program
395+in a commercial product offering. The obligations in this section do not
396+apply to any claims or Losses relating to any actual or alleged
397+intellectual property infringement. In order to qualify, an Indemnified
398+Contributor must: a) promptly notify the Commercial Contributor in
399+writing of such claim, and b) allow the Commercial Contributor to control,
400+and cooperate with the Commercial Contributor in, the defense and any
401+related settlement negotiations. The Indemnified Contributor may
402+participate in any such claim at its own expense.
403+
404+For example, a Contributor might include the Program in a commercial
405+product offering, Product X. That Contributor is then a Commercial
406+Contributor. If that Commercial Contributor then makes performance
407+claims, or offers warranties related to Product X, those performance
408+claims and warranties are such Commercial Contributor's responsibility
409+alone. Under this section, the Commercial Contributor would have to
410+defend claims against the other Contributors related to those performance
411+claims and warranties, and if a court requires any other Contributor to
412+pay any damages as a result, the Commercial Contributor must pay
413+those damages.
414+
415+5. NO WARRANTY
416+
417+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
418+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
419+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
420+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
421+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
422+PURPOSE. Each Recipient is solely responsible for determining the
423+appropriateness of using and distributing the Program and assumes all
424+risks associated with its exercise of rights under this Agreement,
425+including but not limited to the risks and costs of program errors,
426+compliance with applicable laws, damage to or loss of data, programs
427+or equipment, and unavailability or interruption of operations.
428+
429+6. DISCLAIMER OF LIABILITY
430+
431+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
432+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
433+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
434+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
435+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
436+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
437+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
438+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
439+POSSIBILITY OF SUCH DAMAGES.
440+
441+7. GENERAL
442+
443+If any provision of this Agreement is invalid or unenforceable under
444+applicable law, it shall not affect the validity or enforceability of
445+the remainder of the terms of this Agreement, and without further
446+action by the parties hereto, such provision shall be reformed to the
447+minimum extent necessary to make such provision valid and enforceable.
448+
449+If Recipient institutes patent litigation against any entity
450+(including a cross-claim or counterclaim in a lawsuit) alleging that the
451+Program itself (excluding combinations of the Program with other software
452+or hardware) infringes such Recipient's patent(s), then such Recipient's
453+rights granted under Section 2(b) shall terminate as of the date such
454+litigation is filed.
455+
456+All Recipient's rights under this Agreement shall terminate if it
457+fails to comply with any of the material terms or conditions of this
458+Agreement and does not cure such failure in a reasonable period of
459+time after becoming aware of such noncompliance. If all Recipient's
460+rights under this Agreement terminate, Recipient agrees to cease use
461+and distribution of the Program as soon as reasonably practicable.
462+However, Recipient's obligations under this Agreement and any licenses
463+granted by Recipient relating to the Program shall continue and survive.
464+
465+Everyone is permitted to copy and distribute copies of this Agreement,
466+but in order to avoid inconsistency the Agreement is copyrighted and
467+may only be modified in the following manner. The Agreement Steward
468+reserves the right to publish new versions (including revisions) of
469+this Agreement from time to time. No one other than the Agreement
470+Steward has the right to modify this Agreement. The Eclipse Foundation
471+is the initial Agreement Steward. The Eclipse Foundation may assign the
472+responsibility to serve as the Agreement Steward to a suitable separate
473+entity. Each new version of the Agreement will be given a distinguishing
474+version number. The Program (including Contributions) may always be
475+Distributed subject to the version of the Agreement under which it was
476+received. In addition, after a new version of the Agreement is published,
477+Contributor may elect to Distribute the Program (including its
478+Contributions) under the new version.
479+
480+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
481+receives no rights or licenses to the intellectual property of any
482+Contributor under this Agreement, whether expressly, by implication,
483+estoppel or otherwise. All rights in the Program not expressly granted
484+under this Agreement are reserved. Nothing in this Agreement is intended
485+to be enforceable by any entity that is not a Contributor or Recipient.
486+No third-party beneficiary rights are created under this Agreement.
487+
488+Exhibit A - Form of Secondary Licenses Notice
489+
490+"This Source Code may also be made available under the following
491+Secondary Licenses when the conditions for such availability set forth
492+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
493+version(s), and exceptions or additional permissions here}."
494+
495+ Simply including a copy of this Agreement, including this Exhibit A
496+ is not sufficient to license the Source Code under Secondary Licenses.
497+
498+ If it is not possible or desirable to put the notice in a particular
499+ file, then You may include the notice in a location (such as a LICENSE
500+ file in a relevant directory) where a recipient would be likely to
501+ look for such a notice.
502+
503+ You may add additional accurate notices of copyright ownership.
504+
505+
506+For the Windows Installer component:
507+
508+ * All NSIS source code, plug-ins, documentation, examples, header files and
509+ graphics, with the exception of the compression modules and where
510+ otherwise noted, are licensed under the zlib/libpng license.
511+ * The zlib compression module for NSIS is licensed under the zlib/libpng
512+ license.
513+ * The bzip2 compression module for NSIS is licensed under the bzip2 license.
514+ * The lzma compression module for NSIS is licensed under the Common Public
515+ License version 1.0.
516+
517+zlib/libpng license
518+
519+This software is provided 'as-is', without any express or implied warranty. In
520+no event will the authors be held liable for any damages arising from the use of
521+this software.
522+
523+Permission is granted to anyone to use this software for any purpose, including
524+commercial applications, and to alter it and redistribute it freely, subject to
525+the following restrictions:
526+
527+ 1. The origin of this software must not be misrepresented; you must not claim
528+ that you wrote the original software. If you use this software in a
529+ product, an acknowledgment in the product documentation would be
530+ appreciated but is not required.
531+ 2. Altered source versions must be plainly marked as such, and must not be
532+ misrepresented as being the original software.
533+ 3. This notice may not be removed or altered from any source distribution.
534+
535+bzip2 license
536+
537+Redistribution and use in source and binary forms, with or without modification,
538+are permitted provided that the following conditions are met:
539+
540+ 1. Redistributions of source code must retain the above copyright notice,
541+ this list of conditions and the following disclaimer.
542+ 2. The origin of this software must not be misrepresented; you must not claim
543+ that you wrote the original software. If you use this software in a
544+ product, an acknowledgment in the product documentation would be
545+ appreciated but is not required.
546+ 3. Altered source versions must be plainly marked as such, and must not be
547+ misrepresented as being the original software.
548+ 4. The name of the author may not be used to endorse or promote products
549+ derived from this software without specific prior written permission.
550+
551+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS AND ANY EXPRESS OR IMPLIED
552+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
553+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
554+SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
555+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
556+OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
557+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
558+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
559+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
560+OF SUCH DAMAGE.
561+
562+Julian Seward, Cambridge, UK.
563+
564+jseward@acm.org
565+Common Public License version 1.0
566+
567+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
568+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
569+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
570+
571+1. DEFINITIONS
572+
573+"Contribution" means:
574+
575+a) in the case of the initial Contributor, the initial code and documentation
576+distributed under this Agreement, and b) in the case of each subsequent
577+Contributor:
578+
579+i) changes to the Program, and
580+
581+ii) additions to the Program;
582+
583+where such changes and/or additions to the Program originate from and are
584+distributed by that particular Contributor. A Contribution 'originates' from a
585+Contributor if it was added to the Program by such Contributor itself or anyone
586+acting on such Contributor's behalf. Contributions do not include additions to
587+the Program which: (i) are separate modules of software distributed in
588+conjunction with the Program under their own license agreement, and (ii) are not
589+derivative works of the Program.
590+
591+"Contributor" means any person or entity that distributes the Program.
592+
593+"Licensed Patents " mean patent claims licensable by a Contributor which are
594+necessarily infringed by the use or sale of its Contribution alone or when
595+combined with the Program.
596+
597+"Program" means the Contributions distributed in accordance with this Agreement.
598+
599+"Recipient" means anyone who receives the Program under this Agreement,
600+including all Contributors.
601+
602+2. GRANT OF RIGHTS
603+
604+a) Subject to the terms of this Agreement, each Contributor hereby grants
605+Recipient a non-exclusive, worldwide, royalty-free copyright license to
606+reproduce, prepare derivative works of, publicly display, publicly perform,
607+distribute and sublicense the Contribution of such Contributor, if any, and such
608+derivative works, in source code and object code form.
609+
610+b) Subject to the terms of this Agreement, each Contributor hereby grants
611+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
612+Patents to make, use, sell, offer to sell, import and otherwise transfer the
613+Contribution of such Contributor, if any, in source code and object code form.
614+This patent license shall apply to the combination of the Contribution and the
615+Program if, at the time the Contribution is added by the Contributor, such
616+addition of the Contribution causes such combination to be covered by the
617+Licensed Patents. The patent license shall not apply to any other combinations
618+which include the Contribution. No hardware per se is licensed hereunder.
619+
620+c) Recipient understands that although each Contributor grants the licenses to
621+its Contributions set forth herein, no assurances are provided by any
622+Contributor that the Program does not infringe the patent or other intellectual
623+property rights of any other entity. Each Contributor disclaims any liability to
624+Recipient for claims brought by any other entity based on infringement of
625+intellectual property rights or otherwise. As a condition to exercising the
626+rights and licenses granted hereunder, each Recipient hereby assumes sole
627+responsibility to secure any other intellectual property rights needed, if any.
628+For example, if a third party patent license is required to allow Recipient to
629+distribute the Program, it is Recipient's responsibility to acquire that license
630+before distributing the Program.
631+
632+d) Each Contributor represents that to its knowledge it has sufficient copyright
633+rights in its Contribution, if any, to grant the copyright license set forth in
634+this Agreement.
635+
636+3. REQUIREMENTS
637+
638+A Contributor may choose to distribute the Program in object code form under its
639+own license agreement, provided that:
640+
641+a) it complies with the terms and conditions of this Agreement; and
642+
643+b) its license agreement:
644+
645+i) effectively disclaims on behalf of all Contributors all warranties and
646+conditions, express and implied, including warranties or conditions of title and
647+non-infringement, and implied warranties or conditions of merchantability and
648+fitness for a particular purpose;
649+
650+ii) effectively excludes on behalf of all Contributors all liability for
651+damages, including direct, indirect, special, incidental and consequential
652+damages, such as lost profits;
653+
654+iii) states that any provisions which differ from this Agreement are offered by
655+that Contributor alone and not by any other party; and
656+
657+iv) states that source code for the Program is available from such Contributor,
658+and informs licensees how to obtain it in a reasonable manner on or through a
659+medium customarily used for software exchange.
660+
661+When the Program is made available in source code form:
662+
663+a) it must be made available under this Agreement; and
664+
665+b) a copy of this Agreement must be included with each copy of the Program.
666+
667+Contributors may not remove or alter any copyright notices contained within the
668+Program.
669+
670+Each Contributor must identify itself as the originator of its Contribution, if
671+any, in a manner that reasonably allows subsequent Recipients to identify the
672+originator of the Contribution.
673+
674+4. COMMERCIAL DISTRIBUTION
675+
676+Commercial distributors of software may accept certain responsibilities with
677+respect to end users, business partners and the like. While this license is
678+intended to facilitate the commercial use of the Program, the Contributor who
679+includes the Program in a commercial product offering should do so in a manner
680+which does not create potential liability for other Contributors. Therefore, if
681+a Contributor includes the Program in a commercial product offering, such
682+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
683+every other Contributor ("Indemnified Contributor") against any losses, damages
684+and costs (collectively "Losses") arising from claims, lawsuits and other legal
685+actions brought by a third party against the Indemnified Contributor to the
686+extent caused by the acts or omissions of such Commercial Contributor in
687+connection with its distribution of the Program in a commercial product
688+offering. The obligations in this section do not apply to any claims or Losses
689+relating to any actual or alleged intellectual property infringement. In order
690+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
691+Contributor in writing of such claim, and b) allow the Commercial Contributor to
692+control, and cooperate with the Commercial Contributor in, the defense and any
693+related settlement negotiations. The Indemnified Contributor may participate in
694+any such claim at its own expense.
695+
696+For example, a Contributor might include the Program in a commercial product
697+offering, Product X. That Contributor is then a Commercial Contributor. If that
698+Commercial Contributor then makes performance claims, or offers warranties
699+related to Product X, those performance claims and warranties are such
700+Commercial Contributor's responsibility alone. Under this section, the
701+Commercial Contributor would have to defend claims against the other
702+Contributors related to those performance claims and warranties, and if a court
703+requires any other Contributor to pay any damages as a result, the Commercial
704+Contributor must pay those damages.
705+
706+5. NO WARRANTY
707+
708+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
709+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
710+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
711+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
712+Recipient is solely responsible for determining the appropriateness of using and
713+distributing the Program and assumes all risks associated with its exercise of
714+rights under this Agreement, including but not limited to the risks and costs of
715+program errors, compliance with applicable laws, damage to or loss of data,
716+programs or equipment, and unavailability or interruption of operations.
717+
718+6. DISCLAIMER OF LIABILITY
719+
720+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
721+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
722+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
723+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
724+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
725+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
726+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
727+
728+7. GENERAL
729+
730+If any provision of this Agreement is invalid or unenforceable under applicable
731+law, it shall not affect the validity or enforceability of the remainder of the
732+terms of this Agreement, and without further action by the parties hereto, such
733+provision shall be reformed to the minimum extent necessary to make such
734+provision valid and enforceable.
735+
736+If Recipient institutes patent litigation against a Contributor with respect to
737+a patent applicable to software (including a cross-claim or counterclaim in a
738+lawsuit), then any patent licenses granted by that Contributor to such Recipient
739+under this Agreement shall terminate as of the date such litigation is filed. In
740+addition, if Recipient institutes patent litigation against any entity
741+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
742+itself (excluding combinations of the Program with other software or hardware)
743+infringes such Recipient's patent(s), then such Recipient's rights granted under
744+Section 2(b) shall terminate as of the date such litigation is filed.
745+
746+All Recipient's rights under this Agreement shall terminate if it fails to
747+comply with any of the material terms or conditions of this Agreement and does
748+not cure such failure in a reasonable period of time after becoming aware of
749+such noncompliance. If all Recipient's rights under this Agreement terminate,
750+Recipient agrees to cease use and distribution of the Program as soon as
751+reasonably practicable. However, Recipient's obligations under this Agreement
752+and any licenses granted by Recipient relating to the Program shall continue and
753+survive.
754+
755+Everyone is permitted to copy and distribute copies of this Agreement, but in
756+order to avoid inconsistency the Agreement is copyrighted and may only be
757+modified in the following manner. The Agreement Steward reserves the right to
758+publish new versions (including revisions) of this Agreement from time to time.
759+No one other than the Agreement Steward has the right to modify this Agreement.
760+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
761+as the Agreement Steward to a suitable separate entity. Each new version of the
762+Agreement will be given a distinguishing version number. The Program (including
763+Contributions) may always be distributed subject to the version of the Agreement
764+under which it was received. In addition, after a new version of the Agreement
765+is published, Contributor may elect to distribute the Program (including its
766+Contributions) under the new version. Except as expressly stated in Sections
767+2(a) and 2(b) above, Recipient receives no rights or licenses to the
768+intellectual property of any Contributor under this Agreement, whether
769+expressly, by implication, estoppel or otherwise. All rights in the Program not
770+expressly granted under this Agreement are reserved.
771+
772+This Agreement is governed by the laws of the State of New York and the
773+intellectual property laws of the United States of America. No party to this
774+Agreement will bring a legal action under this Agreement more than one year
775+after the cause of action arose. Each party waives its rights to a jury trial in
776+any resulting litigation.
777+
778+Special exception for LZMA compression module
779+
780+Igor Pavlov and Amir Szekely, the authors of the LZMA compression module for
781+NSIS, expressly permit you to statically or dynamically link your code (or bind
782+by name) to the files from the LZMA compression module for NSIS without
783+subjecting your linked code to the terms of the Common Public license version
784+1.0. Any modifications or additions to files from the LZMA compression module
785+for NSIS, however, are subject to the terms of the Common Public License version
786+1.0.
787+
788+
789+For the following XML Schemas for Java EE Deployment Descriptors:
790+ - javaee_5.xsd
791+ - javaee_web_services_1_2.xsd
792+ - javaee_web_services_client_1_2.xsd
793+ - javaee_6.xsd
794+ - javaee_web_services_1_3.xsd
795+ - javaee_web_services_client_1_3.xsd
796+ - jsp_2_2.xsd
797+ - web-app_3_0.xsd
798+ - web-common_3_0.xsd
799+ - web-fragment_3_0.xsd
800+ - javaee_7.xsd
801+ - javaee_web_services_1_4.xsd
802+ - javaee_web_services_client_1_4.xsd
803+ - jsp_2_3.xsd
804+ - web-app_3_1.xsd
805+ - web-common_3_1.xsd
806+ - web-fragment_3_1.xsd
807+ - javaee_8.xsd
808+ - web-app_4_0.xsd
809+ - web-common_4_0.xsd
810+ - web-fragment_4_0.xsd
811+
812+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
813+
814+1. Definitions.
815+
816+ 1.1. Contributor. means each individual or entity that creates or contributes
817+ to the creation of Modifications.
818+
819+ 1.2. Contributor Version. means the combination of the Original Software,
820+ prior Modifications used by a Contributor (if any), and the
821+ Modifications made by that particular Contributor.
822+
823+ 1.3. Covered Software. means (a) the Original Software, or (b) Modifications,
824+ or (c) the combination of files containing Original Software with files
825+ containing Modifications, in each case including portions thereof.
826+
827+ 1.4. Executable. means the Covered Software in any form other than Source
828+ Code.
829+
830+ 1.5. Initial Developer. means the individual or entity that first makes
831+ Original Software available under this License.
832+
833+ 1.6. Larger Work. means a work which combines Covered Software or portions
834+ thereof with code not governed by the terms of this License.
835+
836+ 1.7. License. means this document.
837+
838+ 1.8. Licensable. means having the right to grant, to the maximum extent
839+ possible, whether at the time of the initial grant or subsequently
840+ acquired, any and all of the rights conveyed herein.
841+
842+ 1.9. Modifications. means the Source Code and Executable form of any of the
843+ following:
844+
845+ A. Any file that results from an addition to, deletion from or
846+ modification of the contents of a file containing Original Software
847+ or previous Modifications;
848+
849+ B. Any new file that contains any part of the Original Software or
850+ previous Modification; or
851+
852+ C. Any new file that is contributed or otherwise made available under
853+ the terms of this License.
854+
855+ 1.10. Original Software. means the Source Code and Executable form of
856+ computer software code that is originally released under this License.
857+
858+ 1.11. Patent Claims. means any patent claim(s), now owned or hereafter
859+ acquired, including without limitation, method, process, and apparatus
860+ claims, in any patent Licensable by grantor.
861+
862+ 1.12. Source Code. means (a) the common form of computer software code in
863+ which modifications are made and (b) associated documentation included
864+ in or with such code.
865+
866+ 1.13. You. (or .Your.) means an individual or a legal entity exercising
867+ rights under, and complying with all of the terms of, this License. For
868+ legal entities, .You. includes any entity which controls, is controlled
869+ by, or is under common control with You. For purposes of this
870+ definition, .control. means (a) the power, direct or indirect, to cause
871+ the direction or management of such entity, whether by contract or
872+ otherwise, or (b) ownership of more than fifty percent (50%) of the
873+ outstanding shares or beneficial ownership of such entity.
874+
875+2. License Grants.
876+
877+ 2.1. The Initial Developer Grant.
878+
879+ Conditioned upon Your compliance with Section 3.1 below and subject to
880+ third party intellectual property claims, the Initial Developer hereby
881+ grants You a world-wide, royalty-free, non-exclusive license:
882+
883+ (a) under intellectual property rights (other than patent or trademark)
884+ Licensable by Initial Developer, to use, reproduce, modify, display,
885+ perform, sublicense and distribute the Original Software (or
886+ portions thereof), with or without Modifications, and/or as part of
887+ a Larger Work; and
888+
889+ (b) under Patent Claims infringed by the making, using or selling of
890+ Original Software, to make, have made, use, practice, sell, and
891+ offer for sale, and/or otherwise dispose of the Original Software
892+ (or portions thereof).
893+
894+ (c) The licenses granted in Sections 2.1(a) and (b) are effective on the
895+ date Initial Developer first distributes or otherwise makes the
896+ Original Software available to a third party under the terms of this
897+ License.
898+
899+ (d) Notwithstanding Section 2.1(b) above, no patent license is granted:
900+ (1) for code that You delete from the Original Software, or (2) for
901+ infringements caused by: (i) the modification of the Original
902+ Software, or (ii) the combination of the Original Software with
903+ other software or devices.
904+
905+ 2.2. Contributor Grant.
906+
907+ Conditioned upon Your compliance with Section 3.1 below and subject to third
908+ party intellectual property claims, each Contributor hereby grants You a
909+ world-wide, royalty-free, non-exclusive license:
910+
911+ (a) under intellectual property rights (other than patent or trademark)
912+ Licensable by Contributor to use, reproduce, modify, display,
913+ perform, sublicense and distribute the Modifications created by such
914+ Contributor (or portions thereof), either on an unmodified basis,
915+ with other Modifications, as Covered Software and/or as part of a
916+ Larger Work; and
917+
918+ (b) under Patent Claims infringed by the making, using, or selling of
919+ Modifications made by that Contributor either alone and/or in
920+ combination with its Contributor Version (or portions of such
921+ combination), to make, use, sell, offer for sale, have made, and/or
922+ otherwise dispose of: (1) Modifications made by that Contributor (or
923+ portions thereof); and (2) the combination of Modifications made by
924+ that Contributor with its Contributor Version (or portions of such
925+ combination).
926+
927+ (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on
928+ the date Contributor first distributes or otherwise makes the
929+ Modifications available to a third party.
930+
931+ (d) Notwithstanding Section 2.2(b) above, no patent license is granted:
932+ (1) for any code that Contributor has deleted from the Contributor
933+ Version; (2) for infringements caused by: (i) third party
934+ modifications of Contributor Version, or (ii) the combination of
935+ Modifications made by that Contributor with other software (except
936+ as part of the Contributor Version) or other devices; or (3) under
937+ Patent Claims infringed by Covered Software in the absence of
938+ Modifications made by that Contributor.
939+
940+3. Distribution Obligations.
941+
942+ 3.1. Availability of Source Code.
943+ Any Covered Software that You distribute or otherwise make available in
944+ Executable form must also be made available in Source Code form and that
945+ Source Code form must be distributed only under the terms of this License.
946+ You must include a copy of this License with every copy of the Source Code
947+ form of the Covered Software You distribute or otherwise make available.
948+ You must inform recipients of any such Covered Software in Executable form
949+ as to how they can obtain such Covered Software in Source Code form in a
950+ reasonable manner on or through a medium customarily used for software
951+ exchange.
952+
953+ 3.2. Modifications.
954+ The Modifications that You create or to which You contribute are governed
955+ by the terms of this License. You represent that You believe Your
956+ Modifications are Your original creation(s) and/or You have sufficient
957+ rights to grant the rights conveyed by this License.
958+
959+ 3.3. Required Notices.
960+ You must include a notice in each of Your Modifications that identifies
961+ You as the Contributor of the Modification. You may not remove or alter
962+ any copyright, patent or trademark notices contained within the Covered
963+ Software, or any notices of licensing or any descriptive text giving
964+ attribution to any Contributor or the Initial Developer.
965+
966+ 3.4. Application of Additional Terms.
967+ You may not offer or impose any terms on any Covered Software in Source
968+ Code form that alters or restricts the applicable version of this License
969+ or the recipients. rights hereunder. You may choose to offer, and to
970+ charge a fee for, warranty, support, indemnity or liability obligations to
971+ one or more recipients of Covered Software. However, you may do so only on
972+ Your own behalf, and not on behalf of the Initial Developer or any
973+ Contributor. You must make it absolutely clear that any such warranty,
974+ support, indemnity or liability obligation is offered by You alone, and
975+ You hereby agree to indemnify the Initial Developer and every Contributor
976+ for any liability incurred by the Initial Developer or such Contributor as
977+ a result of warranty, support, indemnity or liability terms You offer.
978+
979+ 3.5. Distribution of Executable Versions.
980+ You may distribute the Executable form of the Covered Software under the
981+ terms of this License or under the terms of a license of Your choice,
982+ which may contain terms different from this License, provided that You are
983+ in compliance with the terms of this License and that the license for the
984+ Executable form does not attempt to limit or alter the recipient.s rights
985+ in the Source Code form from the rights set forth in this License. If You
986+ distribute the Covered Software in Executable form under a different
987+ license, You must make it absolutely clear that any terms which differ
988+ from this License are offered by You alone, not by the Initial Developer
989+ or Contributor. You hereby agree to indemnify the Initial Developer and
990+ every Contributor for any liability incurred by the Initial Developer or
991+ such Contributor as a result of any such terms You offer.
992+
993+ 3.6. Larger Works.
994+ You may create a Larger Work by combining Covered Software with other code
995+ not governed by the terms of this License and distribute the Larger Work
996+ as a single product. In such a case, You must make sure the requirements
997+ of this License are fulfilled for the Covered Software.
998+
999+4. Versions of the License.
1000+
1001+ 4.1. New Versions.
1002+ Sun Microsystems, Inc. is the initial license steward and may publish
1003+ revised and/or new versions of this License from time to time. Each
1004+ version will be given a distinguishing version number. Except as provided
1005+ in Section 4.3, no one other than the license steward has the right to
1006+ modify this License.
1007+
1008+ 4.2. Effect of New Versions.
1009+ You may always continue to use, distribute or otherwise make the Covered
1010+ Software available under the terms of the version of the License under
1011+ which You originally received the Covered Software. If the Initial
1012+ Developer includes a notice in the Original Software prohibiting it from
1013+ being distributed or otherwise made available under any subsequent version
1014+ of the License, You must distribute and make the Covered Software
1015+ available under the terms of the version of the License under which You
1016+ originally received the Covered Software. Otherwise, You may also choose
1017+ to use, distribute or otherwise make the Covered Software available under
1018+ the terms of any subsequent version of the License published by the
1019+ license steward.
1020+
1021+ 4.3. Modified Versions.
1022+ When You are an Initial Developer and You want to create a new license for
1023+ Your Original Software, You may create and use a modified version of this
1024+ License if You: (a) rename the license and remove any references to the
1025+ name of the license steward (except to note that the license differs from
1026+ this License); and (b) otherwise make it clear that the license contains
1027+ terms which differ from this License.
1028+
1029+5. DISCLAIMER OF WARRANTY.
1030+
1031+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN .AS IS. BASIS, WITHOUT
1032+ WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
1033+ LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
1034+ MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK
1035+ AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD
1036+ ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
1037+ DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
1038+ SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
1039+ ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED
1040+ HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
1041+
1042+6. TERMINATION.
1043+
1044+ 6.1. This License and the rights granted hereunder will terminate
1045+ automatically if You fail to comply with terms herein and fail to
1046+ cure such breach within 30 days of becoming aware of the breach.
1047+ Provisions which, by their nature, must remain in effect beyond the
1048+ termination of this License shall survive.
1049+
1050+ 6.2. If You assert a patent infringement claim (excluding declaratory
1051+ judgment actions) against Initial Developer or a Contributor (the
1052+ Initial Developer or Contributor against whom You assert such claim
1053+ is referred to as .Participant.) alleging that the Participant
1054+ Software (meaning the Contributor Version where the Participant is a
1055+ Contributor or the Original Software where the Participant is the
1056+ Initial Developer) directly or indirectly infringes any patent, then
1057+ any and all rights granted directly or indirectly to You by such
1058+ Participant, the Initial Developer (if the Initial Developer is not
1059+ the Participant) and all Contributors under Sections 2.1 and/or 2.2
1060+ of this License shall, upon 60 days notice from Participant terminate
1061+ prospectively and automatically at the expiration of such 60 day
1062+ notice period, unless if within such 60 day period You withdraw Your
1063+ claim with respect to the Participant Software against such
1064+ Participant either unilaterally or pursuant to a written agreement
1065+ with Participant.
1066+
1067+ 6.3. In the event of termination under Sections 6.1 or 6.2 above, all end
1068+ user licenses that have been validly granted by You or any
1069+ distributor hereunder prior to termination (excluding licenses
1070+ granted to You by any distributor) shall survive termination.
1071+
1072+7. LIMITATION OF LIABILITY.
1073+
1074+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
1075+ NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
1076+ OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF
1077+ ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
1078+ INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
1079+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE,
1080+ COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR
1081+ LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
1082+ SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR
1083+ DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY.S NEGLIGENCE TO THE EXTENT
1084+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
1085+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
1086+ EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
1087+
1088+8. U.S. GOVERNMENT END USERS.
1089+
1090+ The Covered Software is a .commercial item,. as that term is defined in 48
1091+ C.F.R. 2.101 (Oct. 1995), consisting of .commercial computer software. (as
1092+ that term is defined at 48 C.F.R. ? 252.227-7014(a)(1)) and commercial
1093+ computer software documentation. as such terms are used in 48 C.F.R. 12.212
1094+ (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
1095+ through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered
1096+ Software with only those rights set forth herein. This U.S. Government Rights
1097+ clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or
1098+ provision that addresses Government rights in computer software under this
1099+ License.
1100+
1101+9. MISCELLANEOUS.
1102+
1103+ This License represents the complete agreement concerning subject matter
1104+ hereof. If any provision of this License is held to be unenforceable, such
1105+ provision shall be reformed only to the extent necessary to make it
1106+ enforceable. This License shall be governed by the law of the jurisdiction
1107+ specified in a notice contained within the Original Software (except to the
1108+ extent applicable law, if any, provides otherwise), excluding such
1109+ jurisdiction's conflict-of-law provisions. Any litigation relating to this
1110+ License shall be subject to the jurisdiction of the courts located in the
1111+ jurisdiction and venue specified in a notice contained within the Original
1112+ Software, with the losing party responsible for costs, including, without
1113+ limitation, court costs and reasonable attorneys. fees and expenses. The
1114+ application of the United Nations Convention on Contracts for the
1115+ International Sale of Goods is expressly excluded. Any law or regulation
1116+ which provides that the language of a contract shall be construed against
1117+ the drafter shall not apply to this License. You agree that You alone are
1118+ responsible for compliance with the United States export administration
1119+ regulations (and the export control laws and regulation of any other
1120+ countries) when You use, distribute or otherwise make available any Covered
1121+ Software.
1122+
1123+10. RESPONSIBILITY FOR CLAIMS.
1124+
1125+ As between Initial Developer and the Contributors, each party is responsible
1126+ for claims and damages arising, directly or indirectly, out of its
1127+ utilization of rights under this License and You agree to work with Initial
1128+ Developer and Contributors to distribute such responsibility on an equitable
1129+ basis. Nothing herein is intended or shall be deemed to constitute any
1130+ admission of liability.
1131+
1132+ NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION
1133+ LICENSE (CDDL)
1134+
1135+ The code released under the CDDL shall be governed by the laws of the State
1136+ of California (excluding conflict-of-law provisions). Any litigation relating
1137+ to this License shall be subject to the jurisdiction of the Federal Courts of
1138+ the Northern District of California and the state courts of the State of
1139+ California, with venue lying in Santa Clara County, California.
1140+
1141+```
tests/syntax-tests/source/Java Server Page (JSP)/NOTICEnew file+68
@@ -0,0 +1,68 @@
1+Apache Tomcat
2+Copyright 1999-2021 The Apache Software Foundation
3+
4+This product includes software developed at
5+The Apache Software Foundation (https://www.apache.org/).
6+
7+This software contains code derived from netty-native
8+developed by the Netty project
9+(https://netty.io, https://github.com/netty/netty-tcnative/)
10+and from finagle-native developed at Twitter
11+(https://github.com/twitter/finagle).
12+
13+This software contains code derived from jgroups-kubernetes
14+developed by the JGroups project (http://www.jgroups.org/).
15+
16+The Windows Installer is built with the Nullsoft
17+Scriptable Install System (NSIS), which is
18+open source software. The original software and
19+related information is available at
20+http://nsis.sourceforge.net.
21+
22+Java compilation software for JSP pages is provided by the Eclipse
23+JDT Core Batch Compiler component, which is open source software.
24+The original software and related information is available at
25+https://www.eclipse.org/jdt/core/.
26+
27+org.apache.tomcat.util.json.JSONParser.jj is a public domain javacc grammar
28+for JSON written by Robert Fischer.
29+https://github.com/RobertFischer/json-parser
30+
31+For portions of the Tomcat JNI OpenSSL API and the OpenSSL JSSE integration
32+The org.apache.tomcat.jni and the org.apache.tomcat.net.openssl packages
33+are derivative work originating from the Netty project and the finagle-native
34+project developed at Twitter
35+* Copyright 2014 The Netty Project
36+* Copyright 2014 Twitter
37+
38+For portions of the Tomcat cloud support
39+The org.apache.catalina.tribes.membership.cloud package contains derivative
40+work originating from the jgroups project.
41+https://github.com/jgroups-extras/jgroups-kubernetes
42+Copyright 2002-2018 Red Hat Inc.
43+
44+The original XML Schemas for Java EE Deployment Descriptors:
45+ - javaee_5.xsd
46+ - javaee_web_services_1_2.xsd
47+ - javaee_web_services_client_1_2.xsd
48+ - javaee_6.xsd
49+ - javaee_web_services_1_3.xsd
50+ - javaee_web_services_client_1_3.xsd
51+ - jsp_2_2.xsd
52+ - web-app_3_0.xsd
53+ - web-common_3_0.xsd
54+ - web-fragment_3_0.xsd
55+ - javaee_7.xsd
56+ - javaee_web_services_1_4.xsd
57+ - javaee_web_services_client_1_4.xsd
58+ - jsp_2_3.xsd
59+ - web-app_3_1.xsd
60+ - web-common_3_1.xsd
61+ - web-fragment_3_1.xsd
62+ - javaee_8.xsd
63+ - web-app_4_0.xsd
64+ - web-common_4_0.xsd
65+ - web-fragment_4_0.xsd
66+
67+may be obtained from:
68+http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html
tests/syntax-tests/source/Java Server Page (JSP)/sessionDetail.jspnew file+197
@@ -0,0 +1,197 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<%--
3+ Licensed to the Apache Software Foundation (ASF) under one or more
4+ contributor license agreements. See the NOTICE file distributed with
5+ this work for additional information regarding copyright ownership.
6+ The ASF licenses this file to You under the Apache License, Version 2.0
7+ (the "License"); you may not use this file except in compliance with
8+ the License. You may obtain a copy of the License at
9+
10+ http://www.apache.org/licenses/LICENSE-2.0
11+
12+ Unless required by applicable law or agreed to in writing, software
13+ distributed under the License is distributed on an "AS IS" BASIS,
14+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+ See the License for the specific language governing permissions and
16+ limitations under the License.
17+--%>
18+<%@page session="false" contentType="text/html; charset=ISO-8859-1" %>
19+<%@page import="java.util.Enumeration" %>
20+<%@page import="jakarta.servlet.http.HttpSession" %>
21+<%@page import="org.apache.catalina.Session" %>
22+<%@page import="org.apache.catalina.manager.JspHelper" %>
23+<%@page import="org.apache.catalina.util.ContextName" %>
24+<!DOCTYPE html
25+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
26+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
27+<%--!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
28+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"--%>
29+
30+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
31+<% String path = (String) request.getAttribute("path");
32+ String version = (String) request.getAttribute("version");
33+ ContextName cn = new ContextName(path, version);
34+ Session currentSession = (Session)request.getAttribute("currentSession");
35+ String currentSessionId = null;
36+ HttpSession currentHttpSession = null;
37+ if (currentSession != null) {
38+ currentHttpSession = currentSession.getSession();
39+ currentSessionId = JspHelper.escapeXml(currentSession.getId());
40+ } else {
41+ currentSessionId = "Session invalidated";
42+ }
43+ String submitUrl = JspHelper.escapeXml(response.encodeURL(
44+ ((HttpServletRequest) pageContext.getRequest()).getRequestURI() +
45+ "?path=" + path + "&version=" + version));
46+%>
47+<head>
48+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
49+ <meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 -->
50+ <meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP 1.1 -->
51+ <meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->
52+ <meta http-equiv="content-language" content="en"/>
53+ <meta name="author" content="Cedrik LIME"/>
54+ <meta name="copyright" content="copyright 2005-2021 the Apache Software Foundation"/>
55+ <meta name="robots" content="noindex,nofollow,noarchive"/>
56+ <title>Sessions Administration: details for <%= currentSessionId %></title>
57+</head>
58+<body>
59+<% if (currentHttpSession == null) { %>
60+ <h1><%=currentSessionId%></h1>
61+<% } else { %>
62+ <h1>Details for Session <%= currentSessionId %></h1>
63+
64+ <table style="text-align: left;" border="0">
65+ <tr>
66+ <th>Session Id</th>
67+ <td><%= currentSessionId %></td>
68+ </tr>
69+ <tr>
70+ <th>Guessed Locale</th>
71+ <td><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>
72+ </tr>
73+ <tr>
74+ <th>Guessed User</th>
75+ <td><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>
76+ </tr>
77+ <tr>
78+ <th>Creation Time</th>
79+ <td><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>
80+ </tr>
81+ <tr>
82+ <th>Last Accessed Time</th>
83+ <td><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>
84+ </tr>
85+ <tr>
86+ <th>Session Max Inactive Interval</th>
87+ <td><%= JspHelper.secondsToTimeString(currentSession.getMaxInactiveInterval()) %></td>
88+ </tr>
89+ <tr>
90+ <th>Used Time</th>
91+ <td><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>
92+ </tr>
93+ <tr>
94+ <th>Inactive Time</th>
95+ <td><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>
96+ </tr>
97+ <tr>
98+ <th>TTL</th>
99+ <td><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>
100+ </tr>
101+ </table>
102+
103+ <form method="post" action="<%= submitUrl %>">
104+ <div>
105+ <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />
106+ <input type="hidden" name="action" value="sessionDetail" />
107+ <%
108+ if ("Primary".equals(request.getParameter("sessionType"))) {
109+ %>
110+ <input type="hidden" name="sessionType" value="Primary" />
111+ <%
112+ }
113+ %> <input type="submit" value="Refresh" />
114+ </div>
115+ </form>
116+
117+ <div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div>
118+ <div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div>
119+
120+ <table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">
121+ <% int nAttributes = 0;
122+ Enumeration<String> attributeNamesEnumeration = currentHttpSession.getAttributeNames();
123+ while (attributeNamesEnumeration.hasMoreElements()) {
124+ attributeNamesEnumeration.nextElement();
125+ ++nAttributes;
126+ }
127+ %>
128+ <caption style="font-variant: small-caps;"><%= JspHelper.formatNumber(nAttributes) %> attributes</caption>
129+ <thead>
130+ <tr>
131+ <th>Remove Attribute</th>
132+ <th>Attribute name</th>
133+ <th>Attribute value</th>
134+ </tr>
135+ </thead>
136+ <%--tfoot>
137+ <tr>
138+ <td colspan="3" style="text-align: center;">
139+ TODO: set Max Inactive Interval on sessions
140+ </td>
141+ </tr>
142+ </tfoot--%>
143+ <tbody>
144+ <% attributeNamesEnumeration = currentHttpSession.getAttributeNames();
145+ while (attributeNamesEnumeration.hasMoreElements()) {
146+ String attributeName = attributeNamesEnumeration.nextElement();
147+ %>
148+ <tr>
149+ <td align="center">
150+ <form method="post" action="<%= submitUrl %>">
151+ <div>
152+ <input type="hidden" name="action" value="removeSessionAttribute" />
153+ <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />
154+ <input type="hidden" name="attributeName" value="<%= JspHelper.escapeXml(attributeName) %>" />
155+ <%
156+ if ("Primary".equals(request.getParameter("sessionType"))) {
157+ %>
158+ <input type="submit" value="Remove" />
159+ <input type="hidden" name="sessionType" value="Primary" />
160+ <%
161+ } else {
162+ out.print("Primary sessions only");
163+ }
164+ %>
165+ </div>
166+ </form>
167+ </td>
168+ <td><%= JspHelper.escapeXml(attributeName) %></td>
169+ <td><% Object attributeValue = currentHttpSession.getAttribute(attributeName); %><span title="<%= attributeValue == null ? "" : attributeValue.getClass().toString() %>"><%= JspHelper.escapeXml(attributeValue) %></span></td>
170+ </tr>
171+ <% } // end while %>
172+ </tbody>
173+ </table>
174+<% } // endif%>
175+
176+<form method="post" action="<%=submitUrl%>">
177+ <p style="text-align: center;">
178+ <input type="submit" value="Return to session list" />
179+ </p>
180+</form>
181+
182+<%--div style="display: none;">
183+<p>
184+ <a href="http://validator.w3.org/check?uri=referer"><img
185+ src="http://www.w3.org/Icons/valid-html401"
186+ alt="Valid HTML 4.01!" height="31" width="88"></a>
187+ <a href="http://validator.w3.org/check?uri=referer"><img
188+ src="http://www.w3.org/Icons/valid-xhtml10"
189+ alt="Valid XHTML 1.0!" height="31" width="88" /></a>
190+ <a href="http://validator.w3.org/check?uri=referer"><img
191+ src="http://www.w3.org/Icons/valid-xhtml11"
192+ alt="Valid XHTML 1.1!" height="31" width="88" /></a>
193+</p>
194+</div--%>
195+
196+</body>
197+</html>