cle_clock
Home > wikikonf >  tom/actions/by kikonf > aprconn







Aprconn

print

Action : tom.aprconn   (Category : tom, Name : aprconn, By : kikonf)
Complete Name : tom.aprconn.by.kikonf
Version : 1.0        License : Modified BSD License

Purpose of the tom category :
Easy to customize. This category use in background the Kikonf Repoz tools to create and configure Apache Tomcat root installs and Catalina bases at any level (server.xml, hosts or defaults).
You can use it to manage the whole Tomcat Architecture.

Purpose of this aprconn plugin : Configure an HTTP connector.

The following shows the Descriptor File for the Action : tom.aprconn

Toggle lines
<!-- Copyright (c) 2008, Patrick Germain Placidoux                          -->
<!-- All rights reserved.                                                   -->
<!--                                                                        -->
<!-- This file is part of Kikonf Public Software.                           -->
<!--                                                                        -->
<!-- Kikonf Public Software is released under the modified BSD License,     -->
<!-- which should accompany it or any part of it in the file "COPYING".     -->
<!-- If you do not have this file you can access the license                -->
<!-- through the WWW at http://www.kikonf.org/license/bsd/license.txt.      -->
<!--                                                                        -->
<!-- Home page: http://www.kikonf.org                                       -->
<!-- Contact: kikonf@gmx.com                                                -->
<!-- ====================================================================== -->
<!--                                                                        -->
<!--                                                                        -->
<!--                                                                        -->
<!-- ====================================================================== -->
<!-- UPDATE     |     DATE     |   CODE   |  REASON                         -->
<!-- ====================================================================== -->
<!--            |              |          |                                 -->
<!--                                                                        -->
<!--                                                                        -->
<!-- ====================================================================== -->


<aprconn

    type = '{\
        *eq:action,\
        *required:True,\
        *display:False\
    }'
    bal = '{*display:False}'
    sub_type = '{\
        *value:configuration,\
        *eq:configuration,\
        *required:True,\
        *deny:True,\
        *display:False\
    }'
    softwares = "{
        '*type':'dict',
        '*dtype':
            {
                'tom':
                {
                    '*ge':'5.5',
                    '*le':'7',
                    '*required':True
                }
            },
        '*deny':True, 
        '*display':False
    }"
    
    address = '{\
        *help:%lang/action.tom.en/hconn.address.help,\
        *lhelp:%lang/action.tom.en/hconn.address.lhelp,\
    }'
    port = '{\
        *value:8080,\
        *type:int,\
        *required:True,\
        *help:%lang/action.tom.en/hconn.port.help,\
        *lhelp:%lang/action.tom.en/hconn.port.lhelp,\
    }'
    redirectPort = '{\
        *value:8443,\
        *type:int,\
        *help:%lang/action.tom.en/hconn.redirectPort.help,\
        *lhelp:%lang/action.tom.en/hconn.redirectPort.lhelp,\
    }'
    __wk__ = '{\
        *help:%lang/action.tom.en/aprconn.help,\
        *lhelp:%lang/action.tom.en/aprconn.lhelp\
    }'    
