You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/03/25 14:26:31 UTC

svn commit: r1669123 [4/6] - in /directory/studio/trunk/plugins: ./ openldap.config.editor/ openldap.config.editor/resources/ openldap.config.editor/resources/icons/ openldap.config.editor/src/ openldap.config.editor/src/main/ openldap.config.editor/sr...

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffComputer.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffComputer.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffComputer.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffComputer.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,496 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.studio.openldap.config.jobs;
+
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.directory.server.core.api.entry.ClonedServerEntry;
+import org.apache.directory.server.core.api.filtering.EntryFilteringCursor;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
+import org.apache.directory.server.core.api.interceptor.context.SearchOperationContext;
+import org.apache.directory.server.core.api.partition.Partition;
+import org.apache.directory.api.ldap.model.constants.SchemaConstants;
+import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
+import org.apache.directory.api.ldap.model.entry.DefaultModification;
+import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.entry.Attribute;
+import org.apache.directory.api.ldap.model.entry.Modification;
+import org.apache.directory.api.ldap.model.entry.ModificationOperation;
+import org.apache.directory.api.ldap.model.entry.Value;
+import org.apache.directory.api.ldap.model.exception.LdapException;
+import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
+import org.apache.directory.api.ldap.model.filter.FilterParser;
+import org.apache.directory.api.ldap.model.ldif.ChangeType;
+import org.apache.directory.api.ldap.model.ldif.LdifEntry;
+import org.apache.directory.api.ldap.model.message.AliasDerefMode;
+import org.apache.directory.api.ldap.model.message.SearchScope;
+import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.schema.AttributeType;
+import org.apache.directory.api.ldap.model.schema.AttributeTypeOptions;
+import org.apache.directory.api.ldap.model.schema.SchemaManager;
+import org.apache.directory.api.ldap.model.schema.SchemaUtils;
+import org.apache.directory.api.ldap.model.schema.UsageEnum;
+
+
+public class PartitionsDiffComputer
+{
+    /** The original partition */
+    private Partition originalPartition;
+
+    /** The destination partition */
+    private Partition destinationPartition;
+
+
+    public PartitionsDiffComputer()
+    {
+    }
+
+
+    public PartitionsDiffComputer( Partition originalPartition, Partition destinationPartition )
+    {
+        this.originalPartition = originalPartition;
+        this.destinationPartition = destinationPartition;
+    }
+
+
+    public List<LdifEntry> computeModifications() throws Exception
+    {
+        // Using the original partition suffix as base 
+        // '*' for all user attributes, '+' for all operational attributes
+        return computeModifications( originalPartition.getSuffixDn(), new String[]
+            { "*", "+" } );
+    }
+
+
+    public List<LdifEntry> computeModifications( String[] attributeIds ) throws Exception
+    {
+        return computeModifications( originalPartition.getSuffixDn(), attributeIds );
+    }
+
+
+    public List<LdifEntry> computeModifications( Dn baseDn, String[] attributeIds ) throws Exception
+    {
+        // Checking partitions
+        checkPartitions();
+
+        return comparePartitions( baseDn, attributeIds );
+    }
+
+
+    /**
+     * Checks the partitions.
+     *
+     * @throws PartitionsDiffException
+     */
+    private void checkPartitions() throws PartitionsDiffException
+    {
+        // Checking the original partition
+        if ( originalPartition == null )
+        {
+            throw new PartitionsDiffException( "The original partition must not be 'null'." );
+        }
+        else
+        {
+            if ( !originalPartition.isInitialized() )
+            {
+                throw new PartitionsDiffException( "The original partition must be intialized." );
+            }
+            else if ( originalPartition.getSuffixDn() == null )
+            {
+                throw new PartitionsDiffException( "The original suffix is null." );
+            }
+        }
+
+        // Checking the destination partition
+        if ( destinationPartition == null )
+        {
+            throw new PartitionsDiffException( "The destination partition must not be 'null'." );
+        }
+        else
+        {
+            if ( !destinationPartition.isInitialized() )
+            {
+                throw new PartitionsDiffException( "The destination partition must be intialized." );
+            }
+            else if ( destinationPartition.getSuffixDn() == null )
+            {
+                throw new PartitionsDiffException( "The destination suffix is null." );
+            }
+        }
+    }
+
+
+    /**
+     * Compare the two partitions.
+     *
+     * @param baseDn
+     *      the base Dn
+     * @param attributeIds
+     *      the IDs of the attributes
+     * @return
+     *      a list containing LDIF entries with all modifications
+     * @throws Exception
+     */
+    public List<LdifEntry> comparePartitions( Dn baseDn, String[] attributeIds ) throws PartitionsDiffException
+    {
+        // Creating the list containing all modifications
+        List<LdifEntry> modifications = new ArrayList<LdifEntry>();
+
+        try
+        {
+            // Looking up the original base entry
+            Entry originalBaseEntry = originalPartition
+                .lookup( new LookupOperationContext( null, baseDn, attributeIds ) );
+            if ( originalBaseEntry == null )
+            {
+                throw new PartitionsDiffException( "Unable to find the base entry in the original partition." );
+            }
+
+            // Creating the list containing all the original entries to be processed
+            // and adding it the original base entry
+            List<Entry> originalEntries = new ArrayList<Entry>();
+            originalEntries.add( originalBaseEntry );
+
+            // Looping until all original entries are being processed
+            while ( originalEntries.size() > 0 )
+            {
+                // Getting the first original entry from the list
+                Entry originalEntry = originalEntries.remove( 0 );
+
+                // Creating a modification entry to hold all modifications
+                LdifEntry modificationEntry = new LdifEntry();
+                modificationEntry.setDn( originalEntry.getDn() );
+
+                // Looking for the equivalent entry in the destination partition
+                Entry destinationEntry = destinationPartition.lookup( new LookupOperationContext( null, originalEntry
+                    .getDn(), attributeIds ) );
+                if ( destinationEntry != null )
+                {
+                    // Setting the changetype to delete
+                    modificationEntry.setChangeType( ChangeType.Modify );
+
+                    // Comparing both entries
+                    compareEntries( originalEntry, destinationEntry, modificationEntry );
+                }
+                else
+                {
+                    // The original entry is no longer present in the destination partition
+
+                    // Setting the changetype to delete
+                    modificationEntry.setChangeType( ChangeType.Delete );
+                }
+
+                // Checking if modifications occurred on the original entry
+                ChangeType modificationEntryChangeType = modificationEntry.getChangeType();
+                if ( modificationEntryChangeType != ChangeType.None )
+                {
+                    if ( modificationEntryChangeType == ChangeType.Delete
+                        || ( modificationEntryChangeType == ChangeType.Modify && modificationEntry
+                            .getModifications().size() > 0 ) )
+                    {
+                        // Adding the modification entry to the list
+                        modifications.add( modificationEntry );
+                    }
+                }
+
+                // Creating a search operation context to get the children of the current entry
+                SearchOperationContext soc = new SearchOperationContext( null );
+                setReturningAttributes( originalPartition.getSchemaManager(), attributeIds, soc );
+                soc.setDn( originalEntry.getDn() );
+                soc.setScope( SearchScope.ONELEVEL );
+                soc.setFilter( FilterParser.parse( originalPartition.getSchemaManager(), "(objectClass=*)" ) );
+                soc.setAliasDerefMode( AliasDerefMode.DEREF_ALWAYS );
+
+                // Looking for the children of the current entry
+                EntryFilteringCursor cursor = originalPartition.search( soc );
+                while ( cursor.next() )
+                {
+                    originalEntries.add( ( ( ClonedServerEntry ) cursor.get() ).getClonedEntry() );
+                }
+            }
+        }
+        catch ( Exception e )
+        {
+            throw new PartitionsDiffException( e );
+        }
+
+        return modifications;
+    }
+
+
+    /**
+     * Sets the returning attributes to the search operation context.
+     *
+     * @param schemaManager
+     *      the schema manager
+     * @param attributeIds
+     *      the attribute IDs
+     * @param soc
+     *      the search operation context
+     * @throws org.apache.directory.api.ldap.model.exception.LdapException
+     */
+    private void setReturningAttributes( SchemaManager schemaManager, String[] attributeIds,
+        SearchOperationContext soc ) throws LdapException
+    {
+        if ( attributeIds != null && attributeIds.length != 0 )
+        {
+            Set<AttributeTypeOptions> returningAttributes = new HashSet<AttributeTypeOptions>();
+
+            for ( String returnAttribute : attributeIds )
+            {
+                if ( returnAttribute.equals( SchemaConstants.NO_ATTRIBUTE ) )
+                {
+                    soc.setNoAttributes( true );
+                    continue;
+                }
+
+                if ( returnAttribute.equals( SchemaConstants.ALL_OPERATIONAL_ATTRIBUTES ) )
+                {
+                    soc.setAllOperationalAttributes( true );
+                    continue;
+                }
+
+                if ( returnAttribute.equals( SchemaConstants.ALL_USER_ATTRIBUTES ) )
+                {
+                    soc.setAllUserAttributes( true );
+                    continue;
+                }
+
+                String id = SchemaUtils.stripOptions( returnAttribute );
+                Set<String> options = SchemaUtils.getOptions( returnAttribute );
+
+                AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( id );
+                AttributeTypeOptions attrOptions = new AttributeTypeOptions( attributeType, options );
+
+                returningAttributes.add( attrOptions );
+            }
+
+            // reset the noAttrubte flag if it is already set cause that will be ignored if any other AT is requested
+            if ( soc.isNoAttributes()
+                && ( soc.isAllUserAttributes() || soc.isAllOperationalAttributes() || ( !returningAttributes.isEmpty() ) ) )
+            {
+                soc.setNoAttributes( false );
+            }
+
+            soc.setReturningAttributes( returningAttributes.toArray( new String[returningAttributes.size()] ) );
+        }
+    }
+
+
+    /**
+     * Compares the two given entries.
+     *
+     * @param originalEntry
+     *      the original entry
+     * @param destinationEntry
+     *      the destination entry
+     * @param modificationEntry
+     *      the modification LDIF entry holding the modifications 
+     *      between both entries
+     */
+    private void compareEntries( Entry originalEntry, Entry destinationEntry, LdifEntry modificationEntry )
+    {
+        // Creating a list to store the already evaluated attribute type
+        List<AttributeType> evaluatedATs = new ArrayList<AttributeType>();
+
+        // Checking attributes of the original entry
+        for ( Attribute originalAttribute : originalEntry )
+        {
+            AttributeType originalAttributeType = originalAttribute.getAttributeType();
+
+            // We're only working on 'userApplications' attributes
+            if ( originalAttributeType.getUsage() == UsageEnum.USER_APPLICATIONS )
+            {
+                Attribute destinationAttribute = destinationEntry.get( originalAttributeType );
+                if ( destinationAttribute == null )
+                {
+                    // Creating a modification for the removed AT
+                    Modification modification = new DefaultModification();
+                    modification.setOperation( ModificationOperation.REMOVE_ATTRIBUTE );
+                    modification.setAttribute( new DefaultAttribute( originalAttribute.getAttributeType() ) );
+
+                    modificationEntry.addModification( modification );
+                }
+                else
+                {
+                    // Comparing both attributes
+                    compareAttributes( originalAttribute, destinationAttribute, modificationEntry );
+                }
+
+                evaluatedATs.add( originalAttributeType );
+            }
+        }
+
+        // Checking attributes of the destination entry
+        for ( Attribute destinationAttribute : destinationEntry )
+        {
+            AttributeType destinationAttributeType = destinationAttribute.getAttributeType();
+
+            // We're only working on 'userApplications' attributes
+            if ( destinationAttributeType.getUsage() == UsageEnum.USER_APPLICATIONS )
+            {
+                // Checking if the current AT has already been evaluated
+                if ( !evaluatedATs.contains( destinationAttributeType ) )
+                {
+                    // Creating a modification for the added AT
+                    Modification modification = new DefaultModification();
+                    modification.setOperation( ModificationOperation.ADD_ATTRIBUTE );
+                    Attribute attribute = new DefaultAttribute( destinationAttributeType );
+                    modification.setAttribute( attribute );
+
+                    for ( Value<?> value : destinationAttribute )
+                    {
+                        try
+                        {
+                            attribute.add( value );
+                        }
+                        catch ( LdapInvalidAttributeValueException liave )
+                        {
+                            // TODO : handle the exception
+                        }
+                    }
+
+                    modificationEntry.addModification( modification );
+                }
+            }
+        }
+    }
+
+
+    /**
+     * Compares the two given attributes.
+     *
+     * @param originalAttribute
+     *      the original attribute
+     * @param destinationAttribute
+     *      the destination attribute
+     * @param modificationEntry
+     *      the modification LDIF entry holding the modifications 
+     *      between both attributes
+     */
+    private void compareAttributes( Attribute originalAttribute, Attribute destinationAttribute,
+        LdifEntry modificationEntry )
+    {
+        // Creating a list to store the already evaluated values
+        List<Value<?>> evaluatedValues = new ArrayList<Value<?>>();
+
+        // Checking values of the original attribute
+        for ( Value<?> originalValue : originalAttribute )
+        {
+            if ( !destinationAttribute.contains( originalValue ) )
+            {
+                // Creating a modification for the removed AT value
+                Modification modification = new DefaultModification();
+                modification.setOperation( ModificationOperation.REMOVE_ATTRIBUTE );
+                Attribute attribute = new DefaultAttribute( originalAttribute.getAttributeType() );
+                modification.setAttribute( attribute );
+
+                try
+                {
+                    attribute.add( originalValue );
+                }
+                catch ( LdapInvalidAttributeValueException liave )
+                {
+                    // TODO : handle the exception
+                }
+
+                modificationEntry.addModification( modification );
+            }
+
+            evaluatedValues.add( originalValue );
+        }
+
+        // Checking values of the destination attribute
+        for ( Value<?> destinationValue : destinationAttribute )
+        {
+            if ( !evaluatedValues.contains( destinationValue ) )
+            {
+                // Creating a modification for the added AT value
+                Modification modification = new DefaultModification();
+                modification.setOperation( ModificationOperation.ADD_ATTRIBUTE );
+                Attribute attribute = new DefaultAttribute( originalAttribute.getAttributeType() );
+                modification.setAttribute( attribute );
+
+                try
+                {
+                    attribute.add( destinationValue );
+                }
+                catch ( LdapInvalidAttributeValueException liave )
+                {
+                    // TODO : handle the exception
+                }
+
+                modificationEntry.addModification( modification );
+            }
+        }
+    }
+
+
+    /**
+     * Gets the original partition.
+     *
+     * @return
+     *      the original partition
+     */
+    public Partition getOriginalPartition()
+    {
+        return originalPartition;
+    }
+
+
+    /**
+     * Sets the original partition.
+     *
+     * @param originalPartition
+     *      the original partition
+     */
+    public void setOriginalPartition( Partition originalPartition )
+    {
+        this.originalPartition = originalPartition;
+    }
+
+
+    /**
+     * Gets the destination partition.
+     *
+     * @return
+     *      the destination partition
+     */
+    public Partition getDestinationPartition()
+    {
+        return destinationPartition;
+    }
+
+
+    /**
+     * Sets the destination partition.
+     *
+     * @param destinationPartition
+     *      the destination partition
+     */
+    public void setDestinationPartition( Partition destinationPartition )
+    {
+        this.destinationPartition = destinationPartition;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffException.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffException.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffException.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/jobs/PartitionsDiffException.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,80 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.studio.openldap.config.jobs;
+
+
+/**
+ * This exception can be raised when an error occurs when computing the diff
+ * between two partitions.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class PartitionsDiffException extends Exception
+{
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * Constructs a new PartitionsDiffException with <code>null</code> as its detail message.
+     */
+    public PartitionsDiffException()
+    {
+        super();
+    }
+
+
+    /**
+     * Constructs a new PartitionsDiffException with the specified detail message and cause.
+     *
+     * @param message
+     *      the message
+     * @param cause
+     *      the cause
+     */
+    public PartitionsDiffException( String message, Throwable cause )
+    {
+        super( message, cause );
+    }
+
+
+    /**
+     * Constructs a new PartitionsDiffException with the specified detail message.
+     *
+     * @param message
+     *      the message
+     */
+    public PartitionsDiffException( String message )
+    {
+        super( message );
+    }
+
+
+    /**
+     * Constructs a new exception with the specified cause and a detail message 
+     * of <code>(cause==null ? null : cause.toString())</code>
+     *
+     * @param cause
+     *      the cause
+     */
+    public PartitionsDiffException( Throwable cause )
+    {
+        super( cause );
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages.properties?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages.properties Wed Mar 25 13:26:29 2015
@@ -0,0 +1 @@
+OpenLdapConfigurationPlugin.UnableGetProperties=Unable to get the plugin properties.

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_de.properties?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_de.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_de.properties Wed Mar 25 13:26:29 2015
@@ -0,0 +1 @@
+OpenLdapConfigurationPlugin.UnableGetProperties=Die Plugin Eigenschaften sind nicht erreichbar.

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_fr.properties?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_fr.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/messages_fr.properties Wed Mar 25 13:26:29 2015
@@ -0,0 +1 @@
+OpenLdapConfigurationPlugin.UnableGetProperties=Impossible de r\u00E9cup\u00E9rer les propri\u00E9t\u00E9s du plugin

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/AuxiliaryObjectClass.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/AuxiliaryObjectClass.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/AuxiliaryObjectClass.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/AuxiliaryObjectClass.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,9 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+/**
+ * Java bean for an auxiliary object class.
+ */
+public abstract class AuxiliaryObjectClass
+{
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/ConfigurationElement.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/ConfigurationElement.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/ConfigurationElement.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/ConfigurationElement.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,80 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.studio.openldap.config.model;
+
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+/**
+ * An annotation used to specify that the qualified field is configuration element.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface ConfigurationElement
+{
+    /**
+     * Returns the attribute type.
+     *
+     * @return
+     *      the attribute type
+     */
+    String attributeType() default "";
+
+
+    /**
+     * Returns the string value of the default value.
+     *
+     * @return
+     *      the string value of the default value
+     */
+    String defaultValue() default "";
+
+
+    /**
+     * Returns true if the qualified field is optional.
+     *
+     * @return
+     *      <code>true</code> if the qualified field is optional,
+     *      <code>false</code> if not.
+     */
+    boolean isOptional() default true;
+
+
+    /**
+     * Returns true if of the qualified field (attribute type and value) 
+     * is the Rdn of the entry.
+     *
+     * @return
+     *      <code>true</code> if of the qualified field (attribute type and value) 
+     * is the Rdn of the entry,
+     *      <code>false</code> if not.
+     */
+    boolean isRdn() default false;
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAccessLogConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAccessLogConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAccessLogConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAccessLogConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,194 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.directory.api.ldap.model.name.Dn;
+
+
+/**
+ * Java bean for the 'olcAccessLogConfig' object class.
+ */
+public class OlcAccessLogConfig extends OlcOverlayConfig
+{
+    /**
+     * Field for the 'olcAccessLogDB' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAccessLogDB", isOptional = false)
+    private Dn olcAccessLogDB;
+
+    /**
+     * Field for the 'olcAccessLogOld' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAccessLogOld")
+    private String olcAccessLogOld;
+
+    /**
+     * Field for the 'olcAccessLogOldAttr' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAccessLogOldAttr")
+    private List<String> olcAccessLogOldAttr = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcAccessLogOps' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAccessLogOps")
+    private List<String> olcAccessLogOps = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcAccessLogPurge' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAccessLogPurge")
+    private String olcAccessLogPurge;
+
+    /**
+     * Field for the 'olcAccessLogSuccess' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAccessLogSuccess")
+    private Boolean olcAccessLogSuccess;
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcAccessLogOldAttr( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcAccessLogOldAttr.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcAccessLogOps( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcAccessLogOps.add( string );
+        }
+    }
+
+
+    public void clearOlcAccessLogOldAttr()
+    {
+        olcAccessLogOldAttr.clear();
+    }
+
+
+    public void clearOlcAccessLogOps()
+    {
+        olcAccessLogOps.clear();
+    }
+
+
+    /**
+     * @return the olcAccessLogDB
+     */
+    public Dn getOlcAccessLogDB()
+    {
+        return olcAccessLogDB;
+    }
+
+
+    /**
+     * @return the olcAccessLogOld
+     */
+    public String getOlcAccessLogOld()
+    {
+        return olcAccessLogOld;
+    }
+
+
+    /**
+     * @return the olcAccessLogOldAttr
+     */
+    public List<String> getOlcAccessLogOldAttr()
+    {
+        return olcAccessLogOldAttr;
+    }
+
+
+    /**
+     * @return the olcAccessLogOps
+     */
+    public List<String> getOlcAccessLogOps()
+    {
+        return olcAccessLogOps;
+    }
+
+
+    /**
+     * @return the olcAccessLogPurge
+     */
+    public String getOlcAccessLogPurge()
+    {
+        return olcAccessLogPurge;
+    }
+
+
+    /**
+     * @return the olcAccessLogSuccess
+     */
+    public Boolean getOlcAccessLogSuccess()
+    {
+        return olcAccessLogSuccess;
+    }
+
+
+    /**
+     * @param olcAccessLogDB the olcAccessLogDB to set
+     */
+    public void setOlcAccessLogDB( Dn olcAccessLogDB )
+    {
+        this.olcAccessLogDB = olcAccessLogDB;
+    }
+
+
+    /**
+     * @param olcAccessLogOld the olcAccessLogOld to set
+     */
+    public void setOlcAccessLogOld( String olcAccessLogOld )
+    {
+        this.olcAccessLogOld = olcAccessLogOld;
+    }
+
+
+    /**
+     * @param olcAccessLogOldAttr the olcAccessLogOldAttr to set
+     */
+    public void setOlcAccessLogOldAttr( List<String> olcAccessLogOldAttr )
+    {
+        this.olcAccessLogOldAttr = olcAccessLogOldAttr;
+    }
+
+
+    /**
+     * @param olcAccessLogOps the olcAccessLogOps to set
+     */
+    public void setOlcAccessLogOps( List<String> olcAccessLogOps )
+    {
+        this.olcAccessLogOps = olcAccessLogOps;
+    }
+
+
+    /**
+     * @param olcAccessLogPurge the olcAccessLogPurge to set
+     */
+    public void setOlcAccessLogPurge( String olcAccessLogPurge )
+    {
+        this.olcAccessLogPurge = olcAccessLogPurge;
+    }
+
+
+    /**
+     * @param olcAccessLogSuccess the olcAccessLogSuccess to set
+     */
+    public void setOlcAccessLogSuccess( Boolean olcAccessLogSuccess )
+    {
+        this.olcAccessLogSuccess = olcAccessLogSuccess;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAuditlogConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAuditlogConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAuditlogConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcAuditlogConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,54 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Java bean for the 'olcAuditlogConfig' object class.
+ */
+public class OlcAuditlogConfig extends OlcOverlayConfig
+{
+    /**
+     * Field for the 'olcAuditlogFile' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAuditlogFile")
+    private List<String> olcAuditlogFile = new ArrayList<String>();
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcAuditlogFile( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcAuditlogFile.add( string );
+        }
+    }
+
+
+    public void clearOlcAuditlogFile()
+    {
+        olcAuditlogFile.clear();
+    }
+
+
+    /**
+     * @return the olcAuditlogFile
+     */
+    public List<String> getOlcAuditlogFile()
+    {
+        return olcAuditlogFile;
+    }
+
+
+    /**
+     * @param olcAuditlogFile the olcAuditlogFile to set
+     */
+    public void setOlcAuditlogFile( List<String> olcAuditlogFile )
+    {
+        this.olcAuditlogFile = olcAuditlogFile;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcBdbConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcBdbConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcBdbConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcBdbConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,498 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Java bean for the 'olcBdbConfig' object class.
+ */
+public class OlcBdbConfig extends OlcDatabaseConfig
+{
+    /**
+     * Field for the 'olcDbDirectory' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbDirectory", isOptional = false)
+    private String olcDbDirectory;
+
+    /**
+     * Field for the 'olcDbCacheFree' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbCacheFree")
+    private Integer olcDbCacheFree;
+
+    /**
+     * Field for the 'olcDbCacheSize' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbCacheSize")
+    private Integer olcDbCacheSize;
+
+    /**
+     * Field for the 'olcDbCheckpoint' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbCheckpoint")
+    private String olcDbCheckpoint;
+
+    /**
+     * Field for the 'olcDbConfig' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbConfig")
+    private List<String> olcDbConfig = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcDbCryptFile' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbCryptFile")
+    private String olcDbCryptFile;
+
+    /**
+     * Field for the 'olcDbCryptKey' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbCryptKey")
+    private byte[] olcDbCryptKey;
+
+    /**
+     * Field for the 'olcDbDirtyRead' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbDirtyRead")
+    private Boolean olcDbDirtyRead;
+
+    /**
+     * Field for the 'olcDbDNcacheSize' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbDNcacheSize")
+    private Integer olcDbDNcacheSize;
+
+    /**
+     * Field for the 'olcDbDLcacheSize' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbIDLcacheSize")
+    private Integer olcDbIDLcacheSize;
+
+    /**
+     * Field for the 'olcDbIndex' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbIndex")
+    private List<String> olcDbIndex = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcDbLinearIndex' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbLinearIndex")
+    private Boolean olcDbLinearIndex;
+
+    /**
+     * Field for the 'olcDbLockDetect' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbLockDetect")
+    private String olcDbLockDetect;
+
+    /**
+     * Field for the 'olcDbNoSync' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbMode")
+    private String olcDbMode;
+
+    /**
+     * Field for the 'olcDbNoSync' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbNoSync")
+    private Boolean olcDbNoSync;
+
+    /**
+     * Field for the 'olcDbPageSize' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbPageSize")
+    private List<String> olcDbPageSize = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcDbSearchStack' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbSearchStack")
+    private Integer olcDbSearchStack;
+
+    /**
+     * Field for the 'olcDbShmKey' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbShmKey")
+    private Integer olcDbShmKey;
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcDbConfig( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcDbConfig.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcDbIndex( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcDbIndex.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcDbPageSize( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcDbPageSize.add( string );
+        }
+    }
+
+
+    public void clearOlcDbConfig()
+    {
+        olcDbConfig.clear();
+    }
+
+
+    public void clearOlcDbIndex()
+    {
+        olcDbIndex.clear();
+    }
+
+
+    public void clearOlcDbPageSize()
+    {
+        olcDbPageSize.clear();
+    }
+
+
+    /**
+     * @return the olcDbCacheFree
+     */
+    public Integer getOlcDbCacheFree()
+    {
+        return olcDbCacheFree;
+    }
+
+
+    /**
+     * @return the olcDbCacheSize
+     */
+    public Integer getOlcDbCacheSize()
+    {
+        return olcDbCacheSize;
+    }
+
+
+    /**
+     * @return the olcDbCheckpoint
+     */
+    public String getOlcDbCheckpoint()
+    {
+        return olcDbCheckpoint;
+    }
+
+
+    /**
+     * @return the olcDbConfig
+     */
+    public List<String> getOlcDbConfig()
+    {
+        return olcDbConfig;
+    }
+
+
+    /**
+     * @return the olcDbCryptFile
+     */
+    public String getOlcDbCryptFile()
+    {
+        return olcDbCryptFile;
+    }
+
+
+    /**
+     * @return the olcDbCryptKey
+     */
+    public byte[] getOlcDbCryptKey()
+    {
+        return olcDbCryptKey;
+    }
+
+
+    /**
+     * @return the olcDbDirectory
+     */
+    public String getOlcDbDirectory()
+    {
+        return olcDbDirectory;
+    }
+
+
+    /**
+     * @return the olcDbDirtyRead
+     */
+    public Boolean getOlcDbDirtyRead()
+    {
+        return olcDbDirtyRead;
+    }
+
+
+    /**
+     * @return the olcDbDNcacheSize
+     */
+    public Integer getOlcDbDNcacheSize()
+    {
+        return olcDbDNcacheSize;
+    }
+
+
+    /**
+     * @return the olcDbIDLcacheSize
+     */
+    public Integer getOlcDbIDLcacheSize()
+    {
+        return olcDbIDLcacheSize;
+    }
+
+
+    /**
+     * @return the olcDbIndex
+     */
+    public List<String> getOlcDbIndex()
+    {
+        return olcDbIndex;
+    }
+
+
+    /**
+     * @return the olcDbLinearIndex
+     */
+    public Boolean getOlcDbLinearIndex()
+    {
+        return olcDbLinearIndex;
+    }
+
+
+    /**
+     * @return the olcDbLockDetect
+     */
+    public String getOlcDbLockDetect()
+    {
+        return olcDbLockDetect;
+    }
+
+
+    /**
+     * @return the olcDbMode
+     */
+    public String getOlcDbMode()
+    {
+        return olcDbMode;
+    }
+
+
+    /**
+     * @return the olcDbNoSync
+     */
+    public Boolean getOlcDbNoSync()
+    {
+        return olcDbNoSync;
+    }
+
+
+    /**
+     * @return the olcDbPageSize
+     */
+    public List<String> getOlcDbPageSize()
+    {
+        return olcDbPageSize;
+    }
+
+
+    /**
+     * @return the olcDbSearchStack
+     */
+    public Integer getOlcDbSearchStack()
+    {
+        return olcDbSearchStack;
+    }
+
+
+    /**
+     * @return the olcDbShmKey
+     */
+    public Integer getOlcDbShmKey()
+    {
+        return olcDbShmKey;
+    }
+
+
+    /**
+     * @param olcDbCacheFree the olcDbCacheFree to set
+     */
+    public void setOlcDbCacheFree( Integer olcDbCacheFree )
+    {
+        this.olcDbCacheFree = olcDbCacheFree;
+    }
+
+
+    /**
+     * @param olcDbCacheSize the olcDbCacheSize to set
+     */
+    public void setOlcDbCacheSize( Integer olcDbCacheSize )
+    {
+        this.olcDbCacheSize = olcDbCacheSize;
+    }
+
+
+    /**
+     * @param olcDbCheckpoint the olcDbCheckpoint to set
+     */
+    public void setOlcDbCheckpoint( String olcDbCheckpoint )
+    {
+        this.olcDbCheckpoint = olcDbCheckpoint;
+    }
+
+
+    /**
+     * @param olcDbConfig the olcDbConfig to set
+     */
+    public void setOlcDbConfig( List<String> olcDbConfig )
+    {
+        this.olcDbConfig = olcDbConfig;
+    }
+
+
+    /**
+     * @param olcDbCryptFile the olcDbCryptFile to set
+     */
+    public void setOlcDbCryptFile( String olcDbCryptFile )
+    {
+        this.olcDbCryptFile = olcDbCryptFile;
+    }
+
+
+    /**
+     * @param olcDbCryptKey the olcDbCryptKey to set
+     */
+    public void setOlcDbCryptKey( byte[] olcDbCryptKey )
+    {
+        this.olcDbCryptKey = olcDbCryptKey;
+    }
+
+
+    /**
+     * @param olcDbDirectory the olcDbDirectory to set
+     */
+    public void setOlcDbDirectory( String olcDbDirectory )
+    {
+        this.olcDbDirectory = olcDbDirectory;
+    }
+
+
+    /**
+     * @param olcDbDirtyRead the olcDbDirtyRead to set
+     */
+    public void setOlcDbDirtyRead( Boolean olcDbDirtyRead )
+    {
+        this.olcDbDirtyRead = olcDbDirtyRead;
+    }
+
+
+    /**
+     * @param olcDbDNcacheSize the olcDbDNcacheSize to set
+     */
+    public void setOlcDbDNcacheSize( Integer olcDbDNcacheSize )
+    {
+        this.olcDbDNcacheSize = olcDbDNcacheSize;
+    }
+
+
+    /**
+     * @param olcDbIDLcacheSize the olcDbIDLcacheSize to set
+     */
+    public void setOlcDbIDLcacheSize( Integer olcDbIDLcacheSize )
+    {
+        this.olcDbIDLcacheSize = olcDbIDLcacheSize;
+    }
+
+
+    /**
+     * @param olcDbIndex the olcDbIndex to set
+     */
+    public void setOlcDbIndex( List<String> olcDbIndex )
+    {
+        this.olcDbIndex = olcDbIndex;
+    }
+
+
+    /**
+     * @param olcDbLinearIndex the olcDbLinearIndex to set
+     */
+    public void setOlcDbLinearIndex( Boolean olcDbLinearIndex )
+    {
+        this.olcDbLinearIndex = olcDbLinearIndex;
+    }
+
+
+    /**
+     * @param olcDbLockDetect the olcDbLockDetect to set
+     */
+    public void setOlcDbLockDetect( String olcDbLockDetect )
+    {
+        this.olcDbLockDetect = olcDbLockDetect;
+    }
+
+
+    /**
+     * @param olcDbMode the olcDbMode to set
+     */
+    public void setOlcDbMode( String olcDbMode )
+    {
+        this.olcDbMode = olcDbMode;
+    }
+
+
+    /**
+     * @param olcDbNoSync the olcDbNoSync to set
+     */
+    public void setOlcDbNoSync( Boolean olcDbNoSync )
+    {
+        this.olcDbNoSync = olcDbNoSync;
+    }
+
+
+    /**
+     * @param olcDbPageSize the olcDbPageSize to set
+     */
+    public void setOlcDbPageSize( List<String> olcDbPageSize )
+    {
+        this.olcDbPageSize = olcDbPageSize;
+    }
+
+
+    /**
+     * @param olcDbSearchStack the olcDbSearchStack to set
+     */
+    public void setOlcDbSearchStack( Integer olcDbSearchStack )
+    {
+        this.olcDbSearchStack = olcDbSearchStack;
+    }
+
+
+    /**
+     * @param olcDbShmKey the olcDbShmKey to set
+     */
+    public void setOlcDbShmKey( Integer olcDbShmKey )
+    {
+        this.olcDbShmKey = olcDbShmKey;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcChainConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcChainConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcChainConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcChainConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,104 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+/**
+ * Java bean for the 'olcChainConfig' object class.
+ */
+public class OlcChainConfig extends OlcOverlayConfig
+{
+    /**
+     * Field for the 'olcChainCacheURI' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcChainCacheURI")
+    private Boolean olcChainCacheURI;
+
+    /**
+     * Field for the 'olcChainingBehavior' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcChainingBehavior")
+    private String olcChainingBehavior;
+
+    /**
+     * Field for the 'olcChainMaxReferralDepth' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcChainMaxReferralDepth")
+    private Integer olcChainMaxReferralDepth;
+
+    /**
+     * Field for the 'olcChainReturnError' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcChainReturnError")
+    private Boolean olcChainReturnError;
+
+
+    /**
+     * @return the olcChainCacheURI
+     */
+    public Boolean getOlcChainCacheURI()
+    {
+        return olcChainCacheURI;
+    }
+
+
+    /**
+     * @return the olcChainingBehavior
+     */
+    public String getOlcChainingBehavior()
+    {
+        return olcChainingBehavior;
+    }
+
+
+    /**
+     * @return the olcChainMaxReferralDepth
+     */
+    public Integer getOlcChainMaxReferralDepth()
+    {
+        return olcChainMaxReferralDepth;
+    }
+
+
+    /**
+     * @return the olcChainReturnError
+     */
+    public Boolean getOlcChainReturnError()
+    {
+        return olcChainReturnError;
+    }
+
+
+    /**
+     * @param olcChainCacheURI the olcChainCacheURI to set
+     */
+    public void setOlcChainCacheURI( Boolean olcChainCacheURI )
+    {
+        this.olcChainCacheURI = olcChainCacheURI;
+    }
+
+
+    /**
+     * @param olcChainingBehavior the olcChainingBehavior to set
+     */
+    public void setOlcChainingBehavior( String olcChainingBehavior )
+    {
+        this.olcChainingBehavior = olcChainingBehavior;
+    }
+
+
+    /**
+     * @param olcChainMaxReferralDepth the olcChainMaxReferralDepth to set
+     */
+    public void setOlcChainMaxReferralDepth( Integer olcChainMaxReferralDepth )
+    {
+        this.olcChainMaxReferralDepth = olcChainMaxReferralDepth;
+    }
+
+
+    /**
+     * @param olcChainReturnError the olcChainReturnError to set
+     */
+    public void setOlcChainReturnError( Boolean olcChainReturnError )
+    {
+        this.olcChainReturnError = olcChainReturnError;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,77 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.directory.api.ldap.model.name.Dn;
+
+
+/**
+ * Java bean for the 'olcConfig' object class.
+ */
+public class OlcConfig
+{
+    /** The parent DN of the associated entry */
+    protected Dn parentDn;
+    
+    
+    /** The list of auxiliary object classes */
+    protected List<AuxiliaryObjectClass> auxiliaryObjectClasses = new ArrayList<AuxiliaryObjectClass>();
+
+
+    /**
+     * @param auxiliaryObjectClasses
+     */
+    public void addAuxiliaryObjectClasses( AuxiliaryObjectClass... auxiliaryObjectClasses )
+    {
+        for ( AuxiliaryObjectClass auxiliaryObjectClass : auxiliaryObjectClasses )
+        {
+            this.auxiliaryObjectClasses.add( auxiliaryObjectClass );
+        }
+    }
+
+
+    /**
+     * Gets the list of objects associated with the auxiliary classes.
+     *
+     * @return the list of objects associated with auxiliary classes.
+     */
+    public List<AuxiliaryObjectClass> getAuxiliaryObjectClasses()
+    {
+        return auxiliaryObjectClasses;
+    }
+
+
+    /**
+     * Gets the number of auxiliary object classes.
+     *
+     * @return the number of auxiliary object classes
+     */
+    public int getAuxiliaryObjectClassesSize()
+    {
+        return auxiliaryObjectClasses.size();
+    }
+
+
+    /**
+     * Gets the parent DN of the associated entry.
+     * 
+     * @return the dn the parent DN of the asssociated entry
+     */
+    public Dn getParentDn()
+    {
+        return parentDn;
+    }
+
+
+    /**
+     * Sets the parent DN of the associated entry.
+     * 
+     * @param dn the parent dn to set
+     */
+    public void setParentDn( Dn parentDn )
+    {
+        this.parentDn = parentDn;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDatabaseConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDatabaseConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDatabaseConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDatabaseConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,932 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.directory.api.ldap.model.name.Dn;
+
+
+/**
+ * Java bean for the 'olcDatabaseConfig' object class.
+ */
+public class OlcDatabaseConfig extends OlcConfig
+{
+    /**
+     * Field for the 'olcDatabase' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDatabase", isOptional = false, isRdn = true)
+    private String olcDatabase;
+
+    /**
+     * Field for the 'olcAccess' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAccess")
+    private List<String> olcAccess = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcAddContentAcl' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcAddContentAcl")
+    private Boolean olcAddContentAcl;
+
+    /**
+     * Field for the 'olcHidden' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcHidden")
+    private Boolean olcHidden;
+
+    /**
+     * Field for the 'olcLastMod' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcLastMod")
+    private Boolean olcLastMod;
+
+    /**
+     * Field for the 'olcLimits' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcLimits")
+    private List<String> olcLimits = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcMaxDerefDepth' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcMaxDerefDepth")
+    private Integer olcMaxDerefDepth;
+
+    /**
+     * Field for the 'olcMirrorMode' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcMirrorMode")
+    private Boolean olcMirrorMode;
+
+    /**
+     * Field for the 'olcMonitoring' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcMonitoring")
+    private Boolean olcMonitoring;
+
+    /**
+     * Field for the 'olcPlugin' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcPlugin")
+    private List<String> olcPlugin = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcReadOnly' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcReadOnly")
+    private Boolean olcReadOnly;
+
+    /**
+     * Field for the 'olcReplica' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcReplica")
+    private List<String> olcReplica = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcReplicaArgsFile' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcReplicaArgsFile")
+    private String olcReplicaArgsFile;
+
+    /**
+     * Field for the 'olcReplicaPidFile' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcReplicaPidFile")
+    private String olcReplicaPidFile;
+
+    /**
+     * Field for the 'olcReplicationInterval' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcReplicationInterval")
+    private Integer olcReplicationInterval;
+
+    /**
+     * Field for the 'olcReplogFile' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcReplogFile")
+    private String olcReplogFile;
+
+    /**
+     * Field for the 'olcRequires' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcRequires")
+    private List<String> olcRequires = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcRestrict' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcRestrict")
+    private List<String> olcRestrict = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcRootDN' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcRootDN")
+    private Dn olcRootDN;
+
+    /**
+     * Field for the 'olcRootPW' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcRootPW")
+    private String olcRootPW;
+
+    /**
+     * Field for the 'olcSchemaDN' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSchemaDN")
+    private Dn olcSchemaDN;
+
+    /**
+     * Field for the 'olcSecurity' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSecurity")
+    private List<String> olcSecurity = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcSizeLimit' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSizeLimit")
+    private String olcSizeLimit;
+
+    /**
+     * Field for the 'olcSubordinate' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSubordinate")
+    private String olcSubordinate;
+
+    /**
+     * Field for the 'olcSuffix' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSuffix")
+    private List<Dn> olcSuffix = new ArrayList<Dn>();
+
+    /**
+     * Field for the 'olcSyncrepl' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSyncrepl")
+    private List<String> olcSyncrepl = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcSyncUseSubentry' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSyncUseSubentry")
+    private Boolean olcSyncUseSubentry;
+
+    /**
+     * Field for the 'olcTimeLimit' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcTimeLimit")
+    private List<String> olcTimeLimit = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcUpdateDN' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcUpdateDN")
+    private Dn olcUpdateDN;
+
+    /**
+     * Field for the 'olcUpdateRef' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcUpdateRef")
+    private List<String> olcUpdateRef = new ArrayList<String>();
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcAccess( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcAccess.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcLimits( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcLimits.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcPlugin( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcPlugin.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcReplica( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcReplica.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcRequires( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcRequires.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcRestrict( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcRestrict.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcSecurity( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcSecurity.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcSuffix( Dn... dns )
+    {
+        for ( Dn dn : dns )
+        {
+            olcSuffix.add( dn );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcSyncrepl( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcSyncrepl.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcTimeLimit( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcTimeLimit.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcUpdateRef( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcUpdateRef.add( string );
+        }
+    }
+
+
+    public void clearOlcAccess()
+    {
+        olcAccess.clear();
+    }
+
+
+    public void clearOlcLimits()
+    {
+        olcLimits.clear();
+    }
+
+
+    public void clearOlcPlugin()
+    {
+        olcPlugin.clear();
+    }
+
+
+    public void clearOlcReplica()
+    {
+        olcReplica.clear();
+    }
+
+
+    public void clearOlcRequires()
+    {
+        olcRequires.clear();
+    }
+
+
+    public void clearOlcRestrict()
+    {
+        olcRestrict.clear();
+    }
+
+
+    public void clearOlcSecurity()
+    {
+        olcSecurity.clear();
+    }
+
+
+    public void clearOlcSuffix()
+    {
+        olcSuffix.clear();
+    }
+
+
+    public void clearOlcSyncrepl()
+    {
+        olcSyncrepl.clear();
+    }
+
+
+    public void clearOlcTimeLimit()
+    {
+        olcTimeLimit.clear();
+    }
+
+
+    public void clearOlcUpdateRef()
+    {
+        olcUpdateRef.clear();
+    }
+
+
+    /**
+     * @return the olcAccess
+     */
+    public List<String> getOlcAccess()
+    {
+        return olcAccess;
+    }
+
+
+    /**
+     * @return the olcAddContentAcl
+     */
+    public Boolean getOlcAddContentAcl()
+    {
+        return olcAddContentAcl;
+    }
+
+
+    /**
+     * @return the olcDatabase
+     */
+    public String getOlcDatabase()
+    {
+        return olcDatabase;
+    }
+
+
+    /**
+     * @return the olcHidden
+     */
+    public Boolean getOlcHidden()
+    {
+        return olcHidden;
+    }
+
+
+    /**
+     * @return the olcLastMod
+     */
+    public Boolean getOlcLastMod()
+    {
+        return olcLastMod;
+    }
+
+
+    /**
+     * @return the olcLimits
+     */
+    public List<String> getOlcLimits()
+    {
+        return olcLimits;
+    }
+
+
+    /**
+     * @return the olcMaxDerefDepth
+     */
+    public Integer getOlcMaxDerefDepth()
+    {
+        return olcMaxDerefDepth;
+    }
+
+
+    /**
+     * @return the olcMirrorMode
+     */
+    public Boolean getOlcMirrorMode()
+    {
+        return olcMirrorMode;
+    }
+
+
+    /**
+     * @return the olcMonitoring
+     */
+    public Boolean getOlcMonitoring()
+    {
+        return olcMonitoring;
+    }
+
+
+    /**
+     * @return the olcPlugin
+     */
+    public List<String> getOlcPlugin()
+    {
+        return olcPlugin;
+    }
+
+
+    /**
+     * @return the olcReadOnly
+     */
+    public Boolean getOlcReadOnly()
+    {
+        return olcReadOnly;
+    }
+
+
+    /**
+     * @return the olcReplica
+     */
+    public List<String> getOlcReplica()
+    {
+        return olcReplica;
+    }
+
+
+    /**
+     * @return the olcReplicaArgsFile
+     */
+    public String getOlcReplicaArgsFile()
+    {
+        return olcReplicaArgsFile;
+    }
+
+
+    /**
+     * @return the olcReplicaPidFile
+     */
+    public String getOlcReplicaPidFile()
+    {
+        return olcReplicaPidFile;
+    }
+
+
+    /**
+     * @return the olcReplicationInterval
+     */
+    public Integer getOlcReplicationInterval()
+    {
+        return olcReplicationInterval;
+    }
+
+
+    /**
+     * @return the olcReplogFile
+     */
+    public String getOlcReplogFile()
+    {
+        return olcReplogFile;
+    }
+
+
+    /**
+     * @return the olcRequires
+     */
+    public List<String> getOlcRequires()
+    {
+        return olcRequires;
+    }
+
+
+    /**
+     * @return the olcRestrict
+     */
+    public List<String> getOlcRestrict()
+    {
+        return olcRestrict;
+    }
+
+
+    /**
+     * @return the olcRootDN
+     */
+    public Dn getOlcRootDN()
+    {
+        return olcRootDN;
+    }
+
+
+    /**
+     * @return the olcRootPW
+     */
+    public String getOlcRootPW()
+    {
+        return olcRootPW;
+    }
+
+
+    /**
+     * @return the olcSchemaDN
+     */
+    public Dn getOlcSchemaDN()
+    {
+        return olcSchemaDN;
+    }
+
+
+    /**
+     * @return the olcSecurity
+     */
+    public List<String> getOlcSecurity()
+    {
+        return olcSecurity;
+    }
+
+
+    /**
+     * @return the olcSizeLimit
+     */
+    public String getOlcSizeLimit()
+    {
+        return olcSizeLimit;
+    }
+
+
+    /**
+     * @return the olcSubordinate
+     */
+    public String getOlcSubordinate()
+    {
+        return olcSubordinate;
+    }
+
+
+    /**
+     * @return the olcSuffix
+     */
+    public List<Dn> getOlcSuffix()
+    {
+        return olcSuffix;
+    }
+
+
+    /**
+     * @return the olcSyncrepl
+     */
+    public List<String> getOlcSyncrepl()
+    {
+        return olcSyncrepl;
+    }
+
+
+    /**
+     * @return the olcSyncUseSubentry
+     */
+    public Boolean getOlcSyncUseSubentry()
+    {
+        return olcSyncUseSubentry;
+    }
+
+
+    /**
+     * @return the olcTimeLimit
+     */
+    public List<String> getOlcTimeLimit()
+    {
+        return olcTimeLimit;
+    }
+
+
+    /**
+     * @return the olcUpdateDN
+     */
+    public Dn getOlcUpdateDN()
+    {
+        return olcUpdateDN;
+    }
+
+
+    /**
+     * @return the olcUpdateRef
+     */
+    public List<String> getOlcUpdateRef()
+    {
+        return olcUpdateRef;
+    }
+
+
+    /**
+     * @param olcAccess the olcAccess to set
+     */
+    public void setOlcAccess( List<String> olcAccess )
+    {
+        this.olcAccess = olcAccess;
+    }
+
+
+    /**
+     * @param olcAddContentAcl the olcAddContentAcl to set
+     */
+    public void setOlcAddContentAcl( Boolean olcAddContentAcl )
+    {
+        this.olcAddContentAcl = olcAddContentAcl;
+    }
+
+
+    /**
+     * @param olcDatabase the olcDatabase to set
+     */
+    public void setOlcDatabase( String olcDatabase )
+    {
+        this.olcDatabase = olcDatabase;
+    }
+
+
+    /**
+     * @param olcHidden the olcHidden to set
+     */
+    public void setOlcHidden( Boolean olcHidden )
+    {
+        this.olcHidden = olcHidden;
+    }
+
+
+    /**
+     * @param olcLastMod the olcLastMod to set
+     */
+    public void setOlcLastMod( Boolean olcLastMod )
+    {
+        this.olcLastMod = olcLastMod;
+    }
+
+
+    /**
+     * @param olcLimits the olcLimits to set
+     */
+    public void setOlcLimits( List<String> olcLimits )
+    {
+        this.olcLimits = olcLimits;
+    }
+
+
+    /**
+     * @param olcMaxDerefDepth the olcMaxDerefDepth to set
+     */
+    public void setOlcMaxDerefDepth( Integer olcMaxDerefDepth )
+    {
+        this.olcMaxDerefDepth = olcMaxDerefDepth;
+    }
+
+
+    /**
+     * @param olcMirrorMode the olcMirrorMode to set
+     */
+    public void setOlcMirrorMode( Boolean olcMirrorMode )
+    {
+        this.olcMirrorMode = olcMirrorMode;
+    }
+
+
+    /**
+     * @param olcMonitoring the olcMonitoring to set
+     */
+    public void setOlcMonitoring( Boolean olcMonitoring )
+    {
+        this.olcMonitoring = olcMonitoring;
+    }
+
+
+    /**
+     * @param olcPlugin the olcPlugin to set
+     */
+    public void setOlcPlugin( List<String> olcPlugin )
+    {
+        this.olcPlugin = olcPlugin;
+    }
+
+
+    /**
+     * @param olcReadOnly the olcReadOnly to set
+     */
+    public void setOlcReadOnly( Boolean olcReadOnly )
+    {
+        this.olcReadOnly = olcReadOnly;
+    }
+
+
+    /**
+     * @param olcReplica the olcReplica to set
+     */
+    public void setOlcReplica( List<String> olcReplica )
+    {
+        this.olcReplica = olcReplica;
+    }
+
+
+    /**
+     * @param olcReplicaArgsFile the olcReplicaArgsFile to set
+     */
+    public void setOlcReplicaArgsFile( String olcReplicaArgsFile )
+    {
+        this.olcReplicaArgsFile = olcReplicaArgsFile;
+    }
+
+
+    /**
+     * @param olcReplicaPidFile the olcReplicaPidFile to set
+     */
+    public void setOlcReplicaPidFile( String olcReplicaPidFile )
+    {
+        this.olcReplicaPidFile = olcReplicaPidFile;
+    }
+
+
+    /**
+     * @param olcReplicationInterval the olcReplicationInterval to set
+     */
+    public void setOlcReplicationInterval( Integer olcReplicationInterval )
+    {
+        this.olcReplicationInterval = olcReplicationInterval;
+    }
+
+
+    /**
+     * @param olcReplogFile the olcReplogFile to set
+     */
+    public void setOlcReplogFile( String olcReplogFile )
+    {
+        this.olcReplogFile = olcReplogFile;
+    }
+
+
+    /**
+     * @param olcRequires the olcRequires to set
+     */
+    public void setOlcRequires( List<String> olcRequires )
+    {
+        this.olcRequires = olcRequires;
+    }
+
+
+    /**
+     * @param olcRestrict the olcRestrict to set
+     */
+    public void setOlcRestrict( List<String> olcRestrict )
+    {
+        this.olcRestrict = olcRestrict;
+    }
+
+
+    /**
+     * @param olcRootDN the olcRootDN to set
+     */
+    public void setOlcRootDN( Dn olcRootDN )
+    {
+        this.olcRootDN = olcRootDN;
+    }
+
+
+    /**
+     * @param olcRootPW the olcRootPW to set
+     */
+    public void setOlcRootPW( String olcRootPW )
+    {
+        this.olcRootPW = olcRootPW;
+    }
+
+
+    /**
+     * @param olcSchemaDN the olcSchemaDN to set
+     */
+    public void setOlcSchemaDN( Dn olcSchemaDN )
+    {
+        this.olcSchemaDN = olcSchemaDN;
+    }
+
+
+    /**
+     * @param olcSecurity the olcSecurity to set
+     */
+    public void setOlcSecurity( List<String> olcSecurity )
+    {
+        this.olcSecurity = olcSecurity;
+    }
+
+
+    /**
+     * @param olcSizeLimit the olcSizeLimit to set
+     */
+    public void setOlcSizeLimit( String olcSizeLimit )
+    {
+        this.olcSizeLimit = olcSizeLimit;
+    }
+
+
+    /**
+     * @param olcSubordinate the olcSubordinate to set
+     */
+    public void setOlcSubordinate( String olcSubordinate )
+    {
+        this.olcSubordinate = olcSubordinate;
+    }
+
+
+    /**
+     * @param olcSuffix the olcSuffix to set
+     */
+    public void setOlcSuffix( List<Dn> olcSuffix )
+    {
+        this.olcSuffix = olcSuffix;
+    }
+
+
+    /**
+     * @param olcSyncrepl the olcSyncrepl to set
+     */
+    public void setOlcSyncrepl( List<String> olcSyncrepl )
+    {
+        this.olcSyncrepl = olcSyncrepl;
+    }
+
+
+    /**
+     * @param olcSyncUseSubentry the olcSyncUseSubentry to set
+     */
+    public void setOlcSyncUseSubentry( Boolean olcSyncUseSubentry )
+    {
+        this.olcSyncUseSubentry = olcSyncUseSubentry;
+    }
+
+
+    /**
+     * @param olcTimeLimit the olcTimeLimit to set
+     */
+    public void setOlcTimeLimit( List<String> olcTimeLimit )
+    {
+        this.olcTimeLimit = olcTimeLimit;
+    }
+
+
+    /**
+     * @param olcUpdateDN the olcUpdateDN to set
+     */
+    public void setOlcUpdateDN( Dn olcUpdateDN )
+    {
+        this.olcUpdateDN = olcUpdateDN;
+    }
+
+
+    /**
+     * @param olcUpdateRef the olcUpdateRef to set
+     */
+    public void setOlcUpdateRef( List<String> olcUpdateRef )
+    {
+        this.olcUpdateRef = olcUpdateRef;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDbSocketConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDbSocketConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDbSocketConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDbSocketConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,78 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Java bean for the 'olcDbSocketConfig' object class.
+ */
+public class OlcDbSocketConfig extends OlcDatabaseConfig
+{
+    /**
+     * Field for the 'olcDbSocketPath' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbSocketPath", isOptional = false)
+    private String olcDbSocketPath;
+
+    /**
+     * Field for the 'olcDbSocketExtensions' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDbSocketExtensions")
+    private List<String> olcDbSocketExtensions = new ArrayList<String>();
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcDbSocketExtensions( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcDbSocketExtensions.add( string );
+        }
+    }
+
+
+    public void clearOlcDbSocketExtensions()
+    {
+        olcDbSocketExtensions.clear();
+    }
+
+
+    /**
+     * @return the olcDbSocketExtensions
+     */
+    public List<String> getOlcDbSocketExtensions()
+    {
+        return olcDbSocketExtensions;
+    }
+
+
+    /**
+     * @return the olcDbSocketPath
+     */
+    public String getOlcDbSocketPath()
+    {
+        return olcDbSocketPath;
+    }
+
+
+    /**
+     * @param olcDbSocketExtensions the olcDbSocketExtensions to set
+     */
+    public void setOlcDbSocketExtensions( List<String> olcDbSocketExtensions )
+    {
+        this.olcDbSocketExtensions = olcDbSocketExtensions;
+    }
+
+
+    /**
+     * @param olcDbSocketPath the olcDbSocketPath to set
+     */
+    public void setOlcDbSocketPath( String olcDbSocketPath )
+    {
+        this.olcDbSocketPath = olcDbSocketPath;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDistProcConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDistProcConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDistProcConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDistProcConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,56 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+/**
+ * Java bean for the 'olcDistProcConfig' object class.
+ */
+public class OlcDistProcConfig extends OlcOverlayConfig
+{
+    /**
+     * Field for the 'olcChainCacheURI' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcChainCacheURI")
+    private Boolean olcChainCacheURI;
+
+    /**
+     * Field for the 'olcChainingBehavior' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcChainingBehavior")
+    private String olcChainingBehavior;
+
+
+    /**
+     * @return the olcChainCacheURI
+     */
+    public Boolean getOlcChainCacheURI()
+    {
+        return olcChainCacheURI;
+    }
+
+
+    /**
+     * @return the olcChainingBehavior
+     */
+    public String getOlcChainingBehavior()
+    {
+        return olcChainingBehavior;
+    }
+
+
+    /**
+     * @param olcChainCacheURI the olcChainCacheURI to set
+     */
+    public void setOlcChainCacheURI( Boolean olcChainCacheURI )
+    {
+        this.olcChainCacheURI = olcChainCacheURI;
+    }
+
+
+    /**
+     * @param olcChainingBehavior the olcChainingBehavior to set
+     */
+    public void setOlcChainingBehavior( String olcChainingBehavior )
+    {
+        this.olcChainingBehavior = olcChainingBehavior;
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcFrontendConfig.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcFrontendConfig.java?rev=1669123&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcFrontendConfig.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcFrontendConfig.java Wed Mar 25 13:26:29 2015
@@ -0,0 +1,123 @@
+package org.apache.directory.studio.openldap.config.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Java bean for the 'olcDbSocketConfig' object class.
+ */
+public class OlcFrontendConfig extends AuxiliaryObjectClass
+{
+    /**
+     * Field for the 'olcDefaultSearchBase' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcDefaultSearchBase")
+    private String olcDefaultSearchBase;
+
+    /**
+     * Field for the 'olcPasswordHash' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcPasswordHash")
+    private List<String> olcPasswordHash = new ArrayList<String>();
+
+    /**
+     * Field for the 'olcSortVals' attribute.
+     */
+    @ConfigurationElement(attributeType = "olcSortVals")
+    private List<String> olcSortVals = new ArrayList<String>();
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcPasswordHash( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcPasswordHash.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void addOlcSortVals( String... strings )
+    {
+        for ( String string : strings )
+        {
+            olcSortVals.add( string );
+        }
+    }
+
+
+    /**
+     * @param strings
+     */
+    public void clearOlcPasswordHash()
+    {
+        olcPasswordHash.clear();
+    }
+
+
+    public void clearOlcSortVals()
+    {
+        olcSortVals.clear();
+    }
+
+
+    /**
+     * @return the olcDefaultSearchBase
+     */
+    public String getOlcDefaultSearchBase()
+    {
+        return olcDefaultSearchBase;
+    }
+
+
+    /**
+     * @return the olcPasswordHash
+     */
+    public List<String> getOlcPasswordHash()
+    {
+        return olcPasswordHash;
+    }
+
+
+    /**
+     * @return the olcSortVals
+     */
+    public List<String> getOlcSortVals()
+    {
+        return olcSortVals;
+    }
+
+
+    /**
+     * @param olcDefaultSearchBase the olcDefaultSearchBase to set
+     */
+    public void setOlcDefaultSearchBase( String olcDefaultSearchBase )
+    {
+        this.olcDefaultSearchBase = olcDefaultSearchBase;
+    }
+
+
+    /**
+     * @param olcPasswordHash the setOlcPasswordHash to set
+     */
+    public void setOlcPasswordHash( List<String> olcPasswordHash )
+    {
+        this.olcPasswordHash = olcPasswordHash;
+    }
+
+
+    /**
+     * @param olcSortVals the olcSortVals to set
+     */
+    public void setOlcSortVals( List<String> olcSortVals )
+    {
+        this.olcSortVals = olcSortVals;
+    }
+}