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 2015/03/22 19:37:52 UTC

svn commit: r1668435 - in /directory/studio/branches/studio-tycho/plugins: apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/ apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/confi...

Author: seelmann
Date: Sun Mar 22 18:37:51 2015
New Revision: 1668435

URL: http://svn.apache.org/r1668435
Log:
* DIRSTUDIO-1016: Add support for multifile configuration partition
* Update LdapServers plugin to use latest ApacheDS version (currently 2.0.0-M20-SNAPSHOT)

Added:
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/Configuration.java
Removed:
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/resources/
Modified:
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/ApacheDS2ConfigurationPluginConstants.java
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorExportConfigurationAction.java
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorImportConfigurationAction.java
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorUtils.java
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java
    directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/SaveConfigurationRunnable.java
    directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom-first.xml
    directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom.xml
    directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/ApacheDS200LdapServerAdapter.java
    directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/CreateConnectionAction.java

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/ApacheDS2ConfigurationPluginConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/ApacheDS2ConfigurationPluginConstants.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/ApacheDS2ConfigurationPluginConstants.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/ApacheDS2ConfigurationPluginConstants.java Sun Mar 22 18:37:51 2015
@@ -48,4 +48,8 @@ public interface ApacheDS2ConfigurationP
     public static final String IMG_PASSWORD_POLICY_DEFAULT = "resources/icons/password_policy_default.gif"; //$NON-NLS-1$
     public static final String IMG_REPLICATION_CONSUMER = "resources/icons/replication_consumer.gif"; //$NON-NLS-1$
     public static final String IMG_VERTICAL_ORIENTATION = "resources/icons/vertical_orientation.gif"; //$NON-NLS-1$
+
+    public static final String CONFIG_LDIF = "config.ldif"; //$NON-NLS-1$
+    public static final String OU_CONFIG_LDIF = "ou=config.ldif"; //$NON-NLS-1$
+
 }

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorExportConfigurationAction.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorExportConfigurationAction.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorExportConfigurationAction.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorExportConfigurationAction.java Sun Mar 22 18:37:51 2015
@@ -83,7 +83,7 @@ public class EditorExportConfigurationAc
         try
         {
             ServerConfigurationEditorUtils.saveAs( new NullProgressMonitor(), editor.getSite()
-                .getShell(), editor.getEditorInput(), editor.getConfigWriter(), false );
+                .getShell(), editor.getEditorInput(), editor.getConfigWriter(), editor.getConfiguration(), false );
         }
         catch ( Exception e )
         {

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorImportConfigurationAction.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorImportConfigurationAction.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorImportConfigurationAction.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/actions/EditorImportConfigurationAction.java Sun Mar 22 18:37:51 2015
@@ -22,12 +22,10 @@ package org.apache.directory.studio.apac
 
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
 
-import org.apache.directory.server.config.beans.ConfigBean;
 import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPlugin;
 import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPluginConstants;
+import org.apache.directory.studio.apacheds.configuration.v2.editor.Configuration;
 import org.apache.directory.studio.apacheds.configuration.v2.editor.ServerConfigurationEditor;
 import org.apache.directory.studio.apacheds.configuration.v2.jobs.LoadConfigurationRunnable;
 import org.apache.directory.studio.common.ui.CommonUIUtils;
@@ -114,8 +112,8 @@ public class EditorImportConfigurationAc
                 }
             }
 
-            // The input stream that will be used to load the configuration
-            InputStream inputStream = null;
+            // The file that will be used to load the configuration
+            File file = null;
 
             // detect IDE or RCP:
             boolean isIDE = CommonUIUtils.isIDEEnvironment();
@@ -132,7 +130,7 @@ public class EditorImportConfigurationAc
                     
                     if ( ( firstResult != null ) && ( firstResult instanceof IFile ) )
                     {
-                        inputStream = ( ( IFile ) firstResult ).getContents();
+                        file = ( ( IFile ) firstResult ).getLocation().toFile();
                     }
                 }
                 else
@@ -156,20 +154,17 @@ public class EditorImportConfigurationAc
                 }
 
                 // Checking the file
-                File file = new File( filePath );
+                file = new File( filePath );
                 
                 if ( !file.exists() || !file.isFile() || !file.canRead() )
                 {
                     // This is not a valid file
                     return;
                 }
