svn commit: r1920493 - in /tomcat/site/trunk: docs/security-model.html xdocs/security-model.xml
Author: markt Date: Fri Sep 6 07:49:48 2024 New Revision: 1920493 URL: http://svn.apache.org/viewvc?rev=1920493&view=rev Log: Updates after kkolinko's review Modified: tomcat/site/trunk/docs/security-model.html tomcat/site/trunk/xdocs/security-model.xml Modified: tomcat/site/trunk/docs/security-model.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/security-model.html?rev=1920493&r1=1920492&r2=1920493&view=diff == --- tomcat/site/trunk/docs/security-model.html (original) +++ tomcat/site/trunk/docs/security-model.html Fri Sep 6 07:49:48 2024 @@ -17,9 +17,13 @@ any of the following will be rejected: -The Manager or Host Manager web applications provided with Tomcat. -Tomcat configuration files. Tomcat binaries and/or scripts. +Tomcat configuration files. +Tomcat log files. +The temp directory (by default $CATALINA_BASE/temp) +Web application working directories (by default +$CATALINA_BASE/work) +The Manager or Host Manager web applications provided with Tomcat. The JMX API (local or remote). The Java Attach API or any other debugging interface. @@ -47,17 +51,22 @@ Connectors Data received via a Connector, regardless of protocol, is considered to - be untrusted apart from: + be untrusted with the exception of: The standard request attributes and any arbitrary request attributes permitted by allowedRequestAttributesPattern for an AJP connector. HTTP headers processed by a RemoteIpValve, -SSLValve, equivalent filters (RemoteIpFilter) -or any similar functionality. +SSLValve, equivalent filters +(RemoteIpFilter) or any similar functionality. + Clients are responsible for the consequences of the data they present + to Tomcat. If a client presents a malformed request that Tomcat + processes as per the specification for configured protocol, then any + security impact to the client is the client's responsibility. + Clustering @@ -78,6 +87,12 @@ Security-sensitive information may be logged with modified logging configurations, particularly if debug logging is enabled. + The default logs are likely to contain personally identifiable + information (PII) such as the IP address of users. + + Tomcat is not responsible for the content of log messages generated by + applications. + Modified: tomcat/site/trunk/xdocs/security-model.xml URL: http://svn.apache.org/viewvc/tomcat/site/trunk/xdocs/security-model.xml?rev=1920493&r1=1920492&r2=1920493&view=diff == --- tomcat/site/trunk/xdocs/security-model.xml (original) +++ tomcat/site/trunk/xdocs/security-model.xml Fri Sep 6 07:49:48 2024 @@ -25,9 +25,13 @@ any of the following will be rejected: -The Manager or Host Manager web applications provided with Tomcat. -Tomcat configuration files. Tomcat binaries and/or scripts. +Tomcat configuration files. +Tomcat log files. +The temp directory (by default $CATALINA_BASE/temp) +Web application working directories (by default +$CATALINA_BASE/work) +The Manager or Host Manager web applications provided with Tomcat. The JMX API (local or remote). The Java Attach API or any other debugging interface. @@ -55,17 +59,22 @@ Data received via a Connector, regardless of protocol, is considered to - be untrusted apart from: + be untrusted with the exception of: The standard request attributes and any arbitrary request attributes permitted by allowedRequestAttributesPattern for an AJP connector. HTTP headers processed by a RemoteIpValve, -SSLValve, equivalent filters (RemoteIpFilter) -or any similar functionality. +SSLValve, equivalent filters +(RemoteIpFilter) or any similar functionality. + Clients are responsible for the consequences of the data they present + to Tomcat. If a client presents a malformed request that Tomcat + processes as per the specification for configured protocol, then any + security impact to the client is the client's responsibility. + @@ -86,10 +95,15 @@ Security-sensitive information may be logged with modified logging configurations, particularly if debug logging is enabled. + The default logs are likely to contain personally identifiable + information (PII) such as the IP address of users. + + Tomcat is not responsible for the cont
Re: svn commit: r1920023 - in /tomcat/site/trunk: docs/security-model.html xdocs/security-model.xml
On 05/09/2024 22:25, Konstantin Kolinko wrote: пн, 19 авг. 2024 г. в 14:27, Mark Thomas : On 19/08/2024 12:23, ma...@apache.org wrote: Author: markt Date: Mon Aug 19 11:23:05 2024 New Revision: 1920023 URL: http://svn.apache.org/viewvc?rev=1920023&view=rev Log: Add first draft of security model All, This is an attempt to document something I think we all instinctively understand. It is likely that we'll need this, or something like it, to meet the CRA requirements (or to be more accurate for our downstream users to meet their CRA requirements). It is currently not linked from the rest of the Tomcat site. My thinking was we'd refine it and then link it once we were happy with it. Feel free to update/comment/etc just like any other site content. Thank you for starting this work. BTW, url for the document (if somebody wants to review) is https://tomcat.apache.org/security-model.html Some thoughts - In "Administrative users" there it says "has access to or control over". I was wondering whether it could be simplified, but I resolved to leave it as is. Generally, "read access" should not be allowed to Tomcat configuration files, as those may contain secrets. Read access to the binaries generally is safe, but may be used to determine what version of Tomcat is being used. If so, are users that have access to those considered as "Administrative users"? TL;DR: yes. There are different levels of risk for different files. Users may well opt to apply different access controls to different files. Our position is (as I understand it) if any of those users can do harm as a result of that access then that is not a Tomcat vulnerability. The simplest way to express this is to state that any vulnerability that relies on access to those files will be rejected. - Maybe mention the temporary files (temp, work). Though they are mentioned on the Security Considerations pages. "temp" is used for Servlet API's file upload support and for the antiResourceLocking feature. "work" stores compiled code for the web applications that we consider as "trusted". Good idea. Done. - In "Logging" I wonder what "Security-sensitive information" is. I was trying to distinguish between information an attacker can use to gain access (e.g. a password, session ID etc) and everything else. Non-anonymised information about users' activity is generally sensitive, and thus are access logs. We do log IP addresses. We do log "%u" (user name). In general non-trusted users should not have access to that information. I'll add a note that the default logs contain PII. BTW, generally "non sensitive" data may actually be sensitive, if users may put sensitive information into it. (E.g. I vaguely remember that I once saw a system that logged names of users that failed to authenticate, and some users were typing their passwords into the username field, resulting in those being logged). (IIUC, %u is safe, as it logs names of those who have successfully authenticated) I've seen that too. I've added a note that Tomcat isn't responsible for the content of log messages generated by applications so we aren't required to sanitize them. - In Connectors, maybe mention that AJP is essentially plain text, as well as plain HTTP or plain HTTP/2 (h2c). I think that is straying more into something that belongs in security considerations. I've may an update there that I'll commit once I've finished updating this page. - I wonder whether "Data .. is considered to be untrusted" has further exceptions. I couldn't think of any but we can add to it if necessary. A front proxy may reuse connections to Tomcat to process requests from different clients. We do expect the data to be structurally correct. I've added paragraph to say that it is the client's problem if it presents malformed data and doesn't handle the response correctly. Minor - I wonder whether the "apart from" clause (in Connectors) is understandable. I considered rewriting it as "with exception of the following". To a native speaker there isn't any difference but happy to change this if it is more likely to be understood by a wider audience. Generic, beyond bounds of this document. - When I think about what "trust" actually means and implies, it inspires some related thoughts / topics. (How the trust can be enforced. What happens when trust is breached. Etc.) Fortunately that is not our problem ;) - I wonder whether there exists a "Security Model" document for a generic web application. I haven't seen one. As always, thank you for the thorough review. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Expand on security consequences of AJP being clear-text
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.git The following commit(s) were added to refs/heads/main by this push: new d53e730a1e Expand on security consequences of AJP being clear-text d53e730a1e is described below commit d53e730a1e7949580f66db1d915c0ee59debf371 Author: Mark Thomas AuthorDate: Fri Sep 6 09:05:36 2024 +0100 Expand on security consequences of AJP being clear-text --- webapps/docs/security-howto.xml | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webapps/docs/security-howto.xml b/webapps/docs/security-howto.xml index 6a371820e7..20bd81f062 100644 --- a/webapps/docs/security-howto.xml +++ b/webapps/docs/security-howto.xml @@ -216,8 +216,11 @@ By default, a non-TLS, HTTP/1.1 connector is configured on port 8080. Connectors that will not be used should be removed from server.xml. - AJP Connectors should only be used on trusted networks or be - appropriately secured with a suitable secret attribute. + AJP is a clear text protocol. AJP Connectors should normally only be + used on trusted networks. If used on an untrusted network, use of the + secret attribute will limit access to authorised clients but + the secret attribute will be visible to anyone who can + observe network traffic. AJP Connectors block forwarded requests with unknown request attributes. Known safe and/or expected attributes may be allowed by - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 11.0.x updated: Expand on security consequences of AJP being clear-text
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/11.0.x by this push: new e9a1f62317 Expand on security consequences of AJP being clear-text e9a1f62317 is described below commit e9a1f6231747f62f7d329e3f2f7afa9ec9a3352e Author: Mark Thomas AuthorDate: Fri Sep 6 09:05:36 2024 +0100 Expand on security consequences of AJP being clear-text --- webapps/docs/security-howto.xml | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webapps/docs/security-howto.xml b/webapps/docs/security-howto.xml index 6a371820e7..20bd81f062 100644 --- a/webapps/docs/security-howto.xml +++ b/webapps/docs/security-howto.xml @@ -216,8 +216,11 @@ By default, a non-TLS, HTTP/1.1 connector is configured on port 8080. Connectors that will not be used should be removed from server.xml. - AJP Connectors should only be used on trusted networks or be - appropriately secured with a suitable secret attribute. + AJP is a clear text protocol. AJP Connectors should normally only be + used on trusted networks. If used on an untrusted network, use of the + secret attribute will limit access to authorised clients but + the secret attribute will be visible to anyone who can + observe network traffic. AJP Connectors block forwarded requests with unknown request attributes. Known safe and/or expected attributes may be allowed by - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Expand on security consequences of AJP being clear-text
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 7d7b4bc929 Expand on security consequences of AJP being clear-text 7d7b4bc929 is described below commit 7d7b4bc929b9a3d6c28e63cf674e39a1284c2aba Author: Mark Thomas AuthorDate: Fri Sep 6 09:05:36 2024 +0100 Expand on security consequences of AJP being clear-text --- webapps/docs/security-howto.xml | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webapps/docs/security-howto.xml b/webapps/docs/security-howto.xml index e6a5e11809..c5ba633148 100644 --- a/webapps/docs/security-howto.xml +++ b/webapps/docs/security-howto.xml @@ -249,8 +249,11 @@ By default, a non-TLS, HTTP/1.1 connector is configured on port 8080. Connectors that will not be used should be removed from server.xml. - AJP Connectors should only be used on trusted networks or be - appropriately secured with a suitable secret attribute. + AJP is a clear text protocol. AJP Connectors should normally only be + used on trusted networks. If used on an untrusted network, use of the + secret attribute will limit access to authorised clients but + the secret attribute will be visible to anyone who can + observe network traffic. AJP Connectors block forwarded requests with unknown request attributes. Known safe and/or expected attributes may be allowed by - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Expand on security consequences of AJP being clear-text
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new ebc78c0a3b Expand on security consequences of AJP being clear-text ebc78c0a3b is described below commit ebc78c0a3b3b5d5c736c306254815736167e0e86 Author: Mark Thomas AuthorDate: Fri Sep 6 09:05:36 2024 +0100 Expand on security consequences of AJP being clear-text --- webapps/docs/security-howto.xml | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webapps/docs/security-howto.xml b/webapps/docs/security-howto.xml index 57001b806f..fc7d7290a7 100644 --- a/webapps/docs/security-howto.xml +++ b/webapps/docs/security-howto.xml @@ -249,8 +249,11 @@ By default, a non-TLS, HTTP/1.1 connector is configured on port 8080. Connectors that will not be used should be removed from server.xml. - AJP Connectors should only be used on trusted networks or be - appropriately secured with a suitable secret attribute. + AJP is a clear text protocol. AJP Connectors should normally only be + used on trusted networks. If used on an untrusted network, use of the + secret attribute will limit access to authorised clients but + the secret attribute will be visible to anyone who can + observe network traffic. AJP Connectors block forwarded requests with unknown request attributes. Known safe and/or expected attributes may be allowed by - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Avoid possible lost update
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 8a4c7484fa Avoid possible lost update 8a4c7484fa is described below commit 8a4c7484fa37008bc0bbf188010e000dfb7600a6 Author: remm AuthorDate: Fri Sep 6 10:29:40 2024 +0200 Avoid possible lost update Found by Coverity. --- java/org/apache/tomcat/util/net/SecureNio2Channel.java | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/java/org/apache/tomcat/util/net/SecureNio2Channel.java b/java/org/apache/tomcat/util/net/SecureNio2Channel.java index 7d5df2e007..d8f2afec7e 100644 --- a/java/org/apache/tomcat/util/net/SecureNio2Channel.java +++ b/java/org/apache/tomcat/util/net/SecureNio2Channel.java @@ -30,6 +30,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicInteger; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngineResult; @@ -69,7 +70,7 @@ public class SecureNio2Channel extends Nio2Channel { protected volatile boolean sniComplete = false; private volatile boolean handshakeComplete = false; -private volatile int handshakeWrapQueueLength = 0; +private final AtomicInteger handshakeWrapQueueLength = new AtomicInteger(); private volatile HandshakeStatus handshakeStatus; //gets set by handshake protected boolean closed; @@ -142,6 +143,7 @@ public class SecureNio2Channel extends Nio2Channel { sslEngine = null; sniComplete = false; handshakeComplete = false; +handshakeWrapQueueLength.set(0); unwrapBeforeRead = true; closed = false; closing = false; @@ -771,7 +773,7 @@ public class SecureNio2Channel extends Nio2Channel { if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { tasks(); } else if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_WRAP) { -if (++handshakeWrapQueueLength > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { +if (handshakeWrapQueueLength.incrementAndGet() > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { throw new ExecutionException( new IOException(sm.getString("channel.nio.ssl.handshakeWrapQueueTooLong"))); } @@ -906,7 +908,7 @@ public class SecureNio2Channel extends Nio2Channel { netOutBuffer.clear(); SSLEngineResult result = sslEngine.wrap(src, netOutBuffer); // Call to wrap() will have included any required handshake data -handshakeWrapQueueLength = 0; +handshakeWrapQueueLength.set(0); written = result.bytesConsumed(); netOutBuffer.flip(); if (result.getStatus() == Status.OK) { @@ -973,7 +975,7 @@ public class SecureNio2Channel extends Nio2Channel { if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { tasks(); } else if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_WRAP) { -if (++handshakeWrapQueueLength > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { +if (handshakeWrapQueueLength.incrementAndGet() > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { throw new ExecutionException(new IOException( sm.getString("channel.nio.ssl.handshakeWrapQueueTooLong"))); } @@ -1091,7 +1093,7 @@ public class SecureNio2Channel extends Nio2Channel { if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { tasks(); } else if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_WRAP) { -if (++handshakeWrapQueueLength > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { +if (handshakeWrapQueueLength.incrementAndGet() > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { throw new ExecutionException(new IOException( sm.getString("channel.nio.ssl.handshakeWrapQueueTooLong"))); } @@ -1205,7 +1207,7 @@ public class SecureNio2Channel extends Nio2Channel { // Wrap the source data into the internal buffer SSLEngineResult result = sslEngine.wrap(src, netOutBuffer); // Call t
(tomcat) branch 11.0.x updated: Avoid possible lost update
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/11.0.x by this push: new 116813b0d1 Avoid possible lost update 116813b0d1 is described below commit 116813b0d12c1d3ddbd0f7d70da7afabab998400 Author: remm AuthorDate: Fri Sep 6 10:29:40 2024 +0200 Avoid possible lost update Found by Coverity. --- java/org/apache/tomcat/util/net/SecureNio2Channel.java | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/java/org/apache/tomcat/util/net/SecureNio2Channel.java b/java/org/apache/tomcat/util/net/SecureNio2Channel.java index 7d5df2e007..d8f2afec7e 100644 --- a/java/org/apache/tomcat/util/net/SecureNio2Channel.java +++ b/java/org/apache/tomcat/util/net/SecureNio2Channel.java @@ -30,6 +30,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicInteger; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngineResult; @@ -69,7 +70,7 @@ public class SecureNio2Channel extends Nio2Channel { protected volatile boolean sniComplete = false; private volatile boolean handshakeComplete = false; -private volatile int handshakeWrapQueueLength = 0; +private final AtomicInteger handshakeWrapQueueLength = new AtomicInteger(); private volatile HandshakeStatus handshakeStatus; //gets set by handshake protected boolean closed; @@ -142,6 +143,7 @@ public class SecureNio2Channel extends Nio2Channel { sslEngine = null; sniComplete = false; handshakeComplete = false; +handshakeWrapQueueLength.set(0); unwrapBeforeRead = true; closed = false; closing = false; @@ -771,7 +773,7 @@ public class SecureNio2Channel extends Nio2Channel { if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { tasks(); } else if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_WRAP) { -if (++handshakeWrapQueueLength > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { +if (handshakeWrapQueueLength.incrementAndGet() > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { throw new ExecutionException( new IOException(sm.getString("channel.nio.ssl.handshakeWrapQueueTooLong"))); } @@ -906,7 +908,7 @@ public class SecureNio2Channel extends Nio2Channel { netOutBuffer.clear(); SSLEngineResult result = sslEngine.wrap(src, netOutBuffer); // Call to wrap() will have included any required handshake data -handshakeWrapQueueLength = 0; +handshakeWrapQueueLength.set(0); written = result.bytesConsumed(); netOutBuffer.flip(); if (result.getStatus() == Status.OK) { @@ -973,7 +975,7 @@ public class SecureNio2Channel extends Nio2Channel { if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { tasks(); } else if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_WRAP) { -if (++handshakeWrapQueueLength > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { +if (handshakeWrapQueueLength.incrementAndGet() > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { throw new ExecutionException(new IOException( sm.getString("channel.nio.ssl.handshakeWrapQueueTooLong"))); } @@ -1091,7 +1093,7 @@ public class SecureNio2Channel extends Nio2Channel { if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { tasks(); } else if (unwrap.getHandshakeStatus() == HandshakeStatus.NEED_WRAP) { -if (++handshakeWrapQueueLength > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { +if (handshakeWrapQueueLength.incrementAndGet() > HANDSHAKE_WRAP_QUEUE_LENGTH_LIMIT) { throw new ExecutionException(new IOException( sm.getString("channel.nio.ssl.handshakeWrapQueueTooLong"))); } @@ -1205,7 +1207,7 @@ public class SecureNio2Channel extends Nio2Channel { // Wrap the source data into the internal buffer SSLEngineResult result = sslEngine.wrap(src, netOutBuffer); // Ca
(tomcat) branch main updated: Add lifecycle event detail for Server
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.git The following commit(s) were added to refs/heads/main by this push: new c5334fb785 Add lifecycle event detail for Server c5334fb785 is described below commit c5334fb78580f324f58dab4848bea27934a09c86 Author: Mark Thomas AuthorDate: Fri Sep 6 12:12:16 2024 +0100 Add lifecycle event detail for Server --- .../docs/architecture/startup/2_catalina_init.png | Bin 30440 -> 47264 bytes .../docs/architecture/startup/2_catalina_init.uml | 12 2 files changed, 12 insertions(+) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 9c8aef0ef8..bcba47924a 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index b02d57f5a3..9ed74880d9 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -30,6 +30,11 @@ activate Protocol Catalina -> Server: init() +Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Server -> Server: initInternal() +activate Server + Server -> "Global\nNaming\nResources" : init() Server -> "Service(s)" as Services: init() @@ -44,4 +49,11 @@ activate CoyoteAdapter Connectors -> Protocol: setAdapter() Connectors -> Protocol: init() +Server -->> Server +deactivate Server + +Server -> Server: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server -->> Catalina + @enduml \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: (tomcat) branch main updated: Add lifecycle event detail for Server
On 06/09/2024 12:14, ma...@apache.org wrote: 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.git The following commit(s) were added to refs/heads/main by this push: new c5334fb785 Add lifecycle event detail for Server c5334fb785 is described below commit c5334fb78580f324f58dab4848bea27934a09c86 Author: Mark Thomas AuthorDate: Fri Sep 6 12:12:16 2024 +0100 Add lifecycle event detail for Server Question. Do I add this for all the components that implement lifecycle (for completeness) or do I add a note listing the other components on the diagram that also use initInternal() and fire lifecycle events for simplicity / clarity? I'm currently leaning towards completeness rather than simplicity/clarity. Thoughts? Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Add null check
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 32507a41a7 Add null check 32507a41a7 is described below commit 32507a41a793a9d891595717f986a17f794676db Author: remm AuthorDate: Fri Sep 6 13:19:44 2024 +0200 Add null check Found by Coverity. --- java/org/apache/coyote/http2/Http2UpgradeHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java index 8a6e896a2b..53a2fbddf3 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -291,7 +291,9 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH protected void decrementActiveRemoteStreamCount(Stream stream) { - setConnectionTimeoutForStreamCount(stream.decrementAndGetActiveRemoteStreamCount()); +if (stream != null) { + setConnectionTimeoutForStreamCount(stream.decrementAndGetActiveRemoteStreamCount()); +} } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Buildbot success in on tomcat-9.0.x
Build status: Build succeeded! Worker used: bb_worker2_ubuntu URL: https://ci2.apache.org/#builders/37/builds/1067 Blamelist: Mark Thomas , remm Build Text: build successful Status Detected: restored build Build Source Stamp: [branch 9.0.x] bfa5de95addc358107fca002c02c909270f0a0fa Steps: worker_preparation: 0 git: 0 shell: 0 shell_1: 0 shell_2: 0 shell_3: 0 shell_4: 0 shell_5: 0 compile: 1 shell_6: 0 shell_7: 0 shell_8: 0 shell_9: 0 Rsync docs to nightlies.apache.org: 0 shell_10: 0 Rsync RAT to nightlies.apache.org: 0 compile_1: 1 shell_11: 0 Rsync Logs to nightlies.apache.org: 0 -- ASF Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 11.0.x updated: Add null check
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/11.0.x by this push: new a7c6017800 Add null check a7c6017800 is described below commit a7c601780079f18d6ea77ca90c65724d49047019 Author: remm AuthorDate: Fri Sep 6 13:19:44 2024 +0200 Add null check Found by Coverity. --- java/org/apache/coyote/http2/Http2UpgradeHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java index 8a6e896a2b..53a2fbddf3 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -291,7 +291,9 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH protected void decrementActiveRemoteStreamCount(Stream stream) { - setConnectionTimeoutForStreamCount(stream.decrementAndGetActiveRemoteStreamCount()); +if (stream != null) { + setConnectionTimeoutForStreamCount(stream.decrementAndGetActiveRemoteStreamCount()); +} } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Add null check
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new d27fe93747 Add null check d27fe93747 is described below commit d27fe93747e2cdebffd4aa7252c5957c8a8e4822 Author: remm AuthorDate: Fri Sep 6 13:19:44 2024 +0200 Add null check Found by Coverity. --- java/org/apache/coyote/http2/Http2UpgradeHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java index 7904031722..d44982fc82 100644 --- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java +++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java @@ -292,7 +292,9 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH protected void decrementActiveRemoteStreamCount(Stream stream) { - setConnectionTimeoutForStreamCount(stream.decrementAndGetActiveRemoteStreamCount()); +if (stream != null) { + setConnectionTimeoutForStreamCount(stream.decrementAndGetActiveRemoteStreamCount()); +} } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: (tomcat) branch main updated: Add lifecycle event detail for Server
On 06/09/2024 12:24, Rémy Maucherat wrote: On Fri, Sep 6, 2024 at 1:19 PM Mark Thomas wrote: On 06/09/2024 12:14, ma...@apache.org wrote: 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.git The following commit(s) were added to refs/heads/main by this push: new c5334fb785 Add lifecycle event detail for Server c5334fb785 is described below commit c5334fb78580f324f58dab4848bea27934a09c86 Author: Mark Thomas AuthorDate: Fri Sep 6 12:12:16 2024 +0100 Add lifecycle event detail for Server Question. Do I add this for all the components that implement lifecycle (for completeness) or do I add a note listing the other components on the diagram that also use initInternal() and fire lifecycle events for simplicity / clarity? I'm currently leaning towards completeness rather than simplicity/clarity. Thoughts? The start one seems to have everything but as a result it is more cluttered. I suppose it is best to have a complete view. That is what I was thinking. It also makes it more obvious that the Adapter and the Protocol don't have lifecycle events. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1920495 - in /tomcat/site/trunk: docs/tools.html xdocs/tools.xml
Author: kkolinko Date: Fri Sep 6 12:07:34 2024 New Revision: 1920495 URL: http://svn.apache.org/viewvc?rev=1920495&view=rev Log: Update Tools page: Add a link to PlantUML. Modified: tomcat/site/trunk/docs/tools.html tomcat/site/trunk/xdocs/tools.xml Modified: tomcat/site/trunk/docs/tools.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tools.html?rev=1920495&r1=1920494&r2=1920495&view=diff == --- tomcat/site/trunk/docs/tools.html (original) +++ tomcat/site/trunk/docs/tools.html Fri Sep 6 12:07:34 2024 @@ -48,6 +48,11 @@ and a committer should be able to fix it + https://plantuml.com/en/"; rel="nofollow" style="font-family:Helvetica; font-size:28px; font-weight:600; text-decoration:none; text-wrap:nowrap">🌱 PlantUML + PlantUML is used to create diagrams for Tomcat documentation. + + + https://www.farmanager.com/index.php?l=en"; rel="nofollow"> Far Manager is a two-panel file manager application for Modified: tomcat/site/trunk/xdocs/tools.xml URL: http://svn.apache.org/viewvc/tomcat/site/trunk/xdocs/tools.xml?rev=1920495&r1=1920494&r2=1920495&view=diff == --- tomcat/site/trunk/xdocs/tools.xml (original) +++ tomcat/site/trunk/xdocs/tools.xml Fri Sep 6 12:07:34 2024 @@ -67,6 +67,13 @@ and a committer should be able to fix it + https://plantuml.com/en/"; rel="nofollow" +style="font-family:Helvetica; font-size:28px; font-weight:600; text-decoration:none; text-wrap:nowrap" +>🌱 PlantUML + PlantUML is used to create diagrams for Tomcat documentation. + + + https://www.farmanager.com/index.php?l=en"; rel="nofollow"> Far Manager is a two-panel file manager application for - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Add lifecycle events, correct activation, use aliases correctly
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.git The following commit(s) were added to refs/heads/main by this push: new 8da042dabf Add lifecycle events, correct activation, use aliases correctly 8da042dabf is described below commit 8da042dabfe6ef404357a9b4a71c0ce2b685a15d Author: Mark Thomas AuthorDate: Fri Sep 6 15:32:51 2024 +0100 Add lifecycle events, correct activation, use aliases correctly --- .../docs/architecture/startup/2_catalina_init.png | Bin 47264 -> 114077 bytes .../docs/architecture/startup/2_catalina_init.uml | 83 ++--- 2 files changed, 73 insertions(+), 10 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index bcba47924a..63a31d6a81 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index 9ed74880d9..de8b3432f5 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -19,35 +19,97 @@ hide footbox skinparam style strictuml activate Catalina -activate Server -activate "Global\nNaming\nResources" -activate Services -activate Engine -activate Executors -activate MapperListener -activate Connectors -activate Protocol Catalina -> Server: init() +activate Server Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Server -> Server: initInternal() activate Server -Server -> "Global\nNaming\nResources" : init() +Server -> "Global\nNaming\nResources" as GNR: init() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +GNR -> GNR: initInternal() +GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server <<-- GNR +deactivate GNR + Server -> "Service(s)" as Services: init() +activate Services + +Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Services -> Services: initInternal() +activate Services Services -> Engine: init() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Engine -> Engine: initInternal() +Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Engine +deactivate Engine + Services -> "Executor(s)" as Executors: init() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Executors -> Executors: initInternal() +Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Executors +deactivate Executors + Services -> "Mapper\nListener" as MapperListener: init() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +MapperListener -> MapperListener: initInternal() +MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- MapperListener +deactivate MapperListener + Services -> "Connector(s)" as Connectors: init() +activate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Connectors -> Connectors: initInternal() +activate Connectors Connectors -->> CoyoteAdapter ** -activate CoyoteAdapter Connectors -> Protocol: setAdapter() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + Connectors -> Protocol: init() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + +Connectors -->> Connectors +deactivate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Connectors +deactivate Connectors + +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services -->> Services +deactivate Services + +Server <<-- Services +deactivate Services Server -->> Server deactivate Server @@ -55,5 +117,6 @@ deactivate Server Server -> Server: fireLifecycleEvent(\nAFTER_INIT_EVENT) Server -->> Catalina +deactivate Server @enduml \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 11.0.x updated: Add lifecycle events, correct activation, use aliases correctly
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/11.0.x by this push: new 1878b30ec2 Add lifecycle events, correct activation, use aliases correctly 1878b30ec2 is described below commit 1878b30ec22d21cefebab177eace003981d40729 Author: Mark Thomas AuthorDate: Fri Sep 6 15:32:51 2024 +0100 Add lifecycle events, correct activation, use aliases correctly --- .../docs/architecture/startup/2_catalina_init.png | Bin 30440 -> 114077 bytes .../docs/architecture/startup/2_catalina_init.uml | 95 ++--- 2 files changed, 85 insertions(+), 10 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 9c8aef0ef8..63a31d6a81 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index b02d57f5a3..de8b3432f5 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -19,29 +19,104 @@ hide footbox skinparam style strictuml activate Catalina -activate Server -activate "Global\nNaming\nResources" -activate Services -activate Engine -activate Executors -activate MapperListener -activate Connectors -activate Protocol Catalina -> Server: init() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Server -> Server: initInternal() +activate Server + +Server -> "Global\nNaming\nResources" as GNR: init() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +GNR -> GNR: initInternal() +GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server <<-- GNR +deactivate GNR -Server -> "Global\nNaming\nResources" : init() Server -> "Service(s)" as Services: init() +activate Services + +Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Services -> Services: initInternal() +activate Services Services -> Engine: init() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Engine -> Engine: initInternal() +Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Engine +deactivate Engine + Services -> "Executor(s)" as Executors: init() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Executors -> Executors: initInternal() +Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Executors +deactivate Executors + Services -> "Mapper\nListener" as MapperListener: init() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +MapperListener -> MapperListener: initInternal() +MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- MapperListener +deactivate MapperListener + Services -> "Connector(s)" as Connectors: init() +activate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Connectors -> Connectors: initInternal() +activate Connectors Connectors -->> CoyoteAdapter ** -activate CoyoteAdapter Connectors -> Protocol: setAdapter() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + Connectors -> Protocol: init() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + +Connectors -->> Connectors +deactivate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Connectors +deactivate Connectors + +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services -->> Services +deactivate Services + +Server <<-- Services +deactivate Services + +Server -->> Server +deactivate Server + +Server -> Server: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server -->> Catalina +deactivate Server @enduml \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Add lifecycle events, correct activation, use aliases correctly
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new ca4fd220f3 Add lifecycle events, correct activation, use aliases correctly ca4fd220f3 is described below commit ca4fd220f3e860c915470c4bb052039cfcc10b97 Author: Mark Thomas AuthorDate: Fri Sep 6 15:32:51 2024 +0100 Add lifecycle events, correct activation, use aliases correctly --- .../docs/architecture/startup/2_catalina_init.png | Bin 30440 -> 114077 bytes .../docs/architecture/startup/2_catalina_init.uml | 95 ++--- 2 files changed, 85 insertions(+), 10 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 9c8aef0ef8..63a31d6a81 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index b02d57f5a3..de8b3432f5 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -19,29 +19,104 @@ hide footbox skinparam style strictuml activate Catalina -activate Server -activate "Global\nNaming\nResources" -activate Services -activate Engine -activate Executors -activate MapperListener -activate Connectors -activate Protocol Catalina -> Server: init() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Server -> Server: initInternal() +activate Server + +Server -> "Global\nNaming\nResources" as GNR: init() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +GNR -> GNR: initInternal() +GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server <<-- GNR +deactivate GNR -Server -> "Global\nNaming\nResources" : init() Server -> "Service(s)" as Services: init() +activate Services + +Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Services -> Services: initInternal() +activate Services Services -> Engine: init() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Engine -> Engine: initInternal() +Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Engine +deactivate Engine + Services -> "Executor(s)" as Executors: init() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Executors -> Executors: initInternal() +Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Executors +deactivate Executors + Services -> "Mapper\nListener" as MapperListener: init() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +MapperListener -> MapperListener: initInternal() +MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- MapperListener +deactivate MapperListener + Services -> "Connector(s)" as Connectors: init() +activate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Connectors -> Connectors: initInternal() +activate Connectors Connectors -->> CoyoteAdapter ** -activate CoyoteAdapter Connectors -> Protocol: setAdapter() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + Connectors -> Protocol: init() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + +Connectors -->> Connectors +deactivate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Connectors +deactivate Connectors + +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services -->> Services +deactivate Services + +Server <<-- Services +deactivate Services + +Server -->> Server +deactivate Server + +Server -> Server: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server -->> Catalina +deactivate Server @enduml \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Add lifecycle events, correct activation, use aliases correctly
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 4fb0e474f4 Add lifecycle events, correct activation, use aliases correctly 4fb0e474f4 is described below commit 4fb0e474f4a10b76fc6f47c8c2c4538c2d3c8c4e Author: Mark Thomas AuthorDate: Fri Sep 6 15:32:51 2024 +0100 Add lifecycle events, correct activation, use aliases correctly --- .../docs/architecture/startup/2_catalina_init.png | Bin 30440 -> 114077 bytes .../docs/architecture/startup/2_catalina_init.uml | 95 ++--- 2 files changed, 85 insertions(+), 10 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 9c8aef0ef8..63a31d6a81 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index b02d57f5a3..de8b3432f5 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -19,29 +19,104 @@ hide footbox skinparam style strictuml activate Catalina -activate Server -activate "Global\nNaming\nResources" -activate Services -activate Engine -activate Executors -activate MapperListener -activate Connectors -activate Protocol Catalina -> Server: init() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Server -> Server: initInternal() +activate Server + +Server -> "Global\nNaming\nResources" as GNR: init() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +GNR -> GNR: initInternal() +GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server <<-- GNR +deactivate GNR -Server -> "Global\nNaming\nResources" : init() Server -> "Service(s)" as Services: init() +activate Services + +Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Services -> Services: initInternal() +activate Services Services -> Engine: init() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Engine -> Engine: initInternal() +Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Engine +deactivate Engine + Services -> "Executor(s)" as Executors: init() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Executors -> Executors: initInternal() +Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Executors +deactivate Executors + Services -> "Mapper\nListener" as MapperListener: init() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +MapperListener -> MapperListener: initInternal() +MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- MapperListener +deactivate MapperListener + Services -> "Connector(s)" as Connectors: init() +activate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Connectors -> Connectors: initInternal() +activate Connectors Connectors -->> CoyoteAdapter ** -activate CoyoteAdapter Connectors -> Protocol: setAdapter() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + Connectors -> Protocol: init() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + +Connectors -->> Connectors +deactivate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Connectors +deactivate Connectors + +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services -->> Services +deactivate Services + +Server <<-- Services +deactivate Services + +Server -->> Server +deactivate Server + +Server -> Server: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server -->> Catalina +deactivate Server @enduml \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat 9.0.94
On 05/09/2024 14:58, Rémy Maucherat wrote: The proposed 9.0.94 release is: [ ] -1, Broken - do not release [X] +1, Stable - go ahead and release as 9.0.94 Tests pass on: - Linux (OpenSSL 3.0.2 from Ubuntu 22.04) - Windows (OpenSSL 3.0.14 - Native 2.0.8 binaries) - MacOS (Intel) (OpenSSL 3.3.1) - MacOS (M1 (OpenSSL 3.3.1) The build is repeatable but not cross-platform repeatable (my fault - sorry - already fixed for 9.0.x) Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: (tomcat) branch 9.0.x updated: Add lifecycle events, correct activation, use aliases correctly
Nice to see, that plantuml really works. We could use a few shortcuts to make the code more readable(?). * activating an actor can be done by adding "++" to the message line, so instead of writing a -> b: message() activate b we could shorten it to a -> b ++: message() * deactivating an actor directly after a return message, can be shortened using "return" a <<-- b deactivate b can be replaced by return Another thing worth to mention might be, that the plantuml plug-in in VS Code will look at the file ending and expect it to be one of |*.wsd|,|*.pu|,|*.puml|,|*.plantuml|,|*.iuml| |Kind regards| | Felix | Am 06.09.24 um 16:36 schrieb ma...@apache.org: This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repositoryhttps://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 4fb0e474f4 Add lifecycle events, correct activation, use aliases correctly 4fb0e474f4 is described below commit 4fb0e474f4a10b76fc6f47c8c2c4538c2d3c8c4e Author: Mark Thomas AuthorDate: Fri Sep 6 15:32:51 2024 +0100 Add lifecycle events, correct activation, use aliases correctly --- .../docs/architecture/startup/2_catalina_init.png | Bin 30440 -> 114077 bytes .../docs/architecture/startup/2_catalina_init.uml | 95 ++--- 2 files changed, 85 insertions(+), 10 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 9c8aef0ef8..63a31d6a81 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index b02d57f5a3..de8b3432f5 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -19,29 +19,104 @@ hide footbox skinparam style strictuml activate Catalina -activate Server -activate "Global\nNaming\nResources" -activate Services -activate Engine -activate Executors -activate MapperListener -activate Connectors -activate Protocol Catalina -> Server: init() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Server -> Server: initInternal() +activate Server + +Server -> "Global\nNaming\nResources" as GNR: init() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +GNR -> GNR: initInternal() +GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server <<-- GNR +deactivate GNR -Server -> "Global\nNaming\nResources" : init() Server -> "Service(s)" as Services: init() +activate Services + +Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) + +Services -> Services: initInternal() +activate Services Services -> Engine: init() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Engine -> Engine: initInternal() +Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Engine +deactivate Engine + Services -> "Executor(s)" as Executors: init() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Executors -> Executors: initInternal() +Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Executors +deactivate Executors + Services -> "Mapper\nListener" as MapperListener: init() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +MapperListener -> MapperListener: initInternal() +MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- MapperListener +deactivate MapperListener + Services -> "Connector(s)" as Connectors: init() +activate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) +Connectors -> Connectors: initInternal() +activate Connectors Connectors -->> CoyoteAdapter ** -activate CoyoteAdapter Connectors -> Protocol: setAdapter() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + Connectors -> Protocol: init() +activate Protocol +Connectors <<-- Protocol +deactivate Protocol + +Connectors -->> Connectors +deactivate Connectors + +Connectors -> Connectors: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services <<-- Connectors +deactivate Connectors + +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Services -->> Services +deactivate Services + +Server <<-- Services +deactivate Services + +Server -->> Server +deactivate Server + +Server -> Server: fireLifecycleEvent(\nAFTER_INIT_EVENT) + +Server -->> Catalina +deactivate Server @enduml \ No newline at end of file - To unsubscribe, e-mail:dev-unsubscr...@tomcat.apac
Re: [VOTE] Release Apache Tomcat 10.1.29
On 06/09/2024 16:43, Christopher Schultz wrote: Please reply with a +1 for release or +0/-0/-1 with an explanation. +1 Tests pass on: - Linux (OpenSSL 3.0.2 from Ubuntu 22.04) - Windows (OpenSSL 3.0.14 - Native 2.0.8 binaries) - MacOS (Intel) (OpenSSL 3.3.1) - MacOS (M1 (OpenSSL 3.3.1) The build is repeatable but not cross-platform repeatable (my fault - sorry - already fixed for 10.1.x) Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Convert diagram 3, the first part of the start process
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.git The following commit(s) were added to refs/heads/main by this push: new 9f525abe27 Convert diagram 3, the first part of the start process 9f525abe27 is described below commit 9f525abe27d10b7cf302409fcf8f9f20d1a27981 Author: Mark Thomas AuthorDate: Fri Sep 6 16:39:21 2024 +0100 Convert diagram 3, the first part of the start process --- webapps/docs/architecture/startup.xml | 6 +- .../architecture/startup/3_catalina_start_1.png| Bin 0 -> 158971 bytes .../architecture/startup/3_catalina_start_1.svg| 762 - .../architecture/startup/3_catalina_start_1.uml| 154 + 4 files changed, 158 insertions(+), 764 deletions(-) diff --git a/webapps/docs/architecture/startup.xml b/webapps/docs/architecture/startup.xml index 2d4748face..46fa95836e 100644 --- a/webapps/docs/architecture/startup.xml +++ b/webapps/docs/architecture/startup.xml @@ -80,8 +80,10 @@ only has one. Each Service may have multiple Connectors. A Connector instance is associated with a single Protocol instance and a single CoyoteAdapter instance. -Diagram 3 will show how the Server initialises the Service(s), Engine(s) and -Host(s). +Diagram 3 shows how Tomcat starts +the objects created by the Digester that were initialized in the previous step. +This diagram also shows when lifecycle events are fired. There is more detail to +the starting of the Engine which is shown inthe following diagram. Diagram 4 will show how the Host initialises the Context(s). diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.png b/webapps/docs/architecture/startup/3_catalina_start_1.png new file mode 100644 index 00..3d8d57fbaa Binary files /dev/null and b/webapps/docs/architecture/startup/3_catalina_start_1.png differ diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.svg b/webapps/docs/architecture/startup/3_catalina_start_1.svg deleted file mode 100644 index 2f0dc2399e..00 --- a/webapps/docs/architecture/startup/3_catalina_start_1.svg +++ /dev/null @@ -1,762 +0,0 @@ - -http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'> -http://www.w3.org/1999/xlink"; color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="rgb(0,0,0)" stroke-linecap="square" width="761" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="0" fill="rgb(0,0,0)" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="943" xmlns="http://www.w3.org/2000/svg"; font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" [...] ->StandardPipelineStandardHostStandardEngineStandardServiceStandardServerCatalinaBootstrapfireLifecycleEvent(AFTER_EVENT)fireLifecycleEvent(START_EVENT)fireLifecycleEvent(BEFORE_START_EVENT)findChildren()findMapper()logger.start()start()addDefaultMapper()fireLifecycleEvent(BEFORE_START_EVENT)start()findChildren()findMappers()realm.start()logger.start()addDefaultMapper()fireLifecycleEvent(BEFORE_START_EVENT)start()fireLifecycleEvent(START_EVENT)fireLifecycleEvent(BEFORE_START_EVENT)start()fireLifecycleEvent(START_EVENT)fireLifecycleEvent(BEFORE_START_EVENT)start()start() diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.uml new file mode 100644 index 00..2872395dd4 --- /dev/null +++ b/webapps/docs/architecture/startup/3_catalina_start_1.uml @@ -0,0 +1,154 @@ +@startuml + +' 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. + +hide footbox +skinparam style strictuml + +activate Catalina + +Catalina -> Server: start() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Server -> Server: startInternal() +activate Server + +Server -> Server: fireLifecycleEvent(\nCONFIGURE_START_EVENT) +Server -> Server: fireLifecycleEvent(\nSTART_EVENT) + +Server -> "Global\nNaming\nResources" as GNR: start() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_START_EVENT) +GNR -> GNR: startInternal() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nCO
(tomcat) branch 11.0.x updated: Convert diagram 3, the first part of the start process
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/11.0.x by this push: new e316affa7e Convert diagram 3, the first part of the start process e316affa7e is described below commit e316affa7e130cf576ac705a7d1b2faa89b72fe6 Author: Mark Thomas AuthorDate: Fri Sep 6 16:39:21 2024 +0100 Convert diagram 3, the first part of the start process --- webapps/docs/architecture/startup.xml | 6 +- .../architecture/startup/3_catalina_start_1.png| Bin 0 -> 158971 bytes .../architecture/startup/3_catalina_start_1.svg| 762 - .../architecture/startup/3_catalina_start_1.uml| 154 + 4 files changed, 158 insertions(+), 764 deletions(-) diff --git a/webapps/docs/architecture/startup.xml b/webapps/docs/architecture/startup.xml index 6bdd7d1b38..10d423ec3b 100644 --- a/webapps/docs/architecture/startup.xml +++ b/webapps/docs/architecture/startup.xml @@ -80,8 +80,10 @@ only has one. Each Service may have multiple Connectors. A Connector instance is associated with a single Protocol instance and a single CoyoteAdapter instance. -Diagram 3 will show how the Server initialises the Service(s), Engine(s) and -Host(s). +Diagram 3 shows how Tomcat starts +the objects created by the Digester that were initialized in the previous step. +This diagram also shows when lifecycle events are fired. There is more detail to +the starting of the Engine which is shown inthe following diagram. Diagram 4 will show how the Host initialises the Context(s). diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.png b/webapps/docs/architecture/startup/3_catalina_start_1.png new file mode 100644 index 00..3d8d57fbaa Binary files /dev/null and b/webapps/docs/architecture/startup/3_catalina_start_1.png differ diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.svg b/webapps/docs/architecture/startup/3_catalina_start_1.svg deleted file mode 100644 index 2f0dc2399e..00 --- a/webapps/docs/architecture/startup/3_catalina_start_1.svg +++ /dev/null @@ -1,762 +0,0 @@ - -http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'> -http://www.w3.org/1999/xlink"; color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="rgb(0,0,0)" stroke-linecap="square" width="761" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="0" fill="rgb(0,0,0)" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="943" xmlns="http://www.w3.org/2000/svg"; font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" [...] ->StandardPipelineStandardHostStandardEngineStandardServiceStandardServerCatalinaBootstrapfireLifecycleEvent(AFTER_EVENT)fireLifecycleEvent(START_EVENT)fireLifecycleEvent(BEFORE_START_EVENT)findChildren()findMapper()logger.start()start()addDefaultMapper()fireLifecycleEvent(BEFORE_START_EVENT)start()findChildren()findMappers()realm.start()logger.start()addDefaultMapper()fireLifecycleEvent(BEFORE_START_EVENT)start()fireLifecycleEvent(START_EVENT)fireLifecycleEvent(BEFORE_START_EVENT)start()fireLifecycleEvent(START_EVENT)fireLifecycleEvent(BEFORE_START_EVENT)start()start() diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.uml new file mode 100644 index 00..2872395dd4 --- /dev/null +++ b/webapps/docs/architecture/startup/3_catalina_start_1.uml @@ -0,0 +1,154 @@ +@startuml + +' 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. + +hide footbox +skinparam style strictuml + +activate Catalina + +Catalina -> Server: start() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Server -> Server: startInternal() +activate Server + +Server -> Server: fireLifecycleEvent(\nCONFIGURE_START_EVENT) +Server -> Server: fireLifecycleEvent(\nSTART_EVENT) + +Server -> "Global\nNaming\nResources" as GNR: start() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_START_EVENT) +GNR -> GNR: startInternal() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\n
(tomcat) branch 10.1.x updated: Convert diagram 3, the first part of the start process
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 0532aeca50 Convert diagram 3, the first part of the start process 0532aeca50 is described below commit 0532aeca5033324cb9703701fcec9cb447d9f8a8 Author: Mark Thomas AuthorDate: Fri Sep 6 16:39:21 2024 +0100 Convert diagram 3, the first part of the start process --- webapps/docs/architecture/startup.xml | 6 +- .../architecture/startup/3_catalina_start_1.png| Bin 0 -> 158971 bytes .../architecture/startup/3_catalina_start_1.uml| 154 + 3 files changed, 158 insertions(+), 2 deletions(-) diff --git a/webapps/docs/architecture/startup.xml b/webapps/docs/architecture/startup.xml index 6bdd7d1b38..10d423ec3b 100644 --- a/webapps/docs/architecture/startup.xml +++ b/webapps/docs/architecture/startup.xml @@ -80,8 +80,10 @@ only has one. Each Service may have multiple Connectors. A Connector instance is associated with a single Protocol instance and a single CoyoteAdapter instance. -Diagram 3 will show how the Server initialises the Service(s), Engine(s) and -Host(s). +Diagram 3 shows how Tomcat starts +the objects created by the Digester that were initialized in the previous step. +This diagram also shows when lifecycle events are fired. There is more detail to +the starting of the Engine which is shown inthe following diagram. Diagram 4 will show how the Host initialises the Context(s). diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.png b/webapps/docs/architecture/startup/3_catalina_start_1.png new file mode 100644 index 00..3d8d57fbaa Binary files /dev/null and b/webapps/docs/architecture/startup/3_catalina_start_1.png differ diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.uml new file mode 100644 index 00..2872395dd4 --- /dev/null +++ b/webapps/docs/architecture/startup/3_catalina_start_1.uml @@ -0,0 +1,154 @@ +@startuml + +' 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. + +hide footbox +skinparam style strictuml + +activate Catalina + +Catalina -> Server: start() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Server -> Server: startInternal() +activate Server + +Server -> Server: fireLifecycleEvent(\nCONFIGURE_START_EVENT) +Server -> Server: fireLifecycleEvent(\nSTART_EVENT) + +Server -> "Global\nNaming\nResources" as GNR: start() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_START_EVENT) +GNR -> GNR: startInternal() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nCONFIGURE_START_EVENT) +GNR -> GNR: fireLifecycleEvent(\nSTART_EVENT) + +GNR -->> GNR +deactivate GNR + +GNR -> GNR: fireLifecycleEvent(\nAFTER_START_EVENT) + +Server <<-- GNR +deactivate GNR + +Server -> "Service(s)" as Services: start() +activate Services + +Services -> Services: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Services -> Services: startInternal() +activate Services + +Services -> Services: fireLifecycleEvent(\nSTART_EVENT) + +Services -> Engine: start() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Engine -> Engine: startInternal() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nSTART_EVENT) + +Engine -->> Engine +deactivate Engine + +Engine -> Engine: fireLifecycleEvent(\nAFTER_START_EVENT) + +Services <<-- Engine +deactivate Engine + +Services -> "Executor(s)" as Executors: start() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Executors -> Executors: startInternal() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nSTART_EVENT) + +Executors -->> Executors +deactivate Executors + +Executors -> Executors: fireLifecycleEvent(\nAFTER_START_EVENT) + +Services <<-- Executors +deactivate Executors + +Services -> "Mapper\nListener" as MapperListener: start() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_START_EVENT) + +MapperL
(tomcat) branch 9.0.x updated: Convert diagram 3, the first part of the start process
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 9f3554b831 Convert diagram 3, the first part of the start process 9f3554b831 is described below commit 9f3554b83165a4af4c0c046fb91988dd15439cc0 Author: Mark Thomas AuthorDate: Fri Sep 6 16:39:21 2024 +0100 Convert diagram 3, the first part of the start process --- webapps/docs/architecture/startup.xml | 6 +- .../architecture/startup/3_catalina_start_1.png| Bin 0 -> 158971 bytes .../architecture/startup/3_catalina_start_1.uml| 154 + 3 files changed, 158 insertions(+), 2 deletions(-) diff --git a/webapps/docs/architecture/startup.xml b/webapps/docs/architecture/startup.xml index 6bdd7d1b38..10d423ec3b 100644 --- a/webapps/docs/architecture/startup.xml +++ b/webapps/docs/architecture/startup.xml @@ -80,8 +80,10 @@ only has one. Each Service may have multiple Connectors. A Connector instance is associated with a single Protocol instance and a single CoyoteAdapter instance. -Diagram 3 will show how the Server initialises the Service(s), Engine(s) and -Host(s). +Diagram 3 shows how Tomcat starts +the objects created by the Digester that were initialized in the previous step. +This diagram also shows when lifecycle events are fired. There is more detail to +the starting of the Engine which is shown inthe following diagram. Diagram 4 will show how the Host initialises the Context(s). diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.png b/webapps/docs/architecture/startup/3_catalina_start_1.png new file mode 100644 index 00..3d8d57fbaa Binary files /dev/null and b/webapps/docs/architecture/startup/3_catalina_start_1.png differ diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.uml new file mode 100644 index 00..2872395dd4 --- /dev/null +++ b/webapps/docs/architecture/startup/3_catalina_start_1.uml @@ -0,0 +1,154 @@ +@startuml + +' 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. + +hide footbox +skinparam style strictuml + +activate Catalina + +Catalina -> Server: start() +activate Server + +Server -> Server: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Server -> Server: startInternal() +activate Server + +Server -> Server: fireLifecycleEvent(\nCONFIGURE_START_EVENT) +Server -> Server: fireLifecycleEvent(\nSTART_EVENT) + +Server -> "Global\nNaming\nResources" as GNR: start() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nBEFORE_START_EVENT) +GNR -> GNR: startInternal() +activate GNR + +GNR -> GNR: fireLifecycleEvent(\nCONFIGURE_START_EVENT) +GNR -> GNR: fireLifecycleEvent(\nSTART_EVENT) + +GNR -->> GNR +deactivate GNR + +GNR -> GNR: fireLifecycleEvent(\nAFTER_START_EVENT) + +Server <<-- GNR +deactivate GNR + +Server -> "Service(s)" as Services: start() +activate Services + +Services -> Services: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Services -> Services: startInternal() +activate Services + +Services -> Services: fireLifecycleEvent(\nSTART_EVENT) + +Services -> Engine: start() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Engine -> Engine: startInternal() +activate Engine + +Engine -> Engine: fireLifecycleEvent(\nSTART_EVENT) + +Engine -->> Engine +deactivate Engine + +Engine -> Engine: fireLifecycleEvent(\nAFTER_START_EVENT) + +Services <<-- Engine +deactivate Engine + +Services -> "Executor(s)" as Executors: start() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nBEFORE_START_EVENT) + +Executors -> Executors: startInternal() +activate Executors + +Executors -> Executors: fireLifecycleEvent(\nSTART_EVENT) + +Executors -->> Executors +deactivate Executors + +Executors -> Executors: fireLifecycleEvent(\nAFTER_START_EVENT) + +Services <<-- Executors +deactivate Executors + +Services -> "Mapper\nListener" as MapperListener: start() +activate MapperListener + +MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_START_EVENT) + +MapperLis
(tomcat) branch main updated: Correct point at which Services fires AFTER_INIT_EVENT
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.git The following commit(s) were added to refs/heads/main by this push: new 796f40d149 Correct point at which Services fires AFTER_INIT_EVENT 796f40d149 is described below commit 796f40d14922a75969e3e87713c7c2ebc4b4f9ac Author: Mark Thomas AuthorDate: Fri Sep 6 16:48:04 2024 +0100 Correct point at which Services fires AFTER_INIT_EVENT --- .../docs/architecture/startup/2_catalina_init.png | Bin 114077 -> 114189 bytes .../docs/architecture/startup/2_catalina_init.uml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 63a31d6a81..efc4632bea 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index de8b3432f5..bf260d7cb8 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -103,11 +103,11 @@ Connectors -> Connectors: fireLifecycleEvent(\n AFTER_INIT_EVENT) Services <<-- Connectors deactivate Connectors -Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) - Services -->> Services deactivate Services +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + Server <<-- Services deactivate Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 11.0.x updated: Correct point at which Services fires AFTER_INIT_EVENT
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/11.0.x by this push: new 8c2d59de01 Correct point at which Services fires AFTER_INIT_EVENT 8c2d59de01 is described below commit 8c2d59de015a1d1b01188760cbf276ba73fca8bf Author: Mark Thomas AuthorDate: Fri Sep 6 16:48:04 2024 +0100 Correct point at which Services fires AFTER_INIT_EVENT --- .../docs/architecture/startup/2_catalina_init.png | Bin 114077 -> 114189 bytes .../docs/architecture/startup/2_catalina_init.uml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 63a31d6a81..efc4632bea 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index de8b3432f5..bf260d7cb8 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -103,11 +103,11 @@ Connectors -> Connectors: fireLifecycleEvent(\n AFTER_INIT_EVENT) Services <<-- Connectors deactivate Connectors -Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) - Services -->> Services deactivate Services +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + Server <<-- Services deactivate Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Correct point at which Services fires AFTER_INIT_EVENT
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 235710c73b Correct point at which Services fires AFTER_INIT_EVENT 235710c73b is described below commit 235710c73b3c6ba802ce7df077295020bdd76211 Author: Mark Thomas AuthorDate: Fri Sep 6 16:48:04 2024 +0100 Correct point at which Services fires AFTER_INIT_EVENT --- .../docs/architecture/startup/2_catalina_init.png | Bin 114077 -> 114189 bytes .../docs/architecture/startup/2_catalina_init.uml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/webapps/docs/architecture/startup/2_catalina_init.png b/webapps/docs/architecture/startup/2_catalina_init.png index 63a31d6a81..efc4632bea 100644 Binary files a/webapps/docs/architecture/startup/2_catalina_init.png and b/webapps/docs/architecture/startup/2_catalina_init.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.uml index de8b3432f5..bf260d7cb8 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.uml +++ b/webapps/docs/architecture/startup/2_catalina_init.uml @@ -103,11 +103,11 @@ Connectors -> Connectors: fireLifecycleEvent(\n AFTER_INIT_EVENT) Services <<-- Connectors deactivate Connectors -Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) - Services -->> Services deactivate Services +Services -> Services: fireLifecycleEvent(\nAFTER_INIT_EVENT) + Server <<-- Services deactivate Services - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: (tomcat) branch 9.0.x updated: Add lifecycle events, correct activation, use aliases correctly
On 06/09/2024 16:13, Felix Schumacher wrote: Nice to see, that plantuml really works. +1 Thanks again for your help getting it to behave the way we (OK - I) want. We could use a few shortcuts to make the code more readable(?). * activating an actor can be done by adding "++" to the message line, so instead of writing a -> b: message() activate b we could shorten it to a -> b ++: message() * deactivating an actor directly after a return message, can be shortened using "return" a <<-- b deactivate b can be replaced by return Those look good to me. I'll see about making those refactorings. Another thing worth to mention might be, that the plantuml plug-in in VS Code will look at the file ending and expect it to be one of |*.wsd|,|*.pu|,|*.puml|,|*.plantuml|,|*.iuml| I'll change the extension to plantuml - might as well be explicit. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Rename PlantUML files to use explicit file extension (helps editors)
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.git The following commit(s) were added to refs/heads/main by this push: new 11b5a10ee2 Rename PlantUML files to use explicit file extension (helps editors) 11b5a10ee2 is described below commit 11b5a10ee2cdac23f3a307c7449d9970c00080eb Author: Mark Thomas AuthorDate: Fri Sep 6 16:54:04 2024 +0100 Rename PlantUML files to use explicit file extension (helps editors) --- build.xml | 2 +- .../docs/architecture/startup/{1_overview.uml => 1_overview.plantuml} | 0 .../startup/{2_catalina_init.uml => 2_catalina_init.plantuml} | 0 .../startup/{3_catalina_start_1.uml => 3_catalina_start_1.plantuml} | 0 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index c0402e2421..88c9ac6725 100644 --- a/build.xml +++ b/build.xml @@ -342,6 +342,7 @@ + @@ -356,7 +357,6 @@ - diff --git a/webapps/docs/architecture/startup/1_overview.uml b/webapps/docs/architecture/startup/1_overview.plantuml similarity index 100% rename from webapps/docs/architecture/startup/1_overview.uml rename to webapps/docs/architecture/startup/1_overview.plantuml diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.plantuml similarity index 100% rename from webapps/docs/architecture/startup/2_catalina_init.uml rename to webapps/docs/architecture/startup/2_catalina_init.plantuml diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.plantuml similarity index 100% rename from webapps/docs/architecture/startup/3_catalina_start_1.uml rename to webapps/docs/architecture/startup/3_catalina_start_1.plantuml - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 10.1.x updated: Rename PlantUML files to use explicit file extension (helps editors)
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 97a4ea2cf4 Rename PlantUML files to use explicit file extension (helps editors) 97a4ea2cf4 is described below commit 97a4ea2cf4d8cffd21bbaf28d7e66f2fcb40c234 Author: Mark Thomas AuthorDate: Fri Sep 6 16:54:04 2024 +0100 Rename PlantUML files to use explicit file extension (helps editors) --- build.xml | 2 +- .../docs/architecture/startup/{1_overview.uml => 1_overview.plantuml} | 0 .../startup/{2_catalina_init.uml => 2_catalina_init.plantuml} | 0 .../startup/{3_catalina_start_1.uml => 3_catalina_start_1.plantuml} | 0 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 4955868679..a58ccb3c61 100644 --- a/build.xml +++ b/build.xml @@ -346,6 +346,7 @@ + @@ -360,7 +361,6 @@ - diff --git a/webapps/docs/architecture/startup/1_overview.uml b/webapps/docs/architecture/startup/1_overview.plantuml similarity index 100% rename from webapps/docs/architecture/startup/1_overview.uml rename to webapps/docs/architecture/startup/1_overview.plantuml diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.plantuml similarity index 100% rename from webapps/docs/architecture/startup/2_catalina_init.uml rename to webapps/docs/architecture/startup/2_catalina_init.plantuml diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.plantuml similarity index 100% rename from webapps/docs/architecture/startup/3_catalina_start_1.uml rename to webapps/docs/architecture/startup/3_catalina_start_1.plantuml - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch 9.0.x updated: Rename PlantUML files to use explicit file extension (helps editors)
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 1ddc348045 Rename PlantUML files to use explicit file extension (helps editors) 1ddc348045 is described below commit 1ddc348045e5fabdc9dce2e6cacb7bd3fc66f56a Author: Mark Thomas AuthorDate: Fri Sep 6 16:54:04 2024 +0100 Rename PlantUML files to use explicit file extension (helps editors) --- build.xml | 2 +- .../docs/architecture/startup/{1_overview.uml => 1_overview.plantuml} | 0 .../startup/{2_catalina_init.uml => 2_catalina_init.plantuml} | 0 .../startup/{3_catalina_start_1.uml => 3_catalina_start_1.plantuml} | 0 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 1b0cbc064f..8bab45d924 100644 --- a/build.xml +++ b/build.xml @@ -342,6 +342,7 @@ + @@ -356,7 +357,6 @@ - diff --git a/webapps/docs/architecture/startup/1_overview.uml b/webapps/docs/architecture/startup/1_overview.plantuml similarity index 100% rename from webapps/docs/architecture/startup/1_overview.uml rename to webapps/docs/architecture/startup/1_overview.plantuml diff --git a/webapps/docs/architecture/startup/2_catalina_init.uml b/webapps/docs/architecture/startup/2_catalina_init.plantuml similarity index 100% rename from webapps/docs/architecture/startup/2_catalina_init.uml rename to webapps/docs/architecture/startup/2_catalina_init.plantuml diff --git a/webapps/docs/architecture/startup/3_catalina_start_1.uml b/webapps/docs/architecture/startup/3_catalina_start_1.plantuml similarity index 100% rename from webapps/docs/architecture/startup/3_catalina_start_1.uml rename to webapps/docs/architecture/startup/3_catalina_start_1.plantuml - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
(tomcat) branch main updated: Use shorthand for activate
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.git The following commit(s) were added to refs/heads/main by this push: new e34d8e05c7 Use shorthand for activate e34d8e05c7 is described below commit e34d8e05c700f22f26e766d88e51169a2792c7e8 Author: Mark Thomas AuthorDate: Fri Sep 6 17:16:27 2024 +0100 Use shorthand for activate a -> b: message() activate b is shortened to a -> b ++: message() --- .../docs/architecture/startup/1_overview.plantuml | 33 ++- webapps/docs/architecture/startup/1_overview.png | Bin 45967 -> 46300 bytes .../architecture/startup/2_catalina_init.plantuml | 37 ++--- .../docs/architecture/startup/2_catalina_init.png | Bin 114189 -> 114163 bytes .../startup/3_catalina_start_1.plantuml| 45 +++-- .../architecture/startup/3_catalina_start_1.png| Bin 158971 -> 158947 bytes 6 files changed, 41 insertions(+), 74 deletions(-) diff --git a/webapps/docs/architecture/startup/1_overview.plantuml b/webapps/docs/architecture/startup/1_overview.plantuml index 6c55c1c9b4..fe7dcf58a0 100644 --- a/webapps/docs/architecture/startup/1_overview.plantuml +++ b/webapps/docs/architecture/startup/1_overview.plantuml @@ -23,22 +23,18 @@ Bootstrap -> Bootstrap: initClassLoaders() Bootstrap -->> Catalina ** : newInstance() -Bootstrap -> Catalina: setParentClassLoader() -activate Catalina +Bootstrap -> Catalina ++: setParentClassLoader() ||| Bootstrap <<-- Catalina: deactivate Catalina -Bootstrap -> Catalina: start() -activate Catalina +Bootstrap -> Catalina ++: start() -Catalina -> Catalina: load() -activate Catalina +Catalina -> Catalina ++: load() Catalina -> Catalina: initNaming() -Catalina -> Catalina: parseServerXml() -activate Catalina +Catalina -> Catalina ++: parseServerXml() Catalina -->> Digester ** : note right of Digester @@ -49,8 +45,7 @@ note right of Digester simplicity end note -Catalina -> Digester: parse() -activate Digester +Catalina -> Digester ++: parse() ||| Digester -->> Server ** : @@ -63,8 +58,7 @@ deactivate Catalina Catalina -> Catalina: initStream() -Catalina -> Server: init() -activate Server +Catalina -> Server ++: init() ||| Catalina <<-- Server: deactivate Server @@ -72,12 +66,11 @@ deactivate Server Catalina -->> Catalina: deactivate Catalina -Catalina -> Server: start() -activate Server +Catalina -> Server ++: start() Catalina <<-- Server: +deactivate Server -Catalina -> Catalina: await() -activate Catalina +Catalina -> Catalina ++: await() note right of Catalina This is where Tomcat spends time serving requests @@ -85,13 +78,13 @@ end note Catalina -->> Catalina: deactivate Catalina -Catalina -> Catalina: stop() -activate Catalina +Catalina -> Catalina ++: stop() -Catalina -> Server: stop() +Catalina -> Server ++: stop() Catalina <<-- Server: +deactivate Server -Catalina -> Server: destroy() +Catalina -> Server ++: destroy() Catalina <<-- Server: deactivate Server diff --git a/webapps/docs/architecture/startup/1_overview.png b/webapps/docs/architecture/startup/1_overview.png index c35fc974bf..b94efeef18 100644 Binary files a/webapps/docs/architecture/startup/1_overview.png and b/webapps/docs/architecture/startup/1_overview.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.plantuml b/webapps/docs/architecture/startup/2_catalina_init.plantuml index bf260d7cb8..6010e7b1e7 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.plantuml +++ b/webapps/docs/architecture/startup/2_catalina_init.plantuml @@ -20,16 +20,13 @@ skinparam style strictuml activate Catalina -Catalina -> Server: init() -activate Server +Catalina -> Server ++: init() Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) -Server -> Server: initInternal() -activate Server +Server -> Server ++: initInternal() -Server -> "Global\nNaming\nResources" as GNR: init() -activate GNR +Server -> "Global\nNaming\nResources" as GNR ++: init() GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) GNR -> GNR: initInternal() @@ -38,16 +35,13 @@ GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) Server <<-- GNR deactivate GNR -Server -> "Service(s)" as Services: init() -activate Services +Server -> "Service(s)" as Services ++: init() Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) -Services -> Services: initInternal() -activate Services +Services -> Services ++: initInternal() -Services -> Engine: init() -activate Engine +Services -> Engine ++: init() Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Engine -> Engine: initInternal() @@ -56,8 +50,7 @@ Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) Services <<-- Engine deactivate Engine -Services -> "Executor(s)" as Executors: init() -activate Executors +Services
(tomcat) branch 10.1.x updated: Use shorthand for activate
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 15e82a2151 Use shorthand for activate 15e82a2151 is described below commit 15e82a215137b7355b4e79ed7547e34a4ea92e9a Author: Mark Thomas AuthorDate: Fri Sep 6 17:16:27 2024 +0100 Use shorthand for activate a -> b: message() activate b is shortened to a -> b ++: message() --- .../docs/architecture/startup/1_overview.plantuml | 33 ++- webapps/docs/architecture/startup/1_overview.png | Bin 45967 -> 46300 bytes .../architecture/startup/2_catalina_init.plantuml | 37 ++--- .../docs/architecture/startup/2_catalina_init.png | Bin 114189 -> 114163 bytes .../startup/3_catalina_start_1.plantuml| 45 +++-- .../architecture/startup/3_catalina_start_1.png| Bin 158971 -> 158947 bytes 6 files changed, 41 insertions(+), 74 deletions(-) diff --git a/webapps/docs/architecture/startup/1_overview.plantuml b/webapps/docs/architecture/startup/1_overview.plantuml index 6c55c1c9b4..fe7dcf58a0 100644 --- a/webapps/docs/architecture/startup/1_overview.plantuml +++ b/webapps/docs/architecture/startup/1_overview.plantuml @@ -23,22 +23,18 @@ Bootstrap -> Bootstrap: initClassLoaders() Bootstrap -->> Catalina ** : newInstance() -Bootstrap -> Catalina: setParentClassLoader() -activate Catalina +Bootstrap -> Catalina ++: setParentClassLoader() ||| Bootstrap <<-- Catalina: deactivate Catalina -Bootstrap -> Catalina: start() -activate Catalina +Bootstrap -> Catalina ++: start() -Catalina -> Catalina: load() -activate Catalina +Catalina -> Catalina ++: load() Catalina -> Catalina: initNaming() -Catalina -> Catalina: parseServerXml() -activate Catalina +Catalina -> Catalina ++: parseServerXml() Catalina -->> Digester ** : note right of Digester @@ -49,8 +45,7 @@ note right of Digester simplicity end note -Catalina -> Digester: parse() -activate Digester +Catalina -> Digester ++: parse() ||| Digester -->> Server ** : @@ -63,8 +58,7 @@ deactivate Catalina Catalina -> Catalina: initStream() -Catalina -> Server: init() -activate Server +Catalina -> Server ++: init() ||| Catalina <<-- Server: deactivate Server @@ -72,12 +66,11 @@ deactivate Server Catalina -->> Catalina: deactivate Catalina -Catalina -> Server: start() -activate Server +Catalina -> Server ++: start() Catalina <<-- Server: +deactivate Server -Catalina -> Catalina: await() -activate Catalina +Catalina -> Catalina ++: await() note right of Catalina This is where Tomcat spends time serving requests @@ -85,13 +78,13 @@ end note Catalina -->> Catalina: deactivate Catalina -Catalina -> Catalina: stop() -activate Catalina +Catalina -> Catalina ++: stop() -Catalina -> Server: stop() +Catalina -> Server ++: stop() Catalina <<-- Server: +deactivate Server -Catalina -> Server: destroy() +Catalina -> Server ++: destroy() Catalina <<-- Server: deactivate Server diff --git a/webapps/docs/architecture/startup/1_overview.png b/webapps/docs/architecture/startup/1_overview.png index c35fc974bf..b94efeef18 100644 Binary files a/webapps/docs/architecture/startup/1_overview.png and b/webapps/docs/architecture/startup/1_overview.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.plantuml b/webapps/docs/architecture/startup/2_catalina_init.plantuml index bf260d7cb8..6010e7b1e7 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.plantuml +++ b/webapps/docs/architecture/startup/2_catalina_init.plantuml @@ -20,16 +20,13 @@ skinparam style strictuml activate Catalina -Catalina -> Server: init() -activate Server +Catalina -> Server ++: init() Server -> Server: fireLifecycleEvent(\nBEFORE_INIT_EVENT) -Server -> Server: initInternal() -activate Server +Server -> Server ++: initInternal() -Server -> "Global\nNaming\nResources" as GNR: init() -activate GNR +Server -> "Global\nNaming\nResources" as GNR ++: init() GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) GNR -> GNR: initInternal() @@ -38,16 +35,13 @@ GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) Server <<-- GNR deactivate GNR -Server -> "Service(s)" as Services: init() -activate Services +Server -> "Service(s)" as Services ++: init() Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) -Services -> Services: initInternal() -activate Services +Services -> Services ++: initInternal() -Services -> Engine: init() -activate Engine +Services -> Engine ++: init() Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Engine -> Engine: initInternal() @@ -56,8 +50,7 @@ Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) Services <<-- Engine deactivate Engine -Services -> "Executor(s)" as Executors: init() -activate Executors +Serv
(tomcat) branch main updated: Use shorthand for return and deactivate
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.git The following commit(s) were added to refs/heads/main by this push: new 6605a3176b Use shorthand for return and deactivate 6605a3176b is described below commit 6605a3176b2d2a3a1fe4784da7d0f0011ad9c64d Author: Mark Thomas AuthorDate: Fri Sep 6 17:35:57 2024 +0100 Use shorthand for return and deactivate a <<-- b deactivate b is replaced by return The style of the arrow changes but that seems acceptable for the cleaner code --- .../docs/architecture/startup/1_overview.plantuml | 41 +-- webapps/docs/architecture/startup/1_overview.png | Bin 46300 -> 48278 bytes .../architecture/startup/2_catalina_init.plantuml | 52 ++ .../docs/architecture/startup/2_catalina_init.png | Bin 114163 -> 118930 bytes .../startup/3_catalina_start_1.plantuml| 75 +++-- .../architecture/startup/3_catalina_start_1.png| Bin 158947 -> 166720 bytes 6 files changed, 63 insertions(+), 105 deletions(-) diff --git a/webapps/docs/architecture/startup/1_overview.plantuml b/webapps/docs/architecture/startup/1_overview.plantuml index fe7dcf58a0..749d2d4a3c 100644 --- a/webapps/docs/architecture/startup/1_overview.plantuml +++ b/webapps/docs/architecture/startup/1_overview.plantuml @@ -25,8 +25,7 @@ Bootstrap -->> Catalina ** : newInstance() Bootstrap -> Catalina ++: setParentClassLoader() ||| -Bootstrap <<-- Catalina: -deactivate Catalina +return Bootstrap -> Catalina ++: start() @@ -46,53 +45,49 @@ note right of Digester end note Catalina -> Digester ++: parse() -||| Digester -->> Server ** : -Catalina <<-- Digester: -deactivate Digester +return -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Catalina: initStream() Catalina -> Server ++: init() ||| -Catalina <<-- Server: -deactivate Server +return -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Server ++: start() -Catalina <<-- Server: -deactivate Server +||| +return +||| Catalina -> Catalina ++: await() note right of Catalina This is where Tomcat spends time serving requests end note -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Catalina ++: stop() Catalina -> Server ++: stop() -Catalina <<-- Server: -deactivate Server +||| +return Catalina -> Server ++: destroy() -Catalina <<-- Server: -deactivate Server +||| +return -Catalina -->> Catalina: -deactivate Catalina +return -Bootstrap <<-- Catalina: -deactivate Catalina +return deactivate Bootstrap @enduml \ No newline at end of file diff --git a/webapps/docs/architecture/startup/1_overview.png b/webapps/docs/architecture/startup/1_overview.png index b94efeef18..f014d7d9b8 100644 Binary files a/webapps/docs/architecture/startup/1_overview.png and b/webapps/docs/architecture/startup/1_overview.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.plantuml b/webapps/docs/architecture/startup/2_catalina_init.plantuml index 6010e7b1e7..738dac0f69 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.plantuml +++ b/webapps/docs/architecture/startup/2_catalina_init.plantuml @@ -27,14 +27,12 @@ Server -> Server: fireLifecycleEvent(\n BEFORE_INIT_EVENT) Server -> Server ++: initInternal() Server -> "Global\nNaming\nResources" as GNR ++: init() - GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) GNR -> GNR: initInternal() GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Server <<-- GNR -deactivate GNR - +||| Server -> "Service(s)" as Services ++: init() Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) @@ -42,32 +40,26 @@ Services -> Services: fireLifecycleEvent(\n BEFORE_INIT_EVENT) Services -> Services ++: initInternal() Services -> Engine ++: init() - Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Engine -> Engine: initInternal() Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- Engine -deactivate Engine - +||| Services -> "Executor(s)" as Executors ++: init() - Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Executors -> Executors: initInternal() Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- Executors -deactivate Executors - +||| Services -> "Mapper\nListener" as MapperListener ++: init() - MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) MapperListener -> MapperListener: initInternal() MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- MapperListener -deactivate MapperListener - +||| Services -> "Connector(s)" as Connectors ++: init() Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) @@ -77,35 +69,29 @@ Connectors
(tomcat) branch 11.0.x updated: Use shorthand for return and deactivate
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/11.0.x by this push: new 8a5e8ebda1 Use shorthand for return and deactivate 8a5e8ebda1 is described below commit 8a5e8ebda13351cfdd20ad0e7c8dd68d28d16920 Author: Mark Thomas AuthorDate: Fri Sep 6 17:35:57 2024 +0100 Use shorthand for return and deactivate a <<-- b deactivate b is replaced by return The style of the arrow changes but that seems acceptable for the cleaner code --- .../docs/architecture/startup/1_overview.plantuml | 41 +-- webapps/docs/architecture/startup/1_overview.png | Bin 46300 -> 48278 bytes .../architecture/startup/2_catalina_init.plantuml | 52 ++ .../docs/architecture/startup/2_catalina_init.png | Bin 114163 -> 118930 bytes .../startup/3_catalina_start_1.plantuml| 75 +++-- .../architecture/startup/3_catalina_start_1.png| Bin 158947 -> 166720 bytes 6 files changed, 63 insertions(+), 105 deletions(-) diff --git a/webapps/docs/architecture/startup/1_overview.plantuml b/webapps/docs/architecture/startup/1_overview.plantuml index fe7dcf58a0..749d2d4a3c 100644 --- a/webapps/docs/architecture/startup/1_overview.plantuml +++ b/webapps/docs/architecture/startup/1_overview.plantuml @@ -25,8 +25,7 @@ Bootstrap -->> Catalina ** : newInstance() Bootstrap -> Catalina ++: setParentClassLoader() ||| -Bootstrap <<-- Catalina: -deactivate Catalina +return Bootstrap -> Catalina ++: start() @@ -46,53 +45,49 @@ note right of Digester end note Catalina -> Digester ++: parse() -||| Digester -->> Server ** : -Catalina <<-- Digester: -deactivate Digester +return -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Catalina: initStream() Catalina -> Server ++: init() ||| -Catalina <<-- Server: -deactivate Server +return -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Server ++: start() -Catalina <<-- Server: -deactivate Server +||| +return +||| Catalina -> Catalina ++: await() note right of Catalina This is where Tomcat spends time serving requests end note -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Catalina ++: stop() Catalina -> Server ++: stop() -Catalina <<-- Server: -deactivate Server +||| +return Catalina -> Server ++: destroy() -Catalina <<-- Server: -deactivate Server +||| +return -Catalina -->> Catalina: -deactivate Catalina +return -Bootstrap <<-- Catalina: -deactivate Catalina +return deactivate Bootstrap @enduml \ No newline at end of file diff --git a/webapps/docs/architecture/startup/1_overview.png b/webapps/docs/architecture/startup/1_overview.png index b94efeef18..f014d7d9b8 100644 Binary files a/webapps/docs/architecture/startup/1_overview.png and b/webapps/docs/architecture/startup/1_overview.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.plantuml b/webapps/docs/architecture/startup/2_catalina_init.plantuml index 6010e7b1e7..738dac0f69 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.plantuml +++ b/webapps/docs/architecture/startup/2_catalina_init.plantuml @@ -27,14 +27,12 @@ Server -> Server: fireLifecycleEvent(\n BEFORE_INIT_EVENT) Server -> Server ++: initInternal() Server -> "Global\nNaming\nResources" as GNR ++: init() - GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) GNR -> GNR: initInternal() GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Server <<-- GNR -deactivate GNR - +||| Server -> "Service(s)" as Services ++: init() Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) @@ -42,32 +40,26 @@ Services -> Services: fireLifecycleEvent(\n BEFORE_INIT_EVENT) Services -> Services ++: initInternal() Services -> Engine ++: init() - Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Engine -> Engine: initInternal() Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- Engine -deactivate Engine - +||| Services -> "Executor(s)" as Executors ++: init() - Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Executors -> Executors: initInternal() Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- Executors -deactivate Executors - +||| Services -> "Mapper\nListener" as MapperListener ++: init() - MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) MapperListener -> MapperListener: initInternal() MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- MapperListener -deactivate MapperListener - +||| Services -> "Connector(s)" as Connectors ++: init() Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) @@ -77,35 +69,29 @@ Connect
(tomcat) branch 10.1.x updated: Use shorthand for return and deactivate
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.1.x by this push: new 6c1e5974ac Use shorthand for return and deactivate 6c1e5974ac is described below commit 6c1e5974ac936d5eb30a18f2f53aff7c5e83c056 Author: Mark Thomas AuthorDate: Fri Sep 6 17:35:57 2024 +0100 Use shorthand for return and deactivate a <<-- b deactivate b is replaced by return The style of the arrow changes but that seems acceptable for the cleaner code --- .../docs/architecture/startup/1_overview.plantuml | 41 +-- webapps/docs/architecture/startup/1_overview.png | Bin 46300 -> 48278 bytes .../architecture/startup/2_catalina_init.plantuml | 52 ++ .../docs/architecture/startup/2_catalina_init.png | Bin 114163 -> 118930 bytes .../startup/3_catalina_start_1.plantuml| 75 +++-- .../architecture/startup/3_catalina_start_1.png| Bin 158947 -> 166720 bytes 6 files changed, 63 insertions(+), 105 deletions(-) diff --git a/webapps/docs/architecture/startup/1_overview.plantuml b/webapps/docs/architecture/startup/1_overview.plantuml index fe7dcf58a0..749d2d4a3c 100644 --- a/webapps/docs/architecture/startup/1_overview.plantuml +++ b/webapps/docs/architecture/startup/1_overview.plantuml @@ -25,8 +25,7 @@ Bootstrap -->> Catalina ** : newInstance() Bootstrap -> Catalina ++: setParentClassLoader() ||| -Bootstrap <<-- Catalina: -deactivate Catalina +return Bootstrap -> Catalina ++: start() @@ -46,53 +45,49 @@ note right of Digester end note Catalina -> Digester ++: parse() -||| Digester -->> Server ** : -Catalina <<-- Digester: -deactivate Digester +return -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Catalina: initStream() Catalina -> Server ++: init() ||| -Catalina <<-- Server: -deactivate Server +return -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Server ++: start() -Catalina <<-- Server: -deactivate Server +||| +return +||| Catalina -> Catalina ++: await() note right of Catalina This is where Tomcat spends time serving requests end note -Catalina -->> Catalina: -deactivate Catalina +return +||| Catalina -> Catalina ++: stop() Catalina -> Server ++: stop() -Catalina <<-- Server: -deactivate Server +||| +return Catalina -> Server ++: destroy() -Catalina <<-- Server: -deactivate Server +||| +return -Catalina -->> Catalina: -deactivate Catalina +return -Bootstrap <<-- Catalina: -deactivate Catalina +return deactivate Bootstrap @enduml \ No newline at end of file diff --git a/webapps/docs/architecture/startup/1_overview.png b/webapps/docs/architecture/startup/1_overview.png index b94efeef18..f014d7d9b8 100644 Binary files a/webapps/docs/architecture/startup/1_overview.png and b/webapps/docs/architecture/startup/1_overview.png differ diff --git a/webapps/docs/architecture/startup/2_catalina_init.plantuml b/webapps/docs/architecture/startup/2_catalina_init.plantuml index 6010e7b1e7..738dac0f69 100644 --- a/webapps/docs/architecture/startup/2_catalina_init.plantuml +++ b/webapps/docs/architecture/startup/2_catalina_init.plantuml @@ -27,14 +27,12 @@ Server -> Server: fireLifecycleEvent(\n BEFORE_INIT_EVENT) Server -> Server ++: initInternal() Server -> "Global\nNaming\nResources" as GNR ++: init() - GNR -> GNR: fireLifecycleEvent(\nBEFORE_INIT_EVENT) GNR -> GNR: initInternal() GNR -> GNR: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Server <<-- GNR -deactivate GNR - +||| Server -> "Service(s)" as Services ++: init() Services -> Services: fireLifecycleEvent(\nBEFORE_INIT_EVENT) @@ -42,32 +40,26 @@ Services -> Services: fireLifecycleEvent(\n BEFORE_INIT_EVENT) Services -> Services ++: initInternal() Services -> Engine ++: init() - Engine -> Engine: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Engine -> Engine: initInternal() Engine -> Engine: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- Engine -deactivate Engine - +||| Services -> "Executor(s)" as Executors ++: init() - Executors -> Executors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) Executors -> Executors: initInternal() Executors -> Executors: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- Executors -deactivate Executors - +||| Services -> "Mapper\nListener" as MapperListener ++: init() - MapperListener -> MapperListener: fireLifecycleEvent(\nBEFORE_INIT_EVENT) MapperListener -> MapperListener: initInternal() MapperListener -> MapperListener: fireLifecycleEvent(\nAFTER_INIT_EVENT) +return -Services <<-- MapperListener -deactivate MapperListener - +||| Services -> "Connector(s)" as Connectors ++: init() Connectors -> Connectors: fireLifecycleEvent(\nBEFORE_INIT_EVENT) @@ -77,35 +69,29 @@ Connect