< prev index next > buildSrc/images/src/main/java/org/openjdk/skara/gradle/images/LinkTask.java
Print this page
import java.util.*;
import java.util.stream.Collectors;
public class LinkTask extends DefaultTask {
private final Property<String> os;
+ private final Property<String> cpu;
private final Property<String> url;
private final Property<Path> toDir;
private final MapProperty<String, String> launchers;
private final ListProperty<String> modules;
private final SetProperty<RegularFile> modulePath;
private final SetProperty<FileSystemLocation> runtimeModules;
@Inject
public LinkTask(ObjectFactory factory) {
os = factory.property(String.class);
+ cpu = factory.property(String.class);
url = factory.property(String.class);
toDir = factory.property(Path.class);
launchers = factory.mapProperty(String.class, String.class);
modules = factory.listProperty(String.class);
modulePath = factory.setProperty(RegularFile.class);
@Input
Property<String> getOS() {
return os;
}
+ @Input
+ Property<String> getCPU() {
+ return cpu;
+ }
+
@Input
Property<String> getUrl() {
return url;
}
}
for (var jar : runtimeModules.get()) {
modularJars.add(jar.getAsFile().toString());
}
! var filename = Path.of(URI.create(url.get()).getPath()).getFileName().toString();
! var dirname = filename.replace(".zip", "").replace(".tar.gz", "");
! var jdk = project.getRootDir().toPath().toAbsolutePath().resolve(".jdk").resolve(dirname);
var dirs = Files.walk(jdk)
.filter(Files::isDirectory)
.filter(p -> p.getFileName().toString().equals("jmods"))
.collect(Collectors.toList());
if (dirs.size() != 1) {
}
for (var jar : runtimeModules.get()) {
modularJars.add(jar.getAsFile().toString());
}
! Path jdk = null;
! if (!url.get().equals("local")) {
! var filename = Path.of(URI.create(url.get()).getPath()).getFileName().toString();
+ var dirname = filename.replace(".zip", "").replace(".tar.gz", "");
+ jdk = project.getRootDir().toPath().toAbsolutePath().resolve(".jdk").resolve(dirname);
+ } else {
+ jdk = Path.of(System.getProperty("java.home"));
+ }
var dirs = Files.walk(jdk)
.filter(Files::isDirectory)
.filter(p -> p.getFileName().toString().equals("jmods"))
.collect(Collectors.toList());
if (dirs.size() != 1) {
}
uniqueModules.addAll(modules.get());
var allModules = new ArrayList<String>(uniqueModules);
Files.createDirectories(toDir.get());
! var dest = toDir.get().resolve(os.get());
if (Files.exists(dest) && Files.isDirectory(dest)) {
clearDirectory(dest);
}
Collections.sort(modulePath);
}
uniqueModules.addAll(modules.get());
var allModules = new ArrayList<String>(uniqueModules);
Files.createDirectories(toDir.get());
! var dest = toDir.get().resolve(os.get() + "-" + cpu.get());
if (Files.exists(dest) && Files.isDirectory(dest)) {
clearDirectory(dest);
}
Collections.sort(modulePath);
"--vm", "server",
"--output", dest.toString());
});
var currentOS = System.getProperty("os.name").toLowerCase().substring(0, 3);
! if (currentOS.equals(os.get().substring(0, 3))) {
var ext = currentOS.startsWith("win") ? ".exe" : "";
var javaLaunchers = Files.walk(dest)
.filter(Files::isExecutable)
.filter(p -> p.getFileName().toString().equals("java" + ext))
.collect(Collectors.toList());
if (javaLaunchers.size() != 1) {
! throw new GradleException("Multiple or no java launchers generated for " + os.get() + " image");
}
var java = javaLaunchers.get(0);
project.exec((spec) -> {
spec.setCommandLine(java, "-Xshare:dump", "-version");
});
"--vm", "server",
"--output", dest.toString());
});
var currentOS = System.getProperty("os.name").toLowerCase().substring(0, 3);
! if (os.get().equals("local") || currentOS.equals(os.get().substring(0, 3))) {
var ext = currentOS.startsWith("win") ? ".exe" : "";
var javaLaunchers = Files.walk(dest)
.filter(Files::isExecutable)
.filter(p -> p.getFileName().toString().equals("java" + ext))
.collect(Collectors.toList());
if (javaLaunchers.size() != 1) {
! throw new GradleException("Multiple or no java launchers generated for " + os.get() + "-" + cpu.get() + " image");
}
var java = javaLaunchers.get(0);
project.exec((spec) -> {
spec.setCommandLine(java, "-Xshare:dump", "-version");
});
< prev index next >