changed bundles activation order

This commit is contained in:
2021-10-30 20:01:54 +02:00
parent 64ca4940c6
commit a0dbae6a6e
10 changed files with 46 additions and 41 deletions

View File

@@ -1,6 +1,9 @@
package net.woggioni.gradle.dependency.export; package net.woggioni.gradle.dependency.export;
import lombok.*; import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.gradle.api.DefaultTask; import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException; import org.gradle.api.GradleException;
import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.Configuration;
@@ -8,7 +11,11 @@ import org.gradle.api.artifacts.ResolvedArtifact;
import org.gradle.api.artifacts.component.ComponentIdentifier; import org.gradle.api.artifacts.component.ComponentIdentifier;
import org.gradle.api.artifacts.component.ModuleComponentIdentifier; import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
import org.gradle.api.artifacts.component.ProjectComponentIdentifier; import org.gradle.api.artifacts.component.ProjectComponentIdentifier;
import org.gradle.api.artifacts.result.*; import org.gradle.api.artifacts.result.DependencyResult;
import org.gradle.api.artifacts.result.ResolutionResult;
import org.gradle.api.artifacts.result.ResolvedComponentResult;
import org.gradle.api.artifacts.result.ResolvedDependencyResult;
import org.gradle.api.artifacts.result.UnresolvedDependencyResult;
import org.gradle.api.file.FileCollection; import org.gradle.api.file.FileCollection;
import org.gradle.api.file.RegularFile; import org.gradle.api.file.RegularFile;
import org.gradle.api.file.RegularFileProperty; import org.gradle.api.file.RegularFileProperty;
@@ -29,7 +36,15 @@ import java.io.File;
import java.io.Writer; import java.io.Writer;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.*; import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collector; import java.util.stream.Collector;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;

View File

@@ -1,7 +1,6 @@
package net.woggioni.gradle.dependency.export; package net.woggioni.gradle.dependency.export;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.gradle.api.DefaultTask; import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException; import org.gradle.api.GradleException;

View File

