This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat-training.git
The following commit(s) were added to refs/heads/main by this push: new f643d5b First draft of Jakarta EE 11 / Tomcat 11 preview f643d5b is described below commit f643d5b4af629c6589080a26b3dee53318b5c701 Author: Mark Thomas <ma...@apache.org> AuthorDate: Wed Oct 4 11:37:59 2023 +0100 First draft of Jakarta EE 11 / Tomcat 11 preview --- index.html | 9 ++ modules/intro-markt.html | 30 +++++++ modules/tomcat-11-preview.html | 167 +++++++++++++++++++++++++++++++++++ modules/wrap-up-presentation.html | 30 +++++++ presentations/tomcat-11-preview.html | 88 ++++++++++++++++++ 5 files changed, 324 insertions(+) diff --git a/index.html b/index.html index 4cc78a6..05e4dd2 100644 --- a/index.html +++ b/index.html @@ -32,6 +32,15 @@ <body> <div class="reveal"> <div class="slides"> + <section> + <h1>Tomcat presentations</h1> + </section> + <section> + <p>The following presentations are currently available</p> + <ul> + <li><a href="presentations/tomcat-11-preview.html">Tomcat 11 Preview</a></li> + </ul> + </section> <section> <h1>Tomcat training</h1> </section> diff --git a/modules/intro-markt.html b/modules/intro-markt.html new file mode 100644 index 0000000..7e2de62 --- /dev/null +++ b/modules/intro-markt.html @@ -0,0 +1,30 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<section> + <h3>Introduction</h3> + <p>Mark Thomas</p> + <p>ma...@apache.org</p> + <p>Hosted at GitHub in the <a href="https://github.com/apache/tomcat-training">tomcat-training</a> repository</p> + <p>Pull requests welcome</p> +</section> +<section> + <p>Tomcat since 2003<br/>Committer, PMC member</p> + <p>Commons - Daemon, Pool, DBCP, BCEL<br>Committer, PMC member</p> + <p>ASF member, ASF security team, ASF infrastructure team,<br/>Director 2016-19, VP Brand Management since 2018</p> + <p>Java EE Expert Groups for Servlet, WebSocket, Expression Language</p> + <p>Jakarta Servlet, Pages, WebSocket and Expression Language<br/>Committer</p> +</section> diff --git a/modules/tomcat-11-preview.html b/modules/tomcat-11-preview.html new file mode 100644 index 0000000..d6ed0a2 --- /dev/null +++ b/modules/tomcat-11-preview.html @@ -0,0 +1,167 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<section> + <h3>Agenda</h3> + <p>Jakarta EE 11</p> + <p>Jakarta Servlet</p> + <p>Jakarta Pages</p> + <p>Jakarta WebSocket</p> + <p>Jakarta Expression Language</p> + <p>Jakarta Authentication</p> + <p>Jakarta Annotations</p> + <p>Tomcat specific changes</p> +</section> +<section> + <h3>Jakarta EE 11</h3> + <p>42 individual specifications - Tomcat implements 6</p> + <p>Platform specification - Tomcat implements relevant sections</p> + <p>Minimum of Java 21</p> + <p>No SecurityManager support</p> + <p>Testing and Compatibility Kits (TCKs) are being refactored</p> + <p>First milestones due end of November</p> + <p>Final release June/July 2024</p> +</section> +<section> + <h3>Jakarta Servlet - 6.1</h3> + <p>No major changes</p> + <p>Clarification</p> + <p>Clean-up</p> + <p>Various improvements</p> +</section> +<section> + <h3>Jakarta Servlet - Headers</h3> + <p>Calls using null for a header name will be NO-OPs</p> + <p>Using null when setting a header value will remove all current values</p> + <p>Calls using null when adding a header value will be NO-OPs</p> + <p>The empty string is a valid value for a header</p> + <p>Any method that sets a header is a NO-OP once the response is committed</p> + <p>Align getDateHeader() and getIntHeader() with getHeader() for multiple values</p> +</section> +<section> + <h3>Jakarta Servlet - Async</h3> + <p>dispatch() and complete() close non-blocking output streams</p> + <p>write(), print(), println() and flush() are "write operations"</p> +</section> +<section> + <h3>Jakarta Servlet - Redirects</h3> + <p>Status code can be specified</p> + <p>Response body can be specified</p> + <p>Relative redirects are allowed</p> +</section> +<section> + <h3>Jakarta Servlet - Security</h3> + <p>Clarify that all ServletContext methods that accept a path bypass security constraints</p> + <p>Remove sensitive HTTP headers from TRACE responses</p> +</section> +<section> + <h3>Jakarta Servlet - Parameters</h3> + <p>Invalid parameters will always trigger an Exception</p> +</section> +<section> + <h3>Jakarta Servlet - Miscellaneous I</h3> + <p>Update HTTP RFC references to latest versions</p> + <p>HTTPS support is now mandatory</p> + <p>New constants for status codes 308, 421, 422 and 426</p> + <p>New request attribute jakarta.servlet.error.query_string</p> + <p>Add ByteBuffer support to ServletInputStream and ServletOutputStream</p> + <p>Charset support for setCharacterEncoding()</p> +</section> +<section> + <h3>Jakarta Servlet - Miscellaneous II</h3> + <p>Context root mapping occurs with or without the trailing '/'</p> + <p>Clarify when leading '/' is ommitted in HttpServletMapping.getMatchValue()</p> + <p>Clarify multi-part config sizes are in bytes</p> + <p>Clarify expected behaviour for CONNECT requests</p> + <p>Deprecate and make optional support for HTTP/2 server push</p> +</section> +<section> + <h3>Jakarta Servlet - In Progress</h3> + <p>HttpSession access for WebSocket</p> + <p>Require error dispatches to use GET</p> + <p>Clarify behaviour of various methods for include / forward</p> + <p>Support for 1xx responses - particularly early hints</p> +</section> +<section> + <h3>Jakarta Pages - 4.0</h3> + <p>Depreacted classes and methods have been removed</p> + <p>Updated ErrorData to support the new request attribute jakarta.servlet.error.query_string +</section> +<section> + <h3>Jakarta WebSocket - 2.2</h3> + <p>Clarifed the responsibility for sending Ping messages</p> + <p>Added getSession() method to SendResult</p> +</section> +<section> + <h3>Expression Language - 6.0</h3> + <p>Remove all deprecated classes and methods</p> + <p>Dependency on JavaBeans API is now optional</p> + <p>Added support for java.util.Optional via OptionalELResolver</p> +</section> +<section> + <h3>Annotations - 3.0?</h3> + <p>ManagedBean is deprecated</p> +</section> +<section> + <h3>Jakarta Authentication - 3.1?</h3> + <p>TBD</p> +</section> +<section> + <h3>Tomcat 11</h3> + <p>No major changes</p> + <p>Specification / RFC updates</p> + <p>Generally stricter with invalid input</p> + <p>Enhancements and improvements</p> + <p>32-bit Windows no longer supported (no JRE)</p> +</section> +<section> + <h3>Tomcat 11 - Security I</h3> + <p>BASIC authentication uses UTF-8 by default</p> + <p>Update DIGEST auth to RFC 7616</p> + <p>Documentation web application is only accessible from localhost by default</p> + <p>Examples web application is only accessible from localhost by default</p> +</section> +<section> + <h3>Tomcat 11 - Security II</h3> + <p>rejectIllegalHeader hard-coded to true</p> + <p>allowHostHeaderMismatch hard-coded to false</p> + <p>Align AJP connector handling of invalid HTTP headers with HTTP connector</p> + <p>Added RateLimitFilter</p> +</section> +<section> + <h3>HTTP/2</h3> + <p>RFC 9218 - HTTP/2 priority frame support</p> + <p>Support for server push has been removed</p> +</section> +<section> + <h3>Virtual threads</h3> + <p>Virtual thread support - useVirtualThreads on the Connector</p> + <p>Some internal refactoring</p> +</section> +<section> + <h3>TLS</h3> + <p>Log TLS cert info on startup</p> + <p>Dedicated loggers for detailed TLS confguration info</p> + <p>Added TLSCertificateReloadListener</p> +</section> +<section> + <h3>Miscellaneaous</h3> + <p>Expose the utility executor to web applications</p> + <p>Tomcat no longer sets java.protocol.handler.pkgs when starting</p> + <p>Added PropertiesRoleMappingListener</p> + <p>Added ContextNamingInfoListener</p> + <p>Add support for loading configuration resources from the web application</p> +</section> diff --git a/modules/wrap-up-presentation.html b/modules/wrap-up-presentation.html new file mode 100644 index 0000000..50e70d2 --- /dev/null +++ b/modules/wrap-up-presentation.html @@ -0,0 +1,30 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<section> + <h3>Questions?</h3> +</section> +<section> + <h3>Tomcat Resources</h3> + <p>Web site: <a href="https://tomcat.apache.org">https://tomcat.apache.org</a></p> + <p>Mailing lists: <a href="https://tomcat.apache.org/lists.html">https://tomcat.apache.org/lists.html</a></p> + <p>Source code: <a href="https://github.com/apache/tomcat">https://github.com/apache/tomcat</a></p> + <p>Issue tracker: <a href="https://bz.apache.org/bugzilla">https://bz.apache.org/bugzilla</a> + <p>Stack overflow</p> +</section> +<section> + <h3>Thank you</h3> +</section> diff --git a/presentations/tomcat-11-preview.html b/presentations/tomcat-11-preview.html new file mode 100644 index 0000000..970f8c4 --- /dev/null +++ b/presentations/tomcat-11-preview.html @@ -0,0 +1,88 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + + <title>Tomcat 11 Preview</title> + + <link rel="stylesheet" href="../dist/reset.css"> + <link rel="stylesheet" href="../dist/reveal.css"> + <link rel="stylesheet" href="../dist/theme/white.css"> + + <!-- Theme used for syntax highlighted code --> + <link rel="stylesheet" href="../plugin/highlight/monokai.css"> + + <!-- Override default styles --> + <style> + <!-- Transparent background image on all slides --> + body { + position: relative; + z-index: 1; + } + body::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: .15; + z-index: -1; + background: url( '../images/tomcat.svg' ); + background-position: center; + background-size: 100%; + background-repeat: no-repeat; + } + </style> + </head> + <body> + <div class="reveal"> + <div class="slides"> + <section> + <h1>Tomcat 11 Preview</h1> + </section> + <section data-external-replace="../modules/intro-markt.html"> </section> + <section data-external-replace="../modules/tomcat-11-preview.html"> </section> + <section data-external-replace="../modules/wrap-up-presentation.html"> </section> + </div> + </div> + + <script src="../dist/reveal.js"></script> + <script src="../plugin/notes/notes.js"></script> + <script src="../plugin/markdown/markdown.js"></script> + <script src="../plugin/highlight/highlight.js"></script> + <script> + // More info about initialization & config: + // - https://revealjs.com/initialization/ + // - https://revealjs.com/config/ + Reveal.initialize({ + hash: true, + + // Learn about plugins: https://revealjs.com/plugins/ + plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ], + + width: 1200, + dependencies: [ + // reveal_external to allow composition from multiple files + { src: '../plugin/external/external.js', condition: function() { return !!document.querySelector( '[data-external],[data-external-replace]' ); } } + ] }); + </script> + </body> +</html> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org