You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2007/04/16 17:08:39 UTC

svn commit: r529280 - in /directory/ldapstudio/trunk/ldapstudio-apacheds-configuration: ./ META-INF/ src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/ src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/edit...

Author: pamarcelot
Date: Mon Apr 16 08:08:36 2007
New Revision: 529280

URL: http://svn.apache.org/viewvc?view=rev&rev=529280
Log:
Added Server Configuration Parser. Added a new Action that reads a server.xml file on the disk and opens it in the editor.

Added:
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenServerConfigurationAction.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParser.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParserException.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationWriter.java
Modified:
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/.classpath
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/META-INF/MANIFEST.MF
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/build.properties
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/ivy.xml
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenEditorAction.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Partition.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfiguration.java

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/.classpath
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/.classpath?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/.classpath (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/.classpath Mon Apr 16 08:08:36 2007
@@ -4,5 +4,24 @@
 	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="lib" path="lib/apacheds-btree-base-1.5.1-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/apacheds-core-1.5.1-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/apacheds-jdbm-store-1.5.1-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/apacheds-protocol-ldap-1.5.1-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/apacheds-schema-registries-1.5.1-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/apacheds-server-jndi-1.5.1-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/commons-collections-3.2.jar"/>
+	<classpathentry kind="lib" path="lib/commons-logging-1.1.jar"/>
+	<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
+	<classpathentry kind="lib" path="lib/jdbm-1.0.jar"/>
+	<classpathentry kind="lib" path="lib/mina-core-1.0.2.jar"/>
+	<classpathentry kind="lib" path="lib/nlog4j-1.2.25.jar"/>
+	<classpathentry kind="lib" path="lib/shared-asn1-0.9.7-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/shared-asn1-codec-0.9.7-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/shared-ldap-0.9.7-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/shared-ldap-constants-0.9.7-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/spring-beans-1.2.8.jar"/>
+	<classpathentry kind="lib" path="lib/spring-context-1.2.8.jar"/>
+	<classpathentry kind="lib" path="lib/spring-core-1.2.8.jar"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/META-INF/MANIFEST.MF?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/META-INF/MANIFEST.MF (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/META-INF/MANIFEST.MF Mon Apr 16 08:08:36 2007
@@ -7,7 +7,26 @@
 Bundle-Vendor: Apache Software Foundation
 Bundle-Localization: plugin
 Eclipse-LazyStart: true
-Bundle-ClassPath: .
+Bundle-ClassPath: .,
+ lib/apacheds-btree-base-1.5.1-SNAPSHOT.jar,
+ lib/apacheds-core-1.5.1-SNAPSHOT.jar,
+ lib/apacheds-jdbm-store-1.5.1-SNAPSHOT.jar,
+ lib/apacheds-protocol-ldap-1.5.1-SNAPSHOT.jar,
+ lib/apacheds-schema-registries-1.5.1-SNAPSHOT.jar,
+ lib/apacheds-server-jndi-1.5.1-SNAPSHOT.jar,
+ lib/commons-collections-3.2.jar,
+ lib/commons-logging-1.1.jar,
+ lib/dom4j-1.6.1.jar,
+ lib/jdbm-1.0.jar,
+ lib/mina-core-1.0.2.jar,
+ lib/nlog4j-1.2.25.jar,
+ lib/shared-asn1-0.9.7-SNAPSHOT.jar,
+ lib/shared-asn1-codec-0.9.7-SNAPSHOT.jar,
+ lib/shared-ldap-0.9.7-SNAPSHOT.jar,
+ lib/shared-ldap-constants-0.9.7-SNAPSHOT.jar,
+ lib/spring-beans-1.2.8.jar,
+ lib/spring-context-1.2.8.jar,
+ lib/spring-core-1.2.8.jar
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.ui,
  org.eclipse.ui.forms

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/build.properties
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/build.properties?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/build.properties (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/build.properties Mon Apr 16 08:08:36 2007
@@ -2,6 +2,25 @@
                plugin.xml,\
                src/main/java/,\
                .,\
-               icons/
+               icons/,\
+               lib/apacheds-btree-base-1.5.1-SNAPSHOT.jar,\
+               lib/apacheds-core-1.5.1-SNAPSHOT.jar,\
+               lib/apacheds-jdbm-store-1.5.1-SNAPSHOT.jar,\
+               lib/apacheds-protocol-ldap-1.5.1-SNAPSHOT.jar,\
+               lib/apacheds-schema-registries-1.5.1-SNAPSHOT.jar,\
+               lib/apacheds-server-jndi-1.5.1-SNAPSHOT.jar,\
+               lib/commons-collections-3.2.jar,\
+               lib/commons-logging-1.1.jar,\
+               lib/dom4j-1.6.1.jar,\
+               lib/jdbm-1.0.jar,\
+               lib/mina-core-1.0.2.jar,\
+               lib/nlog4j-1.2.25.jar,\
+               lib/shared-asn1-0.9.7-SNAPSHOT.jar,\
+               lib/shared-asn1-codec-0.9.7-SNAPSHOT.jar,\
+               lib/shared-ldap-0.9.7-SNAPSHOT.jar,\
+               lib/shared-ldap-constants-0.9.7-SNAPSHOT.jar,\
+               lib/spring-beans-1.2.8.jar,\
+               lib/spring-context-1.2.8.jar,\
+               lib/spring-core-1.2.8.jar
 source.. = src/main/java/,\
            src/test/java/

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/ivy.xml
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/ivy.xml?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/ivy.xml (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/ivy.xml Mon Apr 16 08:08:36 2007
@@ -18,4 +18,21 @@
 -->
 <ivy-module version="1.0">
     <info organisation="org.apache.directory.ldapstudio" module="ldapdtudio-apacheds-configuration"/>
+    <dependencies>
+		<!-- <dependency org="commons-configuration" name="commons-configuration" rev="1.2"/> -->
+		<dependency org="org.springframework" name="spring-context" rev="1.2.8"/>
+		<dependency org="org.apache.directory.server" name="apacheds-core" rev="1.5.1-SNAPSHOT"/>
+		<dependency org="org.apache.directory.server" name="apacheds-schema-registries" rev="1.5.1-SNAPSHOT"/>
+		<dependency org="org.apache.directory.server" name="apacheds-jdbm-store" rev="1.5.1-SNAPSHOT"/>
+		<dependency org="org.apache.directory.server" name="apacheds-btree-base" rev="1.5.1-SNAPSHOT"/>
+		<dependency org="org.apache.directory.server" name="apacheds-server-jndi" rev="1.5.1-SNAPSHOT"/>
+		<dependency org="org.apache.directory.server" name="apacheds-protocol-ldap" rev="1.5.1-SNAPSHOT"/>
+		<dependency org="org.apache.directory.shared" name="shared-ldap" rev="0.9.7-SNAPSHOT"/>
+		<dependency org="org.apache.directory.shared" name="shared-ldap-constants" rev="0.9.7-SNAPSHOT"/>
+		<dependency org="org.apache.directory.shared" name="shared-asn1" rev="0.9.7-SNAPSHOT"/>
+		<dependency org="org.apache.directory.shared" name="shared-asn1-codec" rev="0.9.7-SNAPSHOT"/>
+		<dependency org="org.apache.mina" name="mina-core" rev="1.0.2"/>
+		<dependency org="jdbm" name="jdbm" rev="1.0"/>
+		<dependency org="org.dom4j" name="dom4j" rev="1.6.1"/>
+    </dependencies>
 </ivy-module>

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml Mon Apr 16 08:08:36 2007
@@ -34,6 +34,12 @@
                label="Open Editor"
                menubarPath="org.apache.directory.ldapstudio.apacheds.configuration.actionset.menu/open"
                style="push"/>
+         <action
+               class="org.apache.directory.ldapstudio.apacheds.configuration.actions.OpenServerConfigurationAction"
+               id="org.apache.directory.ldapstudio.apacheds.configuration.openServerConfiguration"
+               label="Open..."
+               menubarPath="org.apache.directory.ldapstudio.apacheds.configuration.actionset.menu/open"
+               style="push"/>
       </actionSet>
    </extension>
    <extension

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenEditorAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenEditorAction.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenEditorAction.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenEditorAction.java Mon Apr 16 08:08:36 2007
@@ -6,6 +6,7 @@
 import javax.naming.directory.BasicAttribute;
 import javax.naming.directory.BasicAttributes;
 
+import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
 import org.apache.directory.ldapstudio.apacheds.configuration.editor.ServerConfigurationEditor;
 import org.apache.directory.ldapstudio.apacheds.configuration.editor.ServerConfigurationEditorInput;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.ExtendedOperation;
@@ -13,6 +14,7 @@
 import org.apache.directory.ldapstudio.apacheds.configuration.model.Interceptor;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.Partition;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfiguration;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
@@ -95,8 +97,8 @@
         }
         catch ( PartInitException e )
         {
-            // TODO ADD A LOGGER
-            e.printStackTrace();
+            Activator.getDefault().getLog().log(
+                new Status( Status.ERROR, Activator.PLUGIN_ID, Status.OK, e.getMessage(), e.getCause() ) );
         }
     }
 

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenServerConfigurationAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenServerConfigurationAction.java?view=auto&rev=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenServerConfigurationAction.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/actions/OpenServerConfigurationAction.java Mon Apr 16 08:08:36 2007
@@ -0,0 +1,101 @@
+package org.apache.directory.ldapstudio.apacheds.configuration.actions;
+
+
+import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
+import org.apache.directory.ldapstudio.apacheds.configuration.editor.ServerConfigurationEditor;
+import org.apache.directory.ldapstudio.apacheds.configuration.editor.ServerConfigurationEditorInput;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfiguration;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfigurationParser;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfigurationParserException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+
+
+/**
+ * This class implements the Open Editor Action.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class OpenServerConfigurationAction extends Action implements IWorkbenchWindowActionDelegate
+{
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+     */
+    public void run( IAction action )
+    {
+        FileDialog fd = new FileDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.OPEN );
+        fd.setText( "Open a Server Configuration file" );
+        fd.setFilterExtensions( new String[]
+            { "*.xml", "*.*" } );
+        fd.setFilterNames( new String[]
+            { "XML files", "All files" } );
+        String selectedFile = fd.open();
+        // selected == null if 'cancel' has been pushed
+        if ( selectedFile == null || "".equals( selectedFile ) )
+        {
+            return;
+        }
+
+        ServerConfigurationParser parser = new ServerConfigurationParser();
+        ServerConfiguration serverConfiguration = null;
+
+        try
+        {
+            serverConfiguration = parser.parse( selectedFile );
+        }
+        catch ( ServerConfigurationParserException e )
+        {
+            MessageBox messageBox = new MessageBox( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
+                SWT.OK | SWT.ICON_ERROR );
+            messageBox.setText( "Error!" );
+            messageBox.setMessage( "An error occurred when reading the file." + "\n" + e.getMessage() );
+            messageBox.open();
+        }
+
+        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+        try
+        {
+            page.openEditor( new ServerConfigurationEditorInput( serverConfiguration ), ServerConfigurationEditor.ID );
+        }
+        catch ( PartInitException e )
+        {
+            Activator.getDefault().getLog().log(
+                new Status( Status.ERROR, Activator.PLUGIN_ID, Status.OK, e.getMessage(), e.getCause() ) );
+        }
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
+     */
+    public void selectionChanged( IAction action, ISelection selection )
+    {
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
+     */
+    public void dispose()
+    {
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
+     */
+    public void init( IWorkbenchWindow window )
+    {
+    }
+}

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java Mon Apr 16 08:08:36 2007
@@ -56,6 +56,9 @@
     /** The input Interceptor */
     private ExtendedOperation input;
 
+    /** The dirty flag */
+    private boolean dirty = false;
+
     // UI fields
     private Text classTypeText;
 
@@ -66,6 +69,7 @@
         public void modifyText( ModifyEvent e )
         {
             masterDetailsBlock.setEditorDirty();
+            dirty = true;
         }
     };
 
@@ -181,8 +185,6 @@
      */
     public void dispose()
     {
-        // TODO Auto-generated method stub
-
     }
 
 
@@ -200,8 +202,7 @@
      */
     public boolean isDirty()
     {
-        // TODO Auto-generated method stub
-        return true;
+        return dirty;
     }
 
 
@@ -210,7 +211,6 @@
      */
     public boolean isStale()
     {
-        // TODO Auto-generated method stub
         return false;
     }
 

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java Mon Apr 16 08:08:36 2007
@@ -25,6 +25,7 @@
 import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
 import org.apache.directory.ldapstudio.apacheds.configuration.PluginConstants;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.ExtendedOperation;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfiguration;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -63,8 +64,8 @@
     /** The associated page */
     private FormPage page;
 
-    /** The editor input */
-    private ServerConfigurationEditorInput input;
+    /** The input Server Configuration */
+    private ServerConfiguration serverConfiguration;
 
     /** The Extended Operations List */
     private List<ExtendedOperation> extendedOperations;
@@ -85,8 +86,8 @@
     public ExtendedOperationsMasterDetailsBlock( FormPage page )
     {
         this.page = page;
-        input = ( ServerConfigurationEditorInput ) page.getEditorInput();
-        extendedOperations = input.getServerConfiguration().getExtendedOperations();
+        serverConfiguration = ( ( ServerConfigurationEditorInput ) page.getEditorInput() ).getServerConfiguration();
+        extendedOperations = serverConfiguration.getExtendedOperations();
     }
 
 
@@ -229,7 +230,7 @@
                     ok = false;
                 }
             }
