Skip to content

Commit

Permalink
fix: use dependency cache when launching GAV. (quarkusio#586)
Browse files Browse the repository at this point in the history
GAV running skipped the depedency cache due to how we first resolve non-transitively then afterwords with transitivity
and not storing in cache that is now changed. You will still see two depedency reesolutons on first run; but second ones should be fast and not log extra.

Fixes quarkusio#222
  • Loading branch information
maxandersen committed Dec 5, 2020
1 parent 8045f92 commit 44a8858
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions src/main/java/dev/jbang/DependencyUtil.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package dev.jbang;

import static dev.jbang.Settings.CP_SEPARATOR;
import static dev.jbang.Util.*;
import static dev.jbang.Util.errorMsg;
import static dev.jbang.Util.infoHeader;
import static dev.jbang.Util.infoMsg;
import static dev.jbang.Util.infoMsgFmt;

import java.util.ArrayList;
import java.util.Collections;
Expand All @@ -11,7 +14,12 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import org.jboss.shrinkwrap.resolver.api.maven.*;
import org.jboss.shrinkwrap.resolver.api.maven.ConfigurableMavenResolverSystem;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.jboss.shrinkwrap.resolver.api.maven.MavenFormatStage;
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolvedArtifact;
import org.jboss.shrinkwrap.resolver.api.maven.MavenStrategyStage;
import org.jboss.shrinkwrap.resolver.api.maven.PackagingType;
import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenCoordinate;
import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenCoordinates;

Expand Down Expand Up @@ -70,12 +78,13 @@ public ModularClassPath resolveDependencies(List<String> deps, List<MavenRepo> r
}

String depsHash = String.join(CP_SEPARATOR, depIds);
if (!transitivity) { // the cached key need to be different for non-transivity
depsHash = "notransitivity-" + depsHash;
}

List<ArtifactInfo> cachedDeps = null;

if (transitivity) {
cachedDeps = Settings.findDependenciesInCache(depsHash);
}
cachedDeps = Settings.findDependenciesInCache(depsHash);

if (cachedDeps != null)
return new ModularClassPath(cachedDeps);
Expand All @@ -94,9 +103,7 @@ public ModularClassPath resolveDependencies(List<String> deps, List<MavenRepo> r
infoMsg("Dependencies resolved");
}

if (transitivity) { // only cache when doing transitive lookups
Settings.cacheDependencies(depsHash, classPath.getArtifacts());
}
Settings.cacheDependencies(depsHash, classPath.getArtifacts());

// Print the classpath
return classPath;
Expand Down

0 comments on commit 44a8858

Please sign in to comment.