@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 Bootstrap Bootstrap -> Bootstrap: initClassLoaders() Bootstrap -->> Catalina ** : newInstance() Bootstrap -> Catalina ++: setParentClassLoader() ||| return Bootstrap -> Catalina ++: start() Catalina -> Catalina ++: load() Catalina -> Catalina: initNaming() Catalina -> Catalina ++: parseServerXml() Catalina -->> Digester ** : note right of Digester The digester creates all of the objects defined in //server.xml// but only the Server is shown here for simplicity end note Catalina -> Digester ++: parse() Digester -->> Server ** : return return ||| Catalina -> Catalina: initStream() group More detail in diagram 2 Catalina -> Server ++: init() ||| return end return ||| group More detail in diagram 3 Catalina -> Server ++: start() ||| return end ||| Catalina -> Catalina ++: await() note right of Catalina This is where Tomcat spends time serving requests end note return ||| Catalina -> Catalina ++: stop() Catalina -> Server ++: stop() ||| return Catalina -> Server ++: destroy() ||| return return return deactivate Bootstrap @enduml