-
-                // Getting the input stream for the selected file
-                inputStream = new FileInputStream( file );
             }
 
             // Checking if we found an input stream
-            if ( inputStream == null )
+            if ( file == null )
             {
                 return;
             }
@@ -186,10 +181,10 @@ public class EditorImportConfigurationAc
             }
 
             // Reading the configuration of the file
-            ConfigBean configBean = LoadConfigurationRunnable.readConfiguration( inputStream );
+            Configuration configuration = LoadConfigurationRunnable.readConfiguration( file );
 
             // Resetting the configuration back to the editor
-            editor.resetConfiguration( configBean );
+            editor.resetConfiguration( configuration );
         }
         catch ( Exception e )
         {

Added: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/Configuration.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/Configuration.java?rev=1668435&view=auto
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/Configuration.java (added)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/Configuration.java Sun Mar 22 18:37:51 2015
@@ -0,0 +1,70 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.directory.studio.apacheds.configuration.v2.editor;
+
+
+import org.apache.directory.server.config.beans.ConfigBean;
+import org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition;
+import org.apache.directory.server.core.partition.ldif.AbstractLdifPartition;
+
+
+/**
+ * Configuration of the server.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class Configuration
+{
+
+    private ConfigBean configBean;
+    private AbstractBTreePartition configPartition;
+
+
+    public Configuration( ConfigBean configBean, AbstractBTreePartition configPartition )
+    {
+        this.configBean = configBean;
+        this.configPartition = configPartition;
+    }
+
+
+    public ConfigBean getConfigBean()
+    {
+        return configBean;
+    }
+
+
+    public void setConfigBean( ConfigBean configBean )
+    {
+        this.configBean = configBean;
+    }
+
+
+    public AbstractBTreePartition getConfigPartition()
+    {
+        return configPartition;
+    }
+
+
+    public void setConfigPartition( AbstractLdifPartition configPartition )
+    {
+        this.configPartition = configPartition;
+    }
+
+}

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java Sun Mar 22 18:37:51 2015
@@ -23,7 +23,6 @@ package org.apache.directory.studio.apac
 import java.lang.reflect.InvocationTargetException;
 
 import org.apache.directory.server.config.ConfigWriter;
-import org.apache.directory.server.config.beans.ConfigBean;
 import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPlugin;
 import org.apache.directory.studio.apacheds.configuration.v2.jobs.LoadConfigurationRunnable;
 import org.apache.directory.studio.apacheds.configuration.v2.jobs.SaveConfigurationRunnable;
@@ -64,8 +63,8 @@ public class ServerConfigurationEditor e
     /** The flag indicating if the editor is dirty */
     private boolean dirty = false;
 
-    /** The configuration bean */
-    private ConfigBean configBean;
+    /** The configuration including bean and underlying parttiton */
+    private Configuration configuration;
 
     /** The pages */
     private LoadingPage loadingPage;
@@ -77,6 +76,8 @@ public class ServerConfigurationEditor e
     private ReplicationPage replicationPage;
 
 
+
+
     /**
      * {@inheritDoc}
      */
@@ -230,7 +231,7 @@ public class ServerConfigurationEditor e
 
         // Saving the configuration as a new file and getting the associated new editor input
         IEditorInput newInput = ServerConfigurationEditorUtils.saveAs( monitor, getSite().getShell(),
-            getEditorInput(), getConfigWriter(), true );
+            getEditorInput(), getConfigWriter(), getConfiguration(), true );
 
         // Checking if the 'save as' is successful 
         boolean success = newInput != null;
@@ -309,35 +310,35 @@ public class ServerConfigurationEditor e
 
 
     /**
-     * Gets the configuration bean.
+     * Gets the configuration.
      *
-     * @return the configuration bean
+     * @return the configuration
      */
-    public ConfigBean getConfigBean()
+    public Configuration getConfiguration()
     {
-        return configBean;
+        return configuration;
     }
 
 
     /**
      * Sets the configuration.
      *
-     * @param configBean the configuration bean
+     * @param configuration the configuration
      */
-    public void setConfiguration( ConfigBean configBean )
+    public void setConfiguration( Configuration configuration )
     {
-        this.configBean = configBean;
+        this.configuration = configuration;
     }
 
 
     /**
      * Resets the configuration and refresh the UI.
      *
-     * @param configBean the configuration bean
+     * @param configuration the configuration
      */