-            
+
             counter++;
         }
 
@@ -290,5 +291,18 @@
     public void setEditorDirty()
     {
         ( ( ServerConfigurationEditor ) page.getEditor() ).setDirty( true );
+    }
+
+
+    /**
+     * Saves the necessary elements to the input model.
+     */
+    public void save()
+    {
+        serverConfiguration.clearExtendedOperations();
+        for ( ExtendedOperation extendedOperation : extendedOperations )
+        {
+            serverConfiguration.addExtendedOperation( extendedOperation );
+        }
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java Mon Apr 16 08:08:36 2007
@@ -66,4 +66,16 @@
         masterDetailsBlock = new ExtendedOperationsMasterDetailsBlock( this );
         masterDetailsBlock.createContent( managedForm );
     }
+
+
+    /**
+     * Saves the necessary elements to the input model.
+     */
+    public void save()
+    {
+        if ( masterDetailsBlock != null )
+        {
+            masterDetailsBlock.save();
+        }
+    }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java Mon Apr 16 08:08:36 2007
@@ -493,4 +493,27 @@
     {
         ( ( ServerConfigurationEditor ) getEditor() ).setDirty( true );
     }
+
+
+    /**
+     * Saves the necessary elements to the input model.
+     */
+    public void save()
+    {
+        ServerConfiguration serverConfiguration = ( ( ServerConfigurationEditorInput ) getEditorInput() )
+            .getServerConfiguration();
+
+        serverConfiguration.setPort( Integer.parseInt( portText.getText() ) );
+        serverConfiguration.setPrincipal( principalText.getText() );
+        serverConfiguration.setPassword( passwordText.getText() );
+        serverConfiguration.setAllowAnonymousAccess( allowAnonymousAccessCheckbox.getSelection() );
+        serverConfiguration.setMaxTimeLimit( Integer.parseInt( maxTimeLimitText.getText() ) );
+        serverConfiguration.setMaxSizeLimit( Integer.parseInt( maxSizeLimitText.getText() ) );
+        serverConfiguration.setSynchronizationPeriod( Long.parseLong( synchPeriodText.getText() ) );
+        serverConfiguration.setMaxThreads( Integer.parseInt( maxThreadsText.getText() ) );
+        serverConfiguration.setEnableAccessControl( enableAccesControlCheckbox.getSelection() );
+        serverConfiguration.setEnableNTP( enableNTPCheckbox.getSelection() );
+        serverConfiguration.setEnableKerberos( enableKerberosCheckbox.getSelection() );
+        serverConfiguration.setEnableChangePassword( enableChangePasswordCheckbox.getSelection() );
+    }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java Mon Apr 16 08:08:36 2007
@@ -56,10 +56,13 @@
     /** The input Interceptor */
     private Interceptor input;
 
