Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9d5c7ea

Browse files
Fix source path detection in multi-project repos (DataDog#6318)
1 parent f9f0778 commit 9d5c7ea

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

‎dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/CiVisibilitySystem.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -177,17 +177,15 @@ private static DDBuildSystemSession.Factory buildSystemSessionFactory(
177177
ResourceResolver resourceResolver =
178178
new ConventionBasedResourceResolver(
179179
fileSystem, config.getCiVisibilityResourceFolderNames());
180-
181-
// scanning only the project folder and not the entire repo to
182-
// save time and to properly determine root packages for coverage instrumentation
183-
// (when there are multiple projects in the repo, root package resolution cannot establish
184-
// common roots)
185-
String sourcePathResolutionRoot = projectRoot.toString();
186180
RepoIndexBuilder indexBuilder =
187181
new RepoIndexBuilder(
188-
config, sourcePathResolutionRoot, packageResolver, resourceResolver, fileSystem);
189-
SourcePathResolver sourcePathResolver =
190-
getSourcePathResolver(sourcePathResolutionRoot, indexBuilder);
182+
config,
183+
repoRoot,
184+
projectRoot.toString(),
185+
packageResolver,
186+
resourceResolver,
187+
fileSystem);
188+
SourcePathResolver sourcePathResolver = getSourcePathResolver(repoRoot, indexBuilder);
191189
Codeowners codeowners = getCodeowners(repoRoot);
192190

193191
MethodLinesResolver methodLinesResolver =
@@ -314,7 +312,8 @@ private static DDTestFrameworkSession.Factory testFrameworkSessionFactory(
314312
new ConventionBasedResourceResolver(
315313
fileSystem, config.getCiVisibilityResourceFolderNames());
316314
RepoIndexProvider indexProvider =
317-
new RepoIndexBuilder(config, repoRoot, packageResolver, resourceResolver, fileSystem);
315+
new RepoIndexBuilder(
316+
config, repoRoot, repoRoot, packageResolver, resourceResolver, fileSystem);
318317

319318
BackendApi backendApi = backendApiFactory.createBackendApi();
320319
GitDataUploader gitDataUploader =
@@ -396,7 +395,8 @@ private static CIVisibility.SessionFactory apiSessionFactory(
396395
new ConventionBasedResourceResolver(
397396
fileSystem, config.getCiVisibilityResourceFolderNames());
398397
RepoIndexProvider indexProvider =
399-
new RepoIndexBuilder(config, repoRoot, packageResolver, resourceResolver, fileSystem);
398+
new RepoIndexBuilder(
399+
config, repoRoot, repoRoot, packageResolver, resourceResolver, fileSystem);
400400
SourcePathResolver sourcePathResolver = getSourcePathResolver(repoRoot, indexProvider);
401401

402402
return new DDTestSessionImpl(

‎dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/source/index/RepoIndexBuilder.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class RepoIndexBuilder implements RepoIndexProvider {
2323

2424
private final Config config;
2525
private final String repoRoot;
26+
private final String scanRoot;
2627
private final PackageResolver packageResolver;
2728
private final ResourceResolver resourceResolver;
2829
private final FileSystem fileSystem;
@@ -33,11 +34,13 @@ public class RepoIndexBuilder implements RepoIndexProvider {
3334
public RepoIndexBuilder(
3435
Config config,
3536
String repoRoot,
37+
String scanRoot,
3638
PackageResolver packageResolver,
3739
ResourceResolver resourceResolver,
3840
FileSystem fileSystem) {
3941
this.config = config;
4042
this.repoRoot = repoRoot;
43+
this.scanRoot = scanRoot;
4144
this.packageResolver = packageResolver;
4245
this.resourceResolver = resourceResolver;
4346
this.fileSystem = fileSystem;
@@ -57,24 +60,26 @@ public RepoIndex getIndex() {
5760

5861
private RepoIndex doGetIndex() {
5962
log.warn(
60-
"Building index of source files in {}. "
63+
"Building index of source files in {}, repo root is {}. "
6164
+ "This operation can be slow, "
6265
+ "please consider using Datadog Java compiler plugin to avoid indexing",
66+
scanRoot,
6367
repoRoot);
6468

6569
Path repoRootPath = fileSystem.getPath(repoRoot);
70+
Path scanRootPath = fileSystem.getPath(scanRoot);
6671
RepoIndexingFileVisitor repoIndexingFileVisitor =
6772
new RepoIndexingFileVisitor(config, packageResolver, resourceResolver, repoRootPath);
6873

6974
long startTime = System.currentTimeMillis();
7075
try {
7176
Files.walkFileTree(
72-
repoRootPath,
77+
scanRootPath,
7378
EnumSet.of(FileVisitOption.FOLLOW_LINKS),
7479
Integer.MAX_VALUE,
7580
repoIndexingFileVisitor);
7681
} catch (Exception e) {
77-
log.error("Failed to build index repo of {}", repoRoot, e);
82+
log.error("Failed to build index of {}", scanRootPath, e);
7883
}
7984

8085
long duration = System.currentTimeMillis() - startTime;

‎dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/source/index/RepoIndexSourcePathResolver.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ public RepoIndexSourcePathResolver(String repoRoot, RepoIndexProvider indexProvi
2727
FileSystem fileSystem) {
2828
this.repoRoot = repoRoot;
2929
this.indexProvider =
30-
new RepoIndexBuilder(config, repoRoot, packageResolver, resourceResolver, fileSystem);
30+
new RepoIndexBuilder(
31+
config, repoRoot, repoRoot, packageResolver, resourceResolver, fileSystem);
3132
}
3233

3334
@Nullable

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /