Skip to content

Commit

Permalink
fix: info tools now downloads JDKs again
Browse files Browse the repository at this point in the history
  • Loading branch information
quintesse committed Feb 20, 2023
1 parent b96e296 commit d1b7694
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
13 changes: 7 additions & 6 deletions src/main/java/dev/jbang/cli/Info.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ static class ScriptInfo {
String description;
String gav;

public ScriptInfo(Project prj, BuildContext ctx) {
public ScriptInfo(Project prj, BuildContext ctx, boolean assureJdkInstalled) {
originalResource = prj.getResourceRef().getOriginalResource();

if (scripts.add(originalResource)) {
Expand All @@ -104,7 +104,8 @@ public ScriptInfo(Project prj, BuildContext ctx) {
requestedJavaVersion = prj.getJavaVersion();

try {
JdkProvider.Jdk jdk = JdkManager.getJdk(requestedJavaVersion, false);
JdkProvider.Jdk jdk = assureJdkInstalled ? JdkManager.getOrInstallJdk(requestedJavaVersion)
: JdkManager.getJdk(requestedJavaVersion, false);
if (jdk != null && jdk.isInstalled()) {
availableJdkPath = jdk.getHome().toString();
}
Expand Down Expand Up @@ -187,15 +188,15 @@ private void init(SourceSet ss) {

private static Set<String> scripts;

ScriptInfo getInfo() {
ScriptInfo getInfo(boolean assureJdkInstalled) {
scriptMixin.validate();

ProjectBuilder pb = createProjectBuilder();
Project prj = pb.build(scriptMixin.scriptOrFile);

scripts = new HashSet<>();

return new ScriptInfo(prj, BuildContext.forProject(prj, buildDir));
return new ScriptInfo(prj, BuildContext.forProject(prj, buildDir), assureJdkInstalled);
}

ProjectBuilder createProjectBuilder() {
Expand All @@ -219,7 +220,7 @@ class Tools extends BaseInfoCommand {
public Integer doCall() throws IOException {

Gson parser = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create();
parser.toJson(getInfo(), System.out);
parser.toJson(getInfo(true), System.out);

return EXIT_OK;
}
Expand All @@ -231,7 +232,7 @@ class ClassPath extends BaseInfoCommand {
@Override
public Integer doCall() throws IOException {

ScriptInfo info = getInfo();
ScriptInfo info = getInfo(false);
List<String> cp = new ArrayList<>(info.resolvedDependencies.size() + 1);
if (info.applicationJar != null && !info.resolvedDependencies.contains(info.applicationJar)) {
cp.add(info.applicationJar);
Expand Down
16 changes: 8 additions & 8 deletions src/test/java/dev/jbang/cli/TestInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ void testInfoToolsSimple() {
JBang jbang = new JBang();
CommandLine.ParseResult pr = new CommandLine(jbang).parseArgs("info", "tools", src);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(src));
assertThat(info.applicationJar, allOf(
containsString("quote.java."),
Expand All @@ -43,7 +43,7 @@ void testInfoToolsBuilt() {
new CommandLine(jbang).execute("build", src);
CommandLine.ParseResult pr = new CommandLine(jbang).parseArgs("info", "tools", src);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(src));
assertThat(info.applicationJar, allOf(
containsString("quote.java."),
Expand All @@ -63,7 +63,7 @@ void testInfoToolsWithDeps() {
"--deps", "org.apache.commons:commons-lang3:3.12.0",
src);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(src));
assertThat(info.applicationJar, allOf(
containsString("helloworld.java."),
Expand All @@ -85,7 +85,7 @@ void testInfoToolsWithClasspath() {
JBang jbang = new JBang();
CommandLine.ParseResult pr = new CommandLine(jbang).parseArgs("info", "tools", "--cp", jar, src);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(src));
assertThat(info.applicationJar, allOf(
containsString("helloworld.java."),
Expand All @@ -105,7 +105,7 @@ void testInfoClasspathNested() {
JBang jbang = new JBang();
CommandLine.ParseResult pr = new CommandLine(jbang).parseArgs("info", "tools", src);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(src));
assertThat(info.applicationJar, allOf(
containsString("sources.java."),
Expand All @@ -129,7 +129,7 @@ void testInfoJShell() {
JBang jbang = new JBang();
CommandLine.ParseResult pr = new CommandLine(jbang).parseArgs("info", "tools", src);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(src));
assertThat(info.applicationJar, equalTo(null));
assertThat(info.backingResource, equalTo(src));
Expand All @@ -145,7 +145,7 @@ void testInfoHelloJar() {
String jar = examplesTestFolder.resolve("hellojar.jar").toString();
CommandLine.ParseResult pr = JBang.getCommandLine().parseArgs("info", "tools", jar);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(jar));
assertThat(info.applicationJar, equalTo(jar));
assertThat(info.backingResource, equalTo(jar));
Expand All @@ -159,7 +159,7 @@ void testInfoStarSources() {
String src = examplesTestFolder.resolve("sources/ying.java").toString();
CommandLine.ParseResult pr = JBang.getCommandLine().parseArgs("info", "tools", src);
Tools tools = (Tools) pr.subcommand().subcommand().commandSpec().userObject();
BaseInfoCommand.ScriptInfo info = tools.getInfo();
BaseInfoCommand.ScriptInfo info = tools.getInfo(false);
assertThat(info.originalResource, equalTo(src));
// assertThat(info.applicationJar, equalTo(src));
assertThat(info.backingResource, equalTo(src));
Expand Down

0 comments on commit d1b7694

Please sign in to comment.