/** * Returns configurations done on WATagPage. * * @return Map<String, String> */ @SuppressWarnings("static-access") private Map<String, String> getDeployPageValues() { Map<String, String> values = new HashMap<String, String>(); // JDK values.put("jdkChecked", Boolean.valueOf(tabPg.isJdkChecked()).toString()); values.put("jdkLoc", tabPg.getJdkLoc()); // JDK download group values.put("jdkDwnldChecked", Boolean.valueOf(tabPg.isJdkDownloadChecked()).toString()); values.put("jdkAutoDwnldChecked", Boolean.valueOf(tabPg.isJdkAutoUploadChecked()).toString()); values.put("jdkThrdPartyChecked", Boolean.valueOf(tabPg.isThirdPartyJdkChecked()).toString()); values.put("jdkName", tabPg.getJdkName()); values.put("jdkUrl", tabPg.getJdkUrl()); values.put("jdkKey", tabPg.getJdkKey()); values.put("javaHome", tabPg.getJavaHome()); // Server values.put("serChecked", Boolean.valueOf(tabPg.isSrvChecked()).toString()); values.put("servername", JdkSrvConfig.getServerName()); values.put("serLoc", tabPg.getServerLoc()); values.put("tempFile", WAEclipseHelper.getTemplateFile(Messages.cmpntFile)); // Server download group values.put("srvDwnldChecked", Boolean.valueOf(JdkSrvConfig.isSrvDownloadChecked()).toString()); values.put( "srvAutoDwnldChecked", Boolean.valueOf(JdkSrvConfig.isSrvAutoUploadChecked()).toString()); values.put("srvThrdPartyChecked", Boolean.valueOf(tabPg.isThirdPartySrvChecked()).toString()); values.put("srvThrdPartyName", tabPg.getThirdPartyServerName()); values.put("srvThrdAltSrc", JdkSrvConfig.getServerCloudAltSource()); values.put("srvUrl", tabPg.getSrvUrl()); values.put("srvKey", tabPg.getSrvKey()); values.put("srvHome", tabPg.getSrvHomeDir()); return values; }
@Override public boolean performOk() { boolean okToProceed = true; try { if (!Activator.getDefault().isSaved()) { waProjManager.save(); Activator.getDefault().setSaved(true); } WAEclipseHelper.refreshWorkspace(Messages.rolsRefTitle, Messages.rolsRefMsg); } catch (WindowsAzureInvalidProjectOperationException e) { errorTitle = Messages.adRolErrTitle; errorMessage = Messages.adRolErrMsgBox1 + Messages.adRolErrMsgBox2; MessageUtil.displayErrorDialog(this.getShell(), errorTitle, errorMessage); Activator.getDefault().log(errorMessage, e); okToProceed = false; } if (okToProceed) { okToProceed = super.performOk(); } return okToProceed; }
/** * Returns the server name whose detection patterns is matched under path. * * @param serverDetectors * @param path * @return */ public static String detectServer(File path) { Map<String, String> serverDetectors; // Get the templates files String templateFilePath = WAEclipseHelper.getTemplateFile(); if (templateFilePath == null || path == null || !path.isDirectory() || !path.exists()) { return null; } // Get the server detectors from the templates try { if (null == (serverDetectors = WindowsAzureProjectManager.getServerTemplateDetectors(new File(templateFilePath)))) { return null; } } catch (WindowsAzureInvalidProjectOperationException e) { return null; } // Check each pattern for (Map.Entry<String, String> entry : serverDetectors.entrySet()) { String serverName = entry.getKey(); String patternText = entry.getValue(); if (patternText == null || patternText.isEmpty()) { continue; } /* * Fast path: Check the pattern directly * (like, if it has no wild cards) */ File basePathFile = new File(path, patternText); if (basePathFile.exists()) { return serverName; } /* * Split pattern path into parts * and check for existence of each part */ basePathFile = path; String[] pathParts = patternText.split("\\\\"); boolean foundSoFar = false; for (int i = 0; i < pathParts.length; i++) { String pathPart = pathParts[i]; // Try direct match first File pathPartFile = new File(basePathFile, pathPart); if (pathPartFile.exists()) { foundSoFar = true; // Check for wildcards } else if (!pathPart.contains("*") && !pathPart.contains("?")) { foundSoFar = false; // Wildcards present, so check pattern } else { String[] fileNames = basePathFile.list(); String patternRegex = windowsPathToRegex(pathPart) + "$"; Pattern pattern = Pattern.compile(patternRegex); Matcher matcher = pattern.matcher(""); foundSoFar = false; for (String fileName : fileNames) { matcher.reset(fileName); if (matcher.find()) { foundSoFar = true; break; } } } if (foundSoFar) { basePathFile = new File(basePathFile, pathPart); } else { break; } } if (foundSoFar) { return serverName; } } // No matches found return null; }