You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2019/04/13 22:49:06 UTC

[directory-studio] branch remove-jndi-provider-and-jndi-layer updated: Update to latest API and Server master. Replace ehcache with Caffeine.

This is an automated email from the ASF dual-hosted git repository.

seelmann pushed a commit to branch remove-jndi-provider-and-jndi-layer
in repository https://gitbox.apache.org/repos/asf/directory-studio.git


The following commit(s) were added to refs/heads/remove-jndi-provider-and-jndi-layer by this push:
     new 7c4b73d  Update to latest API and Server master. Replace ehcache with Caffeine.
7c4b73d is described below

commit 7c4b73d149057a4020773add8184b36111607bbc
Author: Stefan Seelmann <ma...@stefan-seelmann.de>
AuthorDate: Sun Apr 14 00:48:40 2019 +0200

    Update to latest API and Server master. Replace ehcache with Caffeine.
---
 eclipse-trgt-platform/pom-first.xml                |  8 +-
 ...directory.studio.eclipse-trgt-platform.template | 11 +--
 features/rcp.feature/feature.xml                   |  2 +-
 plugins/apacheds.configuration/pom-first.xml       |  6 +-
 .../configuration/editor/PartitionDetailsPage.java |  2 +-
 .../editor/ServerConfigurationEditorUtils.java     | 26 ++-----
 .../jobs/LoadConfigurationRunnable.java            | 12 +--
 .../core/io/api/LdifModificationLogger.java        |  4 +-
 .../ldapbrowser/core/jobs/ExportDsmlRunnable.java  |  2 +-
 .../ldapbrowser/core/jobs/ExportLdifRunnable.java  |  2 +-
 .../ldapbrowser/core/jobs/SearchRunnable.java      |  4 +-
 .../ldapbrowser/core/model/schema/Schema.java      | 18 ++---
 .../studio/ldapbrowser/core/utils/Utils.java       |  2 +-
 plugins/openldap.config.editor/pom-first.xml       |  2 +-
 .../OpenLdapServerConfigurationEditorUtils.java    | 24 +++---
 .../config/model/io/ConfigurationReader.java       |  8 +-
 .../directory/studio/schemaeditor/PluginUtils.java | 12 ++-
 .../controller/ProblemsViewController.java         |  3 +-
 .../schemaeditor/controller/SchemaHandler.java     | 12 ++-
 .../actions/RenameSchemaElementAction.java         | 11 +--
 .../studio/schemaeditor/model/Schema.java          |  3 +-
 .../model/io/ApacheDsSchemaConnector.java          | 18 ++---
 .../model/io/GenericSchemaConnector.java           | 17 ++---
 .../model/io/OpenLdapSchemaFileImporter.java       | 10 +--
 .../model/io/XMLSchemaFileImporter.java            | 18 ++---
 .../AbstractAttributeTypeEditorPage.java           |  3 +-
 .../editors/attributetype/AttributeTypeEditor.java | 11 ++-
 .../AttributeTypeEditorOverviewPage.java           | 15 ++--
 .../AttributeTypeEditorSourceCodePage.java         |  3 +-
 .../AttributeTypeEditorUsedByPage.java             |  5 +-
 .../objectclass/AbstractObjectClassEditorPage.java |  3 +-
 .../editors/objectclass/ObjectClassEditor.java     | 11 ++-
 .../objectclass/ObjectClassEditorOverviewPage.java | 17 ++---
 .../ObjectClassEditorSourceCodePage.java           |  3 +-
 .../editors/schema/SchemaEditorOverviewPage.java   |  3 +-
 .../view/views/HierarchyViewContentProvider.java   |  9 +--
 .../view/views/SchemaViewContentProvider.java      | 11 ++-
 .../studio/schemaeditor/view/views/SearchView.java |  3 +-
 .../view/wizards/MergeSchemasWizard.java           |  8 +-
 .../view/wizards/NewAttributeTypeWizard.java       |  4 +-
 .../view/wizards/NewObjectClassWizard.java         |  4 +-
 .../model/difference/DifferenceEngineTest.java     | 88 +++++++++++-----------
 .../model/io/OpenLdapSchemaFileExporterTest.java   | 20 ++---
 pom.xml                                            | 20 ++---
 .../test/integration/ui/ImportExportTest.java      |  3 +
 45 files changed, 207 insertions(+), 274 deletions(-)

diff --git a/eclipse-trgt-platform/pom-first.xml b/eclipse-trgt-platform/pom-first.xml
index d7a25d7..bf9a7a7 100644
--- a/eclipse-trgt-platform/pom-first.xml
+++ b/eclipse-trgt-platform/pom-first.xml
@@ -82,11 +82,11 @@
       <version>${org.apache.mina.version}</version>
     </dependency>
 
-    <!-- Ehcache module -->
+    <!-- Caffeine module -->
     <dependency>
-      <groupId>org.ehcache</groupId>
-      <artifactId>ehcache</artifactId>
-      <version>${org.ehcache.ehcache.version}</version>
+      <groupId>com.github.ben-manes.caffeine</groupId>
+      <artifactId>caffeine</artifactId>
+      <version>${com.github.ben-manes.caffeine.version}</version>
     </dependency>
 
     <!-- LDAP API modules -->
diff --git a/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template b/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template
index f251545..ec80230 100644
--- a/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template
+++ b/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template
@@ -19,18 +19,18 @@
   @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
 -->
 <?pde version="3.8"?>
-<target name="Apache Directory Studio Platform" sequenceNumber="383">
+<target name="Apache Directory Studio Platform" sequenceNumber="397">
   <locations>
 
     <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
       <!-- External jars -->
       <unit id="org.apache.servicemix.bundles.antlr" version="2.7.7.5"/>
-      <unit id="org.apache.servicemix.bundles.dom4j" version="1.6.1.5"/>
+      <unit id="org.apache.servicemix.bundles.dom4j" version="2.1.1.1"/>
       <unit id="org.apache.servicemix.bundles.xpp3" version="1.1.4.c"/>
-      <unit id="org.ehcache.ehcache" version="${org.ehcache.ehcache.bundleversion}"/>
+      <unit id="com.github.ben-manes.caffeine" version="${com.github.ben-manes.caffeine.bundleversion}"/>
 
       <!-- Commons jars -->
-      <unit id="org.apache.commons.codec" version="${org.apache.commons.codec.bundleversion}"/>
+      <unit id="org.apache.commons.commons-codec" version="${org.apache.commons.codec.bundleversion}"/>
       <unit id="org.apache.commons.commons-collections4" version="${org.apache.commons.collections4.bundleversion}"/>
       <unit id="org.apache.commons.io" version="${org.apache.commons.io.bundleversion}"/>
       <unit id="org.apache.commons.lang3" version="${org.apache.commons.lang3.bundleversion}"/>
@@ -138,7 +138,8 @@
     <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
       <unit id="org.eclipse.babel.nls_eclipse_de.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.babel.nls_eclipse_fr.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/technology/babel/update-site/R0.15.1/oxygen"/>
+      <repository location="http://archive.eclipse.org/technology/babel/update-site/R0.15.1/oxygen"/>
+      <!--<repository location="http://download.eclipse.org/technology/babel/update-site/R0.16.1/2018-12"/>-->
     </location>
 
   </locations>
diff --git a/features/rcp.feature/feature.xml b/features/rcp.feature/feature.xml
index 2bc51dc..403fd82 100644
--- a/features/rcp.feature/feature.xml
+++ b/features/rcp.feature/feature.xml
@@ -267,7 +267,7 @@ http://www.apache.org/licenses/
          unpack="false"/>
 
    <plugin
-         id="org.ehcache.ehcache"
+         id="com.github.ben-manes.caffeine"
          download-size="0"
          install-size="0"
          version="0.0.0"
diff --git a/plugins/apacheds.configuration/pom-first.xml b/plugins/apacheds.configuration/pom-first.xml
index 9176bf4..98b2853 100644
--- a/plugins/apacheds.configuration/pom-first.xml
+++ b/plugins/apacheds.configuration/pom-first.xml
@@ -53,12 +53,8 @@
  org.apache.directory.studio.apacheds.configuration.editor,
  org.apache.directory.studio.apacheds.configuration.jobs,
  org.apache.directory.studio.apacheds.configuration.wizards</Export-Package>
- 
-            <Import-Package>
- org.ehcache
-             </Import-Package>
-            
             <Require-Bundle>
+ com.github.ben-manes.caffeine;bundle-version="${com.github.ben-manes.caffeine.bundleversion}",
  org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
  org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
  org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.version}",
diff --git a/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/PartitionDetailsPage.java b/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/PartitionDetailsPage.java
index 7586303..0f0cf6f 100644
--- a/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/PartitionDetailsPage.java
+++ b/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/PartitionDetailsPage.java
@@ -539,7 +539,7 @@ public class PartitionDetailsPage implements IDetailsPage
                     while ( values.hasNext() )
                     {
                         Value value = values.next();
-                        elements.add( new AttributeValueObject( attribute.getId(), value.getValue() ) );
+                        elements.add( new AttributeValueObject( attribute.getId(), value.getString() ) );
                     }
                 }
 
diff --git a/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/ServerConfigurationEditorUtils.java b/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/ServerConfigurationEditorUtils.java
index e3e7c00..d66418b 100644
--- a/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/ServerConfigurationEditorUtils.java
+++ b/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/ServerConfigurationEditorUtils.java
@@ -25,8 +25,6 @@ import java.io.File;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.directory.api.util.FileUtils;
-import org.apache.directory.api.util.Strings;
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
 import org.apache.directory.api.ldap.model.csn.CsnFactory;
 import org.apache.directory.api.ldap.model.entry.DefaultEntry;
@@ -34,8 +32,9 @@ import org.apache.directory.api.ldap.model.entry.Entry;
 import org.apache.directory.api.ldap.model.ldif.LdifEntry;
 import org.apache.directory.api.ldap.model.name.Dn;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
+import org.apache.directory.api.util.FileUtils;
+import org.apache.directory.api.util.Strings;
 import org.apache.directory.server.config.ConfigWriter;
-import org.apache.directory.server.core.api.CacheService;
 import org.apache.directory.server.core.api.DnFactory;
 import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition;
@@ -313,9 +312,6 @@ public class ServerConfigurationEditorUtils
         SchemaManager schemaManager = ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager();
         EntryBasedConfigurationPartition newconfigurationPartition = new EntryBasedConfigurationPartition(
             schemaManager );
