I agree. Most of the times users have a proxy in front of app servers. Setting this to 'true' would mean additional and unnecessary resource consumption.
Pierre Smits *ORRTIZ.COM <http://www.orrtiz.com>* Services & Solutions for Cloud- Based Manufacturing, Professional Services and Retail & Trade http://www.orrtiz.com On Wed, Sep 24, 2014 at 10:42 AM, Jacopo Cappellato < jacopo.cappell...@hotwaxmedia.com> wrote: > Thanks for mentioning this. > My preference would be to use the default value as is in tomcat (i.e. > comment out this setting). > I didn't change its value but I have added the comment as a reminder to > discuss this with you all. > > Here is what Tomcat doc says: > > "enableLookups: > Set to true if you want calls to request.getRemoteHost() to perform DNS > lookups in order to return the actual host name of the remote client. Set > to false to skip the DNS lookup and return the IP address in String form > instead (thereby improving performance). By default, DNS lookups are > disabled." > > Do we agree to change it to use the default value of "false"? > > Jacopo > > > On Sep 24, 2014, at 10:35 AM, Jacques Le Roux < > jacques.le.r...@les7arts.com> wrote: > > > Hi Jacopo, > > > > I was confused by the enableLookups parameter default value (false) > which is now clearly defined in Tomcat 7. > > Confusion came from here: > http://www.baselogic.com/blog/development/java-javaee-j2ee/tomcat-6-connector-option-enablelookups-defaulting-true/ > > Do you know why are we not using the default value (once again false)? > > > > Jacques > > > > Le 18/09/2014 11:00, jaco...@apache.org a écrit : > >> Author: jacopoc > >> Date: Thu Sep 18 09:00:15 2014 > >> New Revision: 1625919 > >> > >> URL: http://svn.apache.org/r1625919 > >> Log: > >> Simplified and improved the logic to setup the Tomcat connectors: the > logic was overly complex and messed up (probably after all the various > upgrades to new Tomcat versions), there were a series of parameters that > could not be set, some hardcoded values, some old and no more used (by > Tomcat) parameters. > >> Improved the information logged about the actual parameters set for > the connectors. > >> Removed Javolution from CatalinaContainer. > >> Cleaned up the connector configuration file: removed no more used > parameters, commented out some parameters (that didn't change the default), > commented out some parameters in order to use the Tomcat default values > that may improve the performance (e.g. maxThreads in OFBiz was set to a > lower value than the default one of newer Tomcat releases and this limits > the throughput in default OFBiz setups), updated URLs to Tomcat > documentation. > >> > >> Modified: > >> ofbiz/trunk/framework/catalina/ofbiz-component.xml > >> > > ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java > >> > >> Modified: ofbiz/trunk/framework/catalina/ofbiz-component.xml > >> URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/catalina/ofbiz-component.xml?rev=1625919&r1=1625918&r2=1625919&view=diff > >> > ============================================================================== > >> --- ofbiz/trunk/framework/catalina/ofbiz-component.xml (original) > >> +++ ofbiz/trunk/framework/catalina/ofbiz-component.xml Thu Sep 18 > 09:00:15 2014 > >> @@ -66,116 +66,83 @@ under the License. > >> <!-- <property name="ssl-accelerator-port" value="8443"/> > --> > >> <property name="enable-cross-subdomain-sessions" > value="false"/> > >> </property> > >> - <!-- all connectors support type, host, port, enable-lookups > --> > >> <property name="ajp-connector" value="connector"> > >> - <!-- see > http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/ajp.html for > reference --> > >> - <property name="allowTrace" value="false"/> > >> - <property name="emptySessionPath" value="false"/> > >> - <property name="enableLookups" value="true"/> > >> - <property name="maxPostSize" value="2097152"/> > >> + <!-- see > http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html for reference --> > >> + <property name="port" value="8009"/> > >> <property name="protocol" value="AJP/1.3"/> > >> - <property name="proxyName" value=""/> > >> - <property name="proxyPort" value=""/> > >> - <property name="redirectPort" value=""/> > >> <property name="scheme" value="http"/> > >> <property name="secure" value="false"/> > >> <property name="URIEncoding" value="UTF-8"/> > >> - <property name="useBodyEncodingForURI" value="false"/> > >> <property name="xpoweredBy" value="true"/> > >> + <property name="enableLookups" value="true"/> <!-- set to > false to improve performance (false is the default value in Tomcat) --> > >> <!-- AJP/13 connector attributes --> > >> - <property name="address" value="0.0.0.0"/> > >> - <property name="backlog" value="10"/> > >> - <property name="maxSpareThreads" value="50"/> > >> + <!-- commented out because the values match the Tomcat > defaults: > >> + <property name="tomcatAuthentication" value="true"/> > >> + <property name="allowTrace" value="false"/> > >> + <property name="maxPostSize" value="2097152"/> > >> + <property name="noCompressionUserAgents" value=""/> > >> + <property name="connectionLinger" value="-1"/> > >> + <property name="connectionTimeout" value="60000"/> > >> + <property name="maxHttpHeaderSize" value="8192"/> > >> + <property name="maxKeepAliveRequests" value="100"/> > >> <property name="maxThreads" value="200"/> > >> - <property name="minSpareThreads" value="4"/> > >> - <property name="port" value="8009"/> > >> + <property name="minSpareThreads" value="10"/> > >> + <property name="acceptCount" value="100"/> > >> + <property name="restrictedUserAgents" value=""/> > >> + <property name="socketBuffer" value="9000"/> > >> <property name="tcpNoDelay" value="true"/> > >> - <property name="soTimeout" value="60000"/> > >> - <property name="tomcatAuthentication" value="true"/> > >> + <property name="threadPriority" value="5"/> > >> + --> > >> </property> > >> <property name="http-connector" value="connector"> > >> - <!-- see > http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/http.html for > reference --> > >> - <property name="allowTrace" value="false"/> > >> - <property name="emptySessionPath" value="false"/> > >> - <property name="enableLookups" value="true"/> > >> - <property name="maxPostSize" value="2097152"/> > >> + <!-- see > http://tomcat.apache.org/tomcat-7.0-doc/config/http.html for reference --> > >> + <property name="port" value="8080"/> > >> <property name="protocol" value="HTTP/1.1"/> > >> - <property name="proxyName" value=""/> > >> - <property name="proxyPort" value=""/> > >> - <property name="redirectPort" value=""/> > >> <property name="scheme" value="http"/> > >> <property name="secure" value="false"/> > >> <property name="URIEncoding" value="UTF-8"/> > >> - <property name="useBodyEncodingForURI" value="false"/> > >> <property name="xpoweredBy" value="true"/> > >> - <!-- HTTP connector attributes --> > >> - <property name="acceptCount" value="10"/> > >> - <property name="address" value="0.0.0.0"/> > >> - <property name="bufferSize" value="2048"/> > >> + <property name="enableLookups" value="true"/> <!-- set to > false to improve performance (false is the default value in Tomcat) --> > >> <property name="compression" value="on"/> > >> <property name="compressableMimeType" > value="text/html,text/xml,text/plain,text/javascript,text/css"/> > >> + <!-- commented out because the values match the Tomcat > defaults: > >> + <property name="allowTrace" value="false"/> > >> + <property name="maxPostSize" value="2097152"/> > >> <property name="noCompressionUserAgents" value=""/> > >> <property name="connectionLinger" value="-1"/> > >> <property name="connectionTimeout" value="60000"/> > >> - <property name="disableUploadTimeout" value="false"/> > >> <property name="maxHttpHeaderSize" value="8192"/> > >> <property name="maxKeepAliveRequests" value="100"/> > >> - <property name="maxSpareThreads" value="50"/> > >> - <property name="maxThreads" value="100"/> > >> - <property name="minSpareThreads" value="4"/> > >> - <property name="port" value="8080"/> > >> + <property name="maxThreads" value="200"/> > >> + <property name="minSpareThreads" value="10"/> > >> + <property name="acceptCount" value="100"/> > >> <property name="restrictedUserAgents" value=""/> > >> - <property name="server" value=""/> > >> <property name="socketBuffer" value="9000"/> > >> - <property name="strategy" value="lf"/> > >> <property name="tcpNoDelay" value="true"/> > >> - <property name="threadPriority" > value="java.lang.Thread#NORM_PRIORITY"/> > >> + <property name="threadPriority" value="5"/> > >> + --> > >> </property> > >> <property name="https-connector" value="connector"> > >> - <!-- see > http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/http.html for > reference --> > >> - <property name="allowTrace" value="false"/> > >> - <property name="emptySessionPath" value="false"/> > >> - <property name="enableLookups" value="true"/> > >> - <property name="maxPostSize" value="2097152"/> > >> + <!-- see > http://tomcat.apache.org/tomcat-7.0-doc/config/http.html for reference --> > >> + <property name="port" value="8443"/> > >> <property name="protocol" value="HTTP/1.1"/> > >> - <property name="proxyName" value=""/> > >> - <property name="proxyPort" value=""/> > >> - <property name="redirectPort" value=""/> > >> <property name="scheme" value="https"/> > >> <property name="secure" value="true"/> > >> + <property name="SSLEnabled" value="true"/> > >> <property name="URIEncoding" value="UTF-8"/> > >> - <property name="useBodyEncodingForURI" value="false"/> > >> <property name="xpoweredBy" value="true"/> > >> - <!-- HTTP connector attributes --> > >> - <property name="acceptCount" value="10"/> > >> - <property name="address" value="0.0.0.0"/> > >> - <property name="bufferSize" value="2048"/> > >> + <property name="enableLookups" value="true"/> <!-- set to > false to improve performance (false is the default value in Tomcat) --> > >> <property name="compression" value="on"/> > >> <property name="compressableMimeType" > value="text/html,text/xml,text/plain,text/javascript,text/css"/> > >> - <property name="noCompressionUserAgents" value=""/> > >> - <property name="connectionLinger" value="-1"/> > >> - <property name="connectionTimeout" value="60000"/> > >> - <property name="disableUploadTimeout" value="false"/> > >> - <property name="maxHttpHeaderSize" value="8192"/> > >> - <property name="maxKeepAliveRequests" value="100"/> > >> - <property name="maxSpareThreads" value="50"/> > >> - <property name="maxThreads" value="100"/> > >> - <property name="minSpareThreads" value="4"/> > >> - <property name="port" value="8443"/> > >> - <property name="restrictedUserAgents" value=""/> > >> - <property name="server" value=""/> > >> - <property name="socketBuffer" value="9000"/> > >> - <property name="strategy" value="lf"/> > >> - <property name="tcpNoDelay" value="true"/> > >> - <property name="threadPriority" > value="java.lang.Thread#NORM_PRIORITY"/> > >> <!-- SSL connector attributes --> > >> - <property name="sSLImplementation" > value="org.ofbiz.catalina.container.SSLImpl"/> > >> + <property name="sslImplementationName" > value="org.ofbiz.catalina.container.SSLImpl"/> > >> <property name="algorithm" value="SunX509"/> > >> <!-- the clientAuth to "want" in order to receive certs > from the client; > >> note that this isn't set this way by default because > with certain browsers > >> (like Safari) it breaks access via HTTPS, so until > that problem is fixed > >> - the default will be false --> > >> + the default will be false > >> <property name="clientAuth" value="false"/> > >> + --> > >> <property name="keystoreFile" > value="framework/base/config/ofbizssl.jks"/> > >> <property name="keystorePass" value="changeit"/> > >> <property name="keystoreType" value="JKS"/> > >> @@ -202,133 +169,40 @@ under the License. > >> <property name="access-log-prefix" value="access_log."/> > >> <property name="access-log-dir" value="runtime/logs"/> > >> <property name="enable-request-dump" value="false"/> > >> - <!-- uncomment for cluster support > >> - <property name="default-server-cluster" value="cluster"> > >> - <property name="rep-valve-filter"> > >> - > <property-value>.*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;.*\.png;.*\.css;.*\.ico;.*\.htc;</property-value> > >> - </property> > >> - <property name="manager-class" > value="org.apache.catalina.cluster.session.DeltaManager"/> > >> - <property name="debug" value="5"/> > >> - <property name="replication-mode" > value="org.apache.catalina.tribes.transport.bio.PooledMultiSender"/> > >> - <property name="tcp-listen-host" value="auto"/> > >> - <property name="tcp-listen-port" value="4001"/> > >> - <property name="tcp-sector-timeout" value="100"/> > >> - <property name="tcp-thread-count" value="6"/> > >> - <property name="mcast-bind-addr" value="192.168.2.1"/> > >> - <property name="mcast-addr" value="224.0.0.1"/> > >> - <property name="mcast-port" value="45564"/> > >> - <property name="mcast-freq" value="500"/> > >> - <property name="mcast-drop-time" value="3000"/> > >> - </property> > >> - --> > >> - <!-- <property name="ssl-accelerator-port" value="8443"/> > --> > >> </property> > >> - <!-- all connectors support type, host, port, enable-lookups > --> > >> <property name="ajp-connector" value="connector"> > >> - <!-- see > http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/ajp.html for > reference --> > >> - <property name="allowTrace" value="false"/> > >> - <property name="emptySessionPath" value="false"/> > >> - <property name="enableLookups" value="true"/> > >> - <property name="maxPostSize" value="2097152"/> > >> + <property name="port" value="8010"/> > >> <property name="protocol" value="AJP/1.3"/> > >> - <property name="proxyName" value=""/> > >> - <property name="proxyPort" value=""/> > >> - <property name="redirectPort" value=""/> > >> <property name="scheme" value="http"/> > >> <property name="secure" value="false"/> > >> <property name="URIEncoding" value="UTF-8"/> > >> - <property name="useBodyEncodingForURI" value="false"/> > >> <property name="xpoweredBy" value="true"/> > >> - <!-- AJP/13 connector attributes --> > >> - <property name="address" value="0.0.0.0"/> > >> - <property name="backlog" value="10"/> > >> - <property name="maxSpareThreads" value="50"/> > >> - <property name="maxThreads" value="200"/> > >> - <property name="minSpareThreads" value="4"/> > >> - <property name="port" value="8010"/> > >> - <property name="tcpNoDelay" value="true"/> > >> - <property name="soTimeout" value="60000"/> > >> - <property name="tomcatAuthentication" value="true"/> > >> + <property name="enableLookups" value="true"/> > >> </property> > >> <property name="http-connector" value="connector"> > >> - <!-- see > http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/http.html for > reference --> > >> - <property name="allowTrace" value="false"/> > >> - <property name="emptySessionPath" value="false"/> > >> - <property name="enableLookups" value="true"/> > >> - <property name="maxPostSize" value="2097152"/> > >> + <property name="port" value="8080"/> > >> <property name="protocol" value="HTTP/1.1"/> > >> - <property name="proxyName" value=""/> > >> - <property name="proxyPort" value=""/> > >> - <property name="redirectPort" value=""/> > >> <property name="scheme" value="http"/> > >> <property name="secure" value="false"/> > >> <property name="URIEncoding" value="UTF-8"/> > >> - <property name="useBodyEncodingForURI" value="false"/> > >> <property name="xpoweredBy" value="true"/> > >> - <!-- HTTP connector attributes --> > >> - <property name="acceptCount" value="10"/> > >> - <property name="address" value="0.0.0.0"/> > >> - <property name="bufferSize" value="2048"/> > >> - <property name="compressableMimeType" > value="text/html,text/xml,text/plain"/> > >> + <property name="enableLookups" value="true"/> > >> <property name="compression" value="on"/> > >> - <property name="connectionLinger" value="-1"/> > >> - <property name="connectionTimeout" value="60000"/> > >> - <property name="disableUploadTimeout" value="false"/> > >> - <property name="maxHttpHeaderSize" value="8192"/> > >> - <property name="maxKeepAliveRequests" value="100"/> > >> - <property name="maxSpareThreads" value="50"/> > >> - <property name="maxThreads" value="100"/> > >> - <property name="minSpareThreads" value="4"/> > >> - <property name="noCompressionUserAgents" value=""/> > >> - <property name="port" value="8080"/> > >> - <property name="restrictedUserAgents" value=""/> > >> - <property name="server" value=""/> > >> - <property name="socketBuffer" value="9000"/> > >> - <property name="strategy" value="lf"/> > >> - <property name="tcpNoDelay" value="true"/> > >> - <property name="threadPriority" > value="java.lang.Thread#NORM_PRIORITY"/> > >> + <property name="compressableMimeType" > value="text/html,text/xml,text/plain,text/javascript,text/css"/> > >> </property> > >> <property name="https-connector" value="connector"> > >> - <!-- see > http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/http.html for > reference --> > >> - <property name="allowTrace" value="false"/> > >> - <property name="emptySessionPath" value="false"/> > >> - <property name="enableLookups" value="true"/> > >> - <property name="maxPostSize" value="2097152"/> > >> + <property name="port" value="8443"/> > >> <property name="protocol" value="HTTP/1.1"/> > >> - <property name="proxyName" value=""/> > >> - <property name="proxyPort" value=""/> > >> - <property name="redirectPort" value=""/> > >> <property name="scheme" value="https"/> > >> <property name="secure" value="true"/> > >> + <property name="SSLEnabled" value="true"/> > >> <property name="URIEncoding" value="UTF-8"/> > >> - <property name="useBodyEncodingForURI" value="false"/> > >> <property name="xpoweredBy" value="true"/> > >> - <!-- HTTP connector attributes --> > >> - <property name="acceptCount" value="10"/> > >> - <property name="address" value="0.0.0.0"/> > >> - <property name="bufferSize" value="2048"/> > >> - <property name="compressableMimeType" > value="text/html,text/xml,text/plain"/> > >> + <property name="enableLookups" value="true"/> > >> <property name="compression" value="on"/> > >> - <property name="connectionLinger" value="-1"/> > >> - <property name="connectionTimeout" value="60000"/> > >> - <property name="disableUploadTimeout" value="false"/> > >> - <property name="maxHttpHeaderSize" value="8192"/> > >> - <property name="maxKeepAliveRequests" value="100"/> > >> - <property name="maxSpareThreads" value="50"/> > >> - <property name="maxThreads" value="100"/> > >> - <property name="minSpareThreads" value="4"/> > >> - <property name="noCompressionUserAgents" value=""/> > >> - <property name="port" value="8443"/> > >> - <property name="restrictedUserAgents" value=""/> > >> - <property name="server" value=""/> > >> - <property name="socketBuffer" value="9000"/> > >> - <property name="strategy" value="lf"/> > >> - <property name="tcpNoDelay" value="true"/> > >> - <property name="threadPriority" > value="java.lang.Thread#NORM_PRIORITY"/> > >> - <!-- SSL connector attributes --> > >> - <property name="sSLImplementation" > value="org.ofbiz.catalina.container.SSLImpl"/> > >> + <property name="compressableMimeType" > value="text/html,text/xml,text/plain,text/javascript,text/css"/> > >> + <property name="sslImplementationName" > value="org.ofbiz.catalina.container.SSLImpl"/> > >> <property name="algorithm" value="SunX509"/> > >> - <property name="clientAuth" value="want"/> > >> <property name="keystoreFile" > value="framework/base/config/ofbizssl.jks"/> > >> <property name="keystorePass" value="changeit"/> > >> <property name="keystoreType" value="JKS"/> > >> > >> Modified: > ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java > >> URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java?rev=1625919&r1=1625918&r2=1625919&view=diff > >> > ============================================================================== > >> --- > ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java > (original) > >> +++ > ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java > Thu Sep 18 09:00:15 2014 > >> @@ -21,6 +21,7 @@ package org.ofbiz.catalina.container; > >> import java.io.File; > >> import java.net.MalformedURLException; > >> import java.net.URL; > >> +import java.util.ArrayList; > >> import java.util.HashMap; > >> import java.util.Iterator; > >> import java.util.List; > >> @@ -32,8 +33,6 @@ import java.util.concurrent.ScheduledExe > >> import javax.naming.InitialContext; > >> import javax.naming.NamingException; > >> -import javolution.util.FastList; > >> - > >> import org.apache.catalina.Cluster; > >> import org.apache.catalina.Context; > >> import org.apache.catalina.Engine; > >> @@ -63,8 +62,6 @@ import org.apache.catalina.tribes.transp > >> import org.apache.catalina.tribes.transport.nio.NioReceiver; > >> import org.apache.catalina.util.ServerInfo; > >> import org.apache.catalina.valves.AccessLogValve; > >> -import org.apache.coyote.ProtocolHandler; > >> -import org.apache.coyote.http11.Http11Protocol; > >> import org.apache.tomcat.JarScanner; > >> import org.apache.tomcat.util.IntrospectionUtils; > >> import org.apache.tomcat.util.scan.StandardJarScanner; > >> @@ -236,25 +233,17 @@ public class CatalinaContainer implement > >> // load the web applications > >> loadComponents(); > >> - for (Connector con: tomcat.getService().findConnectors()) { > >> - ProtocolHandler ph = con.getProtocolHandler(); > >> - int port = con.getPort(); > >> - con.setAttribute("port", port); > >> - if (ph instanceof Http11Protocol) { > >> - Http11Protocol hph = (Http11Protocol) ph; > >> - Debug.logInfo("Connector " + hph.getName() + " @ " + > hph.getPort() + " - " + > >> - (hph.getSecure() ? "secure" : "not-secure") + " [" > + con.getProtocolHandlerClassName() + "] started.", module); > >> - } else { > >> - Debug.logInfo("Connector " + con.getProtocol() + " @ " > + con.getPort() + " - " + > >> - (con.getSecure() ? "secure" : "not-secure") + " [" > + con.getProtocolHandlerClassName() + "] started.", module); > >> - } > >> - } > >> // Start the Tomcat server > >> try { > >> tomcat.getServer().start(); > >> } catch (LifecycleException e) { > >> throw new ContainerException(e); > >> } > >> + > >> + for (Connector con: tomcat.getService().findConnectors()) { > >> + Debug.logInfo("Connector " + con.getProtocol() + " @ " + > con.getPort() + " - " + > >> + (con.getSecure() ? "secure" : "not-secure") + " [" + > con.getProtocolHandlerClassName() + "] started.", module); > >> + } > >> Debug.logInfo("Started " + ServerInfo.getServerInfo(), module); > >> return true; > >> } > >> @@ -473,87 +462,28 @@ public class CatalinaContainer implement > >> if (tomcat == null) { > >> throw new ContainerException("Cannot create Connector > without Tomcat instance!"); > >> } > >> - > >> - // need some standard properties > >> - String protocol = > ContainerConfig.getPropertyValue(connectorProp, "protocol", "HTTP/1.1"); > >> - String address = > ContainerConfig.getPropertyValue(connectorProp, "address", "0.0.0.0"); > >> - int port = ContainerConfig.getPropertyValue(connectorProp, > "port", 0) + Start.getInstance().getConfig().portOffset; > >> - > >> - boolean secure = > ContainerConfig.getPropertyValue(connectorProp, "secure", false); > >> - if (protocol.toLowerCase().startsWith("ajp")) { > >> - protocol = "ajp"; > >> - } else if ("memory".equals(protocol.toLowerCase())) { > >> - protocol = "memory"; > >> - } else if (secure) { > >> - protocol = "https"; > >> - } else { > >> - protocol = "http"; > >> - } > >> - > >> Connector connector = null; > >> if (UtilValidate.isNotEmpty(connectorProp.properties)) { > >> - if (address != null) { > >> - /* > >> - * InetAddress.toString() returns a string of the form > >> - * "<hostname>/<literal_IP>". Get the latter part, so > that the > >> - * address can be parsed (back) into an InetAddress > using > >> - * InetAddress.getByName(). > >> - */ > >> - int index = address.indexOf('/'); > >> - if (index != -1) { > >> - address = address.substring(index + 1); > >> - } > >> - } > >> + String protocol = > ContainerConfig.getPropertyValue(connectorProp, "protocol", "HTTP/1.1"); > >> + int port = ContainerConfig.getPropertyValue(connectorProp, > "port", 0) + Start.getInstance().getConfig().portOffset; > >> - Debug.logInfo("Creating connector for address='" + > >> - ((address == null) ? "ALL" : address) + > >> - "' port='" + port + "' protocol='" + > protocol + "'", module); > >> - > >> - try { > >> - > >> - if (protocol.equals("ajp")) { > >> - connector = new > Connector("org.apache.coyote.ajp.AjpProtocol"); > >> - } else if (protocol.equals("memory")) { > >> - connector = new > Connector("org.apache.coyote.memory.MemoryProtocolHandler"); > >> - } else if (protocol.equals("http")) { > >> - connector = new Connector(); > >> - } else if (protocol.equals("https")) { > >> - connector = new Connector(); > >> - connector.setScheme("https"); > >> - connector.setSecure(true); > >> - connector.setProperty("SSLEnabled","true"); > >> - // FIXME !!!! SET SSL PROPERTIES > >> - } else { > >> - connector = new Connector(protocol); > >> + // set the protocol and the port first > >> + connector = new Connector(protocol); > >> + connector.setPort(port); > >> + // then set all the other parameters > >> + for (ContainerConfig.Container.Property prop: > connectorProp.properties.values()) { > >> + if ("protocol".equals(prop.name) || "port".equals( > prop.name)) { > >> + // protocol and port are already set > >> + continue; > >> } > >> - > >> - if (address != null) { > >> - IntrospectionUtils.setProperty(connector, > "address", "" + address); > >> + if (IntrospectionUtils.setProperty(connector, > prop.name, prop.value)) { > >> + Debug.logInfo("Tomcat " + connector + ": set " + > prop.name + "=" + prop.value, module); > >> + } else { > >> + Debug.logWarning("Tomcat " + connector + ": > ignored parameter " + prop.name, module); > >> } > >> - IntrospectionUtils.setProperty(connector, "port", "" + > port); > >> - > >> - } catch (Exception e) { > >> - Debug.logError(e, "Couldn't create connector.", > module); > >> } > >> - try { > >> - for (ContainerConfig.Container.Property prop: > connectorProp.properties.values()) { > >> - if ("port".equals(prop.name)) { > >> - connector.setProperty(prop.name, "" + port); > >> - } else { > >> - connector.setProperty(prop.name, prop.value); > >> - //connector.setAttribute(prop.name, > prop.value); > >> - } > >> - } > >> - > >> - if > (connectorProp.properties.containsKey("URIEncoding")) { > >> - > connector.setURIEncoding(connectorProp.properties.get("URIEncoding").value); > >> - } > >> - > >> - tomcat.getService().addConnector(connector); > >> - } catch (Exception e) { > >> - throw new ContainerException(e); > >> - } > >> + tomcat.getService().addConnector(connector); > >> } > >> return connector; > >> } > >> @@ -728,21 +658,21 @@ public class CatalinaContainer implement > >> // load the applications > >> List<ComponentConfig.WebappInfo> webResourceInfos = > ComponentConfig.getAllWebappResourceInfos(); > >> - List<String> loadedMounts = FastList.newInstance(); > >> + List<String> loadedMounts = new ArrayList<String>(); > >> if (webResourceInfos == null) { > >> return; > >> } > >> ScheduledExecutorService executor = > ExecutionPool.getScheduledExecutor(CATALINA_THREAD_GROUP, > "catalina-startup", -1, true); > >> try { > >> - List<Future<Context>> futures = FastList.newInstance(); > >> + List<Future<Context>> futures = new > ArrayList<Future<Context>>(); > >> for (int i = webResourceInfos.size(); i > 0; i--) { > >> ComponentConfig.WebappInfo appInfo = > webResourceInfos.get(i - 1); > >> String engineName = appInfo.server; > >> List<String> virtualHosts = appInfo.getVirtualHosts(); > >> String mount = appInfo.getContextRoot(); > >> - List<String> keys = FastList.newInstance(); > >> + List<String> keys = new ArrayList<String>(); > >> if (virtualHosts.isEmpty()) { > >> keys.add(engineName + ":DEFAULT:" + mount); > >> } else { > >> > >> > >> > >