+    /** The dirty flag */
+    private boolean dirty = false;
+
     // UI fields
     private Text nameText;
     private Text classText;
-    
+
     // Listeners
     /** The Modify Listener for Text Widgets */
     private ModifyListener textModifyListener = new ModifyListener()
@@ -67,6 +70,7 @@
         public void modifyText( ModifyEvent e )
         {
             masterDetailsBlock.setEditorDirty();
+            dirty = true;
         }
     };
 
@@ -133,7 +137,8 @@
         classText = toolkit.createText( client, "" );
         classText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
     }
-    
+
+
     /**
      * Adds listeners to UI fields.
      */
@@ -176,7 +181,7 @@
      * @see org.eclipse.ui.forms.IFormPart#commit(boolean)
      */
     public void commit( boolean onSave )
-    {        
+    {
         input.setName( nameText.getText() );
         input.setClassType( classText.getText() );
     }
@@ -187,8 +192,6 @@
      */
     public void dispose()
     {
-        // TODO Auto-generated method stub
-
     }
 
 
@@ -206,8 +209,7 @@
      */
     public boolean isDirty()
     {
-        // TODO Auto-generated method stub
-        return true;
+        return dirty;
     }
 
 
@@ -216,7 +218,6 @@
      */
     public boolean isStale()
     {
-        // TODO Auto-generated method stub
         return false;
     }
 
@@ -227,7 +228,7 @@
     public void refresh()
     {
         removeListeners();
-        
+
         // Name
         String name = input.getName();
         nameText.setText( ( name == null ) ? "" : name );
@@ -235,7 +236,7 @@
         // Class
         String classType = input.getClassType();
         classText.setText( ( classType == null ) ? "" : classType );
-        
+
         addListeners();
     }
 

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java Mon Apr 16 08:08:36 2007
@@ -25,6 +25,7 @@
 import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
 import org.apache.directory.ldapstudio.apacheds.configuration.PluginConstants;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.Interceptor;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfiguration;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -63,8 +64,8 @@
     /** The associated page */
     private FormPage page;
 
-    /** The editor input */
-    private ServerConfigurationEditorInput input;
+    /** The input Server Configuration */
+    private ServerConfiguration serverConfiguration;
 
     /** The Interceptors List */
     private List<Interceptor> interceptors;
@@ -87,8 +88,8 @@
     public InterceptorsMasterDetailsBlock( FormPage page )
     {
         this.page = page;
-        input = ( ServerConfigurationEditorInput ) page.getEditorInput();
-        interceptors = input.getServerConfiguration().getInterceptors();
+        serverConfiguration = ( ( ServerConfigurationEditorInput ) page.getEditorInput() ).getServerConfiguration();
+        interceptors = serverConfiguration.getInterceptors();
     }
 
 
@@ -376,5 +377,18 @@
     public void setEditorDirty()
     {
         ( ( ServerConfigurationEditor ) page.getEditor() ).setDirty( true );
+    }
+
+
+    /**
+     * Saves the necessary elements to the input model.
+     */
+    public void save()
+    {
+        serverConfiguration.clearInterceptors();
+        for ( Interceptor interceptor : interceptors )
+        {
+            serverConfiguration.addInterceptor( interceptor );
+        }
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java Mon Apr 16 08:08:36 2007
@@ -66,4 +66,16 @@
         masterDetailsBlock = new InterceptorsMasterDetailsBlock( this );
         masterDetailsBlock.createContent( managedForm );
     }
+
+
+    /**
+     * Saves the necessary elements to the input model.
+     */
+    public void save()
+    {
+        if ( masterDetailsBlock != null )
+        {
+            masterDetailsBlock.save();
+        }
+    }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java Mon Apr 16 08:08:36 2007
@@ -97,6 +97,9 @@
     /** The Indexed Attributes List */
     private List<IndexedAttribute> indexedAttributes;
 
+    /** The dirty flag */
+    private boolean dirty = false;
+
     // UI fields
     private Text nameText;
     private Text cacheSizeText;
@@ -120,6 +123,7 @@
         public void modifyText( ModifyEvent e )
         {
             masterDetailsBlock.setEditorDirty();
+            dirty = true;
         }
     };
 
