<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2004 The Apache Software Foundation

    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.
-->

<!-- $Rev$ $Date$ -->

<!--
Holds the RMI naming server module.  This needs to be started
after the system GBeans but before the server GBeans.
    parentId="${pom.groupId}/j2ee-system/${pom.currentVersion}/car"

-->
<module
        xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1"

        >

    <gbean name="RMIRegistry" class="org.apache.geronimo.system.rmi.RMIRegistryService">
        <attribute name="port">${PlanNamingPort}</attribute>
    </gbean>

    <gbean name="NamingProperties" class="org.apache.geronimo.system.properties.NamingProperties">
        <attribute name="namingFactoryInitial">com.sun.jndi.rmi.registry.RegistryContextFactory</attribute>
        <attribute name="namingFactoryUrlPkgs">org.apache.geronimo.naming</attribute>
        <attribute name="namingProviderUrl">rmi://${PlanServerHostname}:${PlanNamingPort}</attribute>
    </gbean>

    <gbean name="SystemProperties" class="org.apache.geronimo.system.properties.SystemProperties">
        <attribute name="systemProperties" />
        <attribute name="systemPathProperties" />
<!-- Can we get by without this?
        <attribute name="systemProperties">
            javax.net.ssl.keyStorePassword=secret
            javax.net.ssl.trustStorePassword=secret
        </attribute>
        <attribute name="systemPathProperties">
            javax.net.ssl.keyStore=var/security/keystores/geronimo-default
            javax.net.ssl.trustStore=var/security/keystores/geronimo-default
        </attribute>
-->
        <reference name="ServerInfo">
            <name>ServerInfo</name>
        </reference>
    </gbean>

    <gbean name="MBeanServerReference" class="org.apache.geronimo.system.jmx.RealMBeanServerReference"/>

    <!-- MBean server service -->
    <gbean name="MBeanServerKernelBridge" class="org.apache.geronimo.system.jmx.MBeanServerKernelBridge">
        <reference name="MBeanServerReference">
            <name>MBeanServerReference</name>
        </reference>
    </gbean>

    <gbean name="DefaultThreadPool" class="org.apache.geronimo.pool.ThreadPool">
        <attribute name="keepAliveTime">5000</attribute>
        <attribute name="poolSize">300</attribute>
        <attribute name="poolName">DefaultThreadPool</attribute>
    </gbean>

    <!-- Configuration Installer -->
    <gbean name="PluginInstaller" class="org.apache.geronimo.system.plugin.PluginInstallerGBean">
      <reference name="Repository">
        <name>Repository</name>
      </reference>
      <reference name="ConfigStore">
        <name>Local</name>
      </reference>
      <reference name="ConfigManager">
        <name>ConfigurationManager</name>
      </reference>
      <reference name="ServerInfo">
        <name>ServerInfo</name>
      </reference>
      <reference name="ThreadPool">
        <name>DefaultThreadPool</name>
      </reference>
      <reference name="PluginAttributeStore">
        <name>AttributeManager</name>
      </reference>
    </gbean>

    <gbean name="DownloadedPluginRepos" class="org.apache.geronimo.system.plugin.PluginRepositoryDownloader">
        <attribute name="repositoryList">http://people.apache.org/~ammulder/plugin-repository-list.txt</attribute>
    </gbean>
</module>