-    public void resetConfiguration( ConfigBean configBean )
+    public void resetConfiguration( Configuration configuration )
     {
-        setConfiguration( configBean );
+        setConfiguration( configuration );
 
         setDirty( true );
 
@@ -354,11 +355,11 @@ public class ServerConfigurationEditor e
      * This method is called by the job responsible for loading the 
      * configuration when it has been fully and correctly loaded.
      *
-     * @param configBean the loaded configuration bean
+     * @param configuration the configuration
      */
-    public void configurationLoaded( ConfigBean configBean )
+    public void configurationLoaded( Configuration configuration )
     {
-        setConfiguration( configBean );
+        setConfiguration( configuration );
 
         hideLoadingPageAndDisplayConfigPages();
     }
@@ -474,6 +475,7 @@ public class ServerConfigurationEditor e
      */
     public ConfigWriter getConfigWriter() throws Exception
     {
-        return new ConfigWriter( ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager(), configBean );
+        return new ConfigWriter( ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager(),
+            configuration.getConfigBean() );
     }
 }

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java Sun Mar 22 18:37:51 2015
@@ -160,15 +160,15 @@ public abstract class ServerConfiguratio
      */
     public ConfigBean getConfigBean()
     {
-        ConfigBean configBean = getServerConfigurationEditor().getConfigBean();
+        Configuration configuration = getServerConfigurationEditor().getConfiguration();
 
-        if ( configBean == null )
+        if ( configuration == null )
         {
-            configBean = new ConfigBean();
-            getServerConfigurationEditor().setConfiguration( configBean );
+            configuration = new Configuration( new ConfigBean(), null );
+            getServerConfigurationEditor().setConfiguration( configuration );
         }
 
-        return configBean;
+        return configuration.getConfigBean();
     }
 
 

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorUtils.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorUtils.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorUtils.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorUtils.java Sun Mar 22 18:37:51 2015
@@ -23,13 +23,26 @@ package org.apache.directory.studio.apac
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.util.List;
+import java.util.UUID;
 
+import org.apache.commons.io.FileUtils;
 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;
+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.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;
+import org.apache.directory.server.core.partition.ldif.AbstractLdifPartition;
+import org.apache.directory.server.core.partition.ldif.LdifPartition;
+import org.apache.directory.server.core.partition.ldif.SingleFileLdifPartition;
 import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPlugin;
+import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPluginConstants;
 import org.apache.directory.studio.apacheds.configuration.v2.jobs.EntryBasedConfigurationPartition;
 import org.apache.directory.studio.apacheds.configuration.v2.jobs.PartitionsDiffComputer;
 import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
@@ -83,7 +96,7 @@ public class ServerConfigurationEditorUt
      * @throws Exception
      */
     public static IEditorInput saveAs( IProgressMonitor monitor, Shell shell, IEditorInput input,
-        ConfigWriter configWriter, boolean newInput )
+        ConfigWriter configWriter, Configuration configuration, boolean newInput )
         throws Exception
     {
         // detect IDE or RCP:
@@ -119,7 +132,7 @@ public class ServerConfigurationEditorUt
             }
             else
             {
-                dialog.setOriginalName( "config.ldif" ); //$NON-NLS-1$
+                dialog.setOriginalName( ApacheDS2ConfigurationPluginConstants.CONFIG_LDIF );
             }
 
             // Open the dialog
@@ -141,7 +154,8 @@ public class ServerConfigurationEditorUt
             FileEditorInput fei = new FileEditorInput( file );
 
             // Saving the file to disk
-            saveConfiguration( fei, configWriter, monitor );
+            File configFile = fei.getPath().toFile();
+            saveConfiguration( configFile, configWriter, configuration );
 
             return fei;
         }
@@ -189,7 +203,7 @@ public class ServerConfigurationEditorUt
             }
 
             // Saving the file to disk
-            saveConfiguration( path, configWriter );
+            saveConfiguration( new File(path), configWriter, configuration );
 
             // Checking if a new input is required
             if ( newInput )
@@ -298,25 +312,6 @@ public class ServerConfigurationEditorUt
      * Saves the configuration.
      *
      * @param input
