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

commit 488a31f5606ca4ca8472f1e181c6db804a02198d
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Apr 30 19:38:02 2025 +0100

    Add synchronous processing
---
 webapps/docs/architecture/requestProcess.xml       |   3 +-
 .../architecture/requestProcess/11_nio.plantuml    |   4 +
 .../docs/architecture/requestProcess/11_nio.png    | Bin 105158 -> 116516 bytes
 .../requestProcess/31_synchronous.plantuml         | 109 +++++++++++++++++++++
 .../architecture/requestProcess/31_synchronous.png | Bin 0 -> 209355 bytes
 5 files changed, 115 insertions(+), 1 deletion(-)

diff --git a/webapps/docs/architecture/requestProcess.xml 
b/webapps/docs/architecture/requestProcess.xml
index 5b16e97559..2c8021daec 100644
--- a/webapps/docs/architecture/requestProcess.xml
+++ b/webapps/docs/architecture/requestProcess.xml
@@ -72,7 +72,8 @@ AJP - TBD.
 
 <section name="Servlet engine">
 <p>
-Synchronous - TBD
+<a href="requestProcess/31_synchronous.png">Diagram 3.1</a> shows synchronous
+Servlet requests are processed.
 </p>
 <p>
 Asynchronous - TBD.
diff --git a/webapps/docs/architecture/requestProcess/11_nio.plantuml 
b/webapps/docs/architecture/requestProcess/11_nio.plantuml
index 03608a5737..171171aef7 100644
--- a/webapps/docs/architecture/requestProcess/11_nio.plantuml
+++ b/webapps/docs/architecture/requestProcess/11_nio.plantuml
@@ -76,6 +76,10 @@ return
 SocketProcessor -> ConnectionHandler ++: process()
 ConnectionHandler -> Protocol ++: createProcessor()
 Protocol -->> Processor **:
+activate Processor
+Processor -->> CoyoteRequest **:
+Processor -->> CoyoteResponse **:
+return
 return
 ConnectionHandler -> Processor ++: process()
 Processor -> Processor ++: service()
diff --git a/webapps/docs/architecture/requestProcess/11_nio.png 
b/webapps/docs/architecture/requestProcess/11_nio.png
index 32cf126b80..058941858c 100644
Binary files a/webapps/docs/architecture/requestProcess/11_nio.png and 
b/webapps/docs/architecture/requestProcess/11_nio.png differ
diff --git a/webapps/docs/architecture/requestProcess/31_synchronous.plantuml 
b/webapps/docs/architecture/requestProcess/31_synchronous.plantuml
new file mode 100644
index 0000000000..645fd328f8
--- /dev/null
+++ b/webapps/docs/architecture/requestProcess/31_synchronous.plantuml
@@ -0,0 +1,109 @@
+@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
+
+participant CoyoteRequest
+participant CoyoteResponse
+activate CoyoteAdapter
+
+CoyoteAdapter -> Connector ++: createRequest()
+return
+
+CoyoteAdapter -> Connector ++: createResponse()
+return
+
+CoyoteAdapter -> Request ++: setRequest()
+return
+CoyoteAdapter -> Response ++: setResponse()
+return
+CoyoteAdapter -> CoyoteRequest ++: setNote()
+return
+CoyoteAdapter -> CoyoteResponse ++: setNote()
+return
+
+CoyoteAdapter -> CoyoteAdapter ++: postParseRequest()
+return
+
+CoyoteAdapter -> Connector ++: getService()
+return
+CoyoteAdapter -> Service ++: getContainer()
+return
+CoyoteAdapter -> Engine ++: getPipeline()
+return
+CoyoteAdapter -> "StandardPipeline\n(Engine)" ++: getFirst()
+return
+CoyoteAdapter -> StandardEngineValve ++: invoke()
+StandardEngineValve -> Request ++: getHost()
+return
+StandardEngineValve -> Host ++: getPipeline()
+return
+StandardEngineValve -> "StandardPipeline\n(Host)" ++: getFirst()
+return
+StandardEngineValve -> AccessLogValve ++: invoke()
+AccessLogValve -> AccessLogValve ++: getNext()
+return
+AccessLogValve -> ErrorReportValve ++: invoke()
+ErrorReportValve -> ErrorReportValve ++: getNext()
+return
+ErrorReportValve -> StandardHostValve ++: invoke()
+StandardHostValve -> Request ++: getContext()
+return
+StandardHostValve -> Context ++: bind()
+return
+StandardHostValve -> Context ++: getPipeline()
+return
+StandardHostValve -> "StandardPipeline\n(Context)" ++: getFirst()
+return
+StandardHostValve -> StandardContextValve ++: invoke()
+StandardContextValve -> Request ++: getWrapper()
+return
+StandardContextValve -> Wrapper ++: getPipeline()
+return
+StandardContextValve -> "StandardPipeline\n(Wrapper)" ++: getFirst()
+return
+StandardContextValve -> StandardWrapperValve ++: invoke()
+StandardWrapperValve -> Wrapper ++: allocate()
+return
+StandardWrapperValve -> ApplicationFilterFactory ++: createFilterChain
+ApplicationFilterFactory --> FilterChain **:
+return
+StandardWrapperValve -> FilterChain ++: doFilter()
+FilterChain -> "Filter\nA" ++: doFilter()
+"Filter\nA" -> FilterChain ++: doFilter()
+FilterChain -> "Filter\nB" ++: doFilter()
+"Filter\nB" -> FilterChain ++: doFilter()
+FilterChain -> Servlet ++: service()
+|||
+return
+return
+return
+return
+return
+return
+StandardWrapperValve -> FilterChain ++: release()
+return
+StandardWrapperValve -> Wrapper ++: deallocate()
+return
+return
+return
+return
+return
+return
+return
+@enduml
\ No newline at end of file
diff --git a/webapps/docs/architecture/requestProcess/31_synchronous.png 
b/webapps/docs/architecture/requestProcess/31_synchronous.png
new file mode 100644
index 0000000000..c91fc5024d
Binary files /dev/null and 
b/webapps/docs/architecture/requestProcess/31_synchronous.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to