@@ -129,6 +133,7 @@
         public void widgetSelected( SelectionEvent e )
         {
             masterDetailsBlock.setEditorDirty();
+            dirty = true;
         }
     };
 
@@ -174,6 +179,7 @@
                 contextEntryTableViewer.refresh();
                 resizeContextEntryTableColumnsToFit();
                 masterDetailsBlock.setEditorDirty();
+                dirty = true;
             }
         }
     };
@@ -204,6 +210,7 @@
                     contextEntryTableViewer.refresh();
                     resizeContextEntryTableColumnsToFit();
                     masterDetailsBlock.setEditorDirty();
+                    dirty = true;
                 }
             }
         }
@@ -239,6 +246,7 @@
                 indexedAttributes.add( dialog.getIndexedAttribute() );
                 indexedAttributesTableViewer.refresh();
                 masterDetailsBlock.setEditorDirty();
+                dirty = true;
             }
         }
     };
@@ -265,6 +273,7 @@
                 indexedAttributes.remove( indexedAttribute );
                 indexedAttributesTableViewer.refresh();
                 masterDetailsBlock.setEditorDirty();
+                dirty = true;
             }
         }
     };
@@ -619,8 +628,6 @@
      */
     public void dispose()
     {
-        // TODO Auto-generated method stub
-
     }
 
 
