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 2008/07/08 18:11:06 UTC
svn commit: r674867 - in
/directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds:
actions/DeleteAction.java dialogs/DeleteServerDialog.java
Author: pamarcelot
Date: Tue Jul 8 09:11:05 2008
New Revision: 674867
URL: http://svn.apache.org/viewvc?rev=674867&view=rev
Log:
Fixed an issue when the server been deleted was running.
Modified:
directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/actions/DeleteAction.java
directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/dialogs/DeleteServerDialog.java
Modified: directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/actions/DeleteAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/actions/DeleteAction.java?rev=674867&r1=674866&r2=674867&view=diff
==============================================================================
--- directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/actions/DeleteAction.java (original)
+++ directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/actions/DeleteAction.java Tue Jul 8 09:11:05 2008
@@ -25,9 +25,13 @@
import org.apache.directory.studio.apacheds.ApacheDsPluginConstants;
import org.apache.directory.studio.apacheds.ApacheDsPluginUtils;
import org.apache.directory.studio.apacheds.dialogs.DeleteServerDialog;
+import org.apache.directory.studio.apacheds.jobs.LaunchServerJob;
import org.apache.directory.studio.apacheds.model.Server;
+import org.apache.directory.studio.apacheds.model.ServerStateEnum;
import org.apache.directory.studio.apacheds.model.ServersHandler;
import org.apache.directory.studio.apacheds.views.ServersView;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.ILaunch;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
@@ -106,6 +110,35 @@
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.getState() == ServerStateEnum.STARTED )
+ {
+ // Setting the server of the server to 'stopping'
+ server.setState( ServerStateEnum.STOPPING );
+
+ // Getting the launch job
+ LaunchServerJob 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( "An error occurred when stopping the server.\n\n"
+ + e.getMessage() );
+ }
+ }
+ }
+ }
+
// Removing the server
ServersHandler.getDefault().removeServer( server );
Modified: directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/dialogs/DeleteServerDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/dialogs/DeleteServerDialog.java?rev=674867&r1=674866&r2=674867&view=diff
==============================================================================
--- directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/dialogs/DeleteServerDialog.java (original)
+++ directory/studio/trunk/apacheds/src/main/java/org/apache/directory/studio/apacheds/dialogs/DeleteServerDialog.java Tue Jul 8 09:11:05 2008
@@ -21,19 +21,9 @@
import org.apache.directory.studio.apacheds.model.Server;
-import org.apache.directory.studio.apacheds.model.ServerStateEnum;
-import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
@@ -47,9 +37,6 @@
{
protected Server server;
- protected Button checkDeleteRunning;
- protected Button checkDeleteRunningStop;
-
/**
* Creates a new DeleteServerDialog.
@@ -74,51 +61,6 @@
/* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
- */
- protected Control createCustomArea( Composite parent )
- {
- // create a composite with standard margins and spacing
- Composite composite = new Composite( parent, SWT.NONE );
- GridLayout layout = new GridLayout();
- layout.marginHeight = convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_MARGIN );
- layout.marginWidth = convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_MARGIN );
- layout.verticalSpacing = convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_SPACING );
- layout.horizontalSpacing = convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_SPACING );
- composite.setLayout( layout );
- composite.setLayoutData( new GridData( GridData.FILL_BOTH ) );
- composite.setFont( parent.getFont() );
-
- // prompt for stopping running server
- if ( server.getState() != ServerStateEnum.STOPPED )
- {
- checkDeleteRunning = new Button( composite, SWT.CHECK );
- checkDeleteRunning.setText( "Delete running server" );
- checkDeleteRunning.setSelection( true );
-
- checkDeleteRunningStop = new Button( composite, SWT.CHECK );
- checkDeleteRunningStop.setText( "Stop server before deleting" );
- checkDeleteRunningStop.setSelection( true );
- GridData data = new GridData();
- data.horizontalIndent = 15;
- checkDeleteRunningStop.setLayoutData( data );
-
- checkDeleteRunning.addSelectionListener( new SelectionAdapter()
- {
- public void widgetSelected( SelectionEvent e )
- {
- checkDeleteRunningStop.setEnabled( checkDeleteRunning.getSelection() );
- }
- } );
- }
-
- Dialog.applyDialogFont( composite );
-
- return composite;
- }
-
-
- /* (non-Javadoc)
* @see org.eclipse.jface.dialogs.MessageDialog#buttonPressed(int)
*/
protected void buttonPressed( int buttonId )