<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
  ~ Copyright 2005-2007 WSO2, Inc. (http://wso2.com)
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<!--
    This is the main server configuration file

    ${carbon.home} represents the carbon.home system property.
    Other system properties can be specified in a similar manner.
-->
<Server xmlns="http://wso2.org/projects/carbon/carbon.xml">

    <!--
       Server Name
    -->
    <Name>WSO2Carbon</Name>

    <!--
       The fully qualified name of the server
    -->
    <Package>org.wso2.carbon</Package>

    <!--
       The version of this distribution
    -->
    <Version>SNAPSHOT</Version>

    <!--
     The URL of the back end server. This is where the admin services are hosted and
     will be used by the clients in the front end server.
     This is required only for the Front-end server. This is used when seperating BE server from FE server
    -->
    <ServerURL>https://localhost:9444/services/</ServerURL>

    <!--
     This is the root web context.
     eg: https://localhost:9443/carbon
    -->
    <WebContext>carbon</WebContext>

    <!--
    Number of items to be displayed on a management console page. This is used at the
    backend server for pagination of various items.
    -->
    <ItemsPerPage>15</ItemsPerPage>

    <!--
       Host name or IP address of the machine hosting this server
       e.g. www.wso2.org, 192.168.1.10
       This is will become part of the End Point Reference of the
       services deployed on this server instance.
    -->
    <!--
    <HostName>www.wso2.org</HostName>
    -->

    <!--
       Ports used by this server
    -->
    <Ports>
        <!--
           The JMX Port
        -->
        <!--
        <JMX>9999</JMX>
         -->
    </Ports>

    <!--
    Axis2 related configurations
    -->
    <Axis2Config>
        <!--
             Location of the Axis2 Services & Modules repository

             This can be a directory in the local file system, or a URL.

             e.g.
             1. /home/wso2wsas/repository/ - An absolute path
             2. repository - In this case, the path is relative to CARBON_HOME
             3. file:///home/wso2wsas/repository/
             4. http://wso2wsas/repository/
        -->
        <RepositoryLocation>${carbon.home}/repository/</RepositoryLocation>

        <!--
            Location of the main Axis2 configuration descriptor file, a.k.a. axis2.xml file

            This can be a file on the local file system, or a URL

            e.g.
            1. /home/repository/axis2.xml - An absolute path
            2. conf/axis2.xml - In this case, the path is relative to CARBON_HOME
            3. file:///home/carbon/repository/axis2.xml
            4. http://repository/conf/axis2.xml
        -->
        <ConfigurationFile>${carbon.home}/conf/axis2.xml</ConfigurationFile>

        <!--
          ServiceGroupContextIdleTime, which will be set in ConfigurationContex
          for multiple clients which are going to access the same ServiceGroupContext
          Default Value is 30 Sec.
        -->
        <ServiceGroupContextIdleTime>30000</ServiceGroupContextIdleTime>
    </Axis2Config>

    <!--
       Functions related to the Management Console
    -->
    <Management>

        <!--
           Enable the Management Console, true/false
        -->
        <EnableConsole>true</EnableConsole>
    </Management>

    <!--
       The default user roles which will be created when the server
       is started up for the first time.
    -->
    <ServiceUserRoles>
        <Role>
            <Name>admin</Name>
            <Description>Default Administrator Role</Description>
        </Role>
        <Role>
            <Name>user</Name>
            <Description>Default User Role</Description>
        </Role>
    </ServiceUserRoles>

    <!--
      Security configurations
    -->
    <Security>
        <!--
            KeyStore which will be used for encrypting/decrypting passwords
            and other sensitive information.
        -->
        <KeyStore>
            <!-- Keystore file location-->
            <Location>${carbon.home}/resources/security/wso2carbon.jks</Location>
            <!-- Keystore type (JKS/PKCS12 etc.)-->
            <Type>JKS</Type>
            <!-- Keystore password-->
            <Password>wso2carbon</Password>
            <!-- Private Key alias-->
            <KeyAlias>wso2carbon</KeyAlias>
            <!-- Private Key password-->
            <KeyPassword>wso2carbon</KeyPassword>
        </KeyStore>

        <!--
           The directory under which all other KeyStore files will be stored
        -->
        <KeyStoresDir>${carbon.home}/conf/keystores</KeyStoresDir>
    </Security>

    <!--
       The temporary work directory
    -->
    <WorkDirectory>${carbon.home}/tmp/work</WorkDirectory>

    <!--
       House-keeping configuration
    -->
    <HouseKeeping>

        <!--
           true  - Start House-keeping thread on server startup
           false - Do not start House-keeping thread on server startup.
                   The user will run it manually as and when he wishes.
        -->
        <AutoStart>true</AutoStart>

        <!--
           The interval in *minutes*, between house-keeping runs
        -->
        <Interval>10</Interval>

        <!--
          The maximum time in *minutes*, temp files are allowed to live
          in the system. Files/directories which were modified more than
          "MaxTempFileLifetime" minutes ago will be removed by the
          house-keeping task
        -->
        <MaxTempFileLifetime>30</MaxTempFileLifetime>
    </HouseKeeping>

    <!--
       Configuration for handling different types of file upload.

       To map all actions to a particular FileUploadExecutor, use
       <Action>*</Action>
    -->
    <FileUploadConfig>
        <Mapping>
            <Actions>
                <Action>keystore</Action>
                <Action>certificate</Action>
                <Action>*</Action>
            </Actions>
            <Class>org.wso2.carbon.ui.transports.fileupload.AnyFileUploadExecutor</Class>
        </Mapping>

        <Mapping>
            <Actions>
                <Action>jarZip</Action>
            </Actions>
            <Class>org.wso2.carbon.ui.transports.fileupload.JarZipUploadExecutor</Class>
        </Mapping>
        <Mapping>
            <Actions>
                <Action>dbs</Action>
            </Actions>
            <Class>org.wso2.carbon.ui.transports.fileupload.DBSFileUploadExecutor</Class>
        </Mapping>
        <Mapping>
            <Actions>
                <Action>tools</Action>
            </Actions>
            <Class>org.wso2.carbon.ui.transports.fileupload.ToolsFileUploadExecutor</Class>
        </Mapping>
        <Mapping>
            <Actions>
                <Action>toolsAny</Action>
            </Actions>
            <Class>org.wso2.carbon.ui.transports.fileupload.ToolsAnyFileUploadExecutor</Class>
        </Mapping>
    </FileUploadConfig>

    <!--
       Processors which process special HTTP GET requests such as ?wsdl, ?policy etc.

       In order to plug in a processor to handle a special request, simply add an entry to this
       section.

       The value of the Item element is the first parameter in the query string(e.g. ?wsdl)
       which needs special processing

       The value of the Class element is a class which implements
       org.wso2.carbon.transport.HttpGetRequestProcessor
    -->
    <HttpGetRequestProcessors>
        <Processor>
            <Item>info</Item>
            <Class>org.wso2.carbon.core.transports.util.InfoProcessor</Class>
        </Processor>
        <Processor>
            <Item>wsdl</Item>
            <Class>org.wso2.carbon.core.transports.util.Wsdl11Processor</Class>
        </Processor>
        <Processor>
            <Item>wsdl2</Item>
            <Class>org.wso2.carbon.core.transports.util.Wsdl20Processor</Class>
        </Processor>
        <Processor>
            <Item>xsd</Item>
            <Class>org.wso2.carbon.core.transports.util.XsdProcessor</Class>
        </Processor>
        <Processor>
            <Item>policy</Item>
            <Class>org.wso2.carbon.core.transports.util.PolicyProcessor</Class>
        </Processor>
        <Processor>
            <Item>cert</Item>
            <Class>org.wso2.carbon.core.transports.util.CertProcessor</Class>
        </Processor>
        <Processor>
            <Item>tryit</Item>
            <Class>org.wso2.carbon.core.transports.util.MockTryItProcessor</Class>
        </Processor>
    </HttpGetRequestProcessors>

    <!--
    Server intializing code. DefaultServerInitializer will intialize the server specific
    Configurations. It should be the first. All other intializers should come after that.
    Use <Initializer/> elements to add new intializers.
    -->
    <ServerInitializers>
        <Initializer>org.wso2.carbon.core.DefaultServerInitializer</Initializer>
    </ServerInitializers>
</Server>