Skip to content

Commit 8c375dc

Browse files
committed
U refactoring and extension support for packaginJdk property
1 parent c0b3338 commit 8c375dc

File tree

5 files changed

+36
-35
lines changed

5 files changed

+36
-35
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ dependencies {
5050
implementation 'commons-io:commons-io:2.6'
5151
implementation 'org.apache.commons:commons-collections4:4.1'
5252
implementation 'org.apache.velocity:velocity-engine-core:2.0'
53-
implementation 'edu.sc.seis.launch4j:launch4j:2.5.0'
53+
implementation 'io.github.fvarrui:gradle-launch4j:2.4.7'
5454
implementation 'com.netflix.nebula:gradle-ospackage-plugin:8.4.1'
5555
implementation 'net.jsign:jsign-core:3.1'
5656

src/main/java/io/github/fvarrui/javapackager/gradle/DefaultPackageTask.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ protected Packager createPackager() throws Exception {
2020
.additionalResources(extension.getAdditionalResources())
2121
.administratorRequired(extension.getAdministratorRequired())
2222
.version(defaultIfNull(extension.getVersion(), getProject().getVersion().toString()))
23+
.packagingJdk(extension.getPackagingJdk())
2324
.assetsDir(extension.getAssetsDir())
2425
.bundleJre(extension.getBundleJre())
2526
.copyDependencies(extension.getCopyDependencies())

src/main/java/io/github/fvarrui/javapackager/gradle/GradleContext.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package io.github.fvarrui.javapackager.gradle;
22

33
import java.io.File;
4-
import java.util.HashMap;
5-
import java.util.Map;
64

7-
import edu.sc.seis.launch4j.tasks.Launch4jLibraryTask;
85
import org.gradle.api.Project;
96
import org.gradle.api.logging.Logger;
107

8+
import edu.sc.seis.launch4j.tasks.Launch4jLibraryTask;
119
import io.github.fvarrui.javapackager.packagers.Context;
1210
import io.github.fvarrui.javapackager.packagers.Packager;
1311

src/main/java/io/github/fvarrui/javapackager/gradle/PackagePluginExtension.java

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
import java.util.HashMap;
66

77
import org.gradle.api.Project;
8+
import org.gradle.api.internal.provider.Providers;
9+
import org.gradle.api.plugins.JavaPluginExtension;
10+
import org.gradle.api.provider.Provider;
11+
import org.gradle.jvm.toolchain.JavaLauncher;
12+
import org.gradle.jvm.toolchain.JavaToolchainService;
13+
import org.gradle.jvm.toolchain.JavaToolchainSpec;
814

915
import groovy.lang.Closure;
1016
import io.github.fvarrui.javapackager.model.LinuxConfig;
@@ -13,12 +19,6 @@
1319
import io.github.fvarrui.javapackager.model.Platform;
1420
import io.github.fvarrui.javapackager.model.WindowsConfig;
1521
import io.github.fvarrui.javapackager.packagers.PackagerSettings;
16-
import org.gradle.api.internal.provider.Providers;
17-
import org.gradle.api.plugins.JavaPluginExtension;
18-
import org.gradle.api.provider.Provider;
19-
import org.gradle.jvm.toolchain.JavaLauncher;
20-
import org.gradle.jvm.toolchain.JavaToolchainService;
21-
import org.gradle.jvm.toolchain.JavaToolchainSpec;
2222

2323
/**
2424
* JavaPackager plugin extension for Gradle
@@ -54,7 +54,8 @@ public PackagePluginExtension(Project project) {
5454
this.useResourcesAsWorkingDir = true;
5555
this.vmArgs = new ArrayList<>();
5656
this.winConfig = new WindowsConfig();
57-
this.outputDirectory = project.getBuildDir();
57+
this.outputDirectory = project.getBuildDir();
58+
this.packagingJdk = getDefaultToolchain(project);
5859
}
5960

6061
public LinuxConfig linuxConfig(Closure<LinuxConfig> closure) {
@@ -80,5 +81,24 @@ public Manifest manifest(Closure<Manifest> closure) {
8081
project.configure(manifest, closure);
8182
return manifest;
8283
}
84+
85+
/**
86+
* Returns project's default toolchain
87+
* @param project Gradle project
88+
* @return Default toolchain
89+
*/
90+
public File getDefaultToolchain(Project project) {
91+
// Default toolchain
92+
JavaToolchainSpec toolchain = project.getExtensions().getByType(JavaPluginExtension.class).getToolchain();
93+
94+
// acquire a provider that returns the launcher for the toolchain
95+
JavaToolchainService service = project.getExtensions().getByType(JavaToolchainService.class);
96+
Provider<JavaLauncher> defaultLauncher = service.launcherFor(toolchain).orElse(Providers.notDefined());
97+
98+
if (defaultLauncher.isPresent()) {
99+
return defaultLauncher.get().getMetadata().getInstallationPath().getAsFile();
100+
}
101+
return new File(System.getProperty("java.home")); // Use java.home as fallback
102+
}
83103

84104
}

src/main/java/io/github/fvarrui/javapackager/gradle/PackageTask.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
import java.util.List;
88
import java.util.Map;
99

10-
import org.gradle.api.Project;
11-
import org.gradle.api.internal.provider.Providers;
12-
import org.gradle.api.plugins.JavaPluginExtension;
13-
import org.gradle.api.provider.Property;
14-
import org.gradle.api.provider.Provider;
15-
import org.gradle.api.tasks.*;
10+
import org.gradle.api.tasks.Input;
11+
import org.gradle.api.tasks.InputDirectory;
12+
import org.gradle.api.tasks.InputFile;
13+
import org.gradle.api.tasks.Optional;
14+
import org.gradle.api.tasks.OutputDirectory;
1615

1716
import groovy.lang.Closure;
1817
import io.github.fvarrui.javapackager.model.LinuxConfig;
@@ -22,9 +21,6 @@
2221
import io.github.fvarrui.javapackager.model.WindowsConfig;
2322
import io.github.fvarrui.javapackager.packagers.Packager;
2423
import io.github.fvarrui.javapackager.packagers.PackagerFactory;
25-
import org.gradle.jvm.toolchain.JavaLauncher;
26-
import org.gradle.jvm.toolchain.JavaToolchainService;
27-
import org.gradle.jvm.toolchain.JavaToolchainSpec;
2824

2925
/**
3026
* Packaging task fro Gradle
@@ -549,7 +545,7 @@ protected Packager createPackager() throws Exception {
549545
.additionalResources(defaultIfNull(additionalResources, extension.getAdditionalResources()))
550546
.administratorRequired(defaultIfNull(administratorRequired, extension.getAdministratorRequired()))
551547
.version(defaultIfNull(version, extension.getVersion(), getProject().getVersion().toString()))
552-
.packagingJdk(defaultIfNull(packagingJdk, getDefaultToolchain(getProject())))
548+
.packagingJdk(defaultIfNull(packagingJdk, extension.getPackagingJdk()))
553549
.assetsDir(defaultIfNull(assetsDir, extension.getAssetsDir()))
554550
.bundleJre(defaultIfNull(bundleJre, extension.getBundleJre()))
555551
.copyDependencies(defaultIfNull(copyDependencies, extension.getCopyDependencies()))
@@ -585,19 +581,5 @@ protected Packager createPackager() throws Exception {
585581
.winConfig(defaultIfNull(winConfig, extension.getWinConfig()));
586582

587583
}
588-
589-
private File getDefaultToolchain(Project project) {
590-
// Default toolchain
591-
JavaToolchainSpec toolchain = project.getExtensions().getByType(JavaPluginExtension.class).getToolchain();
592-
593-
// acquire a provider that returns the launcher for the toolchain
594-
JavaToolchainService service = project.getExtensions().getByType(JavaToolchainService.class);
595-
Provider<JavaLauncher> defaultLauncher = service.launcherFor(toolchain).orElse(Providers.notDefined());
596-
597-
if (defaultLauncher.isPresent()) {
598-
return defaultLauncher.get().getMetadata().getInstallationPath().getAsFile();
599-
}
600-
return new File(System.getProperty("java.home")); // Use java.home as fallback
601-
}
602584

603585
}

0 commit comments

Comments
 (0)