@@ -638,8 +645,7 @@
      */
     public boolean isDirty()
     {
-        // TODO Auto-generated method stub
-        return true;
+        return dirty;
     }
 
 
@@ -648,7 +654,6 @@
      */
     public boolean isStale()
     {
-        // TODO Auto-generated method stub
         return false;
     }
 
@@ -738,6 +743,7 @@
             {
                 indexedAttributesTableViewer.refresh();
                 masterDetailsBlock.setEditorDirty();
+                dirty = true;
             }
         }
     }
@@ -781,6 +787,7 @@
                 contextEntryTableViewer.refresh();
                 resizeContextEntryTableColumnsToFit();
                 masterDetailsBlock.setEditorDirty();
+                dirty = true;
             }
         }
     }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java Mon Apr 16 08:08:36 2007
@@ -25,6 +25,7 @@
 import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
 import org.apache.directory.ldapstudio.apacheds.configuration.PluginConstants;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.Partition;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfiguration;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -63,8 +64,8 @@
     /** The associated page */
     private FormPage page;
 
-    /** The editor input */
-    private ServerConfigurationEditorInput input;
+    /** The input Server Configuration */
+    private ServerConfiguration serverConfiguration;
 
     /** The Interceptors List */
     private List<Partition> partitions;
@@ -86,8 +87,8 @@
     public PartitionsMasterDetailsBlock( FormPage page )
     {
         this.page = page;
-        input = ( ServerConfigurationEditorInput ) page.getEditorInput();
-        partitions = input.getServerConfiguration().getPartitions();
+        serverConfiguration = ( ( ServerConfigurationEditorInput ) page.getEditorInput() ).getServerConfiguration();
+        partitions = serverConfiguration.getPartitions();
     }
 
 
@@ -304,5 +305,18 @@
     public void setEditorDirty()
     {
         ( ( ServerConfigurationEditor ) page.getEditor() ).setDirty( true );
+    }
+
+
+    /**
+     * Saves the necessary elements to the input model.
+     */
+    public void save()
+    {
+        serverConfiguration.clearPartitions();
+        for ( Partition partition : partitions )
+        {
+            serverConfiguration.addPartition( partition );
+        }
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java Mon Apr 16 08:08:36 2007
@@ -66,4 +66,16 @@
         masterDetailsBlock = new PartitionsMasterDetailsBlock( this );
         masterDetailsBlock.createContent( managedForm );
     }
+
+
+    /**
+     * Saves the necessary elements to the input model.
+     */
+    public void save()
+    {
+        if ( masterDetailsBlock != null )
+        {
+            masterDetailsBlock.save();
+        }
+    }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java Mon Apr 16 08:08:36 2007
@@ -20,12 +20,14 @@
 package org.apache.directory.ldapstudio.apacheds.configuration.editor;
 
 
+import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.ServerConfigurationWriter;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
 
 
 /**
@@ -43,10 +45,10 @@
     private boolean dirty = false;
 
     // The Pages
-    private FormPage generalPage;
-    private FormPage partitionsPage;
-    private FormPage interceptorsPage;
-    private FormPage extendedOperationsPage;
+    private GeneralPage generalPage;
+    private PartitionsPage partitionsPage;
+    private InterceptorsPage interceptorsPage;
+    private ExtendedOperationsPage extendedOperationsPage;
 
 
     /* (non-Javadoc)
@@ -81,7 +83,8 @@
         }
         catch ( PartInitException e )
         {
-            // TODO Add an eclipse logger.
+            Activator.getDefault().getLog().log(
+                new Status( Status.ERROR, Activator.PLUGIN_ID, Status.OK, e.getMessage(), e.getCause() ) );
         }
     }
 
@@ -91,7 +94,20 @@
      */
     public void doSave( IProgressMonitor monitor )
     {
-        // TODO Auto-generated method stub
+        monitor.beginTask( "Saving the Server Configuration", 5 );
+        generalPage.save();
+        monitor.worked( 1 );
+        partitionsPage.save();
+        monitor.worked( 1 );
+        interceptorsPage.save();
+        monitor.worked( 1 );
+        extendedOperationsPage.save();
+        monitor.worked( 1 );
+        ServerConfigurationWriter writer = new ServerConfigurationWriter();
+        writer.write( ( ( ServerConfigurationEditorInput ) getEditorInput() ).getServerConfiguration() );
+        monitor.worked( 1 );
+        setDirty( false );
+        monitor.done();
     }
 
 

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java Mon Apr 16 08:08:36 2007
@@ -67,7 +67,16 @@
      */
     public String getToolTipText()
     {
-        return serverConfiguration.getPath();
+        String path = serverConfiguration.getPath();
+        if ( path == null )
+        {
+            return "Unsaved Editor";
+        }
+        else
+        {
+            return path;
+        }
+
     }
 
 

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Partition.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Partition.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Partition.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Partition.java Mon Apr 16 08:08:36 2007
@@ -57,7 +57,7 @@
     private List<IndexedAttribute> indexedAttributes;
 
     /** The System Partition flag */
-    private boolean systemPartition;
+    private boolean systemPartition = false;
 
 
     /**
@@ -76,7 +76,7 @@
      * @param name
      *      the name of the partition
      */