-     *      the file editor input
-     * @param configWriter
-     *      the configuration writer
-     * @param monitor
-     *      the monitor
-     * @throws Exception
-     */
-    public static void saveConfiguration( FileEditorInput input, ConfigWriter configWriter, IProgressMonitor monitor )
-        throws Exception
-    {
-        input.getFile().setContents( new ByteArrayInputStream( configWriter.writeToString().getBytes() ), true,
-            true, monitor );
-    }
-
-
-    /**
-     * Saves the configuration.
-     *
-     * @param input
      *      the connection server configuration input
      * @param configWriter
      *      the configuration writer
@@ -338,6 +333,9 @@ public class ServerConfigurationEditorUt
         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();
         for ( LdifEntry ldifEntry : convertedLdifEntries )
@@ -405,24 +403,114 @@ public class ServerConfigurationEditorUt
      *      the configuration writer
      * @throws Exception
      */
-    public static void saveConfiguration( File file, ConfigWriter configWriter ) throws Exception
+    public static void saveConfiguration( File file, ConfigWriter configWriter, Configuration configuration )
+        throws Exception
+    {
+        SchemaManager schemaManager = ApacheDS2ConfigurationPlugin.getDefault().getSchemaManager();
+
+        CacheService cacheService = new CacheService();
+        cacheService.initialize( null );
+
+        DnFactory dnFactory = null;
+
+        CsnFactory csnFactory = new CsnFactory( 0 );
+
+        if ( file != null )
+        {
+            // create partiton
+            AbstractLdifPartition configPartition;
+            if ( file.getName().equals( ApacheDS2ConfigurationPluginConstants.OU_CONFIG_LDIF ) )
+            {
+                File confDir = file.getParentFile();
+                if ( file.exists() )
+                {
+                    FileUtils.deleteDirectory( confDir );
+                }
+                configPartition = createMultiFileConfiguration( confDir, schemaManager, dnFactory, cacheService );
+            }
+            else
+            {
+                if ( file.exists() )
+                {
+                    file.delete();
+                }
+                configPartition = createSingleFileConfiguration( file, schemaManager, dnFactory, cacheService );
+            }
+
+            // write entries to partition
+            List<LdifEntry> convertedLdifEntries = configWriter.getConvertedLdifEntries();
+            for ( LdifEntry ldifEntry : convertedLdifEntries )
+            {
+                Entry entry = new DefaultEntry( schemaManager, ldifEntry.getEntry() );
+                if ( entry.get( SchemaConstants.ENTRY_CSN_AT ) == null )
+                {
+                    entry.add( SchemaConstants.ENTRY_CSN_AT, csnFactory.newInstance().toString() );
+                }
+                if ( entry.get( SchemaConstants.ENTRY_UUID_AT ) == null )
+                {
+                    String uuid = UUID.randomUUID().toString();
+                    entry.add( SchemaConstants.ENTRY_UUID_AT, uuid );
+                }
+                configPartition.add( new AddOperationContext( null, entry ) );
+            }
+        }
+    }
+
+
+    private static SingleFileLdifPartition createSingleFileConfiguration( File configFile, SchemaManager schemaManager,
+        DnFactory dnFactory, CacheService cacheService ) throws Exception
     {
-        configWriter.writeToFile( file );
+        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;
     }
 
 
-    /**
-     * Saves the configuration.
-     *
-     * @param path
-     *      the path
-     * @param configWriter
-     *      the configuration writer
-     * @throws Exception
-     */
-    public static void saveConfiguration( String path, ConfigWriter configWriter ) throws Exception
+    private static LdifPartition createMultiFileConfiguration( File confDir, SchemaManager schemaManager, DnFactory dnFactory,
+        CacheService cacheService ) throws Exception
     {
-        saveConfiguration( new File( path ), configWriter );
+        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;
+    }
+
+
+    // TODO: somthing link this should be used in future to only write changes to partition
+    private static List<LdifEntry> computeModifications( ConfigWriter configWriter,
+        AbstractBTreePartition originalPartition ) throws Exception
+    {
+        // Creating a new configuration partition
+        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();
+        for ( LdifEntry ldifEntry : convertedLdifEntries )
+        {
+            newconfigurationPartition.addEntry( new DefaultEntry( schemaManager, ldifEntry.getEntry() ) );
+        }
+
+        // Comparing both partitions to get the list of modifications to be applied
+        PartitionsDiffComputer partitionsDiffComputer = new PartitionsDiffComputer();
+        partitionsDiffComputer.setOriginalPartition( originalPartition );
+        partitionsDiffComputer.setDestinationPartition( newconfigurationPartition );
+        List<LdifEntry> modificationsList = partitionsDiffComputer.computeModifications( new String[]
+            { SchemaConstants.ALL_USER_ATTRIBUTES } );
+
+        return modificationsList;
     }
 
 

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java Sun Mar 22 18:37:51 2015
@@ -24,6 +24,7 @@ package org.apache.directory.studio.apac
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -40,12 +41,18 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.name.Dn;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
 import org.apache.directory.server.config.ConfigPartitionReader;
+import org.apache.directory.server.config.ConfigPartitionInitializer;
 import org.apache.directory.server.config.ReadOnlyConfigurationPartition;
 import org.apache.directory.server.config.beans.ConfigBean;
 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.constants.ServerDNConstants;
 import org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition;
+import org.apache.directory.server.core.partition.ldif.LdifPartition;
 import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPlugin;
+import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPluginConstants;
+import org.apache.directory.studio.apacheds.configuration.v2.editor.Configuration;
 import org.apache.directory.studio.apacheds.configuration.v2.editor.ConnectionServerConfigurationInput;
 import org.apache.directory.studio.apacheds.configuration.v2.editor.NewServerConfigurationInput;
 import org.apache.directory.studio.apacheds.configuration.v2.editor.ServerConfigurationEditor;
@@ -60,12 +67,14 @@ import org.apache.directory.studio.ldapb
 import org.apache.directory.studio.ldapbrowser.core.jobs.SearchRunnable;
 import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
 import org.apache.directory.studio.ldapbrowser.core.model.SearchParameter;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPathEditorInput;
 import org.eclipse.ui.part.FileEditorInput;
+import org.osgi.framework.Bundle;
 
 
 /**
@@ -127,15 +136,15 @@ public class LoadConfigurationRunnable i
 
         try
         {
-            final ConfigBean configBean = getConfiguration( input, monitor );
+            final Configuration configuration = getConfiguration( input, monitor );
             
-            if ( configBean != null )
+            if ( configuration != null )
             {
                 Display.getDefault().asyncExec( new Runnable()
                 {
                     public void run()
                     {
-                        editor.configurationLoaded( configBean );
+                        editor.configurationLoaded( configuration );
                     }
                 } );
             }
@@ -171,7 +180,7 @@ public class LoadConfigurationRunnable i
      * @return the configuration
      * @throws Exception If the configuration wasn't correctly read
      */
