< prev index next >
src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/CfgFile.java
Print this page
*** 23,42 ****
--- 23,44 ----
* questions.
*/
package jdk.incubator.jpackage.internal;
import java.io.IOException;
+ import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
import static jdk.incubator.jpackage.internal.StandardBundlerParam.LAUNCHER_DATA;
import static jdk.incubator.jpackage.internal.StandardBundlerParam.APP_NAME;
import static jdk.incubator.jpackage.internal.StandardBundlerParam.JAVA_OPTIONS;
import static jdk.incubator.jpackage.internal.StandardBundlerParam.ARGUMENTS;
+ import static jdk.incubator.jpackage.internal.StandardBundlerParam.VERSION;
/**
* App launcher's config file.
*/
final class CfgFile {
*** 47,56 ****
--- 49,59 ----
CfgFile initFromParams(Map<String, ? super Object> params) {
launcherData = LAUNCHER_DATA.fetchFrom(params);
launcherName = APP_NAME.fetchFrom(params);
javaOptions = JAVA_OPTIONS.fetchFrom(params);
arguments = ARGUMENTS.fetchFrom(params);
+ version = VERSION.fetchFrom(params);
return this;
}
void create(Path appImage) throws IOException {
List<Map.Entry<String, Object>> content = new ArrayList<>();
*** 80,94 ****
appCfgLayout.appDirectory().resolve(value).toString()));
}
ApplicationLayout appImagelayout = appLayout.resolveAt(appImage);
Path modsDir = appImagelayout.appModsDirectory();
! if (!javaOptions.isEmpty() || Files.isDirectory(modsDir)) {
content.add(Map.entry("[JavaOptions]", SECTION_TAG));
for (var value : javaOptions) {
content.add(Map.entry("java-options", value));
}
content.add(Map.entry("java-options", "--module-path"));
content.add(Map.entry("java-options",
appCfgLayout.appModsDirectory()));
}
--- 83,111 ----
appCfgLayout.appDirectory().resolve(value).toString()));
}
ApplicationLayout appImagelayout = appLayout.resolveAt(appImage);
Path modsDir = appImagelayout.appModsDirectory();
!
content.add(Map.entry("[JavaOptions]", SECTION_TAG));
+
+ // always let app know it's name and version
+ content.add(Map.entry(
+ "java-options", "-Djpackage.app-name=" + launcherName));
+ content.add(Map.entry(
+ "java-options", "-Djpackage.app-version=" + version));
+ content.add(Map.entry(
+ "java-options", "-Djpackage.app-path=" + "$BINDIR"
+ + File.separator + launcherName));
+
+ // add user supplied java options if there are any
for (var value : javaOptions) {
content.add(Map.entry("java-options", value));
}
+
+ // add module path if there is one
+ if (Files.isDirectory(modsDir)) {
content.add(Map.entry("java-options", "--module-path"));
content.add(Map.entry("java-options",
appCfgLayout.appModsDirectory()));
}
*** 124,133 ****
--- 141,151 ----
appCfgLayout.appDirectory().resolve(appCfgLayout.appModsDirectory().getFileName()));
return appCfgLayout;
}
private String launcherName;
+ private String version;
private LauncherData launcherData;
List<String> arguments;
List<String> javaOptions;
private final ApplicationLayout appLayout;
< prev index next >