-   public Partition( String name )
+    public Partition( String name )
     {
         indexedAttributes = new ArrayList<IndexedAttribute>();
         contextEntry = new BasicAttributes( true );

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfiguration.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfiguration.java?view=diff&rev=529280&r1=529279&r2=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfiguration.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfiguration.java Mon Apr 16 08:08:36 2007
@@ -54,7 +54,7 @@
     private int maxSizeLimit;
 
     /** The Synchonization Period */
-    private int synchronizationPeriod;
+    private long synchronizationPeriod;
 
     /** The Maximum number of Threads */
     private int maxThreads;
@@ -265,6 +265,15 @@
 
 
     /**
+     * Removes all ExtendedOperations.
+     */
+    public void clearExtendedOperations()
+    {
+        extendedOperations.clear();
+    }
+
+
+    /**
      * Gets the Interceptors List.
      *
      * @return
@@ -317,6 +326,15 @@
 
 
     /**
+     * Removes all interceptors.
+     */
+    public void clearInterceptors()
+    {
+        interceptors.clear();
+    }
+
+
+    /**
      * Gets the Maximum Size Limit.
      *
      * @return
@@ -441,6 +459,15 @@
 
 
     /**
+     * Removes all partitions.
+     */
+    public void clearPartitions()
+    {
+        partitions.clear();
+    }
+
+
+    /**
      * Gets the password.
      *
      * @return
@@ -542,7 +569,7 @@
      * @return
      *      the Synchronization Period
      */
-    public int getSynchronizationPeriod()
+    public long getSynchronizationPeriod()
     {
         return synchronizationPeriod;
     }
@@ -554,7 +581,7 @@
      * @param synchronizationPeriod
      *      the new value
      */
-    public void setSynchronizationPeriod( int synchronizationPeriod )
+    public void setSynchronizationPeriod( long synchronizationPeriod )
     {
         this.synchronizationPeriod = synchronizationPeriod;
     }

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParser.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParser.java?view=auto&rev=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParser.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParser.java Mon Apr 16 08:08:36 2007
@@ -0,0 +1,156 @@
+/*
+ *  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.ldapstudio.apacheds.configuration.model;
+
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import org.apache.directory.server.configuration.MutableServerStartupConfiguration;
+import org.apache.directory.server.core.configuration.MutableInterceptorConfiguration;
+import org.apache.directory.server.core.configuration.PartitionConfiguration;
+import org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.FileSystemXmlApplicationContext;
+
+
+/**
+ * This class represents the Server Configuration Parser. It can be used to parse a 'server.xml' file 
+ * and get Server Configuration Object from it.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ServerConfigurationParser
+{
+    /**
+     * Parses a 'server.xml' file located at the given path and returns 
+     * the corresponding ServerConfiguration Object.
+     *
+     * @param path
+     *      the path of the file to parse
+     * @return
+     *      the corresponding ServerConfiguration Object
+     * @throws ServerConfigurationParserException
+     *      if an error occurrs when reading the Server Configuration file
+     */
+    public ServerConfiguration parse( String path ) throws ServerConfigurationParserException
+    {
+        try
+        {
+            ApplicationContext ac = new FileSystemXmlApplicationContext( "file:" + path );
+            MutableServerStartupConfiguration config = ( MutableServerStartupConfiguration ) ac
+                .getBean( "configuration" );
+            Properties environment = ( Properties ) ac.getBean( "environment" );
+
+            ServerConfiguration serverConfiguration = new ServerConfiguration();
+            serverConfiguration.setPath( path );
+            serverConfiguration.setAllowAnonymousAccess( config.isAllowAnonymousAccess() );
+            serverConfiguration.setEnableAccessControl( config.isAccessControlEnabled() );
+            serverConfiguration.setEnableChangePassword( config.isEnableChangePassword() );
+            serverConfiguration.setEnableKerberos( config.isEnableKerberos() );
+            serverConfiguration.setEnableNTP( config.isEnableNtp() );
+            serverConfiguration.setMaxSizeLimit( config.getMaxSizeLimit() );
+            serverConfiguration.setMaxThreads( config.getMaxThreads() );
+            serverConfiguration.setMaxTimeLimit( config.getMaxTimeLimit() );
+            serverConfiguration.setPassword( environment.getProperty( "java.naming.security.credentials", "" ) );
+            serverConfiguration.setPort( config.getLdapPort() );
+            serverConfiguration.setPrincipal( environment.getProperty( "java.naming.security.principal", "" ) );
+            serverConfiguration.setSynchronizationPeriod( config.getSynchPeriodMillis() );
+
+            // System Partition
+            Partition systemPartition = createPartition( config.getSystemPartitionConfiguration(), true );
+            serverConfiguration.addPartition( systemPartition );
+
+            // Other Partitions
+            Set<PartitionConfiguration> partitionConfigurations = config.getPartitionConfigurations();
+            for ( PartitionConfiguration partitionConfiguration : partitionConfigurations )
+            {
+                Partition partition = createPartition( partitionConfiguration, false );
+                serverConfiguration.addPartition( partition );
+            }
+
+            // Interceptors
+            List interceptorConfigurations = config.getInterceptorConfigurations();
+            for ( Object interceptorConfiguration : interceptorConfigurations )
+            {
+                MutableInterceptorConfiguration interceptor = ( MutableInterceptorConfiguration ) interceptorConfiguration;
+                Interceptor newInterceptor = new Interceptor( interceptor.getName() );
+                newInterceptor.setClassType( interceptor.getInterceptor().getClass().getName() );
+                serverConfiguration.addInterceptor( newInterceptor );
+            }
+
+            // Extended Operations
+            Collection extendedOperationHandlers = config.getExtendedOperationHandlers();
+            for ( Object extendedOperationHandler : extendedOperationHandlers )
+            {
+                ExtendedOperation extendedOperation = new ExtendedOperation( extendedOperationHandler.getClass()
+                    .getName() );
+                serverConfiguration.addExtendedOperation( extendedOperation );
+            }
+
+            return serverConfiguration;
+
+        }
+        catch ( Exception e )
+        {
+            ServerConfigurationParserException exception = new ServerConfigurationParserException( e.getMessage(), e
+                .getCause() );
+            exception.setStackTrace( e.getStackTrace() );
+            throw exception;
+        }
+    }
+
+
+    /**
+     * Creates a Partition from the given Partition Configuration.
+     *
+     * @param partitionConfiguration
+     *      the Partition Configuration
+     * @param isSystemPartition
+     *      a flag to indicate if the created partition must be the system partition
+     * @return
+     *      the corresponding Partition
+     * @throws Exception
+     *      if an error occurrs
+     */
+    private Partition createPartition( PartitionConfiguration partitionConfiguration, boolean isSystemPartition )
+        throws Exception
+    {
+        Partition partition = new Partition();
+        partition.setSystemPartition( isSystemPartition );
+        partition.setName( partitionConfiguration.getName() );
+        partition.setCacheSize( partitionConfiguration.getCacheSize() );
+        partition.setContextEntry( partitionConfiguration.getContextEntry() );
+        partition.setSuffix( partitionConfiguration.getSuffix() );
+
+        for ( Object indexedAt : partitionConfiguration.getIndexedAttributes() )
+        {
+            MutableIndexConfiguration indexConfiguration = ( MutableIndexConfiguration ) indexedAt;
+            IndexedAttribute indexedAttribute = new IndexedAttribute( indexConfiguration.getAttributeId(),
+                indexConfiguration.getCacheSize() );
+            partition.addIndexedAttribute( indexedAttribute );
+        }
+
+        return partition;
+    }
+}

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParserException.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParserException.java?view=auto&rev=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParserException.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationParserException.java Mon Apr 16 08:08:36 2007
@@ -0,0 +1,51 @@
+/*
+ *  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.ldapstudio.apacheds.configuration.model;
+
+
+/**
+ * This class represents the Server Configuration Parser Exception, that can be thrown
+ * when an error is detected when reading the Server Configuration file.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ServerConfigurationParserException extends Exception
+{
+    /** The Serial Version UID */
+    private static final long serialVersionUID = 7274953743060751973L;
+
+
+    /**
+     * Creates a new instance of ServerConfigurationParserException.
+     *
+     * @param message
+     *      the detail message (which is saved for later retrieval by the 
+     *      getMessage() method).
+     * @param cause
+     *      the cause (which is saved for later retrieval by the getCause() 
+     *      method). (A null value is permitted, and indicates that the cause 
+     *      is nonexistent or unknown.)
+     */
+    public ServerConfigurationParserException( String message, Throwable cause )
+    {
+        super( message, cause );
+    }
+}

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationWriter.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationWriter.java?view=auto&rev=529280
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationWriter.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/ServerConfigurationWriter.java Mon Apr 16 08:08:36 2007
@@ -0,0 +1,40 @@
+/*
+ *  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.ldapstudio.apacheds.configuration.model;
+
+
+/**
+ * This class represents the Server Configuration Writer. It can be used to save a 'server.xml' file from.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ServerConfigurationWriter
+{
+    /**
+     * TODO write.
+     *
+     * @param serverConfiguration
+     */
+    public void write( ServerConfiguration serverConfiguration )
+    {
+        System.out.println( "Writing file to disk." );
+    }
+}