directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pamarce...@apache.org
Subject svn commit: r986269 - in /directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers: actions/ jobs/ properties/
Date Tue, 17 Aug 2010 11:35:50 GMT
Author: pamarcelot
Date: Tue Aug 17 11:35:49 2010
New Revision: 986269

URL: http://svn.apache.org/viewvc?rev=986269&view=rev
Log:
Added a new Runnable for the deletion of a server. The runnable makes sure that the server
is stopped before removing all associated files.

Added:
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/DeleteLdapServerRunnable.java
Modified:
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/actions/DeleteAction.java
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/StopLdapServerRunnable.java
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages.properties
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_de.properties
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_fr.properties
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/ServerPropertyPage.java
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages.properties
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_de.properties
    directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_fr.properties

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/actions/DeleteAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/actions/DeleteAction.java?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/actions/DeleteAction.java
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/actions/DeleteAction.java
Tue Aug 17 11:35:49 2010
@@ -20,13 +20,11 @@
 package org.apache.directory.studio.ldapservers.actions;
 
 
-import java.io.File;
-
-import org.apache.directory.studio.ldapservers.LdapServersManager;
 import org.apache.directory.studio.ldapservers.LdapServersPluginConstants;
 import org.apache.directory.studio.ldapservers.dialogs.DeleteServerDialog;
+import org.apache.directory.studio.ldapservers.jobs.DeleteLdapServerRunnable;
+import org.apache.directory.studio.ldapservers.jobs.StudioLdapServerJob;
 import org.apache.directory.studio.ldapservers.model.LdapServer;
-import org.apache.directory.studio.ldapservers.model.LdapServerStatus;
 import org.apache.directory.studio.ldapservers.views.ServersView;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