-        CacheService cacheService = new CacheService();
-        cacheService.initialize( null );
-        newconfigurationPartition.setCacheService( cacheService );
         newconfigurationPartition.initialize();
         List<LdifEntry> convertedLdifEntries = configWriter.getConvertedLdifEntries();
         
@@ -389,9 +385,6 @@ public class ServerConfigurationEditorUtils
     {
         SchemaManager schemaManager = ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager();
 
-        CacheService cacheService = new CacheService();
-        cacheService.initialize( null );
-
         DnFactory dnFactory = null;
 
         CsnFactory csnFactory = new CsnFactory( 0 );
@@ -413,7 +406,7 @@ public class ServerConfigurationEditorUtils
                     FileUtils.deleteDirectory( ouConfigDir );
                 }
 
-                configPartition = createMultiFileConfiguration( confDir, schemaManager, dnFactory, cacheService );
+                configPartition = createMultiFileConfiguration( confDir, schemaManager, dnFactory );
             }
             else
             {
@@ -422,7 +415,7 @@ public class ServerConfigurationEditorUtils
                     file.delete();
                 }
                 
-                configPartition = createSingleFileConfiguration( file, schemaManager, dnFactory, cacheService );
+                configPartition = createSingleFileConfiguration( file, schemaManager, dnFactory );
             }
 
             // write entries to partition
@@ -450,29 +443,27 @@ public class ServerConfigurationEditorUtils
 
 
     private static SingleFileLdifPartition createSingleFileConfiguration( File configFile, SchemaManager schemaManager,
-        DnFactory dnFactory, CacheService cacheService ) throws Exception
+        DnFactory dnFactory) throws Exception
     {
         SingleFileLdifPartition configPartition = new SingleFileLdifPartition( schemaManager, dnFactory );
         configPartition.setId( "config" );
         configPartition.setPartitionPath( configFile.toURI() );
         configPartition.setSuffixDn( new Dn( schemaManager, "ou=config" ) );
         configPartition.setSchemaManager( schemaManager );
-        configPartition.setCacheService( cacheService );
         configPartition.initialize();
         
         return configPartition;
     }
 
 
