You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2016/10/26 16:25:26 UTC
svn commit: r1766698 - in /tomcat/trunk:
java/org/apache/catalina/startup/Tomcat.java webapps/docs/changelog.xml
Author: remm
Date: Wed Oct 26 16:25:26 2016
New Revision: 1766698
URL: http://svn.apache.org/viewvc?rev=1766698&view=rev
Log:
Similar to the connector handling, refactor the embedded mode container handling to more cleanly allow multiples of each (if needed). Remove relevant todos.
Modified:
tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1766698&r1=1766697&r2=1766698&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Wed Oct 26 16:25:26 2016
@@ -133,20 +133,7 @@ public class Tomcat {
// so that configuration is not lost.
private final Map<String, Logger> pinnedLoggers = new HashMap<>();
- // Single engine, service, server, connector - few cases need more,
- // they can use server.xml
protected Server server;
- protected Service service;
- protected Engine engine;
-
- // To make it a bit easier to config for the common case
- // ( one host, one context ).
- protected Host host;
-
- // TODO: it's easy to add support for more hosts - but is it
- // really needed ?
-
- // TODO: allow use of in-memory connector
protected int port = 8080;
protected String hostname = "localhost";
@@ -450,8 +437,7 @@ public class Tomcat {
* @return The service
*/
public Service getService() {
- getServer();
- return service;
+ return (Service) getServer().findServices()[0];
}
/**
@@ -462,16 +448,27 @@ public class Tomcat {
* @param host The current host
*/
public void setHost(Host host) {
- this.host = host;
+ Engine engine = getEngine();
+ boolean found = false;
+ for (Container engineHost : engine.findChildren()) {
+ if (engineHost == host) {
+ found = true;
+ }
+ }
+ if (!found) {
+ engine.addChild(host);
+ }
}
public Host getHost() {
- if (host == null) {
- host = new StandardHost();
- host.setName(hostname);
-
- getEngine().addChild( host );
+ Engine engine = getEngine();
+ if (engine.findChildren().length > 0) {
+ return (Host) engine.findChildren()[0];
}
+
+ Host host = new StandardHost();
+ host.setName(hostname);
+ getEngine().addChild(host);
return host;
}
@@ -480,14 +477,15 @@ public class Tomcat {
* @return The engine
*/
public Engine getEngine() {
- if(engine == null ) {
- getServer();
- engine = new StandardEngine();
- engine.setName( "Tomcat" );
- engine.setDefaultHost(hostname);
- engine.setRealm(createDefaultRealm());
- service.setContainer(engine);
+ Service service = (Service) getServer().findServices()[0];
+ if (service.getContainer() != null) {
+ return (Engine) service.getContainer();
}
+ Engine engine = new StandardEngine();
+ engine.setName( "Tomcat" );
+ engine.setDefaultHost(hostname);
+ engine.setRealm(createDefaultRealm());
+ service.setContainer(engine);
return engine;
}
@@ -510,9 +508,9 @@ public class Tomcat {
server.setPort( -1 );
- service = new StandardService();
+ Service service = new StandardService();
service.setName("Tomcat");
- server.addService( service );
+ server.addService(service);
return server;
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1766698&r1=1766697&r2=1766698&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Oct 26 16:25:26 2016
@@ -83,6 +83,10 @@
<fix>
<bug>60297</bug>: Simplify connector creation in embedded mode. (remm)
</fix>
+ <fix>
+ Refactor creation of containers in embedded mode for more consistency
+ and flexibility. (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org