Thank you Arun, much appreciated!
Jacopo On Sep 19, 2014, at 12:19 PM, Arun Patidar <arun.pati...@hotwaxmedia.com> wrote: > Hi Jacopo, > > We have tested ajp connector and it seem to be working fine. > > Thanks & Regards > --- > Arun Patidar > > On Thursday 18 September 2014 02:37 PM, Jacopo Cappellato wrote: >> Hi all, >> >> a few minutes ago with the commit below I have cleaned up the Tomcat >> connector configuration for the http, https and ajp connectors. >> In theory the settings should be the same as before (apart for the max >> number of processing threads that is now larger because it is set to the >> default value of tomcat) but before this commit some of them were not set >> because of some bugs in the integration code. >> Now that the bugs are fixed and the all the parameters are actually set in >> the connectors, I need your help to confirm that the behavior is still good. >> I have tested the http and https connectors and they seem to work just fine. >> I couldn't test the ajp connector: I would appreciate if you could test it >> and let me know if it still works (as I expect). >> >> Thanks, >> >> Jacopo >> >> Begin forwarded message: >> >>> From: jaco...@apache.org >>> Subject: svn commit: r1625919 - in /ofbiz/trunk/framework/catalina: >>> ofbiz-component.xml src/org/ofbiz/catalina/container/CatalinaContainer.java >>> Date: September 18, 2014 at 11:00:15 AM GMT+2 >>> To: comm...@ofbiz.apache.org >>> Reply-To: dev@ofbiz.apache.org >>> >>> 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 { >>> >>> >