-    private static LdifPartition createMultiFileConfiguration( File confDir, SchemaManager schemaManager, DnFactory dnFactory,
-        CacheService cacheService ) throws Exception
+    private static LdifPartition createMultiFileConfiguration( File confDir, SchemaManager schemaManager,
+        DnFactory dnFactory ) throws Exception
     {
         LdifPartition configPartition = new LdifPartition( schemaManager, dnFactory );
         configPartition.setId( "config" );
         configPartition.setPartitionPath( confDir.toURI() );
         configPartition.setSuffixDn( new Dn( schemaManager, "ou=config" ) );
         configPartition.setSchemaManager( schemaManager );
-        configPartition.setCacheService( cacheService );
         configPartition.initialize();
         
         return configPartition;
@@ -487,9 +478,6 @@ public class ServerConfigurationEditorUtils
         SchemaManager schemaManager = ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager();
         EntryBasedConfigurationPartition newconfigurationPartition = new EntryBasedConfigurationPartition(
             schemaManager );
-        CacheService cacheService = new CacheService();
-        cacheService.initialize( null );
-        newconfigurationPartition.setCacheService( cacheService );
         newconfigurationPartition.initialize();
         List<LdifEntry> convertedLdifEntries = configWriter.getConvertedLdifEntries();
         
diff --git a/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/jobs/LoadConfigurationRunnable.java b/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/jobs/LoadConfigurationRunnable.java
index cdeb4d7..2f35816 100644
--- a/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/jobs/LoadConfigurationRunnable.java
+++ b/plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/jobs/LoadConfigurationRunnable.java
@@ -42,7 +42,6 @@ import org.apache.directory.server.config.ConfigPartitionReader;
 import org.apache.directory.server.config.ReadOnlyConfigurationPartition;
 import org.apache.directory.server.config.beans.ConfigBean;
 import org.apache.directory.server.constants.ServerDNConstants;
-import org.apache.directory.server.core.api.CacheService;
 import org.apache.directory.server.core.api.DnFactory;
 import org.apache.directory.server.core.api.InstanceLayout;
 import org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition;
@@ -263,9 +262,6 @@ public class LoadConfigurationRunnable implements StudioRunnableWithProgress
         // Creating a partition associated from the input stream
         ReadOnlyConfigurationPartition configurationPartition = new ReadOnlyConfigurationPartition( is,
             ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager() );
-        CacheService cacheService = new CacheService();
-        cacheService.initialize( null );
-        configurationPartition.setCacheService( cacheService );
 
         configurationPartition.initialize();
 
@@ -278,14 +274,11 @@ public class LoadConfigurationRunnable implements StudioRunnableWithProgress
     {
         InstanceLayout instanceLayout = new InstanceLayout( confDirectory.getParentFile() );
 
-        CacheService cacheService = new CacheService();
-        cacheService.initialize( null );
-
         SchemaManager schemaManager = ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager();
 
         DnFactory dnFactory = null;
 
-        ConfigPartitionInitializer init = new ConfigPartitionInitializer( instanceLayout, dnFactory, cacheService, schemaManager );
+        ConfigPartitionInitializer init = new ConfigPartitionInitializer( instanceLayout, dnFactory, schemaManager );
         LdifPartition configurationPartition = init.initConfigPartition();
 
         return readConfiguration( configurationPartition );
@@ -333,9 +326,6 @@ public class LoadConfigurationRunnable implements StudioRunnableWithProgress
             // Creating and initializing the configuration partition
             EntryBasedConfigurationPartition configurationPartition = new EntryBasedConfigurationPartition(
                 schemaManager );
-            CacheService cacheService = new CacheService();
-            cacheService.initialize( null );
-            configurationPartition.setCacheService( cacheService );
             configurationPartition.initialize();
 
             // Opening the connection
diff --git a/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/LdifModificationLogger.java b/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/LdifModificationLogger.java
index 59da54b..ee73cd0 100644
--- a/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/LdifModificationLogger.java
+++ b/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/LdifModificationLogger.java
@@ -285,7 +285,7 @@ public class LdifModificationLogger implements ILdapLogger
                 {
                     if ( value.isHumanReadable() )
                     {
-                        record.addAttrVal( LdifAttrValLine.create( attributeName, value.getValue() ) );
+                        record.addAttrVal( LdifAttrValLine.create( attributeName, value.getString() ) );
                     }
                     else
                     {
@@ -365,7 +365,7 @@ public class LdifModificationLogger implements ILdapLogger
                 {
                     if ( value.isHumanReadable() )
                     {
-                        modSpec.addAttrVal( LdifAttrValLine.create( attributeName, value.getValue() ) );
+                        modSpec.addAttrVal( LdifAttrValLine.create( attributeName, value.getString() ) );
                     }
                     else
                     {
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportDsmlRunnable.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportDsmlRunnable.java
index d8c2539..4381ff0 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportDsmlRunnable.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportDsmlRunnable.java
@@ -357,7 +357,7 @@ public class ExportDsmlRunnable implements StudioConnectionRunnableWithProgress
             {
                 for ( Value value : refAttribute )
                 {
-                    srr.addSearchResultReference( new LdapUrl( ( String ) value.getValue() ) );
+                    srr.addSearchResultReference( new LdapUrl( ( String ) value.getString() ) );
                 }
             }
 
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportLdifRunnable.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportLdifRunnable.java
index 5cafaf0..2879339 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportLdifRunnable.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/ExportLdifRunnable.java
@@ -308,7 +308,7 @@ public class ExportLdifRunnable implements StudioConnectionRunnableWithProgress
                 {
                     if ( value.isHumanReadable() )
                     {
-                        record.addAttrVal( LdifAttrValLine.create( attributeName, value.getValue() ) );
+                        record.addAttrVal( LdifAttrValLine.create( attributeName, value.getString() ) );
                     }
                     else
                     {
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/SearchRunnable.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/SearchRunnable.java
index 92352a6..e0cf39f 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/SearchRunnable.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/SearchRunnable.java
@@ -695,7 +695,7 @@ public class SearchRunnable implements StudioConnectionBulkRunnableWithProgress
                 {
                     if ( valueObject.isHumanReadable() )
                     {
-                        String value = valueObject.getValue();
+                        String value = valueObject.getString();
 
                         if ( searchParameter.isInitHasChildrenFlag() )
                         {
@@ -859,7 +859,7 @@ public class SearchRunnable implements StudioConnectionBulkRunnableWithProgress
                     {
                         if ( value.isHumanReadable() )
                         {
-                            studioAttribute.addValue( new Value( studioAttribute, value.getValue() ) );
+                            studioAttribute.addValue( new Value( studioAttribute, value.getString() ) );
                         }
                         else
                         {
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/schema/Schema.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/schema/Schema.java
index 3e2dfb1..932372f 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/schema/Schema.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/schema/Schema.java
@@ -41,8 +41,6 @@ import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
 import org.apache.directory.api.ldap.model.schema.MatchingRuleUse;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.UsageEnum;
 import org.apache.directory.api.ldap.model.schema.parsers.AttributeTypeDescriptionSchemaParser;
@@ -330,15 +328,11 @@ public class Schema
         }
 
         // set extensibleObject may attributes
-        ObjectClass extensibleObjectOcd = this
-            .getObjectClassDescription( SchemaConstants.EXTENSIBLE_OBJECT_OC );
-        if ( extensibleObjectOcd instanceof MutableObjectClass )
-        {
-            Collection<AttributeType> userAtds = SchemaUtils.getUserAttributeDescriptions( this );
-            Collection<String> atdNames = SchemaUtils.getNames( userAtds );
-            List<String> atdNames2 = new ArrayList<String>( atdNames );
-            ( ( MutableObjectClass ) extensibleObjectOcd ).setMayAttributeTypeOids( atdNames2 );
-        }
+        ObjectClass extensibleObjectOcd = this.getObjectClassDescription( SchemaConstants.EXTENSIBLE_OBJECT_OC );
+        Collection<AttributeType> userAtds = SchemaUtils.getUserAttributeDescriptions( this );
+        Collection<String> atdNames = SchemaUtils.getNames( userAtds );
+        List<String> atdNames2 = new ArrayList<String>( atdNames );
+        extensibleObjectOcd.setMayAttributeTypeOids( atdNames2 );
     }
 
 
@@ -612,7 +606,7 @@ public class Schema
             // DUMMY
             List<String> attributeTypes = new ArrayList<String>();
             attributeTypes.add( attributeType );
-            MutableAttributeType atd = new MutableAttributeType( attributeType );
+            AttributeType atd = new AttributeType( attributeType );
             atd.setNames( attributeTypes );
             atd.setUserModifiable( true );
             atd.setUsage( UsageEnum.USER_APPLICATIONS );
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java
index f3848b4..af5b4fa 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/utils/Utils.java
@@ -139,7 +139,7 @@ public class Utils
         String oid = schema != null ? schema.getAttributeTypeDescription( ava.getNormType() ).getOid() : ava
             .getNormType();
         return Strings.toLowerCaseAscii( Strings.trim( oid ) )
-            + "=" + Strings.trim( ava.getValue().getValue() ).toLowerCase(); //$NON-NLS-1$
+            + "=" + Strings.trim( ava.getValue().getString() ).toLowerCase(); //$NON-NLS-1$
     }
 
 
diff --git a/plugins/openldap.config.editor/pom-first.xml b/plugins/openldap.config.editor/pom-first.xml
index 8939ff0..2fcdafe 100644
--- a/plugins/openldap.config.editor/pom-first.xml
+++ b/plugins/openldap.config.editor/pom-first.xml
@@ -50,13 +50,13 @@
             <Export-Package>org.apache.directory.studio.openldap.config</Export-Package>
 
             <Import-Package>
- org.ehcache,
  org.apache.directory.api.ldap.model.name,
  org.apache.directory.server.core.api.interceptor.context,
  org.apache.directory.api.ldap.schema.manager.impl
             </Import-Package> 
             
             <Require-Bundle>
+ com.github.ben-manes.caffeine;bundle-version="${com.github.ben-manes.caffeine.bundleversion}",
  org.apache.directory.server.core.api;bundle-version="${org.apache.directory.server.version}",
  org.apache.directory.server.ldif.partition;bundle-version="${org.apache.directory.server.version}",
  org.apache.directory.server.xdbm.partition;bundle-version="${org.apache.directory.server.version}",
diff --git a/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OpenLdapServerConfigurationEditorUtils.java b/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OpenLdapServerConfigurationEditorUtils.java
index 250bd81..b472d41 100644
--- a/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OpenLdapServerConfigurationEditorUtils.java
+++ b/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/OpenLdapServerConfigurationEditorUtils.java
@@ -37,7 +37,6 @@ import org.apache.directory.api.ldap.model.schema.SchemaManager;
 import org.apache.directory.api.ldap.model.schema.registries.ObjectClassRegistry;
 import org.apache.directory.api.ldap.util.tree.DnNode;
 import org.apache.directory.api.util.DateUtils;
-import org.apache.directory.server.core.api.CacheService;
 import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
 import org.apache.directory.studio.common.ui.CommonUIUtils;
 import org.apache.directory.studio.common.ui.filesystem.PathEditorInput;
@@ -45,16 +44,6 @@ import org.apache.directory.studio.connection.core.event.ConnectionEventRegistry
 import org.apache.directory.studio.ldapbrowser.core.BrowserCorePlugin;
 import org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable;
 import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.PlatformUI;
 import org.apache.directory.studio.openldap.config.ExpandedLdifUtils;
 import org.apache.directory.studio.openldap.config.OpenLdapConfigurationPlugin;
 import org.apache.directory.studio.openldap.config.jobs.EntryBasedConfigurationPartition;
@@ -64,6 +53,15 @@ import org.apache.directory.studio.openldap.config.model.io.ConfigurationExcepti
 import org.apache.directory.studio.openldap.config.model.io.ConfigurationReader;
 import org.apache.directory.studio.openldap.config.model.io.ConfigurationUtils;
 import org.apache.directory.studio.openldap.config.model.io.ConfigurationWriter;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorInput;
 
 
 /**
@@ -467,12 +465,8 @@ public class OpenLdapServerConfigurationEditorUtils
     public static EntryBasedConfigurationPartition createConfigurationPartition( SchemaManager schemaManager,
         Dn configBaseDn ) throws LdapException
     {
-        CacheService cacheService = new CacheService();
-        cacheService.initialize( null );
-
         EntryBasedConfigurationPartition configurationPartition = new EntryBasedConfigurationPartition(
             schemaManager, configBaseDn );
-        configurationPartition.setCacheService(cacheService);
         configurationPartition.initialize();
 
         return configurationPartition;
diff --git a/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/ConfigurationReader.java b/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/ConfigurationReader.java
index 7c32916..124425a 100644
--- a/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/ConfigurationReader.java
+++ b/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/io/ConfigurationReader.java
@@ -357,7 +357,7 @@ public class ConfigurationReader
                 for ( Value objectClassValue : objectClassAttribute )
                 {
                     ObjectClass oc = OpenLdapServerConfigurationEditorUtils.getObjectClass( schemaManager,
-                        objectClassValue.getValue() );
+                        objectClassValue.getString() );
 
                     if ( ( oc != null ) && ( oc.isStructural() ) )
                     {
@@ -369,7 +369,7 @@ public class ConfigurationReader
                 for ( Value objectClassValue : objectClassAttribute )
                 {
                     ObjectClass oc = OpenLdapServerConfigurationEditorUtils.getObjectClass( schemaManager,
-                        objectClassValue.getValue() );
+                        objectClassValue.getString() );
 
                     if ( oc != null )
                     {
@@ -419,7 +419,7 @@ public class ConfigurationReader
                 for ( Value objectClassValue : objectClassAttribute )
                 {
                     ObjectClass oc = OpenLdapServerConfigurationEditorUtils.getObjectClass( schemaManager,
-                        objectClassValue.getValue() );
+                        objectClassValue.getString() );
 
                     if ( ( oc != null ) && ( oc.isAuxiliary() ) )
                     {
@@ -720,7 +720,7 @@ public class ConfigurationReader
         Class<?> type = field.getType();
         String addMethodName = "add" + Character.toUpperCase( field.getName().charAt( 0 ) )
             + field.getName().substring( 1 );
-        String valueStr = value.getValue();
+        String valueStr = value.getString();
 
         try
         {
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginUtils.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginUtils.java
index 42ce66a..d2f1b9f 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginUtils.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/PluginUtils.java
@@ -32,11 +32,9 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
-import org.apache.directory.api.util.FileUtils;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
+import org.apache.directory.api.util.FileUtils;
 import org.apache.directory.studio.connection.core.Connection;
 import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
 import org.apache.directory.studio.schemaeditor.controller.ProjectsHandler;
@@ -89,9 +87,9 @@ public class PluginUtils
      * @return
      *      a clone of the given attribute type
      */
-    public static MutableAttributeType getClone( AttributeType at )
+    public static AttributeType getClone( AttributeType at )
     {
-        MutableAttributeType clone = new MutableAttributeType( at.getOid() );
+        AttributeType clone = new AttributeType( at.getOid() );
         clone.setNames( at.getNames() );
         clone.setSchemaName( at.getSchemaName() );
         clone.setDescription( at.getDescription() );
@@ -119,9 +117,9 @@ public class PluginUtils
      * @return
      *      a clone of the given object class
      */
-    public static MutableObjectClass getClone( ObjectClass oc )
+    public static ObjectClass getClone( ObjectClass oc )
     {
-        MutableObjectClass clone = new MutableObjectClass( oc.getOid() );
+        ObjectClass clone = new ObjectClass( oc.getOid() );
         clone.setNames( oc.getNames() );
         clone.setSchemaName( oc.getSchemaName() );
         clone.setDescription( oc.getDescription() );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/ProblemsViewController.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/ProblemsViewController.java
index 0272e8e..eff089b 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/ProblemsViewController.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/ProblemsViewController.java
@@ -21,7 +21,6 @@ package org.apache.directory.studio.schemaeditor.controller;
 
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.SchemaObject;
 import org.apache.directory.studio.schemaeditor.Activator;
@@ -141,7 +140,7 @@ public class ProblemsViewController
                     }
                     else if ( object instanceof ObjectClass )
                     {
-                        input = new ObjectClassEditorInput( ( MutableObjectClass ) object );
+                        input = new ObjectClassEditorInput( ( ObjectClass ) object );
                         editorId = ObjectClassEditor.ID;
                     }
                 }
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaHandler.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaHandler.java
index 8edd467..f4d6106 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaHandler.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaHandler.java
@@ -28,8 +28,6 @@ import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.SchemaObject;
 import org.apache.directory.api.util.Strings;
@@ -246,13 +244,13 @@ public class SchemaHandler
      * @return
      *      the corresponding object class, or null if no one is found
      */
-    public MutableObjectClass getObjectClass( String id )
+    public ObjectClass getObjectClass( String id )
     {
         List<?> list = getObjectClassList( Strings.toLowerCase( id ) );
 
         if ( ( list != null ) && ( list.size() >= 1 ) )
         {
-            return ( MutableObjectClass ) list.get( 0 );
+            return ( ObjectClass ) list.get( 0 );
         }
         else
         {
@@ -657,7 +655,7 @@ public class SchemaHandler
      * @param at2
      *      the destination attribute type
      */
-    public void modifyAttributeType( MutableAttributeType at1, MutableAttributeType at2 )
+    public void modifyAttributeType( AttributeType at1, AttributeType at2 )
     {
         // Removing the references (in case of the names or oid have changed)
         removeSchemaObject( at1 );
@@ -710,7 +708,7 @@ public class SchemaHandler
      * @param oc
      *      the object class
      */
-    public void addObjectClass( MutableObjectClass oc )
+    public void addObjectClass( ObjectClass oc )
     {
         Schema schema = getSchema( oc.getSchemaName() );
 
@@ -731,7 +729,7 @@ public class SchemaHandler
      * @param oc2
      *      the destination object class
      */
-    public void modifyObjectClass( MutableObjectClass oc1, ObjectClass oc2 )
+    public void modifyObjectClass( ObjectClass oc1, ObjectClass oc2 )
     {
         // Removing the references (in case of the names or oid have changed)
         removeSchemaObject( oc1 );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/RenameSchemaElementAction.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/RenameSchemaElementAction.java
index 3e28ebe..2db5a0f 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/RenameSchemaElementAction.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/actions/RenameSchemaElementAction.java
@@ -20,8 +20,7 @@
 package org.apache.directory.studio.schemaeditor.controller.actions;
 
 
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
+import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
@@ -112,13 +111,12 @@ public class RenameSchemaElementAction extends Action implements IWorkbenchWindo
                 // ATTRIBUTE TYPE
                 else if ( selectedElement instanceof AttributeTypeWrapper )
                 {
-                    MutableAttributeType attributeType = ( MutableAttributeType ) ( ( AttributeTypeWrapper ) selectedElement )
-                        .getAttributeType();
+                    AttributeType attributeType = ( ( AttributeTypeWrapper ) selectedElement ).getAttributeType();
 
                     RenameAttributeTypeDialog dialog = new RenameAttributeTypeDialog( attributeType.getNames() );
                     if ( dialog.open() == RenameAttributeTypeDialog.OK )
                     {
-                        MutableAttributeType modifiedAttributeType = PluginUtils.getClone( attributeType );
+                        AttributeType modifiedAttributeType = PluginUtils.getClone( attributeType );
                         modifiedAttributeType.setNames( dialog.getAliases() );
                         Activator.getDefault().getSchemaHandler()
                             .modifyAttributeType( attributeType, modifiedAttributeType );
@@ -127,8 +125,7 @@ public class RenameSchemaElementAction extends Action implements IWorkbenchWindo
                 // OBJECT CLASS
                 else if ( selectedElement instanceof ObjectClassWrapper )
                 {
-                    MutableObjectClass objectClass = ( MutableObjectClass ) ( ( ObjectClassWrapper ) selectedElement )
-                        .getObjectClass();
+                    ObjectClass objectClass = ( ( ObjectClassWrapper ) selectedElement ).getObjectClass();
 
                     RenameObjectClassDialog dialog = new RenameObjectClassDialog( objectClass.getNames() );
                     if ( dialog.open() == RenameObjectClassDialog.OK )
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java
index 292665e..968e89f 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/Schema.java
@@ -26,7 +26,6 @@ import java.util.List;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.registries.DefaultSchema;
 
@@ -96,7 +95,7 @@ public class Schema extends DefaultSchema
      * @param oc
      *      the ObjectClass
      */
-    public boolean addObjectClass( MutableObjectClass oc )
+    public boolean addObjectClass( ObjectClass oc )
     {
         return objectClasses.add( oc );
     }
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/ApacheDsSchemaConnector.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/ApacheDsSchemaConnector.java
index 575c42a..83b6a5c 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/ApacheDsSchemaConnector.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/ApacheDsSchemaConnector.java
@@ -41,9 +41,7 @@ import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueEx
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableMatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
+import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
 import org.apache.directory.api.ldap.model.schema.UsageEnum;
 import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
@@ -108,7 +106,7 @@ public class ApacheDsSchemaConnector extends AbstractSchemaConnector implements
                     {
                         for ( Value cnValue : cnAttribute )
                         {
-                            Schema schema = getSchema( wrapper, cnValue.getValue(), monitor );
+                            Schema schema = getSchema( wrapper, cnValue.getString(), monitor );
                             schema.setProject( project );
                             schemas.add( schema );
                         }
@@ -215,7 +213,7 @@ public class ApacheDsSchemaConnector extends AbstractSchemaConnector implements
                             break;
                             
                         case OBJECT_CLASS:
-                            MutableObjectClass oc = createObjectClass( entry );
+                            ObjectClass oc = createObjectClass( entry );
                             oc.setSchemaName( name );
                             schema.addObjectClass( oc );
                             break;
@@ -288,7 +286,7 @@ public class ApacheDsSchemaConnector extends AbstractSchemaConnector implements
      */
     private static AttributeType createAttributeType( Entry entry ) throws LdapInvalidAttributeValueException
     {
-        MutableAttributeType at = new MutableAttributeType( getStringValue( entry, MetaSchemaConstants.M_OID_AT ) );
+        AttributeType at = new AttributeType( getStringValue( entry, MetaSchemaConstants.M_OID_AT ) );
         at.setNames( getStringValues( entry, MetaSchemaConstants.M_NAME_AT ) );
         at.setDescription( getStringValue( entry, MetaSchemaConstants.M_DESCRIPTION_AT ) );
         at.setObsolete( getBooleanValue( entry, MetaSchemaConstants.M_OBSOLETE_AT ) );
@@ -315,9 +313,9 @@ public class ApacheDsSchemaConnector extends AbstractSchemaConnector implements
      * ObjectClassImpl could be created
      * @throws LdapInvalidAttributeValueException
      */
-    private static MutableObjectClass createObjectClass( Entry sr ) throws LdapInvalidAttributeValueException
+    private static ObjectClass createObjectClass( Entry sr ) throws LdapInvalidAttributeValueException
     {
-        MutableObjectClass oc = new MutableObjectClass( getStringValue( sr, MetaSchemaConstants.M_OID_AT ) );
+        ObjectClass oc = new ObjectClass( getStringValue( sr, MetaSchemaConstants.M_OID_AT ) );
         oc.setNames( getStringValues( sr, MetaSchemaConstants.M_NAME_AT ) );
         oc.setDescription( getStringValue( sr, MetaSchemaConstants.M_DESCRIPTION_AT ) );
         oc.setObsolete( getBooleanValue( sr, MetaSchemaConstants.M_OBSOLETE_AT ) );
@@ -340,7 +338,7 @@ public class ApacheDsSchemaConnector extends AbstractSchemaConnector implements
      */
     private static MatchingRule createMatchingRule( Entry entry ) throws LdapInvalidAttributeValueException
     {
-        MutableMatchingRule mr = new MutableMatchingRule( getStringValue( entry, MetaSchemaConstants.M_OID_AT ) );
+        MatchingRule mr = new MatchingRule( getStringValue( entry, MetaSchemaConstants.M_OID_AT ) );
         mr.setNames( getStringValues( entry, MetaSchemaConstants.M_NAME_AT ) );
         mr.setDescription( getStringValue( entry, MetaSchemaConstants.M_DESCRIPTION_AT ) );
         mr.setObsolete( getBooleanValue( entry, MetaSchemaConstants.M_OBSOLETE_AT ) );
@@ -488,7 +486,7 @@ public class ApacheDsSchemaConnector extends AbstractSchemaConnector implements
     {
         Attribute at = entry.get( schemaElement );
         Spliterator<Value> spliterator = Optional.ofNullable( at ).map( Attribute::spliterator ).orElseGet( Spliterators::emptySpliterator );
-        return StreamSupport.stream( spliterator, false ).map( Value::getValue ).collect( Collectors.toList() );
+        return StreamSupport.stream( spliterator, false ).map( Value::getString ).collect( Collectors.toList() );
     }
 
 
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/GenericSchemaConnector.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/GenericSchemaConnector.java
index 1d1d2bf..0c57813 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/GenericSchemaConnector.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/GenericSchemaConnector.java
@@ -36,9 +36,6 @@ import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueEx
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableMatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.parsers.AttributeTypeDescriptionSchemaParser;
 import org.apache.directory.api.ldap.model.schema.parsers.LdapSyntaxDescriptionSchemaParser;
@@ -200,9 +197,9 @@ public class GenericSchemaConnector extends AbstractSchemaConnector implements S
                         AttributeTypeDescriptionSchemaParser parser = new AttributeTypeDescriptionSchemaParser();
                         parser.setQuirksMode( true );
 
-                        AttributeType atd = parser.parse( value.getValue() );
+                        AttributeType atd = parser.parse( value.getString() );
 
-                        MutableAttributeType impl = new MutableAttributeType( atd.getOid() );
+                        AttributeType impl = new AttributeType( atd.getOid() );
                         impl.setNames( atd.getNames().toArray( new String[0] ) );
                         impl.setDescription( atd.getDescription() );
                         impl.setSuperiorOid( atd.getSuperiorOid() );
@@ -244,9 +241,9 @@ public class GenericSchemaConnector extends AbstractSchemaConnector implements S
                     {
                         ObjectClassDescriptionSchemaParser parser = new ObjectClassDescriptionSchemaParser();
                         parser.setQuirksMode( true );
-                        ObjectClass ocd = parser.parse( value.getValue() );
+                        ObjectClass ocd = parser.parse( value.getString() );
 
-                        MutableObjectClass impl = new MutableObjectClass( ocd.getOid() );
+                        ObjectClass impl = new ObjectClass( ocd.getOid() );
                         impl.setNames( ocd.getNames().toArray( new String[0] ) );
                         impl.setDescription( ocd.getDescription() );
                         impl.setSuperiorOids( ocd.getSuperiorOids() );
@@ -276,7 +273,7 @@ public class GenericSchemaConnector extends AbstractSchemaConnector implements S
                     {
                         LdapSyntaxDescriptionSchemaParser parser = new LdapSyntaxDescriptionSchemaParser();
                         parser.setQuirksMode( true );
-                        LdapSyntax lsd = parser.parse( value.getValue() );
+                        LdapSyntax lsd = parser.parse( value.getString() );
 
                         LdapSyntax impl = new LdapSyntax( lsd.getOid() );
                         impl.setDescription( lsd.getDescription() );
@@ -323,9 +320,9 @@ public class GenericSchemaConnector extends AbstractSchemaConnector implements S
                     {
                         MatchingRuleDescriptionSchemaParser parser = new MatchingRuleDescriptionSchemaParser();
                         parser.setQuirksMode( true );
-                        MatchingRule mrd = parser.parse( value.getValue() );
+                        MatchingRule mrd = parser.parse( value.getString() );
 
-                        MutableMatchingRule impl = new MutableMatchingRule( mrd.getOid() );
+                        MatchingRule impl = new MatchingRule( mrd.getOid() );
                         impl.setDescription( mrd.getDescription() );
                         impl.setNames( mrd.getNames().toArray( new String[0] ) );
                         impl.setObsolete( mrd.isObsolete() );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileImporter.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileImporter.java
index 554e794..59caf46 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileImporter.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileImporter.java
@@ -31,8 +31,6 @@ import java.util.regex.MatchResult;
 
 import org.apache.directory.api.ldap.model.exception.LdapSchemaException;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.parsers.OpenLdapSchemaParser;
 import org.apache.directory.studio.schemaeditor.model.Schema;
@@ -97,7 +95,7 @@ public class OpenLdapSchemaFileImporter
         List<?> ocs = parser.getObjectClasses();
         for ( int i = 0; i < ocs.size(); i++ )
         {
-            MutableObjectClass oc = convertObjectClass( ( ObjectClass ) ocs.get( i ) );
+            ObjectClass oc = convertObjectClass( ( ObjectClass ) ocs.get( i ) );
             oc.setSchemaName( schemaName );
             schema.addObjectClass( oc );
         }
@@ -138,7 +136,7 @@ public class OpenLdapSchemaFileImporter
      */
     private static AttributeType convertAttributeType( AttributeType at )
     {
-        MutableAttributeType newAT = new MutableAttributeType( at.getOid() );
+        AttributeType newAT = new AttributeType( at.getOid() );
         newAT.setNames( at.getNames() );
         newAT.setDescription( at.getDescription() );
         newAT.setSuperiorOid( at.getSuperiorOid() );
@@ -165,9 +163,9 @@ public class OpenLdapSchemaFileImporter
      * @return
      *      the corresponding ObjectClassImpl
      */
-    private static MutableObjectClass convertObjectClass( ObjectClass oc )
+    private static ObjectClass convertObjectClass( ObjectClass oc )
     {
-        MutableObjectClass newOC = new MutableObjectClass( oc.getOid() );
+        ObjectClass newOC = new ObjectClass( oc.getOid() );
         newOC.setNames( oc.getNames() );
         newOC.setDescription( oc.getDescription() );
         newOC.setSuperiorOids( oc.getSuperiorOids() );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileImporter.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileImporter.java
index 6878d8d..eccccf2 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileImporter.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/io/XMLSchemaFileImporter.java
@@ -26,10 +26,10 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableMatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
+import org.apache.directory.api.ldap.model.schema.MatchingRule;
+import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
 import org.apache.directory.api.ldap.model.schema.UsageEnum;
 import org.apache.directory.studio.schemaeditor.model.Schema;
@@ -304,13 +304,13 @@ public class XMLSchemaFileImporter
      */
     private static void readAttributeType( Element element, Schema schema ) throws XMLSchemaFileImportException
     {
-        MutableAttributeType at = null;
+        AttributeType at = null;
 
         // OID
         Attribute oidAttribute = element.attribute( OID_TAG );
         if ( ( oidAttribute != null ) && ( !oidAttribute.getValue().equals( "" ) ) ) //$NON-NLS-1$
         {
-            at = new MutableAttributeType( oidAttribute.getValue() );
+            at = new AttributeType( oidAttribute.getValue() );
         }
         else
         {
@@ -474,13 +474,13 @@ public class XMLSchemaFileImporter
      */
     private static void readObjectClass( Element element, Schema schema ) throws XMLSchemaFileImportException
     {
-        MutableObjectClass oc = null;
+        ObjectClass oc = null;
 
         // OID
         Attribute oidAttribute = element.attribute( OID_TAG );
         if ( ( oidAttribute != null ) && ( !oidAttribute.getValue().equals( "" ) ) ) //$NON-NLS-1$
         {
-            oc = new MutableObjectClass( oidAttribute.getValue() );
+            oc = new ObjectClass( oidAttribute.getValue() );
         }
         else
         {
@@ -621,13 +621,13 @@ public class XMLSchemaFileImporter
      */
     private static void readMatchingRule( Element element, Schema schema ) throws XMLSchemaFileImportException
     {
-        MutableMatchingRule mr = null;
+        MatchingRule mr = null;
 
         // OID
         Attribute oidAttribute = element.attribute( OID_TAG );
         if ( ( oidAttribute != null ) && ( !oidAttribute.getValue().equals( "" ) ) ) //$NON-NLS-1$
         {
-            mr = new MutableMatchingRule( oidAttribute.getValue() );
+            mr = new MatchingRule( oidAttribute.getValue() );
         }
         else
         {
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AbstractAttributeTypeEditorPage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AbstractAttributeTypeEditorPage.java
index ae10579..2b2c8ca 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AbstractAttributeTypeEditorPage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AbstractAttributeTypeEditorPage.java
@@ -22,7 +22,6 @@ package org.apache.directory.studio.schemaeditor.view.editors.attributetype;
 
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.studio.schemaeditor.view.editors.AbstractSchemaObjectEditorPage;
 
 
@@ -66,7 +65,7 @@ public abstract class AbstractAttributeTypeEditorPage extends AbstractSchemaObje
      * @return
      *      the modified attribute type
      */
-    public MutableAttributeType getModifiedAttributeType()
+    public AttributeType getModifiedAttributeType()
     {
         return getEditor().getModifiedAttributeType();
     }
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java
index 326b823..7cb1c3c 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java
@@ -22,7 +22,6 @@ package org.apache.directory.studio.schemaeditor.view.editors.attributetype;
 
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
 import org.apache.directory.studio.schemaeditor.PluginUtils;
@@ -63,10 +62,10 @@ public class AttributeTypeEditor extends FormEditor
     private AttributeTypeEditorUsedByPage usedByPage;
 
     /** The original attribute type */
-    private MutableAttributeType originalAttributeType;
+    private AttributeType originalAttributeType;
 
     /** The attribute type used to save modifications */
-    private MutableAttributeType modifiedAttributeType;
+    private AttributeType modifiedAttributeType;
 
     /** The originalSchema */
     private Schema originalSchema;
@@ -166,7 +165,7 @@ public class AttributeTypeEditor extends FormEditor
         setInput( input );
         setPartName( input.getName() );
 
-        originalAttributeType = ( MutableAttributeType ) ( ( AttributeTypeEditorInput ) getEditorInput() )
+        originalAttributeType = ( AttributeType ) ( ( AttributeTypeEditorInput ) getEditorInput() )
             .getAttributeType();
         modifiedAttributeType = PluginUtils.getClone( originalAttributeType );
 
@@ -292,7 +291,7 @@ public class AttributeTypeEditor extends FormEditor
      * @return
      *      the modified attribute type
      */
-    public MutableAttributeType getModifiedAttributeType()
+    public AttributeType getModifiedAttributeType()
     {
         return modifiedAttributeType;
     }
@@ -304,7 +303,7 @@ public class AttributeTypeEditor extends FormEditor
      * @param modifiedAttributeType
      *      the modified attribute type to set.
      */
-    public void setModifiedAttributeType( MutableAttributeType modifiedAttributeType )
+    public void setModifiedAttributeType( AttributeType modifiedAttributeType )
     {
         this.modifiedAttributeType = modifiedAttributeType;
     }
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java
index 99afd21..91d97af 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java
@@ -28,7 +28,6 @@ import org.apache.directory.api.asn1.util.Oid;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.UsageEnum;
 import org.apache.directory.studio.schemaeditor.Activator;
@@ -373,7 +372,7 @@ public class AttributeTypeEditorOverviewPage extends AbstractAttributeTypeEditor
     {
         public void selectionChanged( SelectionChangedEvent event )
         {
-            MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+            AttributeType modifiedAttributeType = getModifiedAttributeType();
             Object selectedItem = ( ( StructuredSelection ) supComboViewer.getSelection() ).getFirstElement();
 
             if ( selectedItem instanceof AttributeType )
@@ -411,7 +410,7 @@ public class AttributeTypeEditorOverviewPage extends AbstractAttributeTypeEditor
     {
         public void modifyText( ModifyEvent e )
         {
-            MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+            AttributeType modifiedAttributeType = getModifiedAttributeType();
             if ( usageCombo.getSelectionIndex() == 0 )
             {
                 modifiedAttributeType.setUsage( UsageEnum.DIRECTORY_OPERATION );
@@ -437,7 +436,7 @@ public class AttributeTypeEditorOverviewPage extends AbstractAttributeTypeEditor
     {
         public void selectionChanged( SelectionChangedEvent event )
         {
-            MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+            AttributeType modifiedAttributeType = getModifiedAttributeType();
             Object selectedItem = ( ( StructuredSelection ) syntaxComboViewer.getSelection() ).getFirstElement();
 
             if ( selectedItem instanceof LdapSyntax )
@@ -466,7 +465,7 @@ public class AttributeTypeEditorOverviewPage extends AbstractAttributeTypeEditor
     {
         public void modifyText( ModifyEvent e )
         {
-            MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+            AttributeType modifiedAttributeType = getModifiedAttributeType();
             if ( syntaxLengthText.getText().length() <= 0 )
             {
                 modifiedAttributeType.setSyntaxLength( -1 );
@@ -536,7 +535,7 @@ public class AttributeTypeEditorOverviewPage extends AbstractAttributeTypeEditor
     {
         public void selectionChanged( SelectionChangedEvent event )
         {
-            MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+            AttributeType modifiedAttributeType = getModifiedAttributeType();
             Object selectedItem = ( ( StructuredSelection ) equalityComboViewer.getSelection() ).getFirstElement();
 
             if ( selectedItem instanceof MatchingRule )
@@ -565,7 +564,7 @@ public class AttributeTypeEditorOverviewPage extends AbstractAttributeTypeEditor
     {
         public void selectionChanged( SelectionChangedEvent event )
         {
-            MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+            AttributeType modifiedAttributeType = getModifiedAttributeType();
             Object selectedItem = ( ( StructuredSelection ) orderingComboViewer.getSelection() ).getFirstElement();
 
             if ( selectedItem instanceof MatchingRule )
@@ -594,7 +593,7 @@ public class AttributeTypeEditorOverviewPage extends AbstractAttributeTypeEditor
     {
         public void selectionChanged( SelectionChangedEvent event )
         {
-            MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+            AttributeType modifiedAttributeType = getModifiedAttributeType();
             Object selectedItem = ( ( StructuredSelection ) substringComboViewer.getSelection() ).getFirstElement();
 
             if ( selectedItem instanceof MatchingRule )
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorSourceCodePage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorSourceCodePage.java
index df0aba3..82833b1 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorSourceCodePage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorSourceCodePage.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
 import java.util.List;
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.api.ldap.model.schema.parsers.OpenLdapSchemaParser;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
 import org.apache.directory.studio.schemaeditor.model.io.OpenLdapSchemaFileExporter;
@@ -195,7 +194,7 @@ public class AttributeTypeEditorSourceCodePage extends AbstractAttributeTypeEdit
      */
     private void updateAttributeType( AttributeType atl )
     {
-        MutableAttributeType modifiedAttributeType = getModifiedAttributeType();
+        AttributeType modifiedAttributeType = getModifiedAttributeType();
 
         modifiedAttributeType.setCollective( atl.isCollective() );
         modifiedAttributeType.setDescription( atl.getDescription() );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorUsedByPage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorUsedByPage.java
index 1565048..041d80f 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorUsedByPage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/attributetype/AttributeTypeEditorUsedByPage.java
@@ -24,7 +24,6 @@ package org.apache.directory.studio.schemaeditor.view.editors.attributetype;
 import java.util.List;
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
@@ -157,7 +156,7 @@ public class AttributeTypeEditorUsedByPage extends AbstractAttributeTypeEditorPa
                 IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                 try
                 {
-                    page.openEditor( new ObjectClassEditorInput( ( MutableObjectClass ) selectedItem ),
+                    page.openEditor( new ObjectClassEditorInput( ( ObjectClass ) selectedItem ),
                         ObjectClassEditor.ID );
                 }
                 catch ( PartInitException exception )
@@ -181,7 +180,7 @@ public class AttributeTypeEditorUsedByPage extends AbstractAttributeTypeEditorPa
                 IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                 try
                 {
-                    page.openEditor( new ObjectClassEditorInput( ( MutableObjectClass ) selectedItem ),
+                    page.openEditor( new ObjectClassEditorInput( ( ObjectClass ) selectedItem ),
                         ObjectClassEditor.ID );
                 }
                 catch ( PartInitException exception )
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/AbstractObjectClassEditorPage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/AbstractObjectClassEditorPage.java
index 9cb1c3b..511d051 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/AbstractObjectClassEditorPage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/AbstractObjectClassEditorPage.java
@@ -21,7 +21,6 @@
 package org.apache.directory.studio.schemaeditor.view.editors.objectclass;
 
 
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.view.editors.AbstractSchemaObjectEditorPage;
 
@@ -66,7 +65,7 @@ public abstract class AbstractObjectClassEditorPage extends AbstractSchemaObject
      * @return
      *      the modified object class
      */
-    public MutableObjectClass getModifiedObjectClass()
+    public ObjectClass getModifiedObjectClass()
     {
         return getEditor().getModifiedObjectClass();
     }
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditor.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditor.java
index 6ac5d4b..8545df8 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditor.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditor.java
@@ -21,7 +21,6 @@
 package org.apache.directory.studio.schemaeditor.view.editors.objectclass;
 
 
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
@@ -60,10 +59,10 @@ public class ObjectClassEditor extends FormEditor
     private boolean dirty = false;
 
     /** The original object class */
-    private MutableObjectClass originalObjectClass;
+    private ObjectClass originalObjectClass;
 
     /** The object class used to save modifications */
-    private MutableObjectClass modifiedObjectClass;
+    private ObjectClass modifiedObjectClass;
 
     /** The originalSchema */
     private Schema originalSchema;
@@ -161,7 +160,7 @@ public class ObjectClassEditor extends FormEditor
         setInput( input );
         setPartName( input.getName() );
 
-        originalObjectClass = ( MutableObjectClass ) ( ( ObjectClassEditorInput ) getEditorInput() ).getObjectClass();
+        originalObjectClass = ( ObjectClass ) ( ( ObjectClassEditorInput ) getEditorInput() ).getObjectClass();
         modifiedObjectClass = PluginUtils.getClone( originalObjectClass );
 
         SchemaHandler schemaHandler = Activator.getDefault().getSchemaHandler();
@@ -283,7 +282,7 @@ public class ObjectClassEditor extends FormEditor
      * @return
      *      the modified object class
      */
-    public MutableObjectClass getModifiedObjectClass()
+    public ObjectClass getModifiedObjectClass()
     {
         return modifiedObjectClass;
     }
@@ -295,7 +294,7 @@ public class ObjectClassEditor extends FormEditor
      * @param modifiedObjectClass
      *      the modified object class to set.
      */
-    public void setModifiedObjectClass( MutableObjectClass modifiedObjectClass )
+    public void setModifiedObjectClass( ObjectClass modifiedObjectClass )
     {
         this.modifiedObjectClass = modifiedObjectClass;
     }
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java
index fabbc15..d80d215 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java
@@ -28,7 +28,6 @@ import org.apache.directory.api.asn1.util.Oid;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
 import org.apache.directory.studio.schemaeditor.Activator;
@@ -352,7 +351,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
     {
         public void modifyText( ModifyEvent e )
         {
-            MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+            ObjectClass modifiedObjectClass = getModifiedObjectClass();
 
             if ( classTypeCombo.getSelectionIndex() == 0 )
             {
@@ -427,7 +426,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
     {
         public void widgetSelected( SelectionEvent e )
         {
-            MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+            ObjectClass modifiedObjectClass = getModifiedObjectClass();
 
             AttributeTypeSelectionDialog dialog = new AttributeTypeSelectionDialog();
             List<AttributeType> hiddenATs = new ArrayList<AttributeType>();
@@ -492,7 +491,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
                 return;
             }
 
-            MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+            ObjectClass modifiedObjectClass = getModifiedObjectClass();
 
             Object selectedElement = selection.getFirstElement();
             if ( selectedElement != null )
@@ -568,7 +567,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
     {
         public void widgetSelected( SelectionEvent e )
         {
-            MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+            ObjectClass modifiedObjectClass = getModifiedObjectClass();
             AttributeTypeSelectionDialog dialog = new AttributeTypeSelectionDialog();
             List<AttributeType> hiddenATs = new ArrayList<AttributeType>();
             List<String> maysHidden = modifiedObjectClass.getMayAttributeTypeOids();
@@ -632,7 +631,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
                 return;
             }
 
-            MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+            ObjectClass modifiedObjectClass = getModifiedObjectClass();
 
             Object selectedElement = selection.getFirstElement();
             if ( selectedElement != null )
@@ -685,7 +684,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
                     IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                     try
                     {
-                        page.openEditor( new ObjectClassEditorInput( ( MutableObjectClass ) selectedElement ),
+                        page.openEditor( new ObjectClassEditorInput( ( ObjectClass ) selectedElement ),
                             ObjectClassEditor.ID );
                     }
                     catch ( PartInitException exception )
@@ -708,7 +707,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
     {
         public void widgetSelected( SelectionEvent e )
         {
-            MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+            ObjectClass modifiedObjectClass = getModifiedObjectClass();
             ObjectClassSelectionDialog dialog = new ObjectClassSelectionDialog();
             List<ObjectClass> hiddenOCs = new ArrayList<ObjectClass>();
             for ( String sup : modifiedObjectClass.getSuperiorOids() )
@@ -766,7 +765,7 @@ public class ObjectClassEditorOverviewPage extends AbstractObjectClassEditorPage
                 return;
             }
 
-            MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+            ObjectClass modifiedObjectClass = getModifiedObjectClass();
 
             Object selectedElement = selection.getFirstElement();
             if ( selectedElement != null )
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorSourceCodePage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorSourceCodePage.java
index 0682667..054d8e6 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorSourceCodePage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/objectclass/ObjectClassEditorSourceCodePage.java
@@ -24,7 +24,6 @@ package org.apache.directory.studio.schemaeditor.view.editors.objectclass;
 import java.text.ParseException;
 import java.util.List;
 
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.parsers.OpenLdapSchemaParser;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
@@ -191,7 +190,7 @@ public class ObjectClassEditorSourceCodePage extends AbstractObjectClassEditorPa
      */
     private void updateObjectClass( ObjectClass ocl )
     {
-        MutableObjectClass modifiedObjectClass = getModifiedObjectClass();
+        ObjectClass modifiedObjectClass = getModifiedObjectClass();
 
         modifiedObjectClass.setDescription( ocl.getDescription() );
         modifiedObjectClass.setMayAttributeTypeOids( ocl.getMayAttributeTypeOids() );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/schema/SchemaEditorOverviewPage.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/schema/SchemaEditorOverviewPage.java
index c8d56a2..bcc1dc1 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/schema/SchemaEditorOverviewPage.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/editors/schema/SchemaEditorOverviewPage.java
@@ -24,7 +24,6 @@ package org.apache.directory.studio.schemaeditor.view.editors.schema;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
@@ -213,7 +212,7 @@ public class SchemaEditorOverviewPage extends FormPage
 
             if ( !selection.isEmpty() )
             {
-                MutableObjectClass oc = ( MutableObjectClass ) selection.getFirstElement();
+                ObjectClass oc = ( ObjectClass ) selection.getFirstElement();
 
                 try
                 {
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/HierarchyViewContentProvider.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/HierarchyViewContentProvider.java
index 6040669..b5de63e 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/HierarchyViewContentProvider.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/HierarchyViewContentProvider.java
@@ -25,7 +25,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
@@ -63,7 +62,7 @@ public class HierarchyViewContentProvider implements IStructuredContentProvider,
 
         if ( parentElement instanceof ObjectClass )
         {
-            MutableObjectClass oc = ( MutableObjectClass ) parentElement;
+            ObjectClass oc = ( ObjectClass ) parentElement;
 
             children = createTypeHierarchyObjectClass( oc );
         }
@@ -90,7 +89,7 @@ public class HierarchyViewContentProvider implements IStructuredContentProvider,
      * @return
      *      the Type Hierarchy for an object class
      */
-    private List<TreeNode> createTypeHierarchyObjectClass( MutableObjectClass oc )
+    private List<TreeNode> createTypeHierarchyObjectClass( ObjectClass oc )
     {
         List<TreeNode> children = new ArrayList<TreeNode>();
 
@@ -146,7 +145,7 @@ public class HierarchyViewContentProvider implements IStructuredContentProvider,
             {
                 if ( parent instanceof ObjectClass )
                 {
-                    MutableObjectClass parentOC = ( MutableObjectClass ) parent;
+                    ObjectClass parentOC = ( ObjectClass ) parent;
                     ObjectClassWrapper duplicatedOCW = ( ObjectClassWrapper ) duplicateTreeNode( ocw );
 
                     ObjectClassWrapper ocw2 = new ObjectClassWrapper( parentOC );
@@ -313,7 +312,7 @@ public class HierarchyViewContentProvider implements IStructuredContentProvider,
                 }
                 else if ( child instanceof ObjectClass )
                 {
-                    MutableObjectClass oc = ( MutableObjectClass ) child;
+                    ObjectClass oc = ( ObjectClass ) child;
                     childNode = new ObjectClassWrapper( oc, node );
                     node.addChild( childNode );
                 }
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java
index 2f832f1..10d219d 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java
@@ -27,7 +27,6 @@ import java.util.List;
 import org.apache.commons.collections4.ListValuedMap;
 import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
@@ -186,7 +185,7 @@ public class SchemaViewContentProvider implements IStructuredContentProvider, IT
                                 }
                                 else if ( rootChild instanceof ObjectClass )
                                 {
-                                    MutableObjectClass oc = ( MutableObjectClass ) rootChild;
+                                    ObjectClass oc = ( ObjectClass ) rootChild;
                                     childNode = new ObjectClassWrapper( oc, ocFolder );
                                     ocFolder.addChild( childNode );
                                 }
@@ -320,7 +319,7 @@ public class SchemaViewContentProvider implements IStructuredContentProvider, IT
                 }
                 else if ( child instanceof ObjectClass )
                 {
-                    MutableObjectClass oc = ( MutableObjectClass ) child;
+                    ObjectClass oc = ( ObjectClass ) child;
                     childNode = new ObjectClassWrapper( oc, node );
                     node.addChild( childNode );
                 }
@@ -998,7 +997,7 @@ public class SchemaViewContentProvider implements IStructuredContentProvider, IT
 
                 for ( TreeNode createdWrapper : createdWrappers )
                 {
-                    ObjectClassWrapper ocw = new ObjectClassWrapper( ( MutableObjectClass ) child, createdWrapper );
+                    ObjectClassWrapper ocw = new ObjectClassWrapper( ( ObjectClass ) child, createdWrapper );
                     ocw.getParent().addChild( ocw );
                     elementsToWrappersMap.put( child, ocw );
                     addHierarchyChildren( ocw, hierarchyManager.getChildren( child ) );
@@ -1173,7 +1172,7 @@ public class SchemaViewContentProvider implements IStructuredContentProvider, IT
                             Folder folder = ( Folder ) rootChild;
                             if ( folder.getType().equals( FolderType.OBJECT_CLASS ) )
                             {
-                                ocw = new ObjectClassWrapper( ( MutableObjectClass ) child, folder );
+                                ocw = new ObjectClassWrapper( ( ObjectClass ) child, folder );
                                 break;
                             }
                         }
@@ -1181,7 +1180,7 @@ public class SchemaViewContentProvider implements IStructuredContentProvider, IT
                 }
                 else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
                 {
-                    ocw = new ObjectClassWrapper( ( MutableObjectClass ) child, root );
+                    ocw = new ObjectClassWrapper( ( ObjectClass ) child, root );
                 }
 
                 ocw.getParent().addChild( ocw );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java
index 452c4ee..5d36f2a 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SearchView.java
@@ -27,7 +27,6 @@ import java.util.List;
 import java.util.regex.Pattern;
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.SchemaObject;
 import org.apache.directory.studio.schemaeditor.Activator;
@@ -559,7 +558,7 @@ public class SearchView extends ViewPart
                 }
                 else if ( item instanceof ObjectClass )
                 {
-                    input = new ObjectClassEditorInput( ( MutableObjectClass ) item );
+                    input = new ObjectClassEditorInput( ( ObjectClass ) item );
                     editorId = ObjectClassEditor.ID;
                 }
 
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java
index eb9bb8e..a63af1e 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/MergeSchemasWizard.java
@@ -29,8 +29,6 @@ import java.util.Set;
 
 import org.apache.directory.api.ldap.model.schema.AbstractSchemaObject;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.model.Project;
@@ -297,7 +295,7 @@ public class MergeSchemasWizard extends Wizard implements IImportWizard
                 }
 
                 // clone attribute type
-                MutableAttributeType clonedAttributeType = new MutableAttributeType( sourceAttributeType.getOid() );
+                AttributeType clonedAttributeType = new AttributeType( sourceAttributeType.getOid() );
                 clonedAttributeType.setNames( sourceAttributeType.getNames() );
                 clonedAttributeType.setDescription( sourceAttributeType.getDescription() );
                 clonedAttributeType.setSuperiorOid( sourceAttributeType.getSuperiorOid() );
@@ -421,7 +419,7 @@ public class MergeSchemasWizard extends Wizard implements IImportWizard
                 }
 
                 // create object class
-                MutableObjectClass clonedObjectClass = new MutableObjectClass( sourceObjectClass.getOid() );
+                ObjectClass clonedObjectClass = new ObjectClass( sourceObjectClass.getOid() );
                 clonedObjectClass.setOid( sourceObjectClass.getOid() );
                 clonedObjectClass.setNames( sourceObjectClass.getNames() );
                 clonedObjectClass.setDescription( sourceObjectClass.getDescription() );
@@ -500,7 +498,7 @@ public class MergeSchemasWizard extends Wizard implements IImportWizard
     }
 
 
-    private void pullUpAttributes( MutableObjectClass targetObjectClass, ObjectClass sourceSuperObjectClass,
+    private void pullUpAttributes( ObjectClass targetObjectClass, ObjectClass sourceSuperObjectClass,
         ObjectClass targetSuperObjectClass )
     {
         // must
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewAttributeTypeWizard.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewAttributeTypeWizard.java
index a2e5c23..c29bb40 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewAttributeTypeWizard.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewAttributeTypeWizard.java
@@ -20,7 +20,7 @@
 package org.apache.directory.studio.schemaeditor.view.wizards;
 
 
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
+import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
 import org.apache.directory.studio.schemaeditor.PluginUtils;
@@ -73,7 +73,7 @@ public class NewAttributeTypeWizard extends Wizard implements INewWizard
     public boolean performFinish()
     {
         // Creating the new attribute type
-        MutableAttributeType newAT = new MutableAttributeType( generalPage.getOidValue() );
+        AttributeType newAT = new AttributeType( generalPage.getOidValue() );
         newAT.setSchemaName( generalPage.getSchemaValue() );
         newAT.setNames( generalPage.getAliasesValue() );
         newAT.setDescription( generalPage.getDescriptionValue() );
diff --git a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewObjectClassWizard.java b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewObjectClassWizard.java
index 3c19add..be28502 100644
--- a/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewObjectClassWizard.java
+++ b/plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/wizards/NewObjectClassWizard.java
@@ -20,7 +20,7 @@
 package org.apache.directory.studio.schemaeditor.view.wizards;
 
 
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
+import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.studio.schemaeditor.Activator;
 import org.apache.directory.studio.schemaeditor.PluginConstants;
 import org.apache.directory.studio.schemaeditor.PluginUtils;
@@ -76,7 +76,7 @@ public class NewObjectClassWizard extends Wizard implements INewWizard
     public boolean performFinish()
     {
         // Creating the new object class
-        MutableObjectClass newOC = new MutableObjectClass( generalPage.getOidValue() );
+        ObjectClass newOC = new ObjectClass( generalPage.getOidValue() );
         newOC.setSchemaName( generalPage.getSchemaValue() );
         newOC.setNames( generalPage.getAliasesValue() );
         newOC.setDescription( generalPage.getDescriptionValue() );
diff --git a/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/difference/DifferenceEngineTest.java b/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/difference/DifferenceEngineTest.java
index 78ce18c..1988468 100644
--- a/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/difference/DifferenceEngineTest.java
+++ b/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/difference/DifferenceEngineTest.java
@@ -26,8 +26,6 @@ import java.util.List;
 import junit.framework.TestCase;
 
 import org.apache.directory.api.ldap.model.schema.AttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
 import org.apache.directory.api.ldap.model.schema.UsageEnum;
@@ -102,7 +100,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddEqualityDifference() throws Exception
     {
         AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setEqualityOid( "Equality" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -128,7 +126,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddMandatoryATDifference() throws Exception
     {
         ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
-        MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o2 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o2.setMustAttributeTypeOids( Arrays.asList( new String[]
             { "must" } ) ); //$NON-NLS-1$
 
@@ -156,7 +154,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddOptionalATDifference() throws Exception
     {
         ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
-        MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o2 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o2.setMayAttributeTypeOids( Arrays.asList( new String[]
             { "may" } ) ); //$NON-NLS-1$
 
@@ -183,7 +181,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddOrderingDifference() throws Exception
     {
         AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setOrderingOid( "Ordering" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -209,7 +207,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddSubstringDifference() throws Exception
     {
         AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSubstringOid( "Substring" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -235,7 +233,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddSuperiorATDifference() throws Exception
     {
         AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSuperiorOid( "superiorAT" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -261,7 +259,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddSuperiorOCDifference() throws Exception
     {
         ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
-        MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o2 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSuperiorOids( Arrays.asList( new String[]
             { "superiorOC" } ) ); //$NON-NLS-1$
 
@@ -288,7 +286,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddSyntaxDifference() throws Exception
     {
         AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSyntaxOid( "1.2.3.4.5" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -314,7 +312,7 @@ public class DifferenceEngineTest extends TestCase
     public void testAddSyntaxLengthDifference() throws Exception
     {
         AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSyntaxLength( 1234 );
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -340,9 +338,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifyClassTypeDifference() throws Exception
     {
-        MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o1.setType( ObjectClassTypeEnum.STRUCTURAL );
-        MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o2 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o2.setType( ObjectClassTypeEnum.ABSTRACT );
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -369,9 +367,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifyCollectiveDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setCollective( true );
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setCollective( false );
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -427,9 +425,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifyEqualityDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setEqualityOid( "equalityName" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setEqualityOid( "newEqualityName" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -456,9 +454,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifyNoUserModificationDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setUserModifiable( true );
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setUserModifiable( false );
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -514,9 +512,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifyOrderingDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setOrderingOid( "orderingName" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setOrderingOid( "newOrderingName" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -543,9 +541,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifySingleValueDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSingleValued( true );
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSingleValued( false );
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -572,9 +570,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifySubstringDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSubstringOid( "substrName" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSubstringOid( "newSubstrName" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -601,9 +599,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifySuperiorATDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSuperiorOid( "superiorName" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSuperiorOid( "newSuperiorName" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -630,9 +628,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifySyntaxDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSyntaxOid( "1.2.3.4.5" ); //$NON-NLS-1$
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSyntaxOid( "1.2.3.4.6" ); //$NON-NLS-1$
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -658,9 +656,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifySyntaxLengthDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSyntaxLength( 1234 );
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSyntaxLength( 12345 );
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -687,9 +685,9 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testModifyUsageDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setUsage( UsageEnum.DISTRIBUTED_OPERATION );
-        MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o2.setUsage( UsageEnum.DIRECTORY_OPERATION );
 
         List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 );
@@ -773,7 +771,7 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveEqualityDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setEqualityOid( "equalityName" ); //$NON-NLS-1$
         AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
 
@@ -800,10 +798,10 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveMandatoryATDifference() throws Exception
     {
-        MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o1.setMustAttributeTypeOids( Arrays.asList( new String[]
             { "must1", "must2" } ) ); //$NON-NLS-1$ //$NON-NLS-2$
-        MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o2 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o2.setMustAttributeTypeOids( Arrays.asList( new String[]
             { "must2" } ) ); //$NON-NLS-1$
 
@@ -831,10 +829,10 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveOptionalATDifference() throws Exception
     {
-        MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o1.setMayAttributeTypeOids( Arrays.asList( new String[]
             { "may1", "may2" } ) ); //$NON-NLS-1$ //$NON-NLS-2$
-        MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o2 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o2.setMayAttributeTypeOids( Arrays.asList( new String[]
             { "may2" } ) ); //$NON-NLS-1$
 
@@ -862,7 +860,7 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveOrderingDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setOrderingOid( "orderingName" ); //$NON-NLS-1$
         AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
 
@@ -889,7 +887,7 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveSubstringDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSubstringOid( "substrName" ); //$NON-NLS-1$
         AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
 
@@ -917,7 +915,7 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveSuperiorATDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSuperiorOid( "superiorName" ); //$NON-NLS-1$
         AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
 
@@ -945,10 +943,10 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveSuperiorOCDifference() throws Exception
     {
-        MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSuperiorOids( Arrays.asList( new String[]
             { "sup1", "sup2" } ) ); //$NON-NLS-1$ //$NON-NLS-2$
-        MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$
+        ObjectClass o2 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$
         o2.setSuperiorOids( Arrays.asList( new String[]
             { "sup2" } ) ); //$NON-NLS-1$
 
@@ -976,7 +974,7 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveSyntaxDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSyntaxOid( "1.2.3.4.5" ); //$NON-NLS-1$
         AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
 
@@ -1003,7 +1001,7 @@ public class DifferenceEngineTest extends TestCase
      */
     public void testRemoveSyntaxLengthDifference() throws Exception
     {
-        MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$
+        AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
         o1.setSyntaxLength( 1234 );
         AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$
 
diff --git a/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporterTest.java b/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporterTest.java
index e490c08..8495a0b 100644
--- a/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporterTest.java
+++ b/plugins/schemaeditor/src/test/java/org/apache/directory/studio/schemaeditor/model/io/OpenLdapSchemaFileExporterTest.java
@@ -25,8 +25,8 @@ import static org.junit.Assert.assertEquals;
 import java.util.Arrays;
 import java.util.Collections;
 
-import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
-import org.apache.directory.api.ldap.model.schema.MutableObjectClass;
+import org.apache.directory.api.ldap.model.schema.AttributeType;
+import org.apache.directory.api.ldap.model.schema.ObjectClass;
 import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
 import org.apache.directory.api.ldap.model.schema.UsageEnum;
 import org.junit.Before;
@@ -39,21 +39,21 @@ import org.junit.Test;
 public class OpenLdapSchemaFileExporterTest
 {
 
-    private MutableObjectClass objectClassSimple;
-    private MutableObjectClass objectClassComplex;
+    private ObjectClass objectClassSimple;
+    private ObjectClass objectClassComplex;
 
-    private MutableAttributeType attributeTypeSimple;
-    private MutableAttributeType attributeTypeComplex;
+    private AttributeType attributeTypeSimple;
+    private AttributeType attributeTypeComplex;
 
     @Before
     public void setUp()
     {
-        objectClassSimple = new MutableObjectClass( "1.2.3.4" );
+        objectClassSimple = new ObjectClass( "1.2.3.4" );
         objectClassSimple.setNames( "name0" );
         objectClassSimple.setMustAttributeTypeOids( Arrays.asList( "att0" ) );
         objectClassSimple.setSchemaName( "dummy" );
 
-        objectClassComplex = new MutableObjectClass( "1.2.3.4" );
+        objectClassComplex = new ObjectClass( "1.2.3.4" );
         objectClassComplex.setNames( "name1", "name2" );
         objectClassComplex.setDescription( "description with 'quotes'" );
         objectClassComplex.setObsolete( true );
@@ -63,7 +63,7 @@ public class OpenLdapSchemaFileExporterTest
         objectClassComplex.setMayAttributeTypeOids( Arrays.asList( "att3", "att4" ) );
         objectClassComplex.setSchemaName( "dummy" );
         
-        attributeTypeSimple = new MutableAttributeType( "1.2.3.4" );
+        attributeTypeSimple = new AttributeType( "1.2.3.4" );
         attributeTypeSimple.setNames( "name0" );
         attributeTypeSimple.setEqualityOid( "matchingRule0" );
         attributeTypeSimple.setSyntaxOid( "2.3.4.5" );
@@ -71,7 +71,7 @@ public class OpenLdapSchemaFileExporterTest
         attributeTypeSimple.setCollective( true );
         attributeTypeSimple.setSchemaName( "dummy" );
 
-        attributeTypeComplex = new MutableAttributeType( "1.2.3.4" );
+        attributeTypeComplex = new AttributeType( "1.2.3.4" );
         attributeTypeComplex.setNames( "name1", "name2" );
         attributeTypeComplex.setDescription( "description with 'quotes'" );
         attributeTypeComplex.setObsolete( true );
diff --git a/pom.xml b/pom.xml
index 02d7980..2e9e3a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,22 +76,22 @@
     <junit.version>4.11</junit.version>
     <log4j.log4j.version>1.2.17</log4j.log4j.version>
     <log4j.log4j.bundleversion>1.2.17</log4j.log4j.bundleversion>
-    <org.ehcache.ehcache.version>3.5.3</org.ehcache.ehcache.version>
-    <org.ehcache.ehcache.bundleversion>3.5.3</org.ehcache.ehcache.bundleversion>
-    <org.apache.commons.codec.version>1.11</org.apache.commons.codec.version>
-    <org.apache.commons.codec.bundleversion>1.11.0</org.apache.commons.codec.bundleversion>
-    <org.apache.commons.collections4.version>4.2</org.apache.commons.collections4.version>
-    <org.apache.commons.collections4.bundleversion>4.2.0</org.apache.commons.collections4.bundleversion>
+    <com.github.ben-manes.caffeine.version>2.7.0</com.github.ben-manes.caffeine.version>
+    <com.github.ben-manes.caffeine.bundleversion>2.7.0</com.github.ben-manes.caffeine.bundleversion>
+    <org.apache.commons.codec.version>1.12</org.apache.commons.codec.version>
+    <org.apache.commons.codec.bundleversion>1.12.0</org.apache.commons.codec.bundleversion>
+    <org.apache.commons.collections4.version>4.3</org.apache.commons.collections4.version>
+    <org.apache.commons.collections4.bundleversion>4.3.0</org.apache.commons.collections4.bundleversion>
     <org.apache.commons.io.version>2.6</org.apache.commons.io.version>
     <org.apache.commons.io.bundleversion>2.6.0</org.apache.commons.io.bundleversion>
     <org.apache.commons.lang3.version>3.8.1</org.apache.commons.lang3.version>
     <org.apache.commons.lang3.bundleversion>3.8.1</org.apache.commons.lang3.bundleversion>
-    <org.apache.commons.pool.version>2.6.0</org.apache.commons.pool.version>
-    <org.apache.commons.pool.bundleversion>2.6.0</org.apache.commons.pool.bundleversion>
+    <org.apache.commons.pool.version>2.6.1</org.apache.commons.pool.version>
+    <org.apache.commons.pool.bundleversion>2.6.1</org.apache.commons.pool.bundleversion>
     <org.apache.directory.api.version>2.0.0.AM3-SNAPSHOT</org.apache.directory.api.version>
     <org.apache.directory.server.version>2.0.0.AM26-SNAPSHOT</org.apache.directory.server.version>
-    <org.apache.mina.version>2.0.18</org.apache.mina.version>
-    <org.apache.mina.bundleversion>2.0.18</org.apache.mina.bundleversion>
+    <org.apache.mina.version>2.1.0</org.apache.mina.version>
+    <org.apache.mina.bundleversion>2.1.0</org.apache.mina.bundleversion>
     <org.apache.poi.version>3.9</org.apache.poi.version>
     <org.apache.poi.bundleversion>3.9.0</org.apache.poi.bundleversion>
     <org.apache.xmlgraphics.fop.version>1.0</org.apache.xmlgraphics.fop.version>
diff --git a/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/ImportExportTest.java b/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/ImportExportTest.java
index da713d4..fa706cb 100644
--- a/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/ImportExportTest.java
+++ b/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/ImportExportTest.java
@@ -47,6 +47,7 @@ import org.apache.directory.studio.ldapbrowser.core.BrowserCoreConstants;
 import org.apache.directory.studio.ldapbrowser.core.BrowserCorePlugin;
 import org.apache.directory.studio.ldapbrowser.core.events.EventRegistry;
 import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
+import org.apache.directory.studio.test.integration.ui.bots.BotUtils;
 import org.apache.directory.studio.test.integration.ui.bots.BrowserViewBot;
 import org.apache.directory.studio.test.integration.ui.bots.ConnectionsViewBot;
 import org.apache.directory.studio.test.integration.ui.bots.DeleteDialogBot;
@@ -272,6 +273,7 @@ public class ImportExportTest extends AbstractLdapTestUnit
         DeleteDialogBot dialogBot = browserViewBot.openDeleteDialog();
         assertTrue( dialogBot.isVisible() );
         dialogBot.clickOkButton();
+        BotUtils.sleep( 5000L );
         assertFalse( browserViewBot.existsEntry( "DIT", "Root DSE", "ou=system", "ou=special", "cn=alias" ) );
         assertFalse( browserViewBot.existsEntry( "DIT", "Root DSE", "ou=system", "ou=special", "cn=referral" ) );
         assertFalse( browserViewBot.existsEntry( "DIT", "Root DSE", "ou=system", "ou=special", "cn=subentry" ) );
@@ -358,6 +360,7 @@ public class ImportExportTest extends AbstractLdapTestUnit
         DeleteDialogBot dialogBot = browserViewBot.openDeleteDialog();
         assertTrue( dialogBot.isVisible() );
         dialogBot.clickOkButton();
+        BotUtils.sleep( 5000L );
         assertFalse( browserViewBot.existsEntry( "DIT", "Root DSE", "ou=system", "ou=special", "cn=alias" ) );
         assertFalse( browserViewBot.existsEntry( "DIT", "Root DSE", "ou=system", "ou=special", "cn=referral" ) );
         assertFalse( browserViewBot.existsEntry( "DIT", "Root DSE", "ou=system", "ou=special", "cn=subentry" ) );