Mercurial > hg > tc-symbol-server
annotate agent/src/jetbrains/buildServer/symbols/PdbFilePatcher.java @ 20:10cb71666d5e
more fixes in generated srcsrv
author | Evgeniy.Koshkin |
---|---|
date | Fri, 02 Aug 2013 17:58:51 +0400 |
parents | c038e1a8c8a5 |
children | f4e0050e2a2f |
rev | line source |
---|---|
12 | 1 package jetbrains.buildServer.symbols; |
2 | |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
3 import jetbrains.buildServer.agent.BuildProgressLogger; |
12 | 4 import jetbrains.buildServer.util.FileUtil; |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
5 import org.apache.log4j.Logger; |
12 | 6 |
7 import java.io.File; | |
8 import java.util.Collection; | |
9 | |
10 /** | |
11 * @author Evgeniy.Koshkin | |
12 */ | |
13 public class PdbFilePatcher { | |
14 | |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
15 private static final Logger LOG = Logger.getLogger(PdbFilePatcher.class); |
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
16 |
12 | 17 private final PdbStrExe myPdbStrExe = new PdbStrExe(); |
18 private final SrcToolExe mySrcToolExe = new SrcToolExe(); | |
19 | |
20 private final File myHomeDir; | |
21 private SrcSrvStreamProvider myIndexInputProvider; | |
22 | |
23 public PdbFilePatcher(final File homeDir, final SrcSrvStreamProvider indexInputProvider) { | |
24 myHomeDir = homeDir; | |
25 myIndexInputProvider = indexInputProvider; | |
26 } | |
27 | |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
28 public void patch(File symbolsFile, BuildProgressLogger buildLogger) throws Exception { |
12 | 29 final Collection<File> sourceFiles = mySrcToolExe.getReferencedSourceFiles(symbolsFile); |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
30 if(sourceFiles.isEmpty()){ |
19
c038e1a8c8a5
fixed srcsrv stream content template - srctool now says that files are indexed
Evgeniy.Koshkin
parents:
18
diff
changeset
|
31 final String message = "No source information found in pdb file " + symbolsFile.getCanonicalPath(); |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
32 buildLogger.warning(message); |
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
33 LOG.debug(message); |
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
34 return; |
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
35 } |
15 | 36 final File tmpFile = FileUtil.createTempFile(myHomeDir, "pdb-", ".patch", false); |
12 | 37 myIndexInputProvider.dumpStreamToFile(tmpFile, sourceFiles); |
38 myPdbStrExe.doCommand(PdbStrExeCommand.WRITE, symbolsFile, tmpFile, PdbStrExe.SRCSRV_STREAM_NAME); | |
19
c038e1a8c8a5
fixed srcsrv stream content template - srctool now says that files are indexed
Evgeniy.Koshkin
parents:
18
diff
changeset
|
39 // final File tmpFile1 = FileUtil.createTempFile(myHomeDir, "pdb-", ".patch", false); |
c038e1a8c8a5
fixed srcsrv stream content template - srctool now says that files are indexed
Evgeniy.Koshkin
parents:
18
diff
changeset
|
40 // myPdbStrExe.doCommand(PdbStrExeCommand.READ, symbolsFile, tmpFile1, PdbStrExe.SRCSRV_STREAM_NAME); |
c038e1a8c8a5
fixed srcsrv stream content template - srctool now says that files are indexed
Evgeniy.Koshkin
parents:
18
diff
changeset
|
41 // if(!FileUtil.checkContentEqual(tmpFile, tmpFile1)) |
c038e1a8c8a5
fixed srcsrv stream content template - srctool now says that files are indexed
Evgeniy.Koshkin
parents:
18
diff
changeset
|
42 // throw new Exception("'srcsrv' stream content written to pdb differs from initial one"); |
12 | 43 } |
44 } |