directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From akaras...@apache.org
Subject svn commit: r379013 [41/45] - in /directory/trunks/apacheds: ./ core-plugin/ core-plugin/src/main/java/org/apache/directory/server/core/tools/schema/ core-plugin/src/test/java/org/apache/directory/server/core/tools/schema/ core-shared/ core-shared/src/...
Date Mon, 20 Feb 2006 03:58:21 GMT
Modified: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/chain/impl/ContextBase.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/chain/impl/ContextBase.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/chain/impl/ContextBase.java (original)
+++ directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/chain/impl/ContextBase.java Sun Feb 19 19:57:02 2006
@@ -1,820 +1,860 @@
-/*
- * Copyright 1999-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.
- */
-package org.apache.directory.server.protocol.shared.chain.impl;
-
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Method;
-import java.util.AbstractCollection;
-import java.util.AbstractSet;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.directory.server.protocol.shared.chain.Context;
-
-/**
- * <p>Convenience base class for {@link Context} implementations.</p>
- *
- * <p>In addition to the minimal functionality required by the {@link Context}
- * interface, this class implements the recommended support for
- * <em>Attribute-Property Transparency</p>.  This is implemented by
- * analyzing the available JavaBeans properties of this class (or its
- * subclass), exposes them as key-value pairs in the <code>Map</code>,
- * with the key being the name of the property itself.</p>
- *
- * <p><strong>IMPLEMENTATION NOTE</strong> - Because <code>empty</code> is a
- * read-only property defined by the <code>Map</code> interface, it may not
- * be utilized as an attribute key or property name.</p>
- *
- * @author Craig R. McClanahan
- * @version $Revision$ $Date$
- */
-public class ContextBase extends HashMap implements Context
-{
-    // ------------------------------------------------------------ Constructors
-
-    private static final long serialVersionUID = 5536081240350960868L;
-
-    /**
-     * Default, no argument constructor.
-     */
-    public ContextBase()
-    {
-        super();
-        initialize();
-    }
-
-    /**
-     * <p>Initialize the contents of this {@link Context} by copying the
-     * values from the specified <code>Map</code>.  Any keys in <code>map</code>
-     * that correspond to local properties will cause the setter method for
-     * that property to be called.</p>
-     *
-     * @param map Map whose key-value pairs are added
-     *
-     * @exception IllegalArgumentException if an exception is thrown
-     *  writing a local property value
-     * @exception UnsupportedOperationException if a local property does not
-     *  have a write method.
-     */
-    public ContextBase( Map map )
-    {
-        super( map );
-        initialize();
-        putAll( map );
-    }
-
-    // ------------------------------------------------------ Instance Variables
-
-    /**
-     * <p>The <code>PropertyDescriptor</code>s for all JavaBeans properties
-     * of this {@link Context} implementation class, keyed by property name.
-     * This collection is allocated only if there are any JavaBeans
-     * properties.</p>
-     */
-    private Map descriptors = null;
-
-    /**
-     * <p>The same <code>PropertyDescriptor</code>s as an array.</p>
-     */
-    private PropertyDescriptor[] pd = null;
-
-    /**
-     * <p>Distinguished singleton value that is stored in the map for each
-     * key that is actually a property.  This value is used to ensure that
-     * <code>equals()</code> comparisons will always fail.</p>
-     */
-    private static Object singleton;
-
-    static
-    {
-        singleton = new Object()
-        {
-            public boolean equals( Object object )
-            {
-                return ( false );
-            }
-        };
-    }
-
-    /**
-     * <p>Zero-length array of parameter values for calling property getters.
-     * </p>
-     */
-    private static Object[] zeroParams = new Object[ 0 ];
-
-    // ------------------------------------------------------------- Map Methods
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to clear all keys and
-     * values except those corresponding to JavaBeans properties.</p>
-     */
-    public void clear()
-    {
-        if ( descriptors == null )
-        {
-            super.clear();
-        }
-        else
-        {
-            Iterator keys = keySet().iterator();
-            while ( keys.hasNext() )
-            {
-                Object key = keys.next();
-                if ( !descriptors.containsKey( key ) )
-                {
-                    keys.remove();
-                }
-            }
-        }
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to return
-     * <code>true</code> if the specified value is present in either the
-     * underlying <code>Map</code> or one of the local property values.</p>
-     *
-     * @exception IllegalArgumentException if a property getter
-     *  throws an exception
-     */
-    public boolean containsValue( Object value )
-    {
-        // Case 1 -- no local properties
-        if ( descriptors == null )
-        {
-            return ( super.containsValue( value ) );
-        }
-        // Case 2 -- value found in the underlying Map
-        else
-            if ( super.containsValue( value ) )
-            {
-                return ( true );
-            }
-
-        // Case 3 -- check the values of our readable properties
-        for ( int i = 0; i < pd.length; i++ )
-        {
-            if ( pd[ i ].getReadMethod() != null )
-            {
-                Object prop = readProperty( pd[ i ] );
-                if ( value == null )
-                {
-                    if ( prop == null )
-                    {
-                        return ( true );
-                    }
-                }
-                else
-                    if ( value.equals( prop ) )
-                    {
-                        return ( true );
-                    }
-            }
-        }
-
-        return ( false );
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to return a
-     * <code>Set</code> that meets the specified default behavior except
-     * for attempts to remove the key for a property of the {@link Context}
-     * implementation class, which will throw
-     * <code>UnsupportedOperationException</code>.</p>
-     */
-    public Set entrySet()
-    {
-        return ( new EntrySetImpl() );
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to return the value
-     * of a local property if the specified key matches a local property name.
-     * </p>
-     *
-     * <p><strong>IMPLEMENTATION NOTE</strong> - If the specified
-     * <code>key</code> identifies a write-only property, <code>null</code>
-     * will arbitrarily be returned, in order to avoid difficulties implementing
-     * the contracts of the <code>Map</code> interface.</p>
-     *
-     * @param key Key of the value to be returned
-     *
-     * @exception IllegalArgumentException if an exception is thrown
-     *  reading this local property value
-     * @exception UnsupportedOperationException if this local property does not
-     *  have a read method.
-     */
-    public Object get( Object key )
-    {
-        // Case 1 -- no local properties
-        if ( descriptors == null )
-        {
-            return ( super.get( key ) );
-        }
-
-        // Case 2 -- this is a local property
-        if ( key != null )
-        {
-            PropertyDescriptor descriptor = (PropertyDescriptor) descriptors.get( key );
-            if ( descriptor != null )
-            {
-                if ( descriptor.getReadMethod() != null )
-                {
-                    return ( readProperty( descriptor ) );
-                }
-                else
-                {
-                    return ( null );
-                }
-            }
-        }
-
-        // Case 3 -- retrieve value from our underlying Map
-        return ( super.get( key ) );
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to return
-     * <code>true</code> if the underlying <code>Map</code> only contains
-     * key-value pairs for local properties (if any).</p>
-     */
-    public boolean isEmpty()
-    {
-        // Case 1 -- no local properties
-        if ( descriptors == null )
-        {
-            return ( super.isEmpty() );
-        }
-
-        // Case 2 -- compare key count to property count
-        return ( super.size() <= descriptors.size() );
-
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to return a
-     * <code>Set</code> that meets the specified default behavior except
-     * for attempts to remove the key for a property of the {@link Context}
-     * implementation class, which will throw
-     * <code>UnsupportedOperationException</code>.</p>
-     */
-    public Set keySet()
-    {
-        return ( super.keySet() );
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to set the value
-     * of a local property if the specified key matches a local property name.
-     * </p>
-     *
-     * @param key Key of the value to be stored or replaced
-     * @param value New value to be stored
-     *
-     * @exception IllegalArgumentException if an exception is thrown
-     *  reading or wrting this local property value
-     * @exception UnsupportedOperationException if this local property does not
-     *  have both a read method and a write method
-     */
-    public Object put( Object key, Object value )
-    {
-        // Case 1 -- no local properties
-        if ( descriptors == null )
-        {
-            return ( super.put( key, value ) );
-        }
-
-        // Case 2 -- this is a local property
-        if ( key != null )
-        {
-            PropertyDescriptor descriptor = (PropertyDescriptor) descriptors.get( key );
-            if ( descriptor != null )
-            {
-                Object previous = null;
-                if ( descriptor.getReadMethod() != null )
-                {
-                    previous = readProperty( descriptor );
-                }
-                writeProperty( descriptor, value );
-                return ( previous );
-            }
-        }
-
-        // Case 3 -- store or replace value in our underlying map
-        return ( super.put( key, value ) );
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to call the
-     * <code>put()</code> method individually for each key-value pair
-     * in the specified <code>Map</code>.</p>
-     *
-     * @param map <code>Map</code> containing key-value pairs to store
-     *  (or replace)
-     *
-     * @exception IllegalArgumentException if an exception is thrown
-     *  reading or wrting a local property value
-     * @exception UnsupportedOperationException if a local property does not
-     *  have both a read method and a write method
-     */
-    public void putAll( Map map )
-    {
-        Iterator pairs = map.entrySet().iterator();
-        while ( pairs.hasNext() )
-        {
-            Map.Entry pair = (Map.Entry) pairs.next();
-            put( pair.getKey(), pair.getValue() );
-        }
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to throw
-     * <code>UnsupportedOperationException</code> on any attempt to
-     * remove a key that is the name of a local property.</p>
-     *
-     * @param key Key to be removed
-     *
-     * @exception UnsupportedOperationException if the specified
-     *  <code>key</code> matches the name of a local property
-     */
-    public Object remove( Object key )
-    {
-        // Case 1 -- no local properties
-        if ( descriptors == null )
-        {
-            return ( super.remove( key ) );
-        }
-
-        // Case 2 -- this is a local property
-        if ( key != null )
-        {
-            PropertyDescriptor descriptor = (PropertyDescriptor) descriptors.get( key );
-            if ( descriptor != null )
-            {
-                throw new UnsupportedOperationException( "Local property '" + key + "' cannot be removed" );
-            }
-        }
-
-        // Case 3 -- remove from underlying Map
-        return ( super.remove( key ) );
-    }
-
-    /**
-     * <p>Override the default <code>Map</code> behavior to return a
-     * <code>Collection</code> that meets the specified default behavior except
-     * for attempts to remove the key for a property of the {@link Context}
-     * implementation class, which will throw
-     * <code>UnsupportedOperationException</code>.</p>
-     */
-    public Collection values()
-    {
-        return ( new ValuesImpl() );
-    }
-
-    // --------------------------------------------------------- Private Methods
-
-    /**
-     * <p>Eliminate the specified property descriptor from the list of
-     * property descriptors in <code>pd</code>.</p>
-     *
-     * @param name Name of the property to eliminate
-     *
-     * @exception IllegalArgumentException if the specified property name
-     *  is not present
-     */
-    private void eliminate( String name )
-    {
-        int j = -1;
-        for ( int i = 0; i < pd.length; i++ )
-        {
-            if ( name.equals( pd[ i ].getName() ) )
-            {
-                j = i;
-                break;
-            }
-        }
-
-        if ( j < 0 )
-        {
-            throw new IllegalArgumentException( "Property '" + name + "' is not present" );
-        }
-
-        PropertyDescriptor[] results = new PropertyDescriptor[ pd.length - 1 ];
-        System.arraycopy( pd, 0, results, 0, j );
-        System.arraycopy( pd, j + 1, results, j, pd.length - ( j + 1 ) );
-        pd = results;
-    }
-
-    /**
-     * <p>Return an <code>Iterator</code> over the set of <code>Map.Entry</code>
-     * objects representing our key-value pairs.</p>
-     */
-    private Iterator entriesIterator()
-    {
-        return ( new EntrySetIterator() );
-    }
-
-    /**
-     * <p>Return a <code>Map.Entry</code> for the specified key value, if it
-     * is present; otherwise, return <code>null</code>.</p>
-     *
-     * @param key Attribute key or property name
-     */
-    private Map.Entry entry( Object key )
-    {
-        if ( containsKey( key ) )
-        {
-            return ( new MapEntryImpl( key, get( key ) ) );
-        }
-        else
-        {
-            return ( null );
-        }
-    }
-
-    /**
-     * <p>Customize the contents of our underlying <code>Map</code> so that
-     * it contains keys corresponding to all of the JavaBeans properties of
-     * the {@link Context} implementation class.</p>
-     *
-     *
-     * @exception IllegalArgumentException if an exception is thrown
-     *  writing this local property value
-     * @exception UnsupportedOperationException if this local property does not
-     *  have a write method.
-     */
-    private void initialize()
-    {
-        // Retrieve the set of property descriptors for this Context class
-        try
-        {
-            pd = Introspector.getBeanInfo( getClass() ).getPropertyDescriptors();
-        }
-        catch ( IntrospectionException e )
-        {
-            pd = new PropertyDescriptor[ 0 ]; // Should never happen
-        }
-        eliminate( "class" ); // Because of "getClass()"
-        eliminate( "empty" ); // Because of "isEmpty()"
-
-        // Initialize the underlying Map contents
-        if ( pd.length > 0 )
-        {
-            descriptors = new HashMap();
-            for ( int i = 0; i < pd.length; i++ )
-            {
-                descriptors.put( pd[ i ].getName(), pd[ i ] );
-                super.put( pd[ i ].getName(), singleton );
-            }
-        }
-
-    }
-
-    /**
-     * <p>Get and return the value for the specified property.</p>
-     *
-     * @param descriptor <code>PropertyDescriptor</code> for the
-     *  specified property
-     *
-     * @exception IllegalArgumentException if an exception is thrown
-     *  reading this local property value
-     * @exception UnsupportedOperationException if this local property does not
-     *  have a read method.
-     */
-    private Object readProperty( PropertyDescriptor descriptor )
-    {
-        try
-        {
-            Method method = descriptor.getReadMethod();
-            if ( method == null )
-            {
-                throw new UnsupportedOperationException( "Property '" + descriptor.getName() + "' is not readable" );
-            }
-            return ( method.invoke( this, zeroParams ) );
-        }
-        catch ( Exception e )
-        {
-            throw new UnsupportedOperationException( "Exception reading property '" + descriptor.getName() + "': "
-                    + e.getMessage() );
-        }
-    }
-
-    /**
-     * <p>Remove the specified key-value pair, if it exists, and return
-     * <code>true</code>.  If this pair does not exist, return
-     * <code>false</code>.</p>
-     *
-     * @param entry Key-value pair to be removed
-     *
-     * @exception UnsupportedOperationException if the specified key
-     *  identifies a property instead of an attribute
-     */
-    private boolean remove( Map.Entry entry )
-    {
-        Map.Entry actual = entry( entry.getKey() );
-        if ( actual == null )
-        {
-            return ( false );
-        }
-        else
-            if ( !entry.equals( actual ) )
-            {
-                return ( false );
-            }
-            else
-            {
-                remove( entry.getKey() );
-                return ( true );
-            }
-    }
-
-    /**
-     * <p>Return an <code>Iterator</code> over the set of values in this
-     * <code>Map</code>.</p>
-     */
-    private Iterator valuesIterator()
-    {
-        return ( new ValuesIterator() );
-    }
-
-    /**
-     * <p>Set the value for the specified property.</p>
-     *
-     * @param descriptor <code>PropertyDescriptor</code> for the
-     *  specified property
-     * @param value The new value for this property (must be of the
-     *  correct type)
-     *
-     * @exception IllegalArgumentException if an exception is thrown
-     *  writing this local property value
-     * @exception UnsupportedOperationException if this local property does not
-     *  have a write method.
-     */
-    private void writeProperty( PropertyDescriptor descriptor, Object value )
-    {
-        try
-        {
-            Method method = descriptor.getWriteMethod();
-            if ( method == null )
-            {
-                throw new UnsupportedOperationException( "Property '" + descriptor.getName() + "' is not writeable" );
-            }
-            method.invoke( this, new Object[] { value } );
-        }
-        catch ( Exception e )
-        {
-            throw new UnsupportedOperationException( "Exception writing property '" + descriptor.getName() + "': "
-                    + e.getMessage() );
-        }
-    }
-
-    // --------------------------------------------------------- Private Classes
-
-    /**
-     * <p>Private implementation of <code>Set</code> that implements the
-     * semantics required for the value returned by <code>entrySet()</code>.</p>
-     */
-    private class EntrySetImpl extends AbstractSet
-    {
-        public void clear()
-        {
-            ContextBase.this.clear();
-        }
-
-        public boolean contains( Object obj )
-        {
-            if ( !( obj instanceof Map.Entry ) )
-            {
-                return ( false );
-            }
-            Map.Entry entry = (Map.Entry) obj;
-            Entry actual = ContextBase.this.entry( entry.getKey() );
-            if ( actual != null )
-            {
-                return ( actual.equals( entry ) );
-            }
-            else
-            {
-                return ( false );
-            }
-        }
-
-        public boolean isEmpty()
-        {
-            return ( ContextBase.this.isEmpty() );
-        }
-
-        public Iterator iterator()
-        {
-            return ( ContextBase.this.entriesIterator() );
-        }
-
-        public boolean remove( Object obj )
-        {
-            if ( obj instanceof Map.Entry )
-            {
-                return ( ContextBase.this.remove( (Map.Entry) obj ) );
-            }
-            else
-            {
-                return ( false );
-            }
-        }
-
-        public int size()
-        {
-            return ( ContextBase.this.size() );
-        }
-    }
-
-    /**
-     * <p>Private implementation of <code>Iterator</code> for the
-     * <code>Set</code> returned by <code>entrySet()</code>.</p>
-     */
-    private class EntrySetIterator implements Iterator
-    {
-        Map.Entry entry = null;
-        private Iterator keys = ContextBase.this.keySet().iterator();
-
-        public boolean hasNext()
-        {
-            return ( keys.hasNext() );
-        }
-
-        public Object next()
-        {
-            entry = ContextBase.this.entry( keys.next() );
-            return ( entry );
-        }
-
-        public void remove()
-        {
-            ContextBase.this.remove( entry );
-        }
-
-    }
-
-    /**
-     * <p>Private implementation of <code>Map.Entry</code> for each item in
-     * <code>EntrySetImpl</code>.</p>
-     */
-    private class MapEntryImpl implements Map.Entry
-    {
-        MapEntryImpl( Object key, Object value )
-        {
-            this.key = key;
-            this.value = value;
-        }
-
-        private Object key;
-        private Object value;
-
-        public boolean equals( Object obj )
-        {
-            if ( obj == null )
-            {
-                return ( false );
-            }
-            else
-                if ( !( obj instanceof Map.Entry ) )
-                {
-                    return ( false );
-                }
-            Map.Entry entry = (Map.Entry) obj;
-            if ( key == null )
-            {
-                return ( entry.getKey() == null );
-            }
-            if ( key.equals( entry.getKey() ) )
-            {
-                if ( value == null )
-                {
-                    return ( entry.getValue() == null );
-                }
-                else
-                {
-                    return ( value.equals( entry.getValue() ) );
-                }
-            }
-            else
-            {
-                return ( false );
-            }
-        }
-
-        public Object getKey()
-        {
-            return ( this.key );
-        }
-
-        public Object getValue()
-        {
-            return ( this.value );
-        }
-
-        public int hashCode()
-        {
-            return ( ( ( key == null ) ? 0 : key.hashCode() ) ^ ( ( value == null ) ? 0 : value.hashCode() ) );
-        }
-
-        public Object setValue( Object value )
-        {
-            Object previous = this.value;
-            ContextBase.this.put( this.key, value );
-            this.value = value;
-            return ( previous );
-        }
-    }
-
-    /**
-     * <p>Private implementation of <code>Collection</code> that implements the
-     * semantics required for the value returned by <code>values()</code>.</p>
-     */
-    private class ValuesImpl extends AbstractCollection
-    {
-        public void clear()
-        {
-            ContextBase.this.clear();
-        }
-
-        public boolean contains( Object obj )
-        {
-            if ( !( obj instanceof Map.Entry ) )
-            {
-                return ( false );
-            }
-            Map.Entry entry = (Map.Entry) obj;
-            return ( ContextBase.this.containsValue( entry.getValue() ) );
-        }
-
-        public boolean isEmpty()
-        {
-            return ( ContextBase.this.isEmpty() );
-        }
-
-        public Iterator iterator()
-        {
-            return ( ContextBase.this.valuesIterator() );
-        }
-
-        public boolean remove( Object obj )
-        {
-            if ( obj instanceof Map.Entry )
-            {
-                return ( ContextBase.this.remove( (Map.Entry) obj ) );
-            }
-            else
-            {
-                return ( false );
-            }
-        }
-
-        public int size()
-        {
-            return ( ContextBase.this.size() );
-        }
-    }
-
-    /**
-     * <p>Private implementation of <code>Iterator</code> for the
-     * <code>Collection</code> returned by <code>values()</code>.</p>
-     */
-    private class ValuesIterator implements Iterator
-    {
-        Map.Entry entry = null;
-        private Iterator keys = ContextBase.this.keySet().iterator();
-
-        public boolean hasNext()
-        {
-            return ( keys.hasNext() );
-        }
-
-        public Object next()
-        {
-            entry = ContextBase.this.entry( keys.next() );
-            return ( entry.getValue() );
-        }
-
-        public void remove()
-        {
-            ContextBase.this.remove( entry );
-        }
-    }
+/*
+ * Copyright 1999-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.
+ */
+package org.apache.directory.server.protocol.shared.chain.impl;
+
+
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.AbstractCollection;
+import java.util.AbstractSet;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.directory.server.protocol.shared.chain.Context;
+
+
+/**
+ * <p>Convenience base class for {@link Context} implementations.</p>
+ *
+ * <p>In addition to the minimal functionality required by the {@link Context}
+ * interface, this class implements the recommended support for
+ * <em>Attribute-Property Transparency</p>.  This is implemented by
+ * analyzing the available JavaBeans properties of this class (or its
+ * subclass), exposes them as key-value pairs in the <code>Map</code>,
+ * with the key being the name of the property itself.</p>
+ *
+ * <p><strong>IMPLEMENTATION NOTE</strong> - Because <code>empty</code> is a
+ * read-only property defined by the <code>Map</code> interface, it may not
+ * be utilized as an attribute key or property name.</p>
+ *
+ * @author Craig R. McClanahan
+ * @version $Revision$ $Date$
+ */
+public class ContextBase extends HashMap implements Context
+{
+    // ------------------------------------------------------------ Constructors
+
+    private static final long serialVersionUID = 5536081240350960868L;
+
+
+    /**
+     * Default, no argument constructor.
+     */
+    public ContextBase()
+    {
+        super();
+        initialize();
+    }
+
+
+    /**
+     * <p>Initialize the contents of this {@link Context} by copying the
+     * values from the specified <code>Map</code>.  Any keys in <code>map</code>
+     * that correspond to local properties will cause the setter method for
+     * that property to be called.</p>
+     *
+     * @param map Map whose key-value pairs are added
+     *
+     * @exception IllegalArgumentException if an exception is thrown
+     *  writing a local property value
+     * @exception UnsupportedOperationException if a local property does not
+     *  have a write method.
+     */
+    public ContextBase(Map map)
+    {
+        super( map );
+        initialize();
+        putAll( map );
+    }
+
+    // ------------------------------------------------------ Instance Variables
+
+    /**
+     * <p>The <code>PropertyDescriptor</code>s for all JavaBeans properties
+     * of this {@link Context} implementation class, keyed by property name.
+     * This collection is allocated only if there are any JavaBeans
+     * properties.</p>
+     */
+    private Map descriptors = null;
+
+    /**
+     * <p>The same <code>PropertyDescriptor</code>s as an array.</p>
+     */
+    private PropertyDescriptor[] pd = null;
+
+    /**
+     * <p>Distinguished singleton value that is stored in the map for each
+     * key that is actually a property.  This value is used to ensure that
+     * <code>equals()</code> comparisons will always fail.</p>
+     */
+    private static Object singleton;
+
+    static
+    {
+        singleton = new Object()
+        {
+            public boolean equals( Object object )
+            {
+                return ( false );
+            }
+        };
+    }
+
+    /**
+     * <p>Zero-length array of parameter values for calling property getters.
+     * </p>
+     */
+    private static Object[] zeroParams = new Object[0];
+
+
+    // ------------------------------------------------------------- Map Methods
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to clear all keys and
+     * values except those corresponding to JavaBeans properties.</p>
+     */
+    public void clear()
+    {
+        if ( descriptors == null )
+        {
+            super.clear();
+        }
+        else
+        {
+            Iterator keys = keySet().iterator();
+            while ( keys.hasNext() )
+            {
+                Object key = keys.next();
+                if ( !descriptors.containsKey( key ) )
+                {
+                    keys.remove();
+                }
+            }
+        }
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to return
+     * <code>true</code> if the specified value is present in either the
+     * underlying <code>Map</code> or one of the local property values.</p>
+     *
+     * @exception IllegalArgumentException if a property getter
+     *  throws an exception
+     */
+    public boolean containsValue( Object value )
+    {
+        // Case 1 -- no local properties
+        if ( descriptors == null )
+        {
+            return ( super.containsValue( value ) );
+        }
+        // Case 2 -- value found in the underlying Map
+        else if ( super.containsValue( value ) )
+        {
+            return ( true );
+        }
+
+        // Case 3 -- check the values of our readable properties
+        for ( int i = 0; i < pd.length; i++ )
+        {
+            if ( pd[i].getReadMethod() != null )
+            {
+                Object prop = readProperty( pd[i] );
+                if ( value == null )
+                {
+                    if ( prop == null )
+                    {
+                        return ( true );
+                    }
+                }
+                else if ( value.equals( prop ) )
+                {
+                    return ( true );
+                }
+            }
+        }
+
+        return ( false );
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to return a
+     * <code>Set</code> that meets the specified default behavior except
+     * for attempts to remove the key for a property of the {@link Context}
+     * implementation class, which will throw
+     * <code>UnsupportedOperationException</code>.</p>
+     */
+    public Set entrySet()
+    {
+        return ( new EntrySetImpl() );
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to return the value
+     * of a local property if the specified key matches a local property name.
+     * </p>
+     *
+     * <p><strong>IMPLEMENTATION NOTE</strong> - If the specified
+     * <code>key</code> identifies a write-only property, <code>null</code>
+     * will arbitrarily be returned, in order to avoid difficulties implementing
+     * the contracts of the <code>Map</code> interface.</p>
+     *
+     * @param key Key of the value to be returned
+     *
+     * @exception IllegalArgumentException if an exception is thrown
+     *  reading this local property value
+     * @exception UnsupportedOperationException if this local property does not
+     *  have a read method.
+     */
+    public Object get( Object key )
+    {
+        // Case 1 -- no local properties
+        if ( descriptors == null )
+        {
+            return ( super.get( key ) );
+        }
+
+        // Case 2 -- this is a local property
+        if ( key != null )
+        {
+            PropertyDescriptor descriptor = ( PropertyDescriptor ) descriptors.get( key );
+            if ( descriptor != null )
+            {
+                if ( descriptor.getReadMethod() != null )
+                {
+                    return ( readProperty( descriptor ) );
+                }
+                else
+                {
+                    return ( null );
+                }
+            }
+        }
+
+        // Case 3 -- retrieve value from our underlying Map
+        return ( super.get( key ) );
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to return
+     * <code>true</code> if the underlying <code>Map</code> only contains
+     * key-value pairs for local properties (if any).</p>
+     */
+    public boolean isEmpty()
+    {
+        // Case 1 -- no local properties
+        if ( descriptors == null )
+        {
+            return ( super.isEmpty() );
+        }
+
+        // Case 2 -- compare key count to property count
+        return ( super.size() <= descriptors.size() );
+
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to return a
+     * <code>Set</code> that meets the specified default behavior except
+     * for attempts to remove the key for a property of the {@link Context}
+     * implementation class, which will throw
+     * <code>UnsupportedOperationException</code>.</p>
+     */
+    public Set keySet()
+    {
+        return ( super.keySet() );
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to set the value
+     * of a local property if the specified key matches a local property name.
+     * </p>
+     *
+     * @param key Key of the value to be stored or replaced
+     * @param value New value to be stored
+     *
+     * @exception IllegalArgumentException if an exception is thrown
+     *  reading or wrting this local property value
+     * @exception UnsupportedOperationException if this local property does not
+     *  have both a read method and a write method
+     */
+    public Object put( Object key, Object value )
+    {
+        // Case 1 -- no local properties
+        if ( descriptors == null )
+        {
+            return ( super.put( key, value ) );
+        }
+
+        // Case 2 -- this is a local property
+        if ( key != null )
+        {
+            PropertyDescriptor descriptor = ( PropertyDescriptor ) descriptors.get( key );
+            if ( descriptor != null )
+            {
+                Object previous = null;
+                if ( descriptor.getReadMethod() != null )
+                {
+                    previous = readProperty( descriptor );
+                }
+                writeProperty( descriptor, value );
+                return ( previous );
+            }
+        }
+
+        // Case 3 -- store or replace value in our underlying map
+        return ( super.put( key, value ) );
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to call the
+     * <code>put()</code> method individually for each key-value pair
+     * in the specified <code>Map</code>.</p>
+     *
+     * @param map <code>Map</code> containing key-value pairs to store
+     *  (or replace)
+     *
+     * @exception IllegalArgumentException if an exception is thrown
+     *  reading or wrting a local property value
+     * @exception UnsupportedOperationException if a local property does not
+     *  have both a read method and a write method
+     */
+    public void putAll( Map map )
+    {
+        Iterator pairs = map.entrySet().iterator();
+        while ( pairs.hasNext() )
+        {
+            Map.Entry pair = ( Map.Entry ) pairs.next();
+            put( pair.getKey(), pair.getValue() );
+        }
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to throw
+     * <code>UnsupportedOperationException</code> on any attempt to
+     * remove a key that is the name of a local property.</p>
+     *
+     * @param key Key to be removed
+     *
+     * @exception UnsupportedOperationException if the specified
+     *  <code>key</code> matches the name of a local property
+     */
+    public Object remove( Object key )
+    {
+        // Case 1 -- no local properties
+        if ( descriptors == null )
+        {
+            return ( super.remove( key ) );
+        }
+
+        // Case 2 -- this is a local property
+        if ( key != null )
+        {
+            PropertyDescriptor descriptor = ( PropertyDescriptor ) descriptors.get( key );
+            if ( descriptor != null )
+            {
+                throw new UnsupportedOperationException( "Local property '" + key + "' cannot be removed" );
+            }
+        }
+
+        // Case 3 -- remove from underlying Map
+        return ( super.remove( key ) );
+    }
+
+
+    /**
+     * <p>Override the default <code>Map</code> behavior to return a
+     * <code>Collection</code> that meets the specified default behavior except
+     * for attempts to remove the key for a property of the {@link Context}
+     * implementation class, which will throw
+     * <code>UnsupportedOperationException</code>.</p>
+     */
+    public Collection values()
+    {
+        return ( new ValuesImpl() );
+    }
+
+
+    // --------------------------------------------------------- Private Methods
+
+    /**
+     * <p>Eliminate the specified property descriptor from the list of
+     * property descriptors in <code>pd</code>.</p>
+     *
+     * @param name Name of the property to eliminate
+     *
+     * @exception IllegalArgumentException if the specified property name
+     *  is not present
+     */
+    private void eliminate( String name )
+    {
+        int j = -1;
+        for ( int i = 0; i < pd.length; i++ )
+        {
+            if ( name.equals( pd[i].getName() ) )
+            {
+                j = i;
+                break;
+            }
+        }
+
+        if ( j < 0 )
+        {
+            throw new IllegalArgumentException( "Property '" + name + "' is not present" );
+        }
+
+        PropertyDescriptor[] results = new PropertyDescriptor[pd.length - 1];
+        System.arraycopy( pd, 0, results, 0, j );
+        System.arraycopy( pd, j + 1, results, j, pd.length - ( j + 1 ) );
+        pd = results;
+    }
+
+
+    /**
+     * <p>Return an <code>Iterator</code> over the set of <code>Map.Entry</code>
+     * objects representing our key-value pairs.</p>
+     */
+    private Iterator entriesIterator()
+    {
+        return ( new EntrySetIterator() );
+    }
+
+
+    /**
+     * <p>Return a <code>Map.Entry</code> for the specified key value, if it
+     * is present; otherwise, return <code>null</code>.</p>
+     *
+     * @param key Attribute key or property name
+     */
+    private Map.Entry entry( Object key )
+    {
+        if ( containsKey( key ) )
+        {
+            return ( new MapEntryImpl( key, get( key ) ) );
+        }
+        else
+        {
+            return ( null );
+        }
+    }
+
+
+    /**
+     * <p>Customize the contents of our underlying <code>Map</code> so that
+     * it contains keys corresponding to all of the JavaBeans properties of
+     * the {@link Context} implementation class.</p>
+     *
+     *
+     * @exception IllegalArgumentException if an exception is thrown
+     *  writing this local property value
+     * @exception UnsupportedOperationException if this local property does not
+     *  have a write method.
+     */
+    private void initialize()
+    {
+        // Retrieve the set of property descriptors for this Context class
+        try
+        {
+            pd = Introspector.getBeanInfo( getClass() ).getPropertyDescriptors();
+        }
+        catch ( IntrospectionException e )
+        {
+            pd = new PropertyDescriptor[0]; // Should never happen
+        }
+        eliminate( "class" ); // Because of "getClass()"
+        eliminate( "empty" ); // Because of "isEmpty()"
+
+        // Initialize the underlying Map contents
+        if ( pd.length > 0 )
+        {
+            descriptors = new HashMap();
+            for ( int i = 0; i < pd.length; i++ )
+            {
+                descriptors.put( pd[i].getName(), pd[i] );
+                super.put( pd[i].getName(), singleton );
+            }
+        }
+
+    }
+
+
+    /**
+     * <p>Get and return the value for the specified property.</p>
+     *
+     * @param descriptor <code>PropertyDescriptor</code> for the
+     *  specified property
+     *
+     * @exception IllegalArgumentException if an exception is thrown
+     *  reading this local property value
+     * @exception UnsupportedOperationException if this local property does not
+     *  have a read method.
+     */
+    private Object readProperty( PropertyDescriptor descriptor )
+    {
+        try
+        {
+            Method method = descriptor.getReadMethod();
+            if ( method == null )
+            {
+                throw new UnsupportedOperationException( "Property '" + descriptor.getName() + "' is not readable" );
+            }
+            return ( method.invoke( this, zeroParams ) );
+        }
+        catch ( Exception e )
+        {
+            throw new UnsupportedOperationException( "Exception reading property '" + descriptor.getName() + "': "
+                + e.getMessage() );
+        }
+    }
+
+
+    /**
+     * <p>Remove the specified key-value pair, if it exists, and return
+     * <code>true</code>.  If this pair does not exist, return
+     * <code>false</code>.</p>
+     *
+     * @param entry Key-value pair to be removed
+     *
+     * @exception UnsupportedOperationException if the specified key
+     *  identifies a property instead of an attribute
+     */
+    private boolean remove( Map.Entry entry )
+    {
+        Map.Entry actual = entry( entry.getKey() );
+        if ( actual == null )
+        {
+            return ( false );
+        }
+        else if ( !entry.equals( actual ) )
+        {
+            return ( false );
+        }
+        else
+        {
+            remove( entry.getKey() );
+            return ( true );
+        }
+    }
+
+
+    /**
+     * <p>Return an <code>Iterator</code> over the set of values in this
+     * <code>Map</code>.</p>
+     */
+    private Iterator valuesIterator()
+    {
+        return ( new ValuesIterator() );
+    }
+
+
+    /**
+     * <p>Set the value for the specified property.</p>
+     *
+     * @param descriptor <code>PropertyDescriptor</code> for the
+     *  specified property
+     * @param value The new value for this property (must be of the
+     *  correct type)
+     *
+     * @exception IllegalArgumentException if an exception is thrown
+     *  writing this local property value
+     * @exception UnsupportedOperationException if this local property does not
+     *  have a write method.
+     */
+    private void writeProperty( PropertyDescriptor descriptor, Object value )
+    {
+        try
+        {
+            Method method = descriptor.getWriteMethod();
+            if ( method == null )
+            {
+                throw new UnsupportedOperationException( "Property '" + descriptor.getName() + "' is not writeable" );
+            }
+            method.invoke( this, new Object[]
+                { value } );
+        }
+        catch ( Exception e )
+        {
+            throw new UnsupportedOperationException( "Exception writing property '" + descriptor.getName() + "': "
+                + e.getMessage() );
+        }
+    }
+
+    // --------------------------------------------------------- Private Classes
+
+    /**
+     * <p>Private implementation of <code>Set</code> that implements the
+     * semantics required for the value returned by <code>entrySet()</code>.</p>
+     */
+    private class EntrySetImpl extends AbstractSet
+    {
+        public void clear()
+        {
+            ContextBase.this.clear();
+        }
+
+
+        public boolean contains( Object obj )
+        {
+            if ( !( obj instanceof Map.Entry ) )
+            {
+                return ( false );
+            }
+            Map.Entry entry = ( Map.Entry ) obj;
+            Entry actual = ContextBase.this.entry( entry.getKey() );
+            if ( actual != null )
+            {
+                return ( actual.equals( entry ) );
+            }
+            else
+            {
+                return ( false );
+            }
+        }
+
+
+        public boolean isEmpty()
+        {
+            return ( ContextBase.this.isEmpty() );
+        }
+
+
+        public Iterator iterator()
+        {
+            return ( ContextBase.this.entriesIterator() );
+        }
+
+
+        public boolean remove( Object obj )
+        {
+            if ( obj instanceof Map.Entry )
+            {
+                return ( ContextBase.this.remove( ( Map.Entry ) obj ) );
+            }
+            else
+            {
+                return ( false );
+            }
+        }
+
+
+        public int size()
+        {
+            return ( ContextBase.this.size() );
+        }
+    }
+
+    /**
+     * <p>Private implementation of <code>Iterator</code> for the
+     * <code>Set</code> returned by <code>entrySet()</code>.</p>
+     */
+    private class EntrySetIterator implements Iterator
+    {
+        Map.Entry entry = null;
+        private Iterator keys = ContextBase.this.keySet().iterator();
+
+
+        public boolean hasNext()
+        {
+            return ( keys.hasNext() );
+        }
+
+
+        public Object next()
+        {
+            entry = ContextBase.this.entry( keys.next() );
+            return ( entry );
+        }
+
+
+        public void remove()
+        {
+            ContextBase.this.remove( entry );
+        }
+
+    }
+
+    /**
+     * <p>Private implementation of <code>Map.Entry</code> for each item in
+     * <code>EntrySetImpl</code>.</p>
+     */
+    private class MapEntryImpl implements Map.Entry
+    {
+        MapEntryImpl(Object key, Object value)
+        {
+            this.key = key;
+            this.value = value;
+        }
+
+        private Object key;
+        private Object value;
+
+
+        public boolean equals( Object obj )
+        {
+            if ( obj == null )
+            {
+                return ( false );
+            }
+            else if ( !( obj instanceof Map.Entry ) )
+            {
+                return ( false );
+            }
+            Map.Entry entry = ( Map.Entry ) obj;
+            if ( key == null )
+            {
+                return ( entry.getKey() == null );
+            }
+            if ( key.equals( entry.getKey() ) )
+            {
+                if ( value == null )
+                {
+                    return ( entry.getValue() == null );
+                }
+                else
+                {
+                    return ( value.equals( entry.getValue() ) );
+                }
+            }
+            else
+            {
+                return ( false );
+            }
+        }
+
+
+        public Object getKey()
+        {
+            return ( this.key );
+        }
+
+
+        public Object getValue()
+        {
+            return ( this.value );
+        }
+
+
+        public int hashCode()
+        {
+            return ( ( ( key == null ) ? 0 : key.hashCode() ) ^ ( ( value == null ) ? 0 : value.hashCode() ) );
+        }
+
+
+        public Object setValue( Object value )
+        {
+            Object previous = this.value;
+            ContextBase.this.put( this.key, value );
+            this.value = value;
+            return ( previous );
+        }
+    }
+
+    /**
+     * <p>Private implementation of <code>Collection</code> that implements the
+     * semantics required for the value returned by <code>values()</code>.</p>
+     */
+    private class ValuesImpl extends AbstractCollection
+    {
+        public void clear()
+        {
+            ContextBase.this.clear();
+        }
+
+
+        public boolean contains( Object obj )
+        {
+            if ( !( obj instanceof Map.Entry ) )
+            {
+                return ( false );
+            }
+            Map.Entry entry = ( Map.Entry ) obj;
+            return ( ContextBase.this.containsValue( entry.getValue() ) );
+        }
+
+
+        public boolean isEmpty()
+        {
+            return ( ContextBase.this.isEmpty() );
+        }
+
+
+        public Iterator iterator()
+        {
+            return ( ContextBase.this.valuesIterator() );
+        }
+
+
+        public boolean remove( Object obj )
+        {
+            if ( obj instanceof Map.Entry )
+            {
+                return ( ContextBase.this.remove( ( Map.Entry ) obj ) );
+            }
+            else
+            {
+                return ( false );
+            }
+        }
+
+
+        public int size()
+        {
+            return ( ContextBase.this.size() );
+        }
+    }
+
+    /**
+     * <p>Private implementation of <code>Iterator</code> for the
+     * <code>Collection</code> returned by <code>values()</code>.</p>
+     */
+    private class ValuesIterator implements Iterator
+    {
+        Map.Entry entry = null;
+        private Iterator keys = ContextBase.this.keySet().iterator();
+
+
+        public boolean hasNext()
+        {
+            return ( keys.hasNext() );
+        }
+
+
+        public Object next()
+        {
+            entry = ContextBase.this.entry( keys.next() );
+            return ( entry.getValue() );
+        }
+
+
+        public void remove()
+        {
+            ContextBase.this.remove( entry );
+        }
+    }
 }

Propchange: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/chain/impl/ContextBase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/chain/impl/ContextBase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -1 +1,4 @@
-HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
+Rev
+Revision
+Date
+Id

Modified: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/ContextOperation.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/ContextOperation.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/ContextOperation.java (original)
+++ directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/ContextOperation.java Sun Feb 19 19:57:02 2006
@@ -16,10 +16,12 @@
  */
 package org.apache.directory.server.protocol.shared.store;
 
+
 import java.io.Serializable;
 
 import javax.naming.Name;
 import javax.naming.directory.DirContext;
+
 
 /**
  * Interface to support the command pattern with JNDI contexts.

Propchange: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/ContextOperation.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -0,0 +1,4 @@
+Rev
+Revision
+Date
+Id

Modified: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/KerberosAttribute.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/KerberosAttribute.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/KerberosAttribute.java (original)
+++ directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/KerberosAttribute.java Sun Feb 19 19:57:02 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.directory.server.protocol.shared.store;
 
+
 public class KerberosAttribute
 {
     // ------------------------------------------------------------------------
@@ -23,13 +24,13 @@
     // ------------------------------------------------------------------------
 
     /** the krb5kdc schema key for a krb5KDCEntry */
-    public static final String KEY       = "krb5Key";
+    public static final String KEY = "krb5Key";
     /** the krb5kdc schema key encryption type for a krb5KDCEntry */
-    public static final String TYPE      = "krb5EncryptionType";
+    public static final String TYPE = "krb5EncryptionType";
     /** the krb5kdc schema principal name for a krb5KDCEntry */
     public static final String PRINCIPAL = "krb5PrincipalName";
     /** the krb5kdc schema key version identifier for a krb5KDCEntry */
-    public static final String VERSION   = "krb5KeyVersionNumber";
+    public static final String VERSION = "krb5KeyVersionNumber";
     /** the Apache specific SAM type attribute */
-    public static final String SAM_TYPE  = "apacheSamType";
+    public static final String SAM_TYPE = "apacheSamType";
 }

Propchange: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/KerberosAttribute.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -0,0 +1,4 @@
+Rev
+Revision
+Date
+Id

Modified: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/Krb5KdcEntryFilter.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/Krb5KdcEntryFilter.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/Krb5KdcEntryFilter.java (original)
+++ directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/Krb5KdcEntryFilter.java Sun Feb 19 19:57:02 2006
@@ -20,7 +20,7 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class Krb5KdcEntryFilter implements  LdifLoadFilter
+public class Krb5KdcEntryFilter implements LdifLoadFilter
 {
     private static final Logger log = LoggerFactory.getLogger( Krb5KdcEntryFilter.class );
     private static final String KEY_TYPE = "DES";

Propchange: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/Krb5KdcEntryFilter.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -0,0 +1,4 @@
+Rev
+Revision
+Date
+Id

Modified: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/LdifFileLoader.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/LdifFileLoader.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/LdifFileLoader.java (original)
+++ directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/LdifFileLoader.java Sun Feb 19 19:57:02 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.directory.server.protocol.shared.store;
 
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -37,6 +38,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+
 /**
  * Support for commands to load an LDIF file into a DirContext.
  *
@@ -59,23 +61,26 @@
     /** the total count of entries loaded */
     private int count;
 
+
     /**
      * Creates the LDIF file loader command.
      *
      * @param ctx the context to load the entries into.
      * @param ldif the file of LDIF entries to load.
      */
-    public LdifFileLoader( DirContext ctx, String ldif )
+    public LdifFileLoader(DirContext ctx, String ldif)
     {
         this( ctx, new File( ldif ), null );
     }
 
-    public LdifFileLoader( DirContext ctx, File ldif, List filters )
+
+    public LdifFileLoader(DirContext ctx, File ldif, List filters)
     {
         this( ctx, ldif, filters, null );
     }
 
-    public LdifFileLoader( DirContext ctx, File ldif, List filters, ClassLoader loader )
+
+    public LdifFileLoader(DirContext ctx, File ldif, List filters, ClassLoader loader)
     {
         this.ctx = ctx;
         this.ldif = ldif;
@@ -91,6 +96,7 @@
         }
     }
 
+
     /**
      * Applies filters making sure failures in one filter do not effect another.
      *
@@ -112,7 +118,7 @@
         {
             try
             {
-                accept &= ( (LdifLoadFilter) filters.get( ii ) ).filter( ldif, dn, entry, ctx );
+                accept &= ( ( LdifLoadFilter ) filters.get( ii ) ).filter( ldif, dn, entry, ctx );
             }
             catch ( NamingException e )
             {
@@ -128,6 +134,7 @@
         return true;
     }
 
+
     /**
      * Opens the LDIF file and loads the entries into the context.
      */
@@ -144,10 +151,10 @@
 
             while ( iterator.hasNext() )
             {
-                String ldif = (String) iterator.next();
+                String ldif = ( String ) iterator.next();
                 Attributes attributes = new LockableAttributesImpl();
                 ldifParser.parse( attributes, ldif );
-                String dn = (String) attributes.remove( "dn" ).get();
+                String dn = ( String ) attributes.remove( "dn" ).get();
 
                 boolean filterAccepted = applyFilters( dn, attributes );
 
@@ -197,6 +204,7 @@
         return count;
     }
 
+
     private Name getRelativeName( DirContext ctx, String baseDn ) throws NamingException
     {
         Properties props = new Properties();
@@ -229,6 +237,7 @@
 
         return searchBaseDn;
     }
+
 
     /**
      * Tries to find an LDIF file either on the file system or packaged within a jar.

Propchange: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/LdifFileLoader.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -0,0 +1,4 @@
+Rev
+Revision
+Date
+Id

Propchange: directory/trunks/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/LdifLoadFilter.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -0,0 +1,4 @@
+Rev
+Revision
+Date
+Id

Modified: directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/catalog/CatalogTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/catalog/CatalogTest.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/catalog/CatalogTest.java (original)
+++ directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/catalog/CatalogTest.java Sun Feb 19 19:57:02 2006
@@ -17,6 +17,7 @@
 
 package org.apache.directory.server.protocol.shared.catalog;
 
+
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -32,6 +33,7 @@
 
 import org.apache.directory.server.protocol.shared.AbstractBackingStoreTest;
 
+
 public class CatalogTest extends AbstractBackingStoreTest
 {
     /**
@@ -44,17 +46,19 @@
         loadPartition( "ou=system", "configuration-dns.ldif" );
     }
 
+
     public void testListCatalogEntries() throws Exception
     {
         String baseDn = "cn=org.apache.dns.1,cn=dns,ou=services,ou=configuration,ou=system";
 
         env.put( Context.PROVIDER_URL, baseDn );
-        DirContext ctx = (DirContext) factory.getInitialContext( env );
+        DirContext ctx = ( DirContext ) factory.getInitialContext( env );
 
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
 
-        String[] returningAttributes = new String[] { "apacheCatalogEntryBaseDn", "apacheCatalogEntryName" };
+        String[] returningAttributes = new String[]
+            { "apacheCatalogEntryBaseDn", "apacheCatalogEntryName" };
         controls.setReturningAttributes( returningAttributes );
 
         Set set = new HashSet();
@@ -64,16 +68,16 @@
 
         while ( list.hasMore() )
         {
-            SearchResult result = (SearchResult) list.next();
+            SearchResult result = ( SearchResult ) list.next();
             set.add( result.getName() );
 
             Attributes attrs = result.getAttributes();
             Attribute attr;
 
-            String catalogEntryBaseDn = ( attr = attrs.get( "apacheCatalogEntryBaseDn" ) ) != null ? (String) attr
-                    .get() : null;
-            String catalogEntryName = ( attr = attrs.get( "apacheCatalogEntryName" ) ) != null ? (String) attr.get()
-                    : null;
+            String catalogEntryBaseDn = ( attr = attrs.get( "apacheCatalogEntryBaseDn" ) ) != null ? ( String ) attr
+                .get() : null;
+            String catalogEntryName = ( attr = attrs.get( "apacheCatalogEntryName" ) ) != null ? ( String ) attr.get()
+                : null;
             map.put( catalogEntryName, catalogEntryBaseDn );
 
             assertTrue( catalogEntryBaseDn.equals( "ou=zones,dc=example,dc=com" ) );
@@ -81,6 +85,6 @@
         }
 
         assertTrue( set
-                .contains( "cn=example.com,ou=catalog,cn=org.apache.dns.1,cn=dns,ou=services,ou=configuration,ou=system" ) );
+            .contains( "cn=example.com,ou=catalog,cn=org.apache.dns.1,cn=dns,ou=services,ou=configuration,ou=system" ) );
     }
 }

Propchange: directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/catalog/CatalogTest.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -0,0 +1,4 @@
+Rev
+Revision
+Date
+Id

Modified: directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/kerberos/KerberosTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/kerberos/KerberosTest.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/kerberos/KerberosTest.java (original)
+++ directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/kerberos/KerberosTest.java Sun Feb 19 19:57:02 2006
@@ -17,6 +17,7 @@
 
 package org.apache.directory.server.protocol.shared.kerberos;
 
+
 import javax.naming.Context;
 import javax.naming.NamingException;
 import javax.naming.directory.Attribute;
@@ -27,6 +28,7 @@
 
 import org.apache.directory.server.protocol.shared.AbstractBackingStoreTest;
 
+
 /**
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
@@ -44,6 +46,7 @@
         loadPartition( "dc=example,dc=com", "kerberos-example.ldif" );
     }
 
+
     /**
      * Makes sure the context has the right attributes and values.
      *
@@ -52,7 +55,7 @@
     public void testContext() throws Exception
     {
         env.put( Context.PROVIDER_URL, "dc=example,dc=com" );
-        DirContext ctx = (DirContext) factory.getInitialContext( env );
+        DirContext ctx = ( DirContext ) factory.getInitialContext( env );
 
         Attributes matchAttrs = new BasicAttributes( true );
         matchAttrs.put( new BasicAttribute( "krb5PrincipalName", "kadmin/changepw@EXAMPLE.COM" ) );
@@ -60,7 +63,7 @@
         Attributes attributes = ctx.getAttributes( "ou=users" );
         System.out.println( attributes );
         assertNotNull( attributes );
-        assertTrue( "users".equalsIgnoreCase( (String) attributes.get( "ou" ).get() ) );
+        assertTrue( "users".equalsIgnoreCase( ( String ) attributes.get( "ou" ).get() ) );
 
         Attribute attribute = attributes.get( "objectClass" );
 

Propchange: directory/trunks/apacheds/protocol-shared/src/test/java/org/apache/directory/server/protocol/shared/kerberos/KerberosTest.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -0,0 +1,4 @@
+Rev
+Revision
+Date
+Id

Modified: directory/trunks/apacheds/server-installers/pom.xml
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/server-installers/pom.xml?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/server-installers/pom.xml (original)
+++ directory/trunks/apacheds/server-installers/pom.xml Sun Feb 19 19:57:02 2006
@@ -4,12 +4,13 @@
   <parent>
     <groupId>org.apache.directory.server</groupId>
     <artifactId>build</artifactId>
-    <version>1.0-RC1-SNAPSHOT</version>
+    <version>1.0-RC1</version>
   </parent>
   <artifactId>apacheds-server-installers</artifactId>
   <name>ApacheDS Server Installers</name>
   <packaging>jar</packaging>
   <description>
+    Installer generating project for ApacheDS
   </description>
   <dependencies>
     <dependency>
@@ -20,7 +21,7 @@
     <dependency>
       <groupId>org.apache.directory.daemon</groupId>
       <artifactId>daemon-bootstrappers</artifactId>
-      <version>0.9.4-SNAPSHOT</version>
+      <version>${pom.version}</version>
       <scope>provided</scope>
     </dependency>  
     <dependency>
@@ -69,12 +70,6 @@
       <version>1.2.1</version>
     </dependency>
   </dependencies>
-  <!-- <distributionManagement>
-    <site>
-      <id>apache.websites</id>
-      <url>scp://minotaur.apache.org/www/directory.apache.org/newsite/subprojects/apacheds/</url>
-    </site>
-  </distributionManagement> -->
   <build>
     <plugins>
       <plugin>
@@ -82,6 +77,10 @@
         <artifactId>daemon-plugin</artifactId>
         <configuration>
           <excludes>
+
+            <!-- apacheds-tools.jar does not get put in lib directory -->
+            <exclude>org.apache.directory.server:apacheds-server-tools</exclude>
+
             <exclude>ant:ant</exclude>
             <exclude>aopalliance:aopalliance</exclude>
             <exclude>xerces:xerces</exclude>
@@ -120,18 +119,36 @@
               <author>szoerner@apache.org</author>
             </authors>
           </application>
+          <packagedFiles>
+            <packagedFile>
+              <source>org.apache.directory.server:apacheds-server-tools</source>
+              <destinationPath>bin/apacheds-tools.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+          </packagedFiles>
           <svnBaseUrl>
             http://svn.apache.org/repos/asf/directory/trunks/apacheds
           </svnBaseUrl>
           <packageSources>true</packageSources>
           <packageDocs>true</packageDocs>
           <applicationClass>
-            org.apache.ldap.server.DirectoryServer
+            org.apache.ldap.server.Service
           </applicationClass>
           <rpmTargets>
             <rpmTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>rpm-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <!--  doSudo>true</doSudo -->
-              <id>linux-jsvc</id>
+              <id>linux-jsvc-rpm</id>
+              <rpmSpecificationFile>rpm-apacheds.spec</rpmSpecificationFile>
               <finalName>
                 apacheds-${pom.version}-linux-i386.rpm
               </finalName>
@@ -144,6 +161,7 @@
           <innoTargets>
             <innoTarget>
               <id>windows-xp-procrun</id>
+              <innoConfigurationFile>inno-apacheds.iss</innoConfigurationFile>
               <finalName>
                 apacheds-${pom.version}-win32-setup
               </finalName>
@@ -156,7 +174,17 @@
           </innoTargets>
           <izPackTargets>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <id>linux-jsvc</id>
+              <izPackInstallFile>izpack-unix.xml</izPackInstallFile>
               <finalName>
                 apacheds-${pom.version}-linux-i386-setup.jar
               </finalName>
@@ -166,17 +194,37 @@
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <finalName>
                 apacheds-${pom.version}-solaris-sparc-setup.jar
               </finalName>
               <id>solaris-jsvc-sparc</id>
+              <izPackInstallFile>izpack-unix.xml</izPackInstallFile>
               <osName>sunos</osName>
               <osFamily>unix</osFamily>
               <osArch>sparc</osArch>
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <id>solaris-jsvc-i386</id>
+              <izPackInstallFile>izpack-unix.xml</izPackInstallFile>
               <finalName>
                 apacheds-${pom.version}-solaris-i386-setup.jar
               </finalName>
@@ -186,7 +234,17 @@
               <daemonFramework>jsvc</daemonFramework>
             </izPackTarget>
             <izPackTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-apacheds-tools.sh</source>
+                  <destinationPath>bin/apacheds-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
               <id>macosx-jsvc</id>
+              <izPackInstallFile>izpack-mac.xml</izPackInstallFile>
               <finalName>
                 apacheds-${pom.version}-macosx-ppc-setup.jar
               </finalName>

Propchange: directory/trunks/apacheds/server-installers/src/main/installers/inno-apacheds.iss
------------------------------------------------------------------------------
    svn:executable = *

Propchange: directory/trunks/apacheds/server-installers/src/main/installers/izpack-windows.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: directory/trunks/apacheds/server-installers/src/main/installers/log4j.properties
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/server-installers/src/main/installers/log4j.properties?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/server-installers/src/main/installers/log4j.properties (original)
+++ directory/trunks/apacheds/server-installers/src/main/installers/log4j.properties Sun Feb 19 19:57:02 2006
@@ -5,8 +5,8 @@
 log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n
 
 # with these we'll not get innundated when switching to DEBUG
-log4j.logger.org.apache.ldap.common.name=WARN
+log4j.logger.org.apache.directory.shared.ldap.name=WARN
 log4j.logger.org.springframework=WARN
-log4j.logger.org.apache.directory.common.codec=WARN
-log4j.logger.org.apache.asn1=WARN
+log4j.logger.org.apache.directory.shared.codec=WARN
+log4j.logger.org.apache.directory.shared.asn1=WARN
 

Modified: directory/trunks/apacheds/server-installers/src/main/installers/server.xml
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/server-installers/src/main/installers/server.xml?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/server-installers/src/main/installers/server.xml (original)
+++ directory/trunks/apacheds/server-installers/src/main/installers/server.xml Sun Feb 19 19:57:02 2006
@@ -48,7 +48,7 @@
     </property>
     <property name="ldifFilters">
       <list>
-        <bean class="org.apache.protocol.common.store.Krb5KdcEntryFilter"/>
+        <bean class="org.apache.directory.server.protocol.shared.store.Krb5KdcEntryFilter"/>
       </list>
     </property>-->
 

Modified: directory/trunks/apacheds/server-jndi/pom.xml
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/server-jndi/pom.xml?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/server-jndi/pom.xml (original)
+++ directory/trunks/apacheds/server-jndi/pom.xml Sun Feb 19 19:57:02 2006
@@ -4,10 +4,15 @@
   <parent>
     <groupId>org.apache.directory.server</groupId>
     <artifactId>build</artifactId>
-    <version>1.0-RC1-SNAPSHOT</version>
+    <version>1.0-RC1</version>
   </parent>
   <artifactId>apacheds-server-jndi</artifactId>
   <name>ApacheDS Server JNDI</name>
+  <description>
+    The JNDI provider which launches the core and associated network 
+    services: Changepw, Kerberos, LDAP, and NTP if all are configured.
+    By default only LDAP is configured to startup.
+  </description>
   <packaging>jar</packaging>  
   <dependencies>
     <dependency>
@@ -19,17 +24,17 @@
     <dependency>
       <groupId>org.apache.directory.server</groupId>
       <artifactId>apacheds-protocol-changepw</artifactId>
-      <version>0.7-SNAPSHOT</version>
+      <version>${pom.version}</version>
     </dependency>  
     <dependency>
       <groupId>org.apache.directory.server</groupId>
       <artifactId>apacheds-protocol-ntp</artifactId>
-      <version>0.5-SNAPSHOT</version>
+      <version>${pom.version}</version>
     </dependency>  
     <dependency>
       <groupId>org.apache.directory.server</groupId>
       <artifactId>apacheds-protocol-kerberos</artifactId>
-      <version>0.7-SNAPSHOT</version>
+      <version>${pom.version}</version>
     </dependency>  
     <dependency>
       <groupId>org.apache.directory.server</groupId>

Modified: directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java?rev=379013&r1=379012&r2=379013&view=diff
==============================================================================
--- directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java (original)
+++ directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java Sun Feb 19 19:57:02 2006
@@ -18,6 +18,7 @@
  */
 package org.apache.directory.server.configuration;
 
+
 import java.io.File;
 import java.util.Collection;
 import java.util.List;
@@ -25,126 +26,149 @@
 
 import org.apache.mina.registry.ServiceRegistry;
 
+
 /**
  * A mutable version of {@link ServerStartupConfiguration}.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class MutableServerStartupConfiguration extends
-        ServerStartupConfiguration
+public class MutableServerStartupConfiguration extends ServerStartupConfiguration
 {
     private static final long serialVersionUID = 515104910980600099L;
 
+
     public MutableServerStartupConfiguration()
     {
         super();
     }
 
+
     public void setAccessControlEnabled( boolean accessControlEnabled )
     {
         super.setAccessControlEnabled( accessControlEnabled );
     }
 
+
     public void setAllowAnonymousAccess( boolean arg0 )
     {
         super.setAllowAnonymousAccess( arg0 );
     }
 
+
     public void setAuthenticatorConfigurations( Set arg0 )
     {
         super.setAuthenticatorConfigurations( arg0 );
     }
 
+
     public void setBootstrapSchemas( Set arg0 )
     {
         super.setBootstrapSchemas( arg0 );
     }
 
+
     public void setContextPartitionConfigurations( Set arg0 )
     {
         super.setContextPartitionConfigurations( arg0 );
     }
 
+
     public void setInterceptorConfigurations( List arg0 )
     {
         super.setInterceptorConfigurations( arg0 );
     }
 
+
     public void setTestEntries( List arg0 )
     {
         super.setTestEntries( arg0 );
     }
 
+
     public void setWorkingDirectory( File arg0 )
     {
         super.setWorkingDirectory( arg0 );
     }
 
+
     public void setEnableKerberos( boolean enableKerberos )
     {
         super.setEnableKerberos( enableKerberos );
     }
 
+
     public void setEnableChangePassword( boolean enableChangePassword )
     {
         super.setEnableChangePassword( enableChangePassword );
     }
 
+
     public void setEnableNtp( boolean enableNtp )
     {
         super.setEnableNtp( enableNtp );
     }
 
+
     public void setLdapPort( int ldapPort )
     {
         super.setLdapPort( ldapPort );
     }
 
+
     public void setLdapsPort( int ldapsPort )
     {
         super.setLdapsPort( ldapsPort );
     }
 
+
     public void setMinaServiceRegistry( ServiceRegistry minaServiceRegistry )
     {
         super.setMinaServiceRegistry( minaServiceRegistry );
     }
 
+
     public void setExtendedOperationHandlers( Collection handlers )
     {
         super.setExtendedOperationHandlers( handlers );
     }
 
+
     public void setLdifDirectory( File ldifDirectory )
     {
         super.setLdifDirectory( ldifDirectory );
     }
 
+
     public void setLdifFilters( List ldifFilters )
     {
         super.setLdifFilters( ldifFilters );
     }
 
+
     public void setEnableLdaps( boolean enableLdaps )
     {
         super.setEnableLdaps( enableLdaps );
     }
 
+
     public void setLdapsCertificateFile( File ldapsCertificateFile )
     {
         super.setLdapsCertificateFile( ldapsCertificateFile );
     }
 
+
     public void setLdapsCertificatePassword( String ldapsCertificatePassword )
     {
         super.setLdapsCertificatePassword( ldapsCertificatePassword );
     }
-    
+
+
     public void setShutdownHookEnabled( boolean shutdownHookEnabled )
     {
         super.setShutdownHookEnabled( shutdownHookEnabled );
     }
+
 
     public void setExitVmOnShutdown( boolean exitVmOnShutdown )
     {

Propchange: directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/MutableServerStartupConfiguration.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Sun Feb 19 19:57:02 2006
@@ -1 +1,4 @@
-HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
+Rev
+Revision
+Date
+Id



Mime
View raw message