Package org.nodeclipse.redis.launch

Source Code of org.nodeclipse.redis.launch.LaunchConfigurationDelegate

package org.nodeclipse.redis.launch;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
import org.eclipse.debug.core.model.RuntimeProcess;
import org.eclipse.jface.preference.IPreferenceStore;
import org.nodeclipse.debug.util.Constants;
import org.nodeclipse.debug.util.VariablesUtil;
import org.nodeclipse.ui.Activator;
import org.nodeclipse.ui.preferences.Dialogs;
import org.nodeclipse.ui.preferences.PreferenceConstants;
import org.nodeclipse.ui.util.NodeclipseConsole;

/**
* Launching mongodb shell.<br>
* see LaunchConfigurationDelegate in .debug and .phantomjs module for comparison.
*
* @version dirty
* @since 0.7
* @author Paul Verest
*/
public class LaunchConfigurationDelegate implements ILaunchConfigurationDelegate {

  @Override
  public void launch(ILaunchConfiguration configuration, String mode,
      ILaunch launch, IProgressMonitor monitor) throws CoreException {

    NodeclipseConsole.write("redis-cli\n");
   
    IPreferenceStore preferenceStore = Activator.getDefault().getPreferenceStore();
    boolean isDebugMode = mode.equals(ILaunchManager.DEBUG_MODE);
   
    // Using configuration to build command line 
    List<String> cmdLine = new ArrayList<String>();
   
    //TODO how to execute cmd or shell being OS independent ?

    String mongoDBShellPath= preferenceStore.getString(PreferenceConstants.MONGODB_SHELL_PATH);
    // Check if the node location is correctly configured
    File mongoDBShellFile = new File(mongoDBShellPath);
    if(!mongoDBShellFile.exists()){
      // If the location is not valid than show a dialog which prompts the user to goto the preferences page
      Dialogs.showPreferencesDialog("Path to MongoDB Shell (e.g. mongo.exe) is not correctly configured.\n\n"
          + "Please goto Window -> Prefrences -> Nodeclipse and configure the correct location under 'MongoDB Shell path:'");
      return;
    }     
    cmdLine.add(mongoDBShellPath);
   
    cmdLine.add("--shell"); //run the shell after executing files   
   
    if (isDebugMode) {
      //TODO research how to debug
    }

    String file = configuration.getAttribute("KEY_FILE_PATH""");
   
    //TODO iterate over file and execute as redis command line by line
   
    for(String s : cmdLine) NodeclipseConsole.write(s+" ");
    NodeclipseConsole.write("\n");
   
    String[] cmds = {};
    cmds = cmdLine.toArray(cmds);
    // Launch a process to debug.eg,
    Process p = DebugPlugin.exec(cmds, null, null);
    RuntimeProcess process = (RuntimeProcess)DebugPlugin.newProcess(launch, p, ConstantsRedis.PROCESS_MESSAGE);
    if (isDebugMode) {
      //TODO research how to debug
    }
   
  }

}
TOP

Related Classes of org.nodeclipse.redis.launch.LaunchConfigurationDelegate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.