diff agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java @ 25:f4e0050e2a2f

resolve server url from config parameter
author Evgeniy.Koshkin
date Tue, 06 Aug 2013 14:18:09 +0400
parents 7bd8a756aa78
children 87b24e4efcc3
line wrap: on
line diff
--- a/agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java	Mon Aug 05 20:57:02 2013 +0400
+++ b/agent/src/jetbrains/buildServer/symbols/SymbolsIndexer.java	Tue Aug 06 14:18:09 2013 +0400
@@ -84,8 +84,12 @@
     }
     LOG.debug(SymbolsConstants.BUILD_FEATURE_TYPE + " build feature enabled. Searching for suitable files.");
     final Collection<File> pdbFiles = getArtifactPathsByFileExtension(artifacts, PDB_FILE_EXTENSION);
-    final SrcSrvStreamProvider srcSrvStreamProvider = new SrcSrvStreamProvider(myBuild.getBuildId(), myBuild.getCheckoutDirectory());
-    final PdbFilePatcher pdbFilePatcher = new PdbFilePatcher(myBuild.getBuildTempDirectory(), srcSrvStreamProvider);
+    if(pdbFiles.isEmpty()) return;
+
+    final FileUrlProvider urlProvider = getUrlProviderForBuild(myBuild, buildLogger);
+    if(urlProvider == null) return;
+
+    final PdbFilePatcher pdbFilePatcher = new PdbFilePatcher(myBuild.getBuildTempDirectory(), new SrcSrvStreamBuilder(urlProvider));
     for(File pdbFile : pdbFiles){
       try {
         buildLogger.message("Indexing sources appeared in file " + pdbFile.getAbsolutePath());
@@ -99,6 +103,18 @@
     }
   }
 
+  @Nullable
+  private FileUrlProvider getUrlProviderForBuild(@NotNull AgentRunningBuild build, BuildProgressLogger buildLogger) {
+    String serverUrl = build.getSharedConfigParameters().get(SymbolsConstants.SERVER_URL_PARAMETER_NAME);
+    if(serverUrl == null){
+      final String message = String.format("Configuration parameter %s was not set. ", SymbolsConstants.SERVER_URL_PARAMETER_NAME);
+      LOG.warn(message);
+      buildLogger.warning(message);
+      return null;
+    }
+    return new FileUrlProvider(serverUrl, build.getBuildId(), build.getCheckoutDirectory());
+  }
+
   private Collection<File> getArtifactPathsByFileExtension(List<ArtifactsCollection> artifactsCollections, String fileExtension){
     final Collection<File> result = new HashSet<File>();
     for(ArtifactsCollection artifactsCollection : artifactsCollections){