>

    <scope 
        cbase = "{'*value':'$[software_tom_catalina_base]'}"
        service = ''
        engine = ''
        host = ''
        context.global = '{*checkIn:(true,false),*value:false}'
        context = ''
        context.default.global = '{*checkIn:(true,false),*value:false}'
        context.default = '{*checkIn:(true,false),*value:false}'

        __wk__ = '{\
            *eq:1,\
            *help:%lang/action.tom.en/scope.help,\
            *lhelp:%lang/action.tom.en/scope.lhelp,\
        }'
    />

    <timeouts
        connectionLinger = '{\
            *value:-1,\
            *type:int,\
            *help:%lang/action.tom.en/hconn.timeouts.connectionLinger.help,\
            *lhelp:%lang/action.tom.en/hconn.timeouts.connectionLinger.lhelp\
        }'
        connectionTimeout = '{\
            *value:60000,\
            *type:int,\
            *help:%lang/action.tom.en/hconn.timeouts.connectionTimeout.help,\
            *lhelp:%lang/action.tom.en/hconn.timeouts.connectionTimeout.lhelp\
        }'
        disableUploadTimeout = '{\
            *value:true,\
            *checkIn:(true,false),\
            *help:%lang/action.tom.en/hconn.timeouts.disableUploadTimeout.help,\
            *lhelp:%lang/action.tom.en/hconn.timeouts.disableUploadTimeout.lhelp\
        }'
        __wk__ = '{\
            *le:1,\
            *help:%lang/action.tom.en/aprconn.timeouts.help,\
            *lhelp:%lang/action.tom.en/aprconn.timeouts.lhelp\
        }'
    />

    <sizes
        socketBuffer = '{\
            *value:9000,\
            *type:int,\
            *help:%lang/action.tom.en/hconn.sizes.socketBuffer.help,\
            *lhelp:%lang/action.tom.en/hconn.sizes.socketBuffer.lhelp\
        }'
        bufferSize = '{\
            *value:2048,\
            *type:int,\
            *help:%lang/action.tom.en/hconn.sizes.bufferSize.help,\
            *lhelp:%lang/action.tom.en/hconn.sizes.bufferSize.lhelp\
        }'
        maxHttpHeaderSize = '{\
            *value:4096,\
            *type:int,\
            *help:%lang/action.tom.en/hconn.sizes.maxHttpHeaderSize.help,\
            *lhelp:%lang/action.tom.en/hconn.sizes.maxHttpHeaderSize.lhelp\
        }'
        maxPostSize = '{\
            *value:2097152,\
            *type:int,\
            *help:%lang/action.tom.en/hconn.sizes.maxPostSize.help,\
            *lhelp:%lang/action.tom.en/hconn.sizes.maxPostSize.lhelp\
        }'
        maxSavePostSize = '{\
            *value:4096,\
            *type:int,\
            *help:%lang/action.tom.en/hconn.sizes.maxSavePostSize.help,\
            *lhelp:%lang/action.tom.en/hconn.sizes.maxSavePostSize.lhelp\
        }'
        __wk__ = '{\
            *le:1,\
            *help:%lang/action.tom.en/aprconn.sizes.help,\
            *lhelp:%lang/action.tom.en/aprconn.sizes.lhelp\
        }'
    />    

    <!-- scheme: Accepter None pour scheme, Switche a https si tag ssl (1)
         secure: Accepter None pour secure, Switche a true si tag ssl (1) -->
    <methods
        enableLookups = '{\
            *value:true,\
            *checkIn:(true,false),\
            *help:%lang/action.tom.en/hconn.methods.enableLookups.help,\
            *lhelp:%lang/action.tom.en/hconn.methods.enableLookups.lhelp\
        }'
        useIPVHosts = '{\
            *value:false,\
            *checkIn:(true,false),\
            *help:%lang/action.tom.en/hconn.methods.useIPVHosts.help,\
            *lhelp:%lang/action.tom.en/hconn.methods.useIPVHosts.lhelp\
        }'
        proxyName = '{\
            *help:%lang/action.tom.en/hconn.methods.proxyName.help,\
            *lhelp:%lang/action.tom.en/hconn.methods.proxyName.lhelp\
        }'
        proxyPort = '{\
            *type:int,\
            *help:%lang/action.tom.en/hconn.methods.proxyPort.help,\
            *lhelp:%lang/action.tom.en/hconn.methods.proxyPort.lhelp\
        }'
        scheme = '{\
            *value:http,\
            *checkIn:(http,https),\
            *help:%lang/action.tom.en/hconn.methods.scheme.help,\
            *lhelp:%lang/action.tom.en/hconn.methods.scheme.lhelp\
        }'
        secure = '{\
            *value:false,\
            *checkIn:(true,false),\
            *help:%lang/action.tom.en/hconn.methods.secure.help,\
            *lhelp:%lang/action.tom.en/hconn.methods.secure.lhelp\
        }'
        __wk__ = '{\
            *le:1,\
            *help:%lang/action.tom.en/aprconn.methods.help,\
            *lhelp:%lang/action.tom.en/aprconn.methods.lhelp\
        }'
    />

    <pools
        acceptCount = '{\
            *value:100,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.acceptCount.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.acceptCount.lhelp\
        }'
        maxKeepAliveRequests = '{\
            *value:100,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.maxKeepAliveRequests.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.maxKeepAliveRequests.lhelp\
        }'
        maxSpareThreads = '{\
            *value:50,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.maxSpareThreads.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.maxSpareThreads.lhelp\
        }'
        minSpareThreads = '{\
            *value:4,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.minSpareThreads.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.minSpareThreads.lhelp\
        }'
        maxThreads = '{\
            *value:200,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.maxThreads.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.maxThreads.lhelp\
        }'
        strategy = '{\
            *value:lf,\
            *checkIn:(lf,ms),\
            *help:%lang/action.tom.en/aprconn.pools.strategy.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.strategy.lhelp\
        }'
        threadPriority = '{\
            *value:java.lang.Thread#NORM_PRIORITY,\
            *help:%lang/action.tom.en/aprconn.pools.threadPriority.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.threadPriority.lhelp\
        }'
        keepAliveTimeout = '{\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.keepAliveTimeout.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.keepAliveTimeout.lhelp\
        }'
        pollerSize = '{\
            *value:8192,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.pollerSize.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.pollerSize.lhelp\
        }'
        pollTime = '{\
            *value:2000,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.pools.pollTime.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.pollTime.lhelp\
        }'
        pollerThreadCount = '{\
            *help:%lang/action.tom.en/aprconn.pools.pollerThreadCount.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.pollerThreadCount.lhelp\
        }'
        
        __wk__ = '{\
            *le:1,\
            *help:%lang/action.tom.en/aprconn.pools.help,\
            *lhelp:%lang/action.tom.en/aprconn.pools.lhelp\
        }'
    />

    <extended
            __wk__ = '{\
            *le:1,\
            *display:False,\
            *help:%lang/action.tom.en/aprconn.extended.help,\
            *lhelp:%lang/action.tom.en/aprconn.extended.lhelp\
        }'
    >
        <encoding
            URIEncoding = '{\
                *value:ISO-8859-1,\
                *help:%lang/action.tom.en/aprconn.extended.encoding.URIEncoding.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.encoding.URIEncoding.lhelp\
            }'
            useBodyEncodingForURI = '{\
                *help:%lang/action.tom.en/aprconn.extended.encoding.useBodyEncodingForURI.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.encoding.useBodyEncodingForURI.lhelp\
            }'
            __wk__ = '{\
                *le:1,\
                *help:%lang/action.tom.en/aprconn.extended.encoding.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.encoding.lhelp\
            }'
        />
        
        <!-- noCompressionUserAgents: TEXT list -->
        <!-- restrictedUserAgents: TEXT list -->
        <agent
            __wk__ = '{\
                *le:1,\
                *help:%lang/action.tom.en/aprconn.extended.agent.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.agent.lhelp\
            }'
        >
            <noCompressionUserAgents>
                __wk__ = '{\
                    *le:1,\
                    *help:%lang/action.tom.en/aprconn.extended.agent.noCompressionUserAgents.help,\
                    *lhelp:%lang/action.tom.en/aprconn.extended.agent.noCompressionUserAgents.lhelp\
                }'
            >
            </noCompressionUserAgents>
            <restrictedUserAgents>
                __wk__ = '{\
                    *le:1,\
                    *help:%lang/action.tom.en/aprconn.extended.agent.restrictedUserAgents.help,\
                    *lhelp:%lang/action.tom.en/aprconn.extended.agent.restrictedUserAgents.lhelp\
                }'
            >
            </restrictedUserAgents>
        </agent>
        
        <headers
            emptySessionPath = '{\
                *value:false,\
                *checkIn:(true,false),\
                *help:%lang/action.tom.en/aprconn.extended.headers.emptySessionPath.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.headers.emptySessionPath.lhelp\
            }'
            xpoweredBy = '{\
                *value:false,\
                *checkIn:(true,false),\
                *help:%lang/action.tom.en/aprconn.extended.headers.xpoweredBy.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.headers.xpoweredBy.lhelp\
            }'
            Server = '{\
                *value:Apache-Coyote/1.1,\
                *help:%lang/action.tom.en/aprconn.extended.headers.Server.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.headers.Server.lhelp\
            }'
            __wk__ = '{\
                *le:1,\
                *help:%lang/action.tom.en/aprconn.extended.headers.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.headers.lhelp\
            }'
        />
        
        <!--
        Default off\
        on : allows\
        force : force compression for all MIMES TYPES.\
        int: <=> on + mimimum Datas length befor compression.
        -->
        <compression
            enable = '{\
                *value:off,\
                *help:%lang/action.tom.en/aprconn.extended.compression.enable.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.compression.enable.lhelp\
            }'
            compressableMimeType = "{\
                '*value': 'text/html,text/xml,text/plain',\
                '*help': '%lang/action.tom.en/aprconn.extended.compression.compressableMimeType.help',\
                '*lhelp': '%lang/action.tom.en/aprconn.extended.compression.compressableMimeType.lhelp'\
            }"
            __wk__ = '{\
                *le:1,\
                *help:%lang/action.tom.en/aprconn.extended.compression.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.compression.lhelp\
            }'
        />

        <tcp
            allowTrace = '{\
                *value:false,\
                *checkIn:(true,false),\
                *help:%lang/action.tom.en/aprconn.extended.tcp.allowTrace.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.tcp.allowTrace.lhelp\
            }'
            tcpNoDelay = '{\
                *value:true,\
                *checkIn:(true,false),\
                *help:%lang/action.tom.en/aprconn.extended.tcp.tcpNoDelay.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.tcp.tcpNoDelay.lhelp\
            }'
            __wk__ = '{\
                *le:1,\
                *display:False,\
                *help:%lang/action.tom.en/aprconn.extended.tcp.help,\
                *lhelp:%lang/action.tom.en/aprconn.extended.tcp.lhelp\
            }'
        />
    </extended>


    <!--
    => Accepter None pour scheme, Switche a https si tag ssl !!! (1)
                           secure, Switche a on si tag ssl !!! (1)
    => Ajouter un tag (voir AFAIRE.txt) __display_activate__ = '{*value:true,*checkIn(true,false)}'
    Note ceci <ssl/>
    Provoque cela ds Server.xml :
    Connector : + scheme="https" +secure="true" +clientAuth="false" + sslProtocol="TLS"
    -->
    
    <!-- SSLCipherSuite est un TEXT list -->
    <ssl
        SSLEnabled = '{\
            *value:false,\
            *checkIn:(true,false),\
            *required:True,\
            *help:%lang/action.tom.en/aprconn.ssl.SSLEnabled.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.SSLEnabled.lhelp\
        }'
        SSLCertificateFile = '{\
            *help:%lang/action.tom.en/aprconn.ssl.SSLCertificateFile.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.SSLCertificateFile.lhelp\
        }'
        SSLCertificateKeyFile = '{\
            *help:%lang/action.tom.en/aprconn.ssl.SSLCertificateKeyFile.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.SSLCertificateKeyFile.lhelp\
        }'
        SSLPassword = '{\
            *help:%lang/action.tom.en/aprconn.ssl.SSLPassword.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.SSLPassword.lhelp\
        }'
        SSLVerifyClient = '{\
            *value:none,\
            *checkIn:(none,optional,require,optionalNoCA),\
            *required:True,\
            *help:%lang/action.tom.en/aprconn.ssl.SSLVerifyClient.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.SSLVerifyClient.lhelp\
        }'
        SSLProtocol = '{\
            *value:all,\
            *checkIn:(all,SSLv2,SSLv3,TLSv1,SSLv2+SSLv3),\
            *required:True,\
            *help:%lang/action.tom.en/aprconn.ssl.SSLProtocol.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.SSLProtocol.lhelp\
        }'
        
        SSLVerifyDepth = '{\
            *value:10,\
            *type:int,\
            *help:%lang/action.tom.en/aprconn.ssl.SSLVerifyDepth.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.SSLVerifyDepth.lhelp\
        }'        
        
        __wk__ = '{\
            *le:1,\
            *help:%lang/action.tom.en/aprconn.ssl.help,\
            *lhelp:%lang/action.tom.en/aprconn.ssl.lhelp\
        }'
    >

        <extended
            SSLCACertificateFile = '{\
                *help:%lang/action.tom.en/aprconn.ssl.extended.SSLCACertificateFile.help,\
                *lhelp:%lang/action.tom.en/aprconn.ssl.extended.SSLCACertificateFile.lhelp\
            }'
            SSLCACertificatePath = '{\
                *help:%lang/action.tom.en/aprconn.ssl.extended.SSLCACertificatePath.help,\
                *lhelp:%lang/action.tom.en/aprconn.ssl.extended.SSLCACertificatePath.lhelp\
            }'
            SSLCertificateChainFile = '{\
                *help:%lang/action.tom.en/aprconn.ssl.extended.SSLCertificateChainFile.help,\
                *lhelp:%lang/action.tom.en/aprconn.ssl.extended.SSLCertificateChainFile.lhelp\
            }'
            SSLCARevocationFile = '{\
                *help:%lang/action.tom.en/aprconn.ssl.extended.SSLCARevocationFile.help,\
                *lhelp:%lang/action.tom.en/aprconn.ssl.extended.SSLCARevocationFile.lhelp\
            }'
            SSLCARevocationPath = '{\
                *help:%lang/action.tom.en/aprconn.ssl.extended.SSLCARevocationPath.help,\
                *lhelp:%lang/action.tom.en/aprconn.ssl.extended.SSLCARevocationPath.lhelp\
            }'

            __wk__ = '{\
                *le:1,\
                *display:False,\
                *help:%lang/action.tom.en/aprconn.ssl.extended.help,\
                *lhelp:%lang/action.tom.en/aprconn.ssl.extended.lhelp\
            }'
        >
            <SSLCipherSuite
                __wk__ = '{\
                    *le:1,\
                    *display:False,\
                    *help:%lang/action.tom.en/aprconn.ssl.extended.SSLCipherSuite.help,\
                    *lhelp:%lang/action.tom.en/aprconn.ssl.extended.SSLCipherSuite.lhelp\
                }'
            >
            </SSLCipherSuite>

        </extended>
        
    </ssl>
    
