001    /**
002     *
003     * Copyright 2003-2004 The Apache Software Foundation
004     *
005     *  Licensed under the Apache License, Version 2.0 (the "License");
006     *  you may not use this file except in compliance with the License.
007     *  You may obtain a copy of the License at
008     *
009     *     http://www.apache.org/licenses/LICENSE-2.0
010     *
011     *  Unless required by applicable law or agreed to in writing, software
012     *  distributed under the License is distributed on an "AS IS" BASIS,
013     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     *  See the License for the specific language governing permissions and
015     *  limitations under the License.
016     */
017    package org.apache.geronimo.directory;
018    
019    import java.net.InetAddress;
020    
021    import org.apache.ldap.server.configuration.ConfigurationException;
022    import org.apache.ldap.server.configuration.StartupConfiguration;
023    import org.apache.mina.registry.ServiceRegistry;
024    import org.apache.mina.registry.SimpleServiceRegistry;
025    
026    /**
027     * A {@link StartupConfiguration} that starts up ApacheDS with network layer support.
028     *
029     * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $
030     */
031    public class ServerStartupConfiguration extends StartupConfiguration
032    {
033        private static final long serialVersionUID = -7138616822614155454L;
034    
035        private boolean enableNetworking = true;
036        private ServiceRegistry minaServiceRegistry = new SimpleServiceRegistry();
037        private int ldapPort = 389;
038        private int ldapsPort = 636;
039        private InetAddress host = null;
040        private boolean enableKerberos;
041    
042        protected ServerStartupConfiguration()
043        {
044        }
045    
046        protected InetAddress getHost() {
047            return host;
048        }
049    
050        protected void setHost(InetAddress host) {
051            this.host = host;
052        }
053    
054        /**
055         * Returns <tt>true</tt> if networking (LDAP, LDAPS, and Kerberos) is enabled.
056         */
057        public boolean isEnableNetworking()
058        {
059            return enableNetworking;
060        }
061    
062        /**
063         * Sets whether to enable networking (LDAP, LDAPS, and Kerberos) or not.
064         */
065        public void setEnableNetworking( boolean enableNetworking )
066        {
067            this.enableNetworking = enableNetworking;
068        }
069    
070        /**
071         * Returns <tt>true</tt> if Kerberos support is enabled.
072         */
073        public boolean isEnableKerberos()
074        {
075            return enableKerberos;
076        }
077    
078        /**
079         * Sets whether to enable Kerberos support or not.
080         */
081        protected void setEnableKerberos( boolean enableKerberos )
082        {
083            this.enableKerberos = enableKerberos;
084        }
085    
086        /**
087         * Returns LDAP TCP/IP port number to listen to.
088         */
089        public int getLdapPort()
090        {
091            return ldapPort;
092        }
093    
094        /**
095         * Sets LDAP TCP/IP port number to listen to.
096         */
097        protected void setLdapPort( int ldapPort )
098        {
099            this.ldapPort = ldapPort;
100        }
101    
102        /**
103         * Returns LDAPS TCP/IP port number to listen to.
104         */
105        public int getLdapsPort()
106        {
107            return ldapsPort;
108        }
109    
110        /**
111         * Sets LDAPS TCP/IP port number to listen to.
112         */
113        protected void setLdapsPort( int ldapsPort )
114        {
115            this.ldapsPort = ldapsPort;
116        }
117    
118        /**
119         * Returns <a href="http://directory.apache.org/subprojects/network/">MINA</a>
120         * {@link ServiceRegistry} that will be used by ApacheDS.
121         */
122        public ServiceRegistry getMinaServiceRegistry()
123        {
124            return minaServiceRegistry;
125        }
126    
127        /**
128         * Sets <a href="http://directory.apache.org/subprojects/network/">MINA</a>
129         * {@link ServiceRegistry} that will be used by ApacheDS.
130         */
131        protected void setMinaServiceRegistry( ServiceRegistry minaServiceRegistry )
132        {
133            if( minaServiceRegistry == null )
134            {
135                throw new ConfigurationException( "MinaServiceRegistry cannot be null" );
136            }
137            this.minaServiceRegistry = minaServiceRegistry;
138        }
139    }