Package runjettyrun.utils

Source Code of runjettyrun.utils.RunJettyRunLaunchConfigurationUtil

package runjettyrun.utils;

import java.io.File;

import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
import org.eclipse.jdt.launching.IRuntimeClasspathEntry;

import runjettyrun.Plugin;

public class RunJettyRunLaunchConfigurationUtil {

  public static ILaunchConfiguration findLaunchConfiguration(
      String projectName) {
    ILaunchManager lnmanger = DebugPlugin.getDefault().getLaunchManager();
    try {
      for (ILaunchConfiguration lc : lnmanger.getLaunchConfigurations()) {

        if (isSupported(lc, projectName))
          return lc;

      }
    } catch (CoreException e) {
      e.printStackTrace();
    }
    return null;
  }

  private static boolean isSupported(ILaunchConfiguration launch,
      String projectname) throws CoreException {
    String currentProjectName = launch.getAttribute(
        IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, "");
    if (!currentProjectName.equals(projectname))
      return false;

    if ("".equals(launch.getAttribute(Plugin.ATTR_CONTEXT, "")))
      return false;

    if ("".equals(launch.getAttribute(Plugin.ATTR_WEBAPPDIR, "")))
      return false;

    return true;
  }

  public static boolean validation(ILaunchConfiguration config) {

    try {
      String projectName = config.getAttribute(
          IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, "");
      IProject project = null;
      if (projectName.length() > 0) {
        IWorkspace workspace = ResourcesPlugin.getWorkspace();
        IStatus status = workspace.validateName(projectName,
            IResource.PROJECT);
        if (status.isOK()) {
          project = ResourcesPlugin.getWorkspace().getRoot()
              .getProject(projectName);
          if (!project.exists()) {
            return false;
          }
          if (!project.isOpen()) {
            return false;
          }
        } else {
          return false;
        }
      } else {
        return false;
      }
      String directory = config.getAttribute(Plugin.ATTR_WEBAPPDIR, "");
      if (!"".equals(directory.trim())) {

        if("/".equals(directory)){ //root as webapp folder
          IFolder file = project.getFolder(new Path("/WEB-INF"));
          if (!file.exists()) {
            return false;
          }

        }else{
          IFolder folder = project.getFolder(directory);
          if (!folder.exists()) {
            return false;
          }
          IFolder file = project.getFolder(new Path(directory
              + "/WEB-INF"));
          if (!file.exists()) {
            return false;
          }
        }
      } else {
        return false;
      }

      String port = config.getAttribute(Plugin.ATTR_PORT, "");
      String sslPort = config.getAttribute(Plugin.ATTR_SSL_PORT, "");
      if (port.length() == 0 && sslPort.length() == 0) {
        return false;
      }
      if (isInvalidPort(port))
        return false;
      if (isInvalidPort(sslPort))
        return false;

      if (config.getAttribute(Plugin.ATTR_ENABLE_SCANNER, false)) {
        String scan = config.getAttribute(
            Plugin.ATTR_SCANINTERVALSECONDS, "5");

        if (scan.length() == 0) {
          return false;
        }
        if (isInvalidScan(scan))
          return false;
      }

      if (config.getAttribute(Plugin.ATTR_ENABLE_SSL, false)) {
        // Validate that we have the necessary key store info.
        String keystore = config.getAttribute(Plugin.ATTR_KEYSTORE, "")
            .trim();
        String keyPwd = config.getAttribute(Plugin.ATTR_KEY_PWD, "")
            .trim();
        String password = config.getAttribute(Plugin.ATTR_PWD, "")
            .trim();
        if (keystore.length() == 0) {
          return false;
        } else if (!new File(keystore).isFile()) {
          return false;
        }
        if (keyPwd.length() == 0) {
          return false;
        }
        if (password.length() == 0) {
          return false;
        }
      }

      return true;
    } catch (CoreException ex) {
      return false;
    }
  }

  public static boolean isInvalidPort(String s) {
    if (s.length() == 0)
      return false;
    try {
      int p = Integer.parseInt(s);
      if (1 <= p && p <= 65535)
        return false;
    } catch (NumberFormatException e) {
    }
    return true;
  }

  public static boolean isInvalidScan(String s) {
    try {
      Integer.parseInt(s);
      return false;
    } catch (NumberFormatException e) {
    }
    return true;
  }

  public static IRuntimeClasspathEntry[] loadPackage(
      ILaunchConfiguration configuration, int type) {
    String ver = "";
    try {
      ver = configuration.getAttribute(
          Plugin.ATTR_SELECTED_JETTY_VERSION, "");
    } catch (CoreException e) {
      e.printStackTrace();
    }
    Plugin plg = Plugin.getDefault();
    if (plg.supportJetty(ver, type)) {
      return (plg.getPackages(ver, type));
    } else {
      return (plg.getDefaultPackages(type));
    }

  }
}
TOP

Related Classes of runjettyrun.utils.RunJettyRunLaunchConfigurationUtil

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.