</aprconn>
							
(Source: <KIKONF_INSTALLATION_DIR>/plugins/actions/tom/aprconn/by/kikonf/ACT_INF/action.xml)


A descriptor file is a WYSISWYG xsd like schema, wich describes what are the supported Tags, Attributes and Attributes values for one Action.
The special Attributes : type, sub_type, bal, softwares, __wk__ are reserved by Kikonf.

The table below summarizes the informations provided by the tom.aprconn Descriptor File :

/aprconn>   Configure an HTTP connector.
Name Default Type Required Denied Help
address         %lang/action.tom.en/hconn.address.help
port 8080 int True   %lang/action.tom.en/hconn.port.help
redirectPort 8443 int     %lang/action.tom.en/hconn.redirectPort.help

/aprconn/scope>   A scope refers to configuration Level within the Tomcat scheme.
Required:True
Name Default Type Required Denied Help
cbase $[software_tom_catalina_base]        
service   str      
engine   str      
host   str      
context.global false (true, false)      
context   str      
context.default.global false (true, false)      
context.default false (true, false)      

/aprconn/timeouts>   %lang/action.tom.en/aprconn.timeouts.help
Name Default Type Required Denied Help
connectionLinger -1 int     %lang/action.tom.en/hconn.timeouts.connectionLinger.help
connectionTimeout 60000 int     %lang/action.tom.en/hconn.timeouts.connectionTimeout.help
disableUploadTimeout true (true, false)     %lang/action.tom.en/hconn.timeouts.disableUploadTimeout.help