-    public ConfigBean getConfiguration( IEditorInput input, StudioProgressMonitor monitor ) throws Exception
+    public Configuration getConfiguration( IEditorInput input, StudioProgressMonitor monitor ) throws Exception
     {
         String inputClassName = input.getClass().getName();
         
@@ -179,10 +188,12 @@ public class LoadConfigurationRunnable i
         // need to get the server configuration and return
         if ( input instanceof NewServerConfigurationInput )
         {
-            InputStream is = ApacheDS2ConfigurationPlugin.class.getResourceAsStream( "config.ldif" ); //$NON-NLS-1$
-            return readConfiguration( is );
+            Bundle bundle = Platform.getBundle( "org.apache.directory.server.config" );
+            URL resource = bundle.getResource( "config.ldif" );
+            InputStream is = resource.openStream();
+            return readSingleFileConfiguration( is );
         }
-        
+
         // If the input is a ConnectionServerConfigurationInput, then we 
         // read the server configuration from the selected connection
         if ( input instanceof ConnectionServerConfigurationInput )
@@ -193,13 +204,13 @@ public class LoadConfigurationRunnable i
         // The 'FileEditorInput' class is used when the file is opened
         // from a project in the workspace.
         {
-            InputStream is = ( ( FileEditorInput ) input ).getFile().getContents();
-            return readConfiguration( is );
+            File file = ( ( FileEditorInput ) input ).getFile().getLocation().toFile();
+            return readConfiguration( file );
         }
         else if ( input instanceof IPathEditorInput )
         {
-            InputStream is = new FileInputStream( new File( ( ( IPathEditorInput ) input ).getPath().toOSString() ) );
-            return readConfiguration( is );
+            File file = ( ( IPathEditorInput ) input ).getPath().toFile();
+            return readConfiguration( file );
         }
         else if ( inputClassName.equals( "org.eclipse.ui.internal.editors.text.JavaFileEditorInput" ) //$NON-NLS-1$
             || inputClassName.equals( "org.eclipse.ui.ide.FileStoreEditorInput" ) ) //$NON-NLS-1$
@@ -209,9 +220,8 @@ public class LoadConfigurationRunnable i
         // opening a file from the menu File > Open... in Eclipse 3.3.x
         {
             // We use the tooltip to get the full path of the file
-            InputStream is = new FileInputStream( new File( input.getToolTipText() ) );
-            
-            return readConfiguration( is );
+            File file = new File( input.getToolTipText() );
+            return readConfiguration( file );
         }
 
         return null;
@@ -225,25 +235,62 @@ public class LoadConfigurationRunnable i
      * @return the associated configuration bean
      * @throws Exception if we weren't able to load the configuration
      */
-    public static ConfigBean readConfiguration( InputStream is ) throws Exception
+    public static Configuration readConfiguration( File file ) throws Exception
     {
-        if ( is != null )
+        if ( file != null )
         {
-            // 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 );
+            if(file.getName().equals( ApacheDS2ConfigurationPluginConstants.CONFIG_LDIF )) {
+                return readSingleFileConfiguration( file );
+            }
+            else if(file.getName().equals( ApacheDS2ConfigurationPluginConstants.OU_CONFIG_LDIF )) {
+                return readMultiFileConfigureation( file.getParentFile() );
+            }
+        }
 
-            configurationPartition.initialize();
+        return null;
+    }
 
-            // Reading the configuration partition
-            return readConfiguration( configurationPartition );
 
-        }
+    private static Configuration readSingleFileConfiguration( File configLdifFile ) throws Exception
+    {
+        InputStream is = new FileInputStream( configLdifFile );
 
-        return null;
+        // Reading the configuration partition
+        return readSingleFileConfiguration( is );
+    }
+
+
+    private static Configuration readSingleFileConfiguration( InputStream is ) throws Exception
+    {
+        // 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();
+
+        // Reading the configuration partition
+        return readConfiguration( configurationPartition );
+    }
+
+
+    private static Configuration readMultiFileConfigureation( File confDirectory ) throws Exception
+    {
+        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 );
+        LdifPartition configurationPartition = init.initConfigPartition();
+
+        return readConfiguration( configurationPartition );
     }
 
 
@@ -254,12 +301,13 @@ public class LoadConfigurationRunnable i
      * @return the associated configuration bean
      * @throws LdapException if we weren't able to load the configuration
      */