@@ -103,83 +101,11 @@ public class DeleteAction extends Action
             DeleteServerDialog dsd = new DeleteServerDialog( view.getSite().getShell(), server
);
             if ( dsd.open() == DeleteServerDialog.OK )
             {
-                // Checking if the server is running
-                // If yes, we need to shut it down before removing its data
-                if ( server.getStatus() == LdapServerStatus.STARTED )
-                {
-                    // Setting the server of the server to 'stopping'
-                    //                    server.setStatus( LdapServerStatus.STOPPING );
// TODO
-
-                    // Getting the launch job // TODO
-                    //                    StartLdapServerRunnable launchJob = server.getLaunchJob();
-                    //                    if ( launchJob != null )
-                    //                    {
-                    //                        // Getting the launch
-                    //                        ILaunch launch = launchJob.getLaunch();
-                    //                        if ( ( launch != null ) && ( !launch.isTerminated()
) )
-                    //                        {
-                    //                            // Terminating the launch
-                    //                            try
-                    //                            {
-                    //                                launch.terminate();
-                    //                            }
-                    //                            catch ( DebugException e )
-                    //                            {
-                    //                                ApacheDsPluginUtils.reportError( Messages.getString(
"DeleteAction.ErrorWhileStopping" ) //$NON-NLS-1$
-                    //                                    + e.getMessage() );
-                    //                            }
-                    //                        }
-                    //                    }
-                }
-
-                // Removing the server
-                LdapServersManager.getDefault().removeServer( server );
-
-                // Deleting the associated directory on disk
-                deleteDirectory( LdapServersManager.getServerFolder( server ).toFile() );
-
-                // Letting the LDAP Server Adapter finish the deletion of the server
-                try
-                {
-                    server.getLdapServerAdapterExtension().getInstance().delete( server );
-                }
-                catch ( Exception e )
-                {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
-
-    /**
-     * Deletes the given directory
-     *
-     * @param path
-     *      the directory
-     * @return
-     *      <code>true</code> if and only if the directory is 
-     *      successfully deleted; <code>false</code> otherwise
-     */
-    private boolean deleteDirectory( File path )
-    {
-        if ( path.exists() )
-        {
-            File[] files = path.listFiles();
-            for ( int i = 0; i < files.length; i++ )
-            {
-                if ( files[i].isDirectory() )
-                {
-                    deleteDirectory( files[i] );
-                }
-                else
-                {
-                    files[i].delete();
-                }
+                // Creating and scheduling the job to delete the server
+                StudioLdapServerJob job = new StudioLdapServerJob( new DeleteLdapServerRunnable(
server ) );
+                job.schedule();
             }
         }
-        return ( path.delete() );
     }
 
 

Added: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/DeleteLdapServerRunnable.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/DeleteLdapServerRunnable.java?rev=986269&view=auto
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/DeleteLdapServerRunnable.java
(added)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/DeleteLdapServerRunnable.java
Tue Aug 17 11:35:49 2010
@@ -0,0 +1,169 @@
+/*
+ *  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.ldapservers.jobs;
+
+
+import java.io.File;
+
+import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
+import org.apache.directory.studio.common.core.jobs.StudioRunnableWithProgress;
+import org.apache.directory.studio.ldapservers.LdapServersManager;
+import org.apache.directory.studio.ldapservers.model.LdapServer;
+import org.apache.directory.studio.ldapservers.model.LdapServerStatus;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.osgi.util.NLS;
+
+
+/**
+ * This class implements a {@link Job} that is used to delete an LDAP Server.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class DeleteLdapServerRunnable implements StudioRunnableWithProgress
+{
+    /** The server */
+    private LdapServer server;
+
+
+    /**
+     * Creates a new instance of StartLdapServerRunnable.
+     * 
+     * @param server
+     *            the LDAP Server
+     */
+    public DeleteLdapServerRunnable( LdapServer server )
+    {
+        super();
+        this.server = server;
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    public String getErrorMessage()
+    {
+        return NLS.bind( "Unable to start server ''{0}''", new String[]
+            { server.getName() } );
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    public Object[] getLockedObjects()
+    {
+        return new Object[]
+            { server };
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    public String getName()
+    {
+        return NLS
+            .bind( Messages.getString( "DeleteLdapServerRunnable.DeleteServer" ), new String[]
{ server.getName() } ); //$NON-NLS-1$
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    public void run( StudioProgressMonitor monitor )
+    {
+        // Storing the started status of the server
+        boolean serverStarted = server.getStatus() == LdapServerStatus.STARTED;
+
+        try
+        {
+            // Checking if the server is running
+            // If yes, we need to shut it down before removing its data
+            if ( serverStarted )
+            {
+                // Creating, scheduling and waiting on the job to stop the server
+                StudioLdapServerJob job = new StudioLdapServerJob( new StopLdapServerRunnable(
server ) );
+                job.schedule();
+                job.join();
+            }
+
+            // Removing the server
+            LdapServersManager.getDefault().removeServer( server );
+
+            // Deleting the associated directory on disk
+            deleteDirectory( LdapServersManager.getServerFolder( server ).toFile() );
+
+            // Letting the LDAP Server Adapter finish the deletion of the server
+            server.getLdapServerAdapterExtension().getInstance().delete( server );
+        }
+        catch ( InterruptedException e )
+        {
+            // Nothing to do
+        }
+        catch ( Exception e )
+        {
+            if ( serverStarted )
+            {
+                // Setting the server as started
+                server.setStatus( LdapServerStatus.STARTED );
+            }
+            else
+            {
+                // Setting the server as stopped
+                server.setStatus( LdapServerStatus.STOPPED );
+            }
+
+            // Reporting the error to the monitor
+            monitor.reportError( e );
+        }
+    }
+
+
+    /**
+     * Deletes the given directory
+     *
+     * @param path
+     *      the directory
+     * @return
+     *      <code>true</code> if and only if the directory is 
+     *      successfully deleted; <code>false</code> otherwise
+     */
+    private boolean deleteDirectory( File path )
+    {
+        if ( path.exists() )
+        {
+            File[] files = path.listFiles();
+            for ( int i = 0; i < files.length; i++ )
+            {
+                if ( files[i].isDirectory() )
+                {
+                    deleteDirectory( files[i] );
+                }
+                else
+                {
+                    files[i].delete();
+                }
+            }
+        }
+        return ( path.delete() );
+    }
+}

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/StopLdapServerRunnable.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/StopLdapServerRunnable.java?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/StopLdapServerRunnable.java
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/StopLdapServerRunnable.java
Tue Aug 17 11:35:49 2010
@@ -90,6 +90,16 @@ public class StopLdapServerRunnable impl
     {
         // Setting the status on the server to 'stopping'
         server.setStatus( LdapServerStatus.STOPPING );
+        
+        try
+        {
+            Thread.sleep( 10000 );
+        }
+        catch ( InterruptedException e1 )
+        {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        }
 
         // Starting a new watchdog thread
         StopLdapServerWatchDogThread.runNewWatchDogThread( server );

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages.properties?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages.properties
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages.properties
Tue Aug 17 11:35:49 2010
@@ -15,5 +15,6 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+DeleteLdapServerRunnable.DeleteServer=Delete Server ''{0}''
 StartLdapServerRunnable.StartServer=Start Server ''{0}''
 StopLdapServerRunnable.StopServer=Stop Server ''{0}''

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_de.properties?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_de.properties
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_de.properties
Tue Aug 17 11:35:49 2010
@@ -15,5 +15,6 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+DeleteLdapServerRunnable.DeleteServer=TODO:Delete Server ''{0}''
 StartLdapServerRunnable.StartServer=TODO:Start Server ''{0}''
 StopLdapServerRunnable.StopServer=TODO:Stop Server ''{0}''

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_fr.properties?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_fr.properties
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/jobs/messages_fr.properties
Tue Aug 17 11:35:49 2010
@@ -15,5 +15,6 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+DeleteLdapServerRunnable.DeleteServer=Supprimer le serveur ''{0}''
 StartLdapServerRunnable.StartServer=D\u00E9marrer le serveur ''{0}''
 StopLdapServerRunnable.StopServer=ArrĂȘter le serveur ''{0}''

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/ServerPropertyPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/ServerPropertyPage.java?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/ServerPropertyPage.java
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/ServerPropertyPage.java
Tue Aug 17 11:35:49 2010
@@ -64,11 +64,11 @@ public class ServerPropertyPage extends 
         Text nameText = BaseWidgetUtils.createLabeledText( composite, "", 1 ); //$NON-NLS-1$
 
         // Type
-        BaseWidgetUtils.createLabel( composite, "Type:", 1 );
+        BaseWidgetUtils.createLabel( composite, Messages.getString( "ServerPropertyPage.Type"
), 1 ); //$NON-NLS-1$
         Text typeText = BaseWidgetUtils.createLabeledText( composite, "", 1 ); //$NON-NLS-1$
 
         // Vendor
-        BaseWidgetUtils.createLabel( composite, "Vendor:", 1 );
+        BaseWidgetUtils.createLabel( composite, Messages.getString( "ServerPropertyPage.Vendor"
), 1 ); //$NON-NLS-1$
         Text vendorText = BaseWidgetUtils.createLabeledText( composite, "", 1 ); //$NON-NLS-1$
 
         // Location
@@ -87,7 +87,7 @@ public class ServerPropertyPage extends 
             LdapServerAdapterExtension ldapServerAdapterExtension = server.getLdapServerAdapterExtension();
 
             nameText.setText( server.getName() );
-            typeText.setText( ldapServerAdapterExtension.getName() + " " + ldapServerAdapterExtension.getVersion()
);
+            typeText.setText( ldapServerAdapterExtension.getName() + " " + ldapServerAdapterExtension.getVersion()
); //$NON-NLS-1$
             vendorText.setText( ldapServerAdapterExtension.getVendor() );
             locationText.setText( LdapServersManager.getServersFolder().append( server.getId()
).toOSString() );
         }

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages.properties?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages.properties
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages.properties
Tue Aug 17 11:35:49 2010
@@ -17,4 +17,6 @@
 
 ServerPropertyPage.Location=Location:
 ServerPropertyPage.Name=Name:
+ServerPropertyPage.Type=Type:
+ServerPropertyPage.Vendor=Vendor:
 ServerPropertyPage.Version=Version:

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_de.properties?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_de.properties
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_de.properties
Tue Aug 17 11:35:49 2010
@@ -17,4 +17,6 @@
 
 ServerPropertyPage.Location=Ort\:
 ServerPropertyPage.Name=TODO:Name:
+ServerPropertyPage.Type=TODO:Type:
+ServerPropertyPage.Vendor=TODO:Vendor:
 ServerPropertyPage.Version=TODO:Version:
\ No newline at end of file

Modified: directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_fr.properties?rev=986269&r1=986268&r2=986269&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_fr.properties
(original)
+++ directory/studio/trunk/plugins/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/properties/messages_fr.properties
Tue Aug 17 11:35:49 2010
@@ -17,4 +17,6 @@
 
 ServerPropertyPage.Location=Emplacement:
 ServerPropertyPage.Name=Nom:
+ServerPropertyPage.Type=Type:
+ServerPropertyPage.Vendor=Fournisseur:
 ServerPropertyPage.Version=Version:



Mime
View raw message