/aprconn/sizes>   %lang/action.tom.en/aprconn.sizes.help
Name Default Type Required Denied Help
socketBuffer 9000 int     %lang/action.tom.en/hconn.sizes.socketBuffer.help
bufferSize 2048 int     %lang/action.tom.en/hconn.sizes.bufferSize.help
maxHttpHeaderSize 4096 int     %lang/action.tom.en/hconn.sizes.maxHttpHeaderSize.help
maxPostSize 2097152 int     %lang/action.tom.en/hconn.sizes.maxPostSize.help
maxSavePostSize 4096 int     %lang/action.tom.en/hconn.sizes.maxSavePostSize.help

/aprconn/methods>   %lang/action.tom.en/aprconn.methods.help
Name Default Type Required Denied Help
enableLookups true (true, false)     %lang/action.tom.en/hconn.methods.enableLookups.help
useIPVHosts false (true, false)     %lang/action.tom.en/hconn.methods.useIPVHosts.help
proxyName         %lang/action.tom.en/hconn.methods.proxyName.help
proxyPort   int     %lang/action.tom.en/hconn.methods.proxyPort.help
scheme http (http, https)     %lang/action.tom.en/hconn.methods.scheme.help
secure false (true, false)     %lang/action.tom.en/hconn.methods.secure.help