-    private static ConfigBean readConfiguration( AbstractBTreePartition partition ) throws LdapException
+    private static Configuration readConfiguration( AbstractBTreePartition partition ) throws LdapException
     {
         if ( partition != null )
         {
             ConfigPartitionReader cpReader = new ConfigPartitionReader( partition );
-            return cpReader.readConfig();
+            ConfigBean configBean = cpReader.readConfig();
+            return new Configuration( configBean, partition );
         }
 
         return null;
@@ -274,7 +322,7 @@ public class LoadConfigurationRunnable i
      * @return the associated configuration bean
      * @throws Exception if we weren't able to load the configuration
      */
-    private ConfigBean readConfiguration( ConnectionServerConfigurationInput input, StudioProgressMonitor monitor ) throws Exception
+    private Configuration readConfiguration( ConnectionServerConfigurationInput input, StudioProgressMonitor monitor ) throws Exception
     {
         if ( input != null )
         {
@@ -287,6 +335,9 @@ public class LoadConfigurationRunnable i
             // 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

Modified: directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/SaveConfigurationRunnable.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/SaveConfigurationRunnable.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/SaveConfigurationRunnable.java (original)
+++ directory/studio/branches/studio-tycho/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/SaveConfigurationRunnable.java Sun Mar 22 18:37:51 2015
@@ -21,6 +21,8 @@
 package org.apache.directory.studio.apacheds.configuration.v2.jobs;
 
 
+import java.io.File;
+
 import org.apache.directory.studio.apacheds.configuration.v2.editor.ConnectionServerConfigurationInput;
 import org.apache.directory.studio.apacheds.configuration.v2.editor.NewServerConfigurationInput;
 import org.apache.directory.studio.apacheds.configuration.v2.editor.ServerConfigurationEditor;
@@ -31,7 +33,6 @@ import org.eclipse.core.runtime.IProgres
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.part.FileEditorInput;
 
 
 /**
@@ -99,18 +100,7 @@ public class SaveConfigurationRunnable i
                 IEditorInput input = editor.getEditorInput();
                 String inputClassName = input.getClass().getName();
                 boolean success = false;
-                
-                if ( input instanceof FileEditorInput )
-                // FileEditorInput class is used when the file is opened
-                // from a project in the workspace.
-                {
-                    // Saving the ServerConfiguration to disk
-                    ServerConfigurationEditorUtils.saveConfiguration( ( FileEditorInput ) input,
-                        editor.getConfigWriter(),
-                        monitor );
-                    success = true;
-                }
-                
+
                 // If the input is a ConnectionServerConfigurationInput, then we 
                 // read the server configuration from the selected connection
                 if ( input instanceof ConnectionServerConfigurationInput )
@@ -123,8 +113,9 @@ public class SaveConfigurationRunnable i
                 else if ( input instanceof IPathEditorInput )
                 {
                     // Saving the ServerConfiguration to disk
-                    ServerConfigurationEditorUtils
-                        .saveConfiguration( ( ( IPathEditorInput ) input ).getPath().toFile(), editor.getConfigWriter() );
+                    File file = ( ( IPathEditorInput ) input ).getPath().toFile();
+                    ServerConfigurationEditorUtils.saveConfiguration( file, editor.getConfigWriter(),
+                        editor.getConfiguration() );
                     success = true;
                 }
                 else if ( inputClassName.equals( "org.eclipse.ui.internal.editors.text.JavaFileEditorInput" ) //$NON-NLS-1$
@@ -135,7 +126,9 @@ public class SaveConfigurationRunnable i
                 // opening a file from the menu File > Open... in Eclipse 3.3.x
                 {
                     // Saving the ServerConfiguration to disk
-                    ServerConfigurationEditorUtils.saveConfiguration( input.getToolTipText(), editor.getConfigWriter() );
+                    File file = new File( input.getToolTipText() );
+                    ServerConfigurationEditorUtils.saveConfiguration( file, editor.getConfigWriter(),
+                        editor.getConfiguration() );
                     success = true;
                 }
                 else if ( input instanceof NewServerConfigurationInput )

Modified: directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom-first.xml
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom-first.xml?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom-first.xml (original)
+++ directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom-first.xml Sun Mar 22 18:37:51 2015
@@ -49,7 +49,8 @@
             
             <Export-Package>org.apache.directory.studio.ldapservers.apacheds.v200</Export-Package>
  
-            <Import-Package>org.dom4j,
+            <Import-Package>org.apache.directory.server.core.api,
+ org.dom4j,
  org.dom4j.io,
  org.dom4j.tree</Import-Package>
             

Modified: directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom.xml?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom.xml (original)
+++ directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/pom.xml Sun Mar 22 18:37:51 2015
@@ -182,11 +182,12 @@
             </goals>
             <configuration>
               <outputDirectory>resources/libs</outputDirectory>
+              <stripVersion>true</stripVersion>
               <artifactItems>
                 <artifactItem>
                   <groupId>org.apache.directory.server</groupId>
                   <artifactId>apacheds-service</artifactId>
-                  <version>2.0.0-M17</version>
+                  <version>${org.apache.directory.server.version}</version>
                 </artifactItem>
               </artifactItems>
             </configuration>

Modified: directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/ApacheDS200LdapServerAdapter.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/ApacheDS200LdapServerAdapter.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/ApacheDS200LdapServerAdapter.java (original)
+++ directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/ApacheDS200LdapServerAdapter.java Sun Mar 22 18:37:51 2015
@@ -22,9 +22,7 @@ package org.apache.directory.studio.ldap
 
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -36,6 +34,8 @@ import org.apache.directory.server.confi
 import org.apache.directory.server.config.beans.LdapServerBean;
 import org.apache.directory.server.config.beans.NtpServerBean;
 import org.apache.directory.server.config.beans.TransportBean;
+import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPluginConstants;
+import org.apache.directory.studio.apacheds.configuration.v2.editor.Configuration;
 import org.apache.directory.studio.apacheds.configuration.v2.editor.ServerConfigurationEditor;
 import org.apache.directory.studio.apacheds.configuration.v2.jobs.LoadConfigurationRunnable;
 import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
@@ -74,7 +74,6 @@ import org.osgi.framework.Bundle;
 public class ApacheDS200LdapServerAdapter implements LdapServerAdapter
 {
     // Various strings constants used in paths
-    private static final String CONFIG_LDIF = "config.ldif"; //$NON-NLS-1$
     private static final String LOG4J_PROPERTIES = "log4j.properties"; //$NON-NLS-1$
     private static final String RESOURCES = "resources"; //$NON-NLS-1$
     private static final String LIBS = "libs"; //$NON-NLS-1$
@@ -82,7 +81,7 @@ public class ApacheDS200LdapServerAdapte
 
     /** The array of libraries names */
     private static final String[] libraries = new String[]
-        { "apacheds-service-2.0.0-M17.jar" }; //$NON-NLS-1$
+        { "apacheds-service.jar" }; //$NON-NLS-1$
 
 
     /**
@@ -113,8 +112,8 @@ public class ApacheDS200LdapServerAdapte
         // Copying configuration files
         monitor.subTask( Messages.getString( "ApacheDS200LdapServerAdapter.CopyingConfigurationFiles" ) ); //$NON-NLS-1$
         IPath resourceConfFolderPath = new Path( RESOURCES ).append( CONF );
-        LdapServersUtils.copyResource( bundle, resourceConfFolderPath.append( CONFIG_LDIF ), new File( confFolder,
-            CONFIG_LDIF ) );
+        // call of getServerConfiguration() extracts the default configuration
+        getServerConfiguration( server );
         LdapServersUtils.copyResource( bundle, resourceConfFolderPath.append( LOG4J_PROPERTIES ), new File( confFolder,
             LOG4J_PROPERTIES ) );
 
@@ -146,7 +145,7 @@ public class ApacheDS200LdapServerAdapte
                 try
                 {
                     PathEditorInput input = new PathEditorInput( LdapServersManager.getServerFolder( server )
-                        .append( CONF ).append( CONFIG_LDIF ) );
+                        .append( CONF ).append( ApacheDS2ConfigurationPluginConstants.OU_CONFIG_LDIF ) );
                     PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
                         .openEditor( input, ServerConfigurationEditor.ID );
                 }
@@ -331,12 +330,11 @@ public class ApacheDS200LdapServerAdapte
     * @throws ServerXmlIOException 
     * @throws FileNotFoundException 
     */
-    public static ConfigBean getServerConfiguration( LdapServer server ) throws Exception
+    public static Configuration getServerConfiguration( LdapServer server ) throws Exception
     {
-        InputStream fis = new FileInputStream( LdapServersManager.getServerFolder( server ).append( CONF )
-            .append( CONFIG_LDIF ).toFile() );
-
-        return LoadConfigurationRunnable.readConfiguration( fis );
+        File configFile = LdapServersManager.getServerFolder( server ).append( CONF )
+            .append( ApacheDS2ConfigurationPluginConstants.OU_CONFIG_LDIF ).toFile();
+        return LoadConfigurationRunnable.readConfiguration( configFile );
     }
 
 
@@ -352,7 +350,7 @@ public class ApacheDS200LdapServerAdapte
      */
     private int getTestingPort( LdapServer server ) throws Exception
     {
-        ConfigBean configuration = getServerConfiguration( server );
+        ConfigBean configuration = getServerConfiguration( server ).getConfigBean();
 
         // LDAP
         if ( isEnableLdap( configuration ) )
@@ -784,7 +782,7 @@ public class ApacheDS200LdapServerAdapte
     {
         List<String> alreadyInUseProtocolPortsList = new ArrayList<String>();
 
-        ConfigBean configuration = getServerConfiguration( server );
+        ConfigBean configuration = getServerConfiguration( server ).getConfigBean();
 
         // LDAP
         if ( isEnableLdap( configuration ) )

Modified: directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/CreateConnectionAction.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/CreateConnectionAction.java?rev=1668435&r1=1668434&r2=1668435&view=diff
==============================================================================
--- directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/CreateConnectionAction.java (original)
+++ directory/studio/branches/studio-tycho/plugins/ldapservers.apacheds.v200/src/main/java/org/apache/directory/studio/ldapservers/apacheds/v200/CreateConnectionAction.java Sun Mar 22 18:37:51 2015
@@ -85,7 +85,7 @@ public class CreateConnectionAction impl
                 ConfigBean configuration = null;
                 try
                 {
-                    configuration = ApacheDS200LdapServerAdapter.getServerConfiguration( server );
+                    configuration = ApacheDS200LdapServerAdapter.getServerConfiguration( server ).getConfigBean();
                 }
                 catch ( Exception e )
                 {