@@ -1,11 +1,5 @@
package net.woggioni.gradle.jlink; package net.woggioni.gradle.jlink;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.SneakyThrows; import lombok.SneakyThrows;
@@ -32,6 +26,13 @@ import org.gradle.jvm.toolchain.JavaInstallationMetadata;
import org.gradle.jvm.toolchain.JavaLauncher; import org.gradle.jvm.toolchain.JavaLauncher;
import org.gradle.jvm.toolchain.JavaToolchainService; import org.gradle.jvm.toolchain.JavaToolchainService;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class JlinkTask extends DefaultTask { public class JlinkTask extends DefaultTask {

View File

@@ -15,8 +15,8 @@ import java.nio.file.Path
import java.nio.file.Paths import java.nio.file.Paths
import java.util.jar.JarFile import java.util.jar.JarFile
import java.util.stream.Collectors import java.util.stream.Collectors
import java.util.zip.ZipFile
import java.util.stream.Stream import java.util.stream.Stream
import java.util.zip.ZipFile
class JPMSCheckPlugin implements Plugin<Project> { class JPMSCheckPlugin implements Plugin<Project> {

View File

@@ -1,7 +1,6 @@
package net.woggioni.gradle.lombok; package net.woggioni.gradle.lombok;
import lombok.Getter; import lombok.Getter;
import org.gradle.api.file.Directory;
import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.JavaExec;
import org.gradle.api.tasks.OutputDirectory; import org.gradle.api.tasks.OutputDirectory;

View File

@@ -16,10 +16,10 @@ import org.gradle.api.tasks.TaskContainer;
import org.gradle.api.tasks.TaskProvider; import org.gradle.api.tasks.TaskProvider;
import org.gradle.api.tasks.compile.JavaCompile; import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.api.tasks.javadoc.Javadoc; import org.gradle.api.tasks.javadoc.Javadoc;
import org.gradle.jvm.toolchain.JavaToolchainSpec;
import java.io.File; import java.io.File;
import java.util.Map; import java.util.Map;
import org.gradle.jvm.toolchain.JavaToolchainSpec;
public class LombokPlugin implements Plugin<Project> { public class LombokPlugin implements Plugin<Project> {
@Override @Override

View File

@@ -1,13 +1,14 @@
package net.woggioni.gradle.osgi.app; package net.woggioni.gradle.osgi.app;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import javax.annotation.Nonnull;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.gradle.api.resources.ReadableResource; import org.gradle.api.resources.ReadableResource;
import org.gradle.api.resources.ResourceException; import org.gradle.api.resources.ResourceException;
import javax.annotation.Nonnull;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
abstract class EmbeddedResource implements ReadableResource { abstract class EmbeddedResource implements ReadableResource {
private final URL url; private final URL url;

View File

@@ -1,12 +1,10 @@
package net.woggioni.gradle.osgi.app; package net.woggioni.gradle.osgi.app;
import aQute.bnd.osgi.Constants; import aQute.bnd.osgi.Constants;
import groovy.lang.Tuple2;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.gradle.api.DefaultTask; import org.gradle.api.DefaultTask;
import org.gradle.api.tasks.OutputFile; import org.gradle.api.tasks.OutputFile;
import org.gradle.api.tasks.TaskAction; import org.gradle.api.tasks.TaskAction;
import org.osgi.framework.Version;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
@@ -14,8 +12,6 @@ import java.io.FileOutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.jar.Attributes; import java.util.jar.Attributes;
import java.util.jar.JarFile; import java.util.jar.JarFile;
@@ -41,25 +37,20 @@ public class BundleFileTask extends DefaultTask {
@TaskAction @TaskAction
@SneakyThrows @SneakyThrows
public void run() { public void run() {
Map<Tuple2<String, Version>, String> map = new TreeMap<>(); try (BufferedWriter writer =
for(File bundleFile : bundles) { new BufferedWriter(
try(JarFile jarFile = new JarFile(bundleFile)) { new OutputStreamWriter(new FileOutputStream(systemBundleFile)))) {
for (File bundleFile : bundles) {
try (JarFile jarFile = new JarFile(bundleFile)) {
Attributes mainAttributes = jarFile.getManifest().getMainAttributes(); Attributes mainAttributes = jarFile.getManifest().getMainAttributes();
String bundleSymbolicName = mainAttributes.getValue(Constants.BUNDLE_SYMBOLICNAME); String bundleSymbolicName = mainAttributes.getValue(Constants.BUNDLE_SYMBOLICNAME);
String bundleVersion = mainAttributes.getValue(Constants.BUNDLE_VERSION); String bundleVersion = mainAttributes.getValue(Constants.BUNDLE_VERSION);
if(bundleSymbolicName != null && bundleVersion != null) { if (bundleSymbolicName != null && bundleVersion != null) {
Tuple2<String, Version> key = new Tuple2<>( writer.write("bundles/" + bundleFile.getName());
bundleSymbolicName,
Version.parseVersion(bundleVersion));
map.put(key, bundleFile.getName());
}
}
}
try(BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(systemBundleFile)))) {
for(Map.Entry<Tuple2<String, Version>, String> entry : map.entrySet()) {
writer.write("bundles/" + entry.getValue());
writer.newLine(); writer.newLine();
} }
} }
} }
}
}
} }

View File

@@ -1,7 +1,6 @@
package net.woggioni.gradle.osgi.app; package net.woggioni.gradle.osgi.app;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.gradle.api.DefaultTask; import org.gradle.api.DefaultTask;
import org.gradle.api.model.ObjectFactory; import org.gradle.api.model.ObjectFactory;

View File

@@ -35,9 +35,9 @@ public class JavaAgentFileTask extends DefaultTask {
@TaskAction @TaskAction
@SneakyThrows @SneakyThrows
public void run() { public void run() {
try(Writer writer = Files.newBufferedWriter(getOutputFile().toPath())) { try (Writer writer = Files.newBufferedWriter(getOutputFile().toPath())) {
Properties props = new Properties(); Properties props = new Properties();
for(JavaAgent javaAgent : javaAgents.get()) { for (JavaAgent javaAgent : javaAgents.get()) {
props.setProperty(javaAgent.getClassName(), javaAgent.getArgs()); props.setProperty(javaAgent.getClassName(), javaAgent.getArgs());
} }
props.store(writer, null); props.store(writer, null);