done in rev. 1627490

Jacopo

On Sep 24, 2014, at 1:07 PM, Jacques Le Roux <jacques.le.r...@les7arts.com> 
wrote:

> +1
> 
> Jacques
> 
> Le 24/09/2014 11:02, Pierre Smits a écrit :
>> 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 {
>>>>> 
>>>>> 
>>>>> 
>>> 

Reply via email to