# HG changeset patch # User Evgeniy.Koshkin # Date 1419352647 -10800 # Node ID 64eaa82c452954cbe277bd1d84e350644254c779 # Parent b3f951ab16ebc92e2e6b597cbad8871f626624f9 rename class diff -r b3f951ab16eb -r 64eaa82c4529 agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java --- a/agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java Tue Dec 23 19:02:47 2014 +0300 +++ b/agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java Tue Dec 23 19:37:27 2014 +0300 @@ -6,7 +6,7 @@ import jetbrains.buildServer.agent.impl.artifacts.ArtifactsCollection; import jetbrains.buildServer.agent.plugins.beans.PluginDescriptor; import jetbrains.buildServer.symbols.tools.JetSymbolsExe; -import jetbrains.buildServer.symbols.tools.WinDbgToolsHelper; +import jetbrains.buildServer.symbols.tools.WinDbgToolsDetector; import jetbrains.buildServer.util.EventDispatcher; import jetbrains.buildServer.util.FileUtil; import org.apache.log4j.Logger; @@ -54,7 +54,7 @@ myProgressLogger = runningBuild.getBuildLogger(); myBuildTempDirectory = runningBuild.getBuildTempDirectory(); - mySrcSrvHomeDir = WinDbgToolsHelper.getSrcSrvHomeDir(runningBuild); + mySrcSrvHomeDir = WinDbgToolsDetector.getSrcSrvHomeDir(runningBuild); if (mySrcSrvHomeDir == null) { LOG.error("Failed to find Source Server tools home directory. No symbol and source indexing will be performed."); myProgressLogger.error("Failed to find Source Server tools home directory. No symbol and source indexing will be performed."); diff -r b3f951ab16eb -r 64eaa82c4529 agent/src/jetbrains/buildServer/symbols/tools/WinDbgToolsDetector.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/agent/src/jetbrains/buildServer/symbols/tools/WinDbgToolsDetector.java Tue Dec 23 19:37:27 2014 +0300 @@ -0,0 +1,53 @@ +package jetbrains.buildServer.symbols.tools; + +import jetbrains.buildServer.agent.AgentRunningBuild; +import jetbrains.buildServer.dotNet.DotNetConstants; +import jetbrains.buildServer.util.CollectionsUtil; +import jetbrains.buildServer.util.filters.Filter; +import org.apache.log4j.Logger; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.File; +import java.util.List; +import java.util.Map; + +/** + * @author Evgeniy.Koshkin + */ +public class WinDbgToolsDetector { + + private static final Logger LOG = Logger.getLogger(WinDbgToolsDetector.class); + + private static final String SRCSRV_HOME_DIR_RELATIVE_X64 = "\\Debuggers\\x64\\srcsrv\\"; + private static final String SRCSRV_HOME_DIR_RELATIVE_X86 = "\\Debuggers\\x86\\srcsrv\\"; + + @Nullable + public static File getSrcSrvHomeDir(@NotNull AgentRunningBuild build) { + final Map agentConfigParameters = build.getAgentConfiguration().getConfigurationParameters(); + final List winSdkPathParams = CollectionsUtil.filterCollection(agentConfigParameters.keySet(), new Filter() { + public boolean accept(@NotNull String paramName) { + return paramName.startsWith(DotNetConstants.WINDOWS_SDK) && paramName.endsWith(DotNetConstants.PATH); + } + }); + if(winSdkPathParams.isEmpty()){ + LOG.debug("None of Windows SDK versions are mentioned in agent configuration."); + return null; + } + + for (String paramName : winSdkPathParams){ + final File winSdkHomeDir = new File(agentConfigParameters.get(paramName)); + if(!winSdkHomeDir.exists()) { + LOG.debug(String.format("Windows SDK home directory mentioned in parameter %s is not exist. Checked path %s.", paramName, winSdkHomeDir.getAbsolutePath())); + continue; + } + File dir = new File(winSdkHomeDir, SRCSRV_HOME_DIR_RELATIVE_X64); + if(dir.exists() && dir.isDirectory()) return dir; + dir = new File(winSdkHomeDir, SRCSRV_HOME_DIR_RELATIVE_X86); + if(dir.exists() && dir.isDirectory()) return dir; + LOG.debug("Failed to find Source Server tools home directory under Windows SDK home directory detected on path " + winSdkHomeDir.getAbsolutePath()); + } + LOG.debug("None of detected Windows SDK installations contain Source Server tools."); + return null; + } +} diff -r b3f951ab16eb -r 64eaa82c4529 agent/src/jetbrains/buildServer/symbols/tools/WinDbgToolsHelper.java --- a/agent/src/jetbrains/buildServer/symbols/tools/WinDbgToolsHelper.java Tue Dec 23 19:02:47 2014 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -package jetbrains.buildServer.symbols.tools; - -import jetbrains.buildServer.agent.AgentRunningBuild; -import jetbrains.buildServer.dotNet.DotNetConstants; -import jetbrains.buildServer.util.CollectionsUtil; -import jetbrains.buildServer.util.filters.Filter; -import org.apache.log4j.Logger; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.io.File; -import java.util.List; -import java.util.Map; - -/** - * @author Evgeniy.Koshkin - */ -public class WinDbgToolsHelper { - - private static final Logger LOG = Logger.getLogger(WinDbgToolsHelper.class); - - private static final String SRCSRV_HOME_DIR_RELATIVE_X64 = "\\Debuggers\\x64\\srcsrv\\"; - private static final String SRCSRV_HOME_DIR_RELATIVE_X86 = "\\Debuggers\\x86\\srcsrv\\"; - - @Nullable - public static File getSrcSrvHomeDir(@NotNull AgentRunningBuild build) { - final Map agentConfigParameters = build.getAgentConfiguration().getConfigurationParameters(); - final List winSdkPathParams = CollectionsUtil.filterCollection(agentConfigParameters.keySet(), new Filter() { - public boolean accept(@NotNull String paramName) { - return paramName.startsWith(DotNetConstants.WINDOWS_SDK) && paramName.endsWith(DotNetConstants.PATH); - } - }); - if(winSdkPathParams.isEmpty()){ - LOG.debug("None of Windows SDK versions are mentioned in agent configuration."); - return null; - } - - for (String paramName : winSdkPathParams){ - final File winSdkHomeDir = new File(agentConfigParameters.get(paramName)); - if(!winSdkHomeDir.exists()) { - LOG.debug(String.format("Windows SDK home directory mentioned in parameter %s is not exist. Checked path %s.", paramName, winSdkHomeDir.getAbsolutePath())); - continue; - } - File dir = new File(winSdkHomeDir, SRCSRV_HOME_DIR_RELATIVE_X64); - if(dir.exists() && dir.isDirectory()) return dir; - dir = new File(winSdkHomeDir, SRCSRV_HOME_DIR_RELATIVE_X86); - if(dir.exists() && dir.isDirectory()) return dir; - LOG.debug("Failed to find Source Server tools home directory under Windows SDK home directory detected on path " + winSdkHomeDir.getAbsolutePath()); - } - LOG.debug("None of detected Windows SDK installations contain Source Server tools."); - return null; - } -}