/aprconn/pools>   %lang/action.tom.en/aprconn.pools.help
Name Default Type Required Denied Help
acceptCount 100 int     Max Connection Queue lentgth ?
maxKeepAliveRequests 100 int     Max Keep-alive requests.
maxSpareThreads 50 int     Max unprocessing Threads ?
minSpareThreads 4 int     Min Threads created at startup ?
maxThreads 200 int     Max simultaneous Threads creatable by this connecxtor ?
strategy lf (lf, ms)     The thread pooling strategy.
threadPriority java.lang.Thread#NORM_PRIORITY       The priority of the request processing thread.
keepAliveTimeout   int     How much time to wait between request ?
pollerSize 8192 int     Keepalive connections.
pollTime 2000 int     Duration of a poll call.
pollerThreadCount         Number of threads used to poll kept alive connections.

/aprconn/ssl>   %lang/action.tom.en/aprconn.ssl.help
Name Default Type Required Denied Help
SSLEnabled false (true, false) True   Do enable SSL ?
SSLCertificateFile         The server certificate file.
SSLCertificateKeyFile         The server private key file.
SSLPassword         The server private key file password.
SSLVerifyClient none (none, optional, require, optionalNoCA) True   Do require a Certificate from the client ?
SSLProtocol all (all, SSLv2, SSLv3, TLSv1, SSLv2+SSLv3) True   %lang/action.tom.en/aprconn.ssl.SSLProtocol.help
SSLVerifyDepth 10 int     Maximum verification depth for client certificates.



Trademarks :
  • "Apache", "Apache Tomcat" and "Tomcat" are trademarks of the Apache Software Foundation.
  • "Java" and "JVM" are a registred trademarks of Oracle and/or its affiliates.
  • Other names may be trademarks of their respective owners.

Copyright © 2011 - Patrick Placidoux, Hélène Malamoud