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