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 2010/07/21 11:26:55 UTC
svn commit: r966154 - in /directory/studio/trunk:
ldapservers.apacheds.v156/src/main/java/org/apache/directory/studio/ldapserver/apacheds/v156/
ldapservers/src/main/java/org/apache/directory/studio/ldapservers/model/
Author: pamarcelot
Date: Wed Jul 21 09:26:55 2010
New Revision: 966154
URL: http://svn.apache.org/viewvc?rev=966154&view=rev
Log:
Implemented a somehow simple and dirty stop method (will need to be cleaned afterwards).
Modified:
directory/studio/trunk/ldapservers.apacheds.v156/src/main/java/org/apache/directory/studio/ldapserver/apacheds/v156/ApacheDS156LdapServerAdapter.java
directory/studio/trunk/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/model/LdapServer.java
Modified: directory/studio/trunk/ldapservers.apacheds.v156/src/main/java/org/apache/directory/studio/ldapserver/apacheds/v156/ApacheDS156LdapServerAdapter.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapservers.apacheds.v156/src/main/java/org/apache/directory/studio/ldapserver/apacheds/v156/ApacheDS156LdapServerAdapter.java?rev=966154&r1=966153&r2=966154&view=diff
==============================================================================
--- directory/studio/trunk/ldapservers.apacheds.v156/src/main/java/org/apache/directory/studio/ldapserver/apacheds/v156/ApacheDS156LdapServerAdapter.java (original)
+++ directory/studio/trunk/ldapservers.apacheds.v156/src/main/java/org/apache/directory/studio/ldapserver/apacheds/v156/ApacheDS156LdapServerAdapter.java Wed Jul 21 09:26:55 2010
@@ -41,6 +41,7 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
@@ -122,6 +123,7 @@ public class ApacheDS156LdapServerAdapte
IPath resourceConfFolderPath = new Path( RESOURCES ).append( CONF );
copyResource( resourceConfFolderPath.append( SERVER_XML ), new File( confFolder, SERVER_XML ) );
copyResource( resourceConfFolderPath.append( LOG4J_PROPERTIES ), new File( confFolder, LOG4J_PROPERTIES ) );
+
}
@@ -222,6 +224,9 @@ public class ApacheDS156LdapServerAdapte
// Launching the launch configuration
ILaunch launch = configuration.launch( ILaunchManager.RUN_MODE, new NullProgressMonitor() );
+
+ // Storing the launch configuration as a custom object in the LDAP Server for later use
+ server.putCustomObject( "launchConfiguration", launch );
}
catch ( CoreException e )
{
@@ -236,9 +241,25 @@ public class ApacheDS156LdapServerAdapte
*/
public void stop( LdapServer server, IProgressMonitor monitor ) throws Exception
{
- System.out.println( "stop " + server.getName() );
-
- Thread.sleep( 3000 );
+ // Getting the launch
+ ILaunch launch = ( ILaunch ) server.getCustomObject( "launchConfiguration" );
+ if ( ( launch != null ) && ( !launch.isTerminated() ) )
+ {
+ // Terminating the launch
+ try
+ {
+ launch.terminate();
+ }
+ catch ( DebugException e )
+ {
+ CommonUiUtils.reportError( NLS.bind( "An error occurred when stopping the server.\n\n{0}", new String[]
+ { e.getMessage() } ) );
+ }
+ }
+ else
+ {
+ // TODO throw an error
+ }
server.setStatus( LdapServerStatus.STOPPED );
}
Modified: directory/studio/trunk/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/model/LdapServer.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/model/LdapServer.java?rev=966154&r1=966153&r2=966154&view=diff
==============================================================================
--- directory/studio/trunk/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/model/LdapServer.java (original)
+++ directory/studio/trunk/ldapservers/src/main/java/org/apache/directory/studio/ldapservers/model/LdapServer.java Wed Jul 21 09:26:55 2010
@@ -22,7 +22,9 @@ package org.apache.directory.studio.ldap
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import org.eclipse.core.runtime.IAdaptable;
@@ -51,6 +53,9 @@ public class LdapServer implements IAdap
/** The list of listeners */
private List<LdapServerListener> listeners = new ArrayList<LdapServerListener>();
+ /** The Map for custom objects */
+ private Map<String, Object> customObjectsMap = new HashMap<String, Object>();
+
/**
* Creates a new instance of LDAP Server.
@@ -106,6 +111,22 @@ public class LdapServer implements IAdap
/**
+ * Returns the value to which the specified key is mapped,
+ * or null if no mapping for the key is found.
+ *
+ * @param key
+ * the key
+ * @return
+ * the value to which the specified key is mapped,
+ * or null if no mapping for the key is found.
+ */
+ public Object getCustomObject( String key )
+ {
+ return customObjectsMap.get( key );
+ }
+
+
+ /**
* Gets the id of the server.
*
* @return
@@ -154,29 +175,46 @@ public class LdapServer implements IAdap
/**
- * Removes the {@link LdapServerListener} from the server.
+ * Associates the specified value with the specified key.
*
- * @param listener
- * the listener to be removed
+ * @param key
+ * the key
+ * @param value
+ * the value
*/
- public void removeListener( LdapServerListener listener )
+ public void putCustomObject( String key, Object value )
{
- if ( !listeners.contains( listener ) )
- {
- listeners.remove( listener );
- }
+ customObjectsMap.put( key, value );
}
/**
- * Restarts the server.
+ * Removes the value to which the specified key is mapped.
+ * <p>
+ * Returns the value previously associated the key,
+ * or null if there was no mapping for the key.
*
- * @throws Exception
- * if an error occurs when restarting the server
+ * @param key
+ * @return
*/
- public void restart() throws Exception
+ public Object removeCustomObject( String key )
{
+ return customObjectsMap.remove( key );
+ }
+
+ /**
+ * Removes the {@link LdapServerListener} from the server.
+ *
+ * @param listener
+ * the listener to be removed
+ */
+ public void removeListener( LdapServerListener listener )
+ {
+ if ( !listeners.contains( listener ) )
+ {
+ listeners.remove( listener );
+ }
}
@@ -261,30 +299,6 @@ public class LdapServer implements IAdap
/**
- * Starts the server.
- *
- * @throws Exception
- * if an error occurs when restarting the server
- */
- public void start() throws Exception
- {
-
- }
-
-
- /**
- * Stops the server.
- *
- * @throws Exception
- * if an error occurs when restarting the server
- */
- public void stop() throws Exception
- {
-
- }
-
-
- /**
* {@inheritDoc}
*/
public Object getAdapter( Class adapter )