From 024f58c914b43ddf15dd4d19f08bd8be22a6a288 Mon Sep 17 00:00:00 2001 From: goesen Date: Tue, 24 Sep 2024 21:39:48 +0200 Subject: [PATCH 01/24] wip safe stuff --- .../configuration-cache/settings.gradle.kts | 2 + settings.gradle.kts | 2 + .../JavaModuleDependenciesPlugin.java | 10 +- .../JavaModuleVersionsPlugin.java | 2 +- .../dependencies/SharedMappings.java | 2 +- .../internal/utils/ModuleInfo.java | 28 ++-- .../internal/utils/ModuleInfoCache.java | 30 +++- .../internal/utils/ValueSourceModuleInfo.java | 49 +++++++ .../tasks/ModulePathAnalysis.java | 2 +- .../dependencies/unique_modules.properties | 137 +++++++++++++++++- .../test/ModuleInfoParseTest.groovy | 10 +- 11 files changed, 234 insertions(+), 40 deletions(-) create mode 100644 src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java diff --git a/samples/configuration-cache/settings.gradle.kts b/samples/configuration-cache/settings.gradle.kts index 99871c34..ecaa7990 100644 --- a/samples/configuration-cache/settings.gradle.kts +++ b/samples/configuration-cache/settings.gradle.kts @@ -1,7 +1,9 @@ pluginManagement { includeBuild("build-logic") + includeBuild("../..") } dependencyResolutionManagement { + includeBuild("../..") repositories.mavenCentral() } diff --git a/settings.gradle.kts b/settings.gradle.kts index d5b6db58..d013ad48 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -10,6 +10,8 @@ dependencyResolutionManagement { repositories.gradlePluginPortal() } +//includeBuild("samples/configuration-cache") + rootProject.name = "java-module-dependencies" develocity { diff --git a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java index 687a4b39..502a87f6 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java @@ -16,6 +16,7 @@ package org.gradlex.javamodule.dependencies; +import kotlin.Pair; import org.gradle.api.GradleException; import org.gradle.api.NonNullApi; import org.gradle.api.Plugin; @@ -235,8 +236,7 @@ private void setupOrderingCheckTasks(Project project, TaskProvider checkAl t.setDescription("Check order of directives in 'module-info.java' in '" + sourceSet.getName() + "' source set"); ModuleInfo moduleInfo = javaModuleDependencies.getModuleInfoCache().get().get(sourceSet, project.getProviders()); - - t.getModuleInfoPath().convention(moduleInfo.getFilePath().getAbsolutePath()); + t.getModuleInfoPath().convention("module-info.java"); t.getModuleNamePrefix().convention(moduleInfo.moduleNamePrefix(project.getName(), sourceSet.getName(), false)); t.getModuleInfo().convention(moduleInfo); @@ -266,11 +266,11 @@ private void readModuleInfo(ModuleInfo.Directive moduleDirective, SourceSet sour } ModuleInfo moduleInfo = javaModuleDependenciesExtension.getModuleInfoCache().get().get(sourceSet, project.getProviders()); for (String moduleName : moduleInfo.get(moduleDirective)) { - declareDependency(moduleName, moduleInfo.getFilePath(), project, sourceSet, configuration, javaModuleDependenciesExtension); + declareDependency(moduleName, project, sourceSet, configuration, javaModuleDependenciesExtension); } } - private void declareDependency(String moduleName, File moduleInfoFile, Project project, SourceSet sourceSet, Configuration configuration, JavaModuleDependenciesExtension javaModuleDependencies) { + private void declareDependency(String moduleName, Project project, SourceSet sourceSet, Configuration configuration, JavaModuleDependenciesExtension javaModuleDependencies) { if (JDKInfo.MODULES.contains(moduleName)) { // The module is part of the JDK, no dependency required return; @@ -286,7 +286,7 @@ private List collectDepende File sourceSetDir = sourceSet.getJava().getSrcDirs().iterator().next().getParentFile(); File whiteboxModuleInfoFile = new File(sourceSetDir, "java9/module-info.java"); if (whiteboxModuleInfoFile.exists()) { - moduleInfo = new ModuleInfo(project.getProviders().fileContents(project.getLayout().getProjectDirectory().file(whiteboxModuleInfoFile.getAbsolutePath())).getAsText().get(), whiteboxModuleInfoFile); + moduleInfo = new ModuleInfo(project.getProviders().fileContents(project.getLayout().getProjectDirectory().file(whiteboxModuleInfoFile.getAbsolutePath())).getAsText().get()); } } return moduleInfo.get(directive).stream() diff --git a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleVersionsPlugin.java b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleVersionsPlugin.java index 6dc8d929..f0193cb5 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleVersionsPlugin.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleVersionsPlugin.java @@ -132,7 +132,7 @@ private void registerCatalogTask(Project project) { moduleInfoFile = new File(srcDirSet, "java9/module-info.java"); } if (moduleInfoFile.exists()) { - ModuleInfo moduleInfo = new ModuleInfo(project.getProviders().fileContents(project.getLayout().getProjectDirectory().file(moduleInfoFile.getAbsolutePath())).getAsText().get(), moduleInfoFile); + ModuleInfo moduleInfo = new ModuleInfo(project.getProviders().fileContents(project.getLayout().getProjectDirectory().file(moduleInfoFile.getAbsolutePath())).getAsText().get()); t.getEntries().addAll(collectCatalogEntriesFromModuleInfos(javaModuleDependencies, moduleInfo.get(REQUIRES_TRANSITIVE))); t.getEntries().addAll(collectCatalogEntriesFromModuleInfos(javaModuleDependencies, moduleInfo.get(REQUIRES))); t.getEntries().addAll(collectCatalogEntriesFromModuleInfos(javaModuleDependencies, moduleInfo.get(REQUIRES_STATIC_TRANSITIVE))); diff --git a/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java b/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java index c0be3e1f..d0284e87 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java @@ -29,7 +29,7 @@ static Map loadModuleNameToGAProperties() { @Override public synchronized Object put(Object key, Object value) { if (get(key) != null) { - throw new IllegalArgumentException(key + " already present."); + // throw new IllegalArgumentException(key + " already present."); } return super.put(key, value); } diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java index 5a3f6b1a..8be5026b 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java @@ -17,12 +17,8 @@ package org.gradlex.javamodule.dependencies.internal.utils; import javax.annotation.Nullable; -import java.io.File; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; import static org.gradlex.javamodule.dependencies.internal.utils.ModuleNamingUtil.sourceSetToModuleName; @@ -43,7 +39,7 @@ public String literal() { public static final String RUNTIME_KEYWORD = "/*runtime*/"; - public static final ModuleInfo EMPTY = new ModuleInfo("", new File("")); + public static final ModuleInfo EMPTY = new ModuleInfo(""); private String moduleName = ""; private final List requires = new ArrayList<>(); @@ -52,10 +48,8 @@ public String literal() { private final List requiresStaticTransitive = new ArrayList<>(); private final List requiresRuntime = new ArrayList<>(); - private final File filePath; - public ModuleInfo(String moduleInfoFileContent, File filePath) { - this.filePath = filePath; + public ModuleInfo(String moduleInfoFileContent) { boolean insideComment = false; for(String line: moduleInfoFileContent.split("\n")) { insideComment = parse(line, insideComment); @@ -108,9 +102,6 @@ public String moduleNamePrefix(String projectName, String sourceSetName, boolean return null; } - public File getFilePath() { - return filePath; - } /** * @return true, if we are inside a multi-line comment after this line @@ -150,4 +141,17 @@ private boolean parse(String moduleLine, boolean insideComment) { } return moduleLine.lastIndexOf("/*") > moduleLine.lastIndexOf("*/"); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ModuleInfo that = (ModuleInfo) o; + return Objects.equals(moduleName, that.moduleName) && Objects.equals(requires, that.requires) && Objects.equals(requiresTransitive, that.requiresTransitive) && Objects.equals(requiresStatic, that.requiresStatic) && Objects.equals(requiresStaticTransitive, that.requiresStaticTransitive) && Objects.equals(requiresRuntime, that.requiresRuntime); + } + + @Override + public int hashCode() { + return Objects.hash(moduleName, requires, requiresTransitive, requiresStatic, requiresStaticTransitive, requiresRuntime); + } } diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java index fc689b19..9c00f0cf 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java @@ -16,11 +16,14 @@ package org.gradlex.javamodule.dependencies.internal.utils; +import org.gradle.api.Action; +import org.gradle.api.file.ConfigurableFileCollection; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.logging.Logger; import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.Provider; import org.gradle.api.provider.ProviderFactory; +import org.gradle.api.provider.ValueSourceSpec; import org.gradle.api.tasks.SourceSet; import org.slf4j.LoggerFactory; @@ -28,8 +31,7 @@ import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.HashMap; -import java.util.Map; +import java.util.*; import static org.gradlex.javamodule.dependencies.internal.utils.ModuleNamingUtil.sourceSetToCapabilitySuffix; @@ -102,15 +104,29 @@ public String getCapability(String moduleName) { } private boolean maybePutModuleInfo(File folder, ProviderFactory providers) { - RegularFileProperty moduleInfoFile = getObjects().fileProperty(); - moduleInfoFile.set(new File(folder, "module-info.java")); - Provider moduleInfoContent = providers.fileContents(moduleInfoFile).getAsText(); - if (moduleInfoContent.isPresent()) { + Provider moduleInfoProvider = provideModuleInfo(folder, providers); + if (moduleInfoProvider.isPresent()) { if (!moduleInfo.containsKey(folder)) { - moduleInfo.put(folder, new ModuleInfo(moduleInfoContent.get(), moduleInfoFile.get().getAsFile())); + moduleInfo.put(folder, moduleInfoProvider.get() ); } return true; } return false; } + + private Provider provideModuleInfo(File folder, ProviderFactory providers) { + return providers.of(ValueSourceModuleInfo.class, new Action>() { + @Override + public void execute(ValueSourceSpec moduleInfoSourcePValueSourceSpec) { + moduleInfoSourcePValueSourceSpec.parameters(new Action() { + @Override + public void execute(ValueSourceModuleInfo.ModuleInfoSourceP moduleInfoSourceP) { + ConfigurableFileCollection from = getObjects().fileCollection().from(folder); + moduleInfoSourceP.getLocations().set(from); + } + }); + + } + }); + } } diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java new file mode 100644 index 00000000..177bac63 --- /dev/null +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java @@ -0,0 +1,49 @@ +package org.gradlex.javamodule.dependencies.internal.utils; + +import org.gradle.api.file.FileCollection; +import org.gradle.api.file.RegularFileProperty; +import org.gradle.api.model.ObjectFactory; +import org.gradle.api.provider.*; +import org.jetbrains.annotations.Nullable; + +import javax.inject.Inject; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.Scanner; + +public abstract class ValueSourceModuleInfo implements ValueSource { + + + interface ModuleInfoSourceP extends ValueSourceParameters { + + Property getLocations(); + } + + + @Override + public @Nullable ModuleInfo obtain() { + ModuleInfoSourceP parameters = getParameters(); + for (File fileSystemLocation : parameters.getLocations().get()) { + File file = new File(fileSystemLocation, "module-info.java"); + if (file.isFile()) { + try { + Scanner scan = new Scanner(file); + try { + scan.useDelimiter("\\Z"); + String content = scan.next(); + return new ModuleInfo(content); + } finally { + scan.close(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + + } + return null; + } +} diff --git a/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModulePathAnalysis.java b/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModulePathAnalysis.java index bed5a2b0..19b434a1 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModulePathAnalysis.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModulePathAnalysis.java @@ -75,7 +75,7 @@ public void report() throws IOException { if (file.exists()) { try(Stream lines = Files.lines(file.toPath())) { String fileContent = lines.collect(Collectors.joining("\n")); - ownModuleNamesPrefix = new ModuleInfo(fileContent, file).moduleNamePrefix(projectName, main.getName(), false); + ownModuleNamesPrefix = new ModuleInfo(fileContent).moduleNamePrefix(projectName, main.getName(), false); } break; } diff --git a/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties b/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties index 345e67a0..853ed211 100644 --- a/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties +++ b/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties @@ -250,7 +250,7 @@ cloud.piranha.http.undertow=cloud.piranha.http:piranha-http-undertow cloud.piranha.http.virtual=cloud.piranha.http:piranha-http-virtual cloud.piranha.http.webapp=cloud.piranha.http:piranha-http-webapp cloud.piranha.maven.plugins.micro=cloud.piranha.maven.plugins:piranha-micro-maven-plugin -cloud.piranha.maven.plugins.piranha=cloud.piranha.maven.plugins:piranha-maven-plugin +cloud.piranha.maven.plugins.piranha=cloud.piranha.maven:piranha-maven-plugin cloud.piranha.micro=cloud.piranha:piranha-micro cloud.piranha.micro.builder=cloud.piranha.micro:piranha-micro-builder cloud.piranha.micro.core=cloud.piranha.micro:piranha-micro-core @@ -487,6 +487,11 @@ com.apptasticsoftware.mic=com.apptasticsoftware:mic com.apptasticsoftware.repurchase=com.apptasticsoftware:repurchase com.apptasticsoftware.rssreader=com.apptasticsoftware:rssreader com.apptasticsoftware.tickersymbol=com.apptasticsoftware:tickersymbol +com.arjenzhou.kit.base=com.arjenzhou:kit-base +com.arjenzhou.kit.fsm=com.arjenzhou:kit-statemachine +com.arjenzhou.kit.http=com.arjenzhou:kit-http +com.arjenzhou.kit.lazy=com.arjenzhou:kit-lazy +com.arjenzhou.kit.scheduler=com.arjenzhou:kit-scheduler com.asprise.imaging.scan=com.asprise.imaging:java-scanner-access-twain com.athaydes.keepup.core=com.athaydes.keepup:keepup-core com.athaydes.logfx=com.athaydes.logfx:logfx @@ -496,6 +501,7 @@ com.azure.ai.contentsafety=com.azure:azure-ai-contentsafety com.azure.ai.documentintelligence=com.azure:azure-ai-documentintelligence com.azure.ai.documenttranslator=com.azure:azure-ai-documenttranslator com.azure.ai.formrecognizer=com.azure:azure-ai-formrecognizer +com.azure.ai.inference=com.azure:azure-ai-inference com.azure.ai.metricsadvisor=com.azure:azure-ai-metricsadvisor com.azure.ai.openai=com.azure:azure-ai-openai com.azure.ai.openai.assistants=com.azure:azure-ai-openai-assistants @@ -763,6 +769,7 @@ com.azure.resourcemanager.recoveryservices=com.azure.resourcemanager:azure-resou com.azure.resourcemanager.recoveryservicesbackup=com.azure.resourcemanager:azure-resourcemanager-recoveryservicesbackup com.azure.resourcemanager.recoveryservicesdatareplication=com.azure.resourcemanager:azure-resourcemanager-recoveryservicesdatareplication com.azure.resourcemanager.recoveryservicessiterecovery=com.azure.resourcemanager:azure-resourcemanager-recoveryservicessiterecovery +com.azure.resourcemanager.redhatopenshift=com.azure.resourcemanager:azure-resourcemanager-redhatopenshift com.azure.resourcemanager.redis=com.azure.resourcemanager:azure-resourcemanager-redis com.azure.resourcemanager.redisenterprise=com.azure.resourcemanager:azure-resourcemanager-redisenterprise com.azure.resourcemanager.relay=com.azure.resourcemanager:azure-resourcemanager-relay @@ -922,6 +929,8 @@ com.distrimind.bouncycastle.pkix=com.distrimind.bouncycastle:pkix com.distrimind.bouncycastle.provider=com.distrimind.bouncycastle:prov com.distrimind.bouncycastle.util=com.distrimind.bouncycastle:util com.distrimind.ood=com.distrimind.ood:OOD +com.distrimind.upnp_igd=com.distrimind.upnp_igd:UPnPIGD-Core +com.distrimind.upnp_igd.android=com.distrimind.upnp_igd.android:UPnPIGD-Android com.distrimind.util=com.distrimind.util:Utils com.dlsc.formsfx=com.dlsc.formsfx:formsfx-core com.dlsc.formsfx.demo=com.dlsc.formsfx:formsfx-demo @@ -1262,6 +1271,11 @@ com.github.robtimus.validation.year=com.github.robtimus:year-validation com.github.robtimus.validation.yearmonth=com.github.robtimus:year-month-validation com.github.romanqed.jconv=com.github.romanqed:jconv com.github.romanqed.jeflect=com.github.romanqed:jeflect +com.github.romanqed.jeflect.field=com.github.romanqed:jeflect-field +com.github.romanqed.jeflect.lambda=com.github.romanqed:jeflect-lambda +com.github.romanqed.jeflect.loader=com.github.romanqed:jeflect-loader +com.github.romanqed.jeflect.meta=com.github.romanqed:jeflect-meta +com.github.romanqed.jeflect.transform=com.github.romanqed:jeflect-transform com.github.romanqed.jfunc=com.github.romanqed:jfunc com.github.romanqed.jsm=com.github.romanqed:jsm com.github.romanqed.jtype=com.github.romanqed:jtype @@ -1425,7 +1439,7 @@ com.headius.backport9=com.headius:backport9 com.headius.invokebinder=com.headius:invokebinder com.headius.modulator=com.headius:modulator com.headius.options=com.headius:options -com.hedera.evm.impl=com.hedera.evm:hedera-evm +com.hedera.evm=com.hedera.evm:hedera-evm com.hedera.fullstack.base.api=com.hedera.fullstack:fullstack-base-api com.hedera.fullstack.helm.client=com.hedera.fullstack:fullstack-helm-client com.hedera.fullstack.junit.support=com.hedera.fullstack:fullstack-junit-support @@ -1803,6 +1817,7 @@ com.io7m.jwheatsheaf.oxygen=com.io7m.jwheatsheaf:com.io7m.jwheatsheaf.oxygen com.io7m.jwheatsheaf.ui=com.io7m.jwheatsheaf:com.io7m.jwheatsheaf.ui com.io7m.jxe.core=com.io7m.jxe:com.io7m.jxe.core com.io7m.jxe.documentation=com.io7m.jxe:com.io7m.jxe.documentation +com.io7m.jxe.tests=com.io7m.jxe:com.io7m.jxe.tests com.io7m.jxtrand.api=com.io7m.jxtrand:com.io7m.jxtrand.api com.io7m.jxtrand.compiler.api=com.io7m.jxtrand:com.io7m.jxtrand.compiler.api com.io7m.jxtrand.compiler.basic=com.io7m.jxtrand:com.io7m.jxtrand.compiler.basic @@ -2265,7 +2280,7 @@ com.nextbreakpoint.nextfractal.contextfree=com.nextbreakpoint:com.nextbreakpoint com.nextbreakpoint.nextfractal.core=com.nextbreakpoint:com.nextbreakpoint.nextfractal.core com.nextbreakpoint.nextfractal.mandelbrot=com.nextbreakpoint:com.nextbreakpoint.nextfractal.mandelbrot com.nextbreakpoint.nextfractal.runtime=com.nextbreakpoint:com.nextbreakpoint.nextfractal.runtime -com.nimbusds.jose.jwt=com.nimbusds:c2id-server-jwkset +com.nimbusds.jose.jwt=com.nimbusds:nimbus-jose-jwt com.ning.compress.lzf=com.ning:compress-lzf com.nulabinc.zxcvbn=com.nulab-inc:zxcvbn com.okta.cli=com.okta.cli:okta-cli @@ -2531,6 +2546,8 @@ com.swardana.materialiconfx=com.swardana:materialiconfx com.swardana.metroiconfx=com.swardana:metroiconfx com.swardana.midnight.core=com.swardana.midnight:midnight-core com.swardana.oofx=com.swardana:oofx +com.swardana.oombx=com.swardana:oombx +com.swardana.oomsg=com.swardana:oomsg com.swardana.wisteria=com.swardana:wisteria com.swirlds.base=com.swirlds:swirlds-base com.swirlds.cli=com.swirlds:swirlds-cli @@ -2659,6 +2676,7 @@ com.yelstream.topp.furnace.vertx.addressing=com.yelstream.topp.furnace:topp-furn com.yelstream.topp.furnace.vertx.core=com.yelstream.topp.furnace:topp-furnace-vertx-core com.yelstream.topp.furnace.vertx.health=com.yelstream.topp.furnace:topp-furnace-vertx-health com.yelstream.topp.furnace.vertx.lifecycle=com.yelstream.topp.furnace:topp-furnace-vertx-lifecycle +com.yelstream.topp.standard.annotator=com.yelstream.topp.standard:topp-standard-annotator com.yelstream.topp.standard.core=com.yelstream.topp.standard:topp-standard-core com.yelstream.topp.standard.health.serialization=com.yelstream.topp.standard:topp-standard-health-serialization com.yelstream.topp.standard.log.assistance.slf4j=com.yelstream.topp.standard:topp-standard-log-assist-slf4j @@ -2843,8 +2861,10 @@ dev.kske.undoredo.javafx=dev.kske:undo-redo-javafx dev.lukebemish.opensesame.core=dev.lukebemish.opensesame:opensesame-core dev.lukebemish.opensesame.natives=dev.lukebemish.opensesame:opensesame-natives dev.lukebemish.opensesame.runtime=dev.lukebemish.opensesame:opensesame-runtime +dev.mccue.atom=dev.mccue:atom dev.mccue.docopt=dev.mccue:docopt dev.mccue.feather=dev.mccue:feather +dev.mccue.flake=dev.mccue:flake dev.mccue.forever=dev.mccue:forever dev.mccue.guava=dev.mccue:guava dev.mccue.guava.base=dev.mccue:guava-base @@ -2899,6 +2919,21 @@ dev.mccue.purl=dev.mccue:purl dev.mccue.resolve=dev.mccue:resolve dev.mccue.resolve.cli=dev.mccue:jresolve-cli dev.mccue.search=dev.mccue:search +dev.mccue.tools=dev.mccue:tools +dev.mccue.tools.googlejavaformat=dev.mccue:tools-googlejavaformat +dev.mccue.tools.jar=dev.mccue:tools-jar +dev.mccue.tools.java=dev.mccue:tools-java +dev.mccue.tools.javac=dev.mccue:tools-javac +dev.mccue.tools.javadoc=dev.mccue:tools-javadoc +dev.mccue.tools.javap=dev.mccue:tools-javap +dev.mccue.tools.jdk=dev.mccue:tools-jdk +dev.mccue.tools.jlink=dev.mccue:tools-jlink +dev.mccue.tools.jmod=dev.mccue:tools-jmod +dev.mccue.tools.jpackage=dev.mccue:tools-jpackage +dev.mccue.tools.jresolve=dev.mccue:tools-jresolve +dev.mccue.tools.jstage=dev.mccue:tools-jstage +dev.mccue.tools.junit=dev.mccue:tools-junit +dev.mccue.tools.pmd=dev.mccue:tools-pmd dev.mccue.tritonus.share=dev.mccue:tritonus-share dev.mccue.urlparameters=dev.mccue:urlparameters dev.mccue.vorbisspi=dev.mccue:vorbisspi @@ -2915,6 +2950,11 @@ dev.peterrhodes.optionpricing=dev.peterrhodes.optionpricing:option-pricing dev.reformator.loomoroutines.bypassjpms=dev.reformator.loomoroutines:loomoroutines-bypassjpms dev.reformator.loomoroutines.common=dev.reformator.loomoroutines:loomoroutines-common dev.reformator.loomoroutines.dispatcher=dev.reformator.loomoroutines:loomoroutines-dispatcher +dev.reformator.stacktracedecoroutinator.common=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-common +dev.reformator.stacktracedecoroutinator.generator=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-generator +dev.reformator.stacktracedecoroutinator.jvm=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-jvm +dev.reformator.stacktracedecoroutinator.jvmagentcommon=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-jvm-agent-common +dev.reformator.stacktracedecoroutinator.provider=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-provider dev.secondsun.javaisoengine=dev.secondsun:java-isoengine dev.secondsun.retro.util=dev.secondsun:retro-common dev.secondsun.tm4e.core=dev.secondsun:org.eclipse.tm4e.core @@ -2941,6 +2981,7 @@ es.iti.wakamiti.groovy=es.iti.wakamiti:groovy-wakamiti-plugin es.iti.wakamiti.io=es.iti.wakamiti:io-wakamiti-plugin es.iti.wakamiti.launcher=es.iti.wakamiti:wakamiti-launcher es.iti.wakamiti.lsp=es.iti.wakamiti:wakamiti-lsp +es.iti.wakamiti.plugins.jmeter=es.iti.wakamiti:jmeter-wakamiti-plugin es.iti.wakamiti.report.cucumber=es.iti.wakamiti:cucumber-exporter-wakamiti-plugin es.iti.wakamiti.report.html=es.iti.wakamiti:html-report-wakamiti-plugin es.iti.wakamiti.rest=es.iti.wakamiti:rest-wakamiti-plugin @@ -3110,6 +3151,7 @@ io.avaje.http.javalin.generator=io.avaje:avaje-http-javalin-generator io.avaje.http.jex.generator=io.avaje:avaje-http-jex-generator io.avaje.http.nima.generator=io.avaje:avaje-http-helidon-generator io.avaje.http.plugin=io.avaje:avaje-http-inject-plugin +io.avaje.http.sigma.generator=io.avaje:avaje-http-sigma-generator io.avaje.inject=io.avaje:avaje-inject io.avaje.inject.aop=io.avaje:avaje-inject-aop io.avaje.inject.events=io.avaje:avaje-inject-events @@ -3144,6 +3186,7 @@ io.avaje.prism=io.avaje:avaje-prisms io.avaje.prism.core=io.avaje:avaje-prism-core io.avaje.recordbuilder=io.avaje:avaje-record-builder io.avaje.recordbuilder.core=io.avaje:avaje-record-builder-core +io.avaje.sigma=io.avaje:avaje-sigma io.avaje.spi=io.avaje:avaje-spi-service io.avaje.spi.core=io.avaje:avaje-spi-core io.avaje.validation=io.avaje:avaje-validator @@ -3247,7 +3290,7 @@ io.github.classgraph=io.github.classgraph:classgraph io.github.coffeelibs.tinyoauth2client=io.github.coffeelibs:tiny-oauth2-client io.github.danthe1st.json_compile=io.github.danthe1st:compile-time-json-parser io.github.danygold.fx.moshi=io.github.danygold:fx-moshi -io.github.dmlloyd.classfile=io.github.dmlloyd:jdk-classfile-preview +io.github.dmlloyd.classfile=io.github.dmlloyd:jdk-classfile-backport io.github.dsheirer.rrapi=io.github.dsheirer:radio-reference-api io.github.easytuples=io.github.easytuples:easy-tuples io.github.ericmedvet.jgea.core=io.github.ericmedvet:jgea.core @@ -3256,6 +3299,7 @@ io.github.ericmedvet.jgea.problem=io.github.ericmedvet:jgea.problem io.github.ericmedvet.jgea.sample=io.github.ericmedvet:jgea.sample io.github.ericmedvet.jgea.telegram=io.github.ericmedvet:jgea.telegram io.github.ericmedvet.jgea.tui=io.github.ericmedvet:jgea.tui +io.github.ericmedvet.jnb.buildable=io.github.ericmedvet:jnb.buildable io.github.ericmedvet.jnb.core=io.github.ericmedvet:jnb.core io.github.ericmedvet.jnb.datastructure=io.github.ericmedvet:jnb.datastructure io.github.ericmedvet.jnb.sample=io.github.ericmedvet:jnb.sample @@ -3992,8 +4036,12 @@ io.jooby=io.jooby:jooby io.jooby.apt=io.jooby:jooby-apt io.jooby.avaje.inject=io.jooby:jooby-avaje-inject io.jooby.avaje.jsonb=io.jooby:jooby-avaje-jsonb +io.jooby.avaje.validator=io.jooby:jooby-avaje-validator +io.jooby.awssdkv2=io.jooby:jooby-awssdk-v2 io.jooby.caffeine=io.jooby:jooby-caffeine +io.jooby.camel=io.jooby:jooby-camel io.jooby.conscrypt=io.jooby:jooby-conscrypt +io.jooby.dbscheduler=io.jooby:jooby-db-scheduler io.jooby.ebean=io.jooby:jooby-ebean io.jooby.flyway=io.jooby:jooby-flyway io.jooby.freemarker=io.jooby:jooby-freemarker @@ -4003,6 +4051,7 @@ io.jooby.gson=io.jooby:jooby-gson io.jooby.guice=io.jooby:jooby-guice io.jooby.handlebars=io.jooby:jooby-handlebars io.jooby.hibernate=io.jooby:jooby-hibernate +io.jooby.hibernate.validator=io.jooby:jooby-hibernate-validator io.jooby.hikari=io.jooby:jooby-hikari io.jooby.jackson=io.jooby:jooby-jackson io.jooby.jdbi=io.jooby:jooby-jdbi @@ -4037,6 +4086,7 @@ io.jstach.opt.spring.webflux.example=io.jstach:jstachio-spring-webflux-example io.jstach.opt.spring.webmvc=io.jstach:jstachio-spring-webmvc io.jstach.rainbowgum=io.jstach.rainbowgum:rainbowgum-core io.jstach.rainbowgum.annotation=io.jstach.rainbowgum:rainbowgum-annotation +io.jstach.rainbowgum.apt=io.jstach.rainbowgum:rainbowgum-apt io.jstach.rainbowgum.avaje=io.jstach.rainbowgum:rainbowgum-avaje-config io.jstach.rainbowgum.bundle=io.jstach.rainbowgum:rainbowgum io.jstach.rainbowgum.disruptor=io.jstach.rainbowgum:rainbowgum-disruptor @@ -4046,9 +4096,13 @@ io.jstach.rainbowgum.json=io.jstach.rainbowgum:rainbowgum-json io.jstach.rainbowgum.pattern=io.jstach.rainbowgum:rainbowgum-pattern io.jstach.rainbowgum.rabbitmq=io.jstach.rainbowgum:rainbowgum-rabbitmq io.jstach.rainbowgum.slf4j=io.jstach.rainbowgum:rainbowgum-slf4j +io.jstach.rainbowgum.spring.boot=io.jstach.rainbowgum:rainbowgum-spring-boot +io.jstach.rainbowgum.spring.boot.starter=io.jstach.rainbowgum:rainbowgum-spring-boot-starter io.jstach.rainbowgum.systemlogger=io.jstach.rainbowgum:rainbowgum-systemlogger +io.jstach.rainbowgum.tomcat=io.jstach.rainbowgum:rainbowgum-tomcat io.kodokojo.property.configurer=io.kodokojo:property-configurer io.kojan.javadeptools.rpm=io.kojan:java-deptools-native +io.leangen.geantyref=io.leangen.geantyref:geantyref io.lindstrom.mpd=io.lindstrom:mpd-parser io.litterat.pep=io.litterat:litterat-pep io.matthewnelson.encoding.base16=io.matthewnelson.encoding:base16-jvm @@ -4088,6 +4142,22 @@ io.mokamint.plotter=io.mokamint:io-mokamint-plotter io.mokamint.plotter.api=io.mokamint:io-mokamint-plotter-api io.mokamint.plotter.cli=io.mokamint:io-mokamint-plotter-cli io.nayuki.qrcodegen=io.nayuki:qrcodegen +io.netty.codec.compression=io.netty:netty-codec-compression +io.netty.codec.marshalling=io.netty:netty-codec-marshalling +io.netty.codec.protobuf=io.netty:netty-codec-protobuf +io.netty.codec.redis=io.netty:netty-codec-redis +io.netty.codec.smtp=io.netty:netty-codec-smtp +io.netty.handler.ssl.ocsp=io.netty:netty-handler-ssl-ocsp +io.netty.internal.tcnative=io.netty:netty-tcnative-boringssl-static +io.netty.resolver.dns.classes.macos=io.netty:netty-resolver-dns-classes-macos +io.netty.resolver.dns.macos.osx.aarch_64=io.netty:netty-resolver-dns-native-macos +io.netty.tcnative.classes.openssl=io.netty:netty-tcnative-classes +io.netty.transport.classes.epoll=io.netty:netty-transport-classes-epoll +io.netty.transport.classes.io_uring=io.netty:netty-transport-classes-io_uring +io.netty.transport.classes.kqueue=io.netty:netty-transport-classes-kqueue +io.netty.transport.io_uring=io.netty:netty-transport-native-io_uring +io.netty.transport.kqueue=io.netty:netty-transport-native-kqueue +io.netty.transport.unix.common=io.netty:netty-transport-native-unix-common io.norberg.rut=io.norberg:rut io.opencmw=io.opencmw:core io.opencmw.client=io.opencmw:client @@ -4117,6 +4187,8 @@ io.smallrye.common.ref=io.smallrye.common:smallrye-common-ref io.smallrye.common.version=io.smallrye.common:smallrye-common-version io.smallrye.common.vertx=io.smallrye.common:smallrye-common-vertx-context io.toolisticon.cute.integrationtest.javanine.regularmodule=io.toolisticon.cute:integration-test-java9-regularModule +io.vertx.docgen=io.vertx:vertx-docgen-api +io.vertx.docgen.processor=io.vertx:vertx-docgen-processor io.vproxy.adaptor.netty=io.vproxy:vproxy-adaptor-netty io.vproxy.adaptor.vertx=io.vproxy:vproxy-adaptor-vertx io.vproxy.base=io.vproxy:commons @@ -4177,6 +4249,7 @@ is.codion.framework.db.http=is.codion:codion-framework-db-http is.codion.framework.db.local=is.codion:codion-framework-db-local is.codion.framework.db.rmi=is.codion:codion-framework-db-rmi is.codion.framework.domain=is.codion:codion-framework-domain +is.codion.framework.domain.db=is.codion:codion-framework-domain-db is.codion.framework.domain.test=is.codion:codion-framework-domain-test is.codion.framework.i18n=is.codion:codion-framework-i18n is.codion.framework.json.db=is.codion:codion-framework-json-db @@ -4369,6 +4442,29 @@ net.dongliu.xhttp.json=net.dongliu:xhttp-json-api net.dongliu.xhttp.json.jackson=net.dongliu:xhttp-json-jackson net.dongliu.xhttp.json.jsonb=net.dongliu:xhttp-json-jsonb net.dontcode.core=net.dontcode:core +net.dreamlu.mica.mqtt.client=net.dreamlu:mica-mqtt-client +net.dreamlu.mica.mqtt.client.jfinal.plugin=net.dreamlu:mica-mqtt-client-jfinal-plugin +net.dreamlu.mica.mqtt.client.solon.plugin=net.dreamlu:mica-mqtt-client-solon-plugin +net.dreamlu.mica.mqtt.client.spring.boot.starter=net.dreamlu:mica-mqtt-client-spring-boot-starter +net.dreamlu.mica.mqtt.codec=net.dreamlu:mica-mqtt-codec +net.dreamlu.mica.mqtt.common=net.dreamlu:mica-mqtt-common +net.dreamlu.mica.mqtt.server=net.dreamlu:mica-mqtt-server +net.dreamlu.mica.mqtt.server.jfinal.plugin=net.dreamlu:mica-mqtt-server-jfinal-plugin +net.dreamlu.mica.mqtt.server.solon.plugin=net.dreamlu:mica-mqtt-server-solon-plugin +net.dreamlu.mica.mqtt.server.spring.boot.starter=net.dreamlu:mica-mqtt-server-spring-boot-starter +net.dreamlu.mica.mqttx.client=net.dreamlu:mica-mqttx-client +net.dreamlu.mica.mqttx.client.jfinal.plugin=net.dreamlu:mica-mqttx-client-jfinal-plugin +net.dreamlu.mica.mqttx.client.solon.plugin=net.dreamlu:mica-mqttx-client-solon-plugin +net.dreamlu.mica.mqttx.client.spring.boot.starter=net.dreamlu:mica-mqttx-client-spring-boot-starter +net.dreamlu.mica.mqttx.codec=net.dreamlu:mica-mqttx-codec +net.dreamlu.mica.mqttx.common=net.dreamlu:mica-mqttx-common +net.dreamlu.mica.mqttx.server=net.dreamlu:mica-mqttx-server +net.dreamlu.mica.mqttx.server.jfinal.plugin=net.dreamlu:mica-mqttx-server-jfinal-plugin +net.dreamlu.mica.mqttx.server.solon.plugin=net.dreamlu:mica-mqttx-server-solon-plugin +net.dreamlu.mica.mqttx.server.spring.boot.starter=net.dreamlu:mica-mqttx-server-spring-boot-starter +net.dreamlu.mica.net.core=net.dreamlu:mica-net-core +net.dreamlu.mica.net.http=net.dreamlu:mica-net-http +net.dreamlu.mica.net.utils=net.dreamlu:mica-net-utils net.e175.klaus.solarpositioning=net.e175.klaus:solarpositioning net.fellbaum.jemoji=net.fellbaum:jemoji net.finmath.gpu=net.finmath:finmath-lib-cuda-extensions @@ -4376,6 +4472,7 @@ net.finmath.lib=net.finmath:finmath-lib net.finmath.opencl=net.finmath:finmath-lib-opencl-extensions net.finmath.plots=net.finmath:finmath-lib-plot-extensions net.frogmouth.chronyjava=net.frogmouth.chronyjava:java-chrny-candm +net.hamnaberg.arities=net.hamnaberg:arities net.javapla.jawn.core=net.javapla.jawn:jawn-core net.jonathangiles.tools.sitebuilder=net.jonathangiles.tools:sitebuilder net.jonathangiles.tools.teenyhttpd=net.jonathangiles.tools:teenyhttpd @@ -4399,7 +4496,9 @@ net.mahdilamb.colormap=net.mahdilamb:colormap net.mahdilamb.dataframe=net.mahdilamb:dataframe net.mahdilamb.util.property=net.mahdilamb:utils-properties net.mahdilamb.utils.tuples=net.mahdilamb:utils-tuples -net.morimekta.tiny.server=net.morimekta.tiny.server:tiny-server +net.morimekta.tiny.http=net.morimekta.tiny:tiny-http +net.morimekta.tiny.logback=net.morimekta.tiny:tiny-logback +net.morimekta.tiny.server=net.morimekta.tiny:tiny-server net.neoforged.bus=net.neoforged:bus net.nlacombe.jsonfeed=net.nlacombe:nl-jsonfeed net.nlacombe.jsonfeed.gson=net.nlacombe:nl-jsonfeed-gson @@ -4642,6 +4741,10 @@ org.apache.commons.rng.examples.jpms.app=org.apache.commons:commons-rng-examples org.apache.commons.rng.examples.jpms.lib=org.apache.commons:commons-rng-examples-jpms-lib org.apache.commons.rng.sampling=org.apache.commons:commons-rng-sampling org.apache.commons.rng.simple=org.apache.commons:commons-rng-simple +org.apache.commons.statistics.descriptive=org.apache.commons:commons-statistics-descriptive +org.apache.commons.statistics.distribution=org.apache.commons:commons-statistics-distribution +org.apache.commons.statistics.inference=org.apache.commons:commons-statistics-inference +org.apache.commons.statistics.ranking=org.apache.commons:commons-statistics-ranking org.apache.commons.text=org.apache.commons:commons-text org.apache.datasketches.memory=org.apache.datasketches:datasketches-memory org.apache.derby.client=org.apache.derby:derbyclient @@ -4738,6 +4841,7 @@ org.apache.logging.log4j.layout.jackson=org.apache.logging.log4j:log4j-layout-ja org.apache.logging.log4j.layout.jackson.xml=org.apache.logging.log4j:log4j-layout-jackson-xml org.apache.logging.log4j.layout.template.json=org.apache.logging.log4j:log4j-layout-template-json org.apache.logging.log4j.layout.template.json.test=org.apache.logging.log4j:log4j-layout-template-json-test +org.apache.logging.log4j.mongodb=org.apache.logging.log4j:log4j-mongodb org.apache.logging.log4j.mongodb4=org.apache.logging.log4j:log4j-mongodb4 org.apache.logging.log4j.plugin.processor=org.apache.logging.log4j:log4j-plugin-processor org.apache.logging.log4j.plugins=org.apache.logging.log4j:log4j-plugins @@ -4800,6 +4904,7 @@ org.apache.sis.storage.geotiff=org.apache.sis.storage:sis-geotiff org.apache.sis.storage.netcdf=org.apache.sis.storage:sis-netcdf org.apache.sis.storage.sql=org.apache.sis.storage:sis-sqlstore org.apache.sis.storage.xml=org.apache.sis.storage:sis-xmlstore +org.apache.sling.commons.threads=org.apache.sling:org.apache.sling.commons.threads org.apache.tomcat.api=org.apache.tomcat:tomcat-api org.apache.tomcat.catalina=org.apache.tomcat:tomcat-catalina org.apache.tomcat.catalina.ha=org.apache.tomcat:tomcat-catalina-ha @@ -4905,6 +5010,7 @@ org.bouncycastle.pkix=org.bouncycastle:bcpkix-jdk18on org.bouncycastle.provider=org.bouncycastle:bcprov-jdk18on org.bouncycastle.tls=org.bouncycastle:bctls-jdk18on org.bouncycastle.util=org.bouncycastle:bcutil-jdk18on +org.bspfsystems.yamlconfiguration=org.bspfsystems:yamlconfiguration org.burningwave=org.burningwave:common org.burningwave.core=org.burningwave:core org.burningwave.json=org.burningwave:json @@ -5103,6 +5209,7 @@ org.commandmosaic.spring.web=org.commandmosaic:commandmosaic-spring-web org.commandmosaic.springboot.autoconfigure=org.commandmosaic:commandmosaic-spring-boot-autoconfigure org.commonmark=org.commonmark:commonmark org.commonmark.ext.autolink=org.commonmark:commonmark-ext-autolink +org.commonmark.ext.footnotes=org.commonmark:commonmark-ext-footnotes org.commonmark.ext.front.matter=org.commonmark:commonmark-ext-yaml-front-matter org.commonmark.ext.gfm.strikethrough=org.commonmark:commonmark-ext-gfm-strikethrough org.commonmark.ext.gfm.tables=org.commonmark:commonmark-ext-gfm-tables @@ -5485,8 +5592,8 @@ org.glavo.png=org.glavo:simple-png org.glavo.png.imageio=org.glavo:simple-png-imageio org.glavo.png.javafx=org.glavo:simple-png-javafx org.graalvm.espresso=org.graalvm.espresso:espresso-language -org.graalvm.espresso.resources.libs=org.graalvm.espresso:espresso-libs-resources-linux-amd64 -org.graalvm.espresso.resources.runtime=org.graalvm.espresso:espresso-runtime-resources-linux-amd64 +org.graalvm.espresso.resources.libs=org.graalvm.espresso:espresso-libs-resources +org.graalvm.espresso.resources.runtime=org.graalvm.espresso:espresso-runtime-resources-jdk21 org.graalvm.js=org.graalvm.js:js-language org.graalvm.js.isolate=org.graalvm.js:js-isolate org.graalvm.js.launcher=org.graalvm.js:js-launcher @@ -5509,6 +5616,7 @@ org.graalvm.nativeimage.pointsto=org.graalvm.nativeimage:pointsto org.graalvm.nativeimage.pointsto.standalone=org.graalvm.nativeimage:standalone-pointsto org.graalvm.polyglot=org.graalvm.polyglot:polyglot org.graalvm.python.embedding=org.graalvm.python:python-embedding +org.graalvm.python.embedding.tools=org.graalvm.python:python-embedding-tools org.graalvm.ruby=org.graalvm.ruby:ruby-language org.graalvm.ruby.annotations=org.graalvm.ruby:ruby-annotations org.graalvm.ruby.resources=org.graalvm.ruby:ruby-resources @@ -5516,7 +5624,9 @@ org.graalvm.ruby.shared=org.graalvm.ruby:ruby-shared org.graalvm.sdk=org.graalvm.sdk:graal-sdk org.graalvm.shadowed.antlr4=org.graalvm.shadowed:antlr4 org.graalvm.shadowed.icu4j=org.graalvm.shadowed:icu4j +org.graalvm.shadowed.jcodings=org.graalvm.shadowed:jcodings org.graalvm.shadowed.jline=org.graalvm.shadowed:jline +org.graalvm.shadowed.joni=org.graalvm.shadowed:joni org.graalvm.shadowed.org.json=org.graalvm.shadowed:json org.graalvm.shadowed.xz=org.graalvm.shadowed:xz org.graalvm.tools.api.lsp=org.graalvm.tools:lsp_api @@ -5921,6 +6031,7 @@ org.nasdanika.models.functionflow.processors.doc=org.nasdanika.models.function-f org.nasdanika.models.functionflow.processors.ecore=org.nasdanika.models.function-flow.processors:ecore org.nasdanika.models.functionflow.processors.targets.java=org.nasdanika.models.function-flow.processors.targets:java org.nasdanika.models.gitlab=org.nasdanika.models.gitlab:model +org.nasdanika.models.gitlab.cli=org.nasdanika.models.gitlab:cli org.nasdanika.models.graph.processors=org.nasdanika.models.graph:processors org.nasdanika.models.java=org.nasdanika.models.java:model org.nasdanika.models.java.cli=org.nasdanika.models.java:cli @@ -5935,7 +6046,8 @@ org.nasdanika.rag.model=org.nasdanika.rag:model org.nasdanika.rag.openai=org.nasdanika.rag:open-ai org.nasdanika.rag.processors=org.nasdanika.rag:processors org.neo4j.cypherdsl.codegen.core=org.neo4j:neo4j-cypher-dsl-codegen-core -org.neo4j.cypherdsl.core=org.neo4j:neo4j-cypher-dsl +org.neo4j.cypherdsl.core=org.neo4j:neo4j-connector-apache-spark_2.13 +org.neo4j.cypherdsl.parser=org.neo4j:neo4j-cypher-dsl-parser org.neo4j.cypherdsl.support.schema_name=org.neo4j:neo4j-cypher-dsl-schema-name-support org.neo4j.driver=org.neo4j.driver:neo4j-java-driver-all org.neo4j.jdbc=org.neo4j:neo4j-jdbc-full-bundle @@ -6117,8 +6229,10 @@ org.praxislive.audio=org.praxislive:praxiscore-audio org.praxislive.audio.code=org.praxislive:praxiscore-audio-code org.praxislive.audio.components=org.praxislive:praxiscore-audio-components org.praxislive.base=org.praxislive:praxiscore-base +org.praxislive.bin=org.praxislive:praxiscore-bin org.praxislive.code=org.praxislive:praxiscore-code org.praxislive.code.ivy=org.praxislive:praxiscore-code-ivy +org.praxislive.code.mima=org.praxislive:praxiscore-code-mima org.praxislive.code.services=org.praxislive:praxiscore-code-services org.praxislive.core=org.praxislive:praxiscore-api org.praxislive.core.code=org.praxislive:praxiscore-core-code @@ -6135,6 +6249,7 @@ org.praxislive.libp5x.core=org.praxislive.libp5x:processing-core org.praxislive.libp5x.lwjgl=org.praxislive.libp5x:processing-lwjgl org.praxislive.midi=org.praxislive:praxiscore-midi org.praxislive.osc=org.praxislive:praxiscore-osc +org.praxislive.project=org.praxislive:praxiscore-project org.praxislive.purl=org.praxislive:praxiscore-purl org.praxislive.script=org.praxislive:praxiscore-script org.praxislive.tinkerforge=org.praxislive:praxiscore-tinkerforge @@ -6345,6 +6460,8 @@ org.seleniumhq.selenium.devtools_v124=org.seleniumhq.selenium:selenium-devtools- org.seleniumhq.selenium.devtools_v125=org.seleniumhq.selenium:selenium-devtools-v125 org.seleniumhq.selenium.devtools_v126=org.seleniumhq.selenium:selenium-devtools-v126 org.seleniumhq.selenium.devtools_v127=org.seleniumhq.selenium:selenium-devtools-v127 +org.seleniumhq.selenium.devtools_v128=org.seleniumhq.selenium:selenium-devtools-v128 +org.seleniumhq.selenium.devtools_v129=org.seleniumhq.selenium:selenium-devtools-v129 org.seleniumhq.selenium.devtools_v84=org.seleniumhq.selenium:selenium-devtools-v84 org.seleniumhq.selenium.devtools_v85=org.seleniumhq.selenium:selenium-devtools-v85 org.seleniumhq.selenium.devtools_v86=org.seleniumhq.selenium:selenium-devtools-v86 @@ -6811,6 +6928,9 @@ tokyo.northside.mdict=tokyo.northside:mdict4j tokyo.northside.pdic4j=tokyo.northside:pdic4j tokyo.northside.stardict4j=tokyo.northside:stardict4j tokyo.northside.trie4j=tokyo.northside:trie4j +tools.aqua.turnkey.cvc5=tools.aqua:cvc5-turnkey +tools.aqua.turnkey.support=tools.aqua:turnkey-support +tools.aqua.turnkey.z3=tools.aqua:z3-turnkey tools.dynamia.actions=tools.dynamia:tools.dynamia.actions tools.dynamia.commons=tools.dynamia:tools.dynamia.commons tools.dynamia.crud=tools.dynamia:tools.dynamia.crud @@ -6837,6 +6957,7 @@ uk.co.caprica.vlcj=uk.co.caprica:vlcj uk.co.caprica.vlcj.filefilters=uk.co.caprica:vlcj-file-filters uk.co.caprica.vlcj.info=uk.co.caprica:vlcj-info uk.co.caprica.vlcj.javafx=uk.co.caprica:vlcj-javafx +uk.co.caprica.vlcj.legacy=uk.co.caprica:vlcj-legacy uk.co.caprica.vlcj.mrls=uk.co.caprica:vlcj-mrls uk.co.caprica.vlcj.natives=uk.co.caprica:vlcj-natives uk.co.caprica.vlcj.osx.stubs=uk.co.caprica:vlcj-osx-stubs diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ModuleInfoParseTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ModuleInfoParseTest.groovy index 437c16a1..f2d35426 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ModuleInfoParseTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ModuleInfoParseTest.groovy @@ -18,7 +18,7 @@ class ModuleInfoParseTest extends Specification { // requires com.bla.blub; requires transitive foo.bar.la; } - ''', new File('')) + ''') expect: moduleInfo.moduleNamePrefix("thing", "main", false) == "some" @@ -35,7 +35,7 @@ class ModuleInfoParseTest extends Specification { module some.thing { // module some.thing.else requires transitive foo.bar.la; } - ''', new File('')) + ''') expect: moduleInfo.moduleNamePrefix("thing", "main", false) == "some" @@ -55,7 +55,7 @@ class ModuleInfoParseTest extends Specification { */ requires static foo.bar.la; } - ''', new File('')) + ''') expect: moduleInfo.get(REQUIRES) == [] @@ -75,7 +75,7 @@ class ModuleInfoParseTest extends Specification { requires only.a.comment */ } - ''', new File('')) + ''') expect: moduleInfo.get(REQUIRES) == ["foo.bar.li"] @@ -91,7 +91,7 @@ class ModuleInfoParseTest extends Specification { module some.thing { requires /*runtime*/ foo.bar.lo; } - ''', new File('')) + ''') expect: moduleInfo.get(REQUIRES) == [] From b1086dd790b791bc7ab4effa5a0a918be9fa3821 Mon Sep 17 00:00:00 2001 From: goesen Date: Tue, 24 Sep 2024 22:08:14 +0200 Subject: [PATCH 02/24] wip safe stuff --- .../JavaModuleDependenciesPlugin.java | 23 +++-------- .../internal/utils/ModuleInfoCache.java | 18 ++++++--- .../internal/utils/ValueSourceModuleInfo.java | 38 ++++++++----------- 3 files changed, 33 insertions(+), 46 deletions(-) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java index 502a87f6..1dc43ae4 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java @@ -16,12 +16,7 @@ package org.gradlex.javamodule.dependencies; -import kotlin.Pair; -import org.gradle.api.GradleException; -import org.gradle.api.NonNullApi; -import org.gradle.api.Plugin; -import org.gradle.api.Project; -import org.gradle.api.Task; +import org.gradle.api.*; import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.artifacts.VersionCatalogsExtension; @@ -41,12 +36,7 @@ import org.gradlex.javamodule.dependencies.internal.dsl.AllDirectivesInternal; import org.gradlex.javamodule.dependencies.internal.dsl.GradleOnlyDirectivesInternal; import org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo; -import org.gradlex.javamodule.dependencies.tasks.BuildFileDependenciesGenerate; -import org.gradlex.javamodule.dependencies.tasks.ModuleDependencyReport; -import org.gradlex.javamodule.dependencies.tasks.ModuleDirectivesOrderingCheck; -import org.gradlex.javamodule.dependencies.tasks.ModuleInfoGenerate; -import org.gradlex.javamodule.dependencies.tasks.ModulePathAnalysis; -import org.gradlex.javamodule.dependencies.tasks.ModuleVersionRecommendation; +import org.gradlex.javamodule.dependencies.tasks.*; import java.io.File; import java.util.HashSet; @@ -57,11 +47,7 @@ import static org.gradle.language.base.plugins.LifecycleBasePlugin.VERIFICATION_GROUP; import static org.gradlex.javamodule.dependencies.JavaModuleDependenciesExtension.JAVA_MODULE_DEPENDENCIES; import static org.gradlex.javamodule.dependencies.internal.utils.DependencyDeclarationsUtil.declaredDependencies; -import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES; -import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_RUNTIME; -import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_STATIC; -import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_STATIC_TRANSITIVE; -import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_TRANSITIVE; +import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.*; import static org.gradlex.javamodule.dependencies.internal.utils.ModuleNamingUtil.sourceSetToModuleName; @SuppressWarnings("unused") @@ -236,7 +222,8 @@ private void setupOrderingCheckTasks(Project project, TaskProvider checkAl t.setDescription("Check order of directives in 'module-info.java' in '" + sourceSet.getName() + "' source set"); ModuleInfo moduleInfo = javaModuleDependencies.getModuleInfoCache().get().get(sourceSet, project.getProviders()); - t.getModuleInfoPath().convention("module-info.java"); + File folder = javaModuleDependencies.getModuleInfoCache().get().getFolder(sourceSet, project.getProviders()); + t.getModuleInfoPath().convention(folder == null ? null : new File(folder, "module-info.java").getAbsolutePath()); t.getModuleNamePrefix().convention(moduleInfo.moduleNamePrefix(project.getName(), sourceSet.getName(), false)); t.getModuleInfo().convention(moduleInfo); diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java index 9c00f0cf..243246dd 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java @@ -17,8 +17,6 @@ package org.gradlex.javamodule.dependencies.internal.utils; import org.gradle.api.Action; -import org.gradle.api.file.ConfigurableFileCollection; -import org.gradle.api.file.RegularFileProperty; import org.gradle.api.logging.Logger; import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.Provider; @@ -31,7 +29,8 @@ import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.*; +import java.util.HashMap; +import java.util.Map; import static org.gradlex.javamodule.dependencies.internal.utils.ModuleNamingUtil.sourceSetToCapabilitySuffix; @@ -71,6 +70,16 @@ public ModuleInfo get(SourceSet sourceSet, ProviderFactory providers) { return ModuleInfo.EMPTY; } + public File getFolder(SourceSet sourceSet, ProviderFactory providers) { + for (File folder : sourceSet.getJava().getSrcDirs()) { + if (maybePutModuleInfo(folder, providers)) { + return folder; + } + } + return null; + } + + /** * @param projectRoot the project that should hold a Java module * @return parsed module-info.java for the given project assuming a standard Java project layout @@ -121,8 +130,7 @@ public void execute(ValueSourceSpec mod moduleInfoSourcePValueSourceSpec.parameters(new Action() { @Override public void execute(ValueSourceModuleInfo.ModuleInfoSourceP moduleInfoSourceP) { - ConfigurableFileCollection from = getObjects().fileCollection().from(folder); - moduleInfoSourceP.getLocations().set(from); + moduleInfoSourceP.getDir().set(folder); } }); diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java index 177bac63..1add01c1 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java @@ -1,16 +1,12 @@ package org.gradlex.javamodule.dependencies.internal.utils; -import org.gradle.api.file.FileCollection; -import org.gradle.api.file.RegularFileProperty; -import org.gradle.api.model.ObjectFactory; -import org.gradle.api.provider.*; +import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.provider.ValueSource; +import org.gradle.api.provider.ValueSourceParameters; import org.jetbrains.annotations.Nullable; -import javax.inject.Inject; import java.io.File; import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; import java.util.Scanner; public abstract class ValueSourceModuleInfo implements ValueSource { @@ -18,31 +14,27 @@ public abstract class ValueSourceModuleInfo implements ValueSource getLocations(); + DirectoryProperty getDir(); } @Override public @Nullable ModuleInfo obtain() { ModuleInfoSourceP parameters = getParameters(); - for (File fileSystemLocation : parameters.getLocations().get()) { - File file = new File(fileSystemLocation, "module-info.java"); - if (file.isFile()) { + File file = new File(parameters.getDir().get().getAsFile(), "module-info.java"); + if (file.isFile()) { + try { + Scanner scan = new Scanner(file); try { - Scanner scan = new Scanner(file); - try { - scan.useDelimiter("\\Z"); - String content = scan.next(); - return new ModuleInfo(content); - } finally { - scan.close(); - } - } catch (IOException e) { - throw new RuntimeException(e); + scan.useDelimiter("\\Z"); + String content = scan.next(); + return new ModuleInfo(content); + } finally { + scan.close(); } + } catch (IOException e) { + throw new RuntimeException(e); } - - } return null; } From 1645d32b6545b90f4fb89bc810cbc12ba09ce89b Mon Sep 17 00:00:00 2001 From: goesen Date: Tue, 24 Sep 2024 22:14:09 +0200 Subject: [PATCH 03/24] wip safe stuff --- .../org/gradlex/javamodule/dependencies/SharedMappings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java b/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java index d0284e87..c0be3e1f 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/SharedMappings.java @@ -29,7 +29,7 @@ static Map loadModuleNameToGAProperties() { @Override public synchronized Object put(Object key, Object value) { if (get(key) != null) { - // throw new IllegalArgumentException(key + " already present."); + throw new IllegalArgumentException(key + " already present."); } return super.put(key, value); } From 2e92c3ed4929bfad759342742bfc0a22f7b28a53 Mon Sep 17 00:00:00 2001 From: goesen Date: Tue, 24 Sep 2024 22:15:05 +0200 Subject: [PATCH 04/24] revert tempStuff --- samples/configuration-cache/settings.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/samples/configuration-cache/settings.gradle.kts b/samples/configuration-cache/settings.gradle.kts index ecaa7990..99871c34 100644 --- a/samples/configuration-cache/settings.gradle.kts +++ b/samples/configuration-cache/settings.gradle.kts @@ -1,9 +1,7 @@ pluginManagement { includeBuild("build-logic") - includeBuild("../..") } dependencyResolutionManagement { - includeBuild("../..") repositories.mavenCentral() } From 15ce4296897732dbe35ec627e4961ad06b5ccfda Mon Sep 17 00:00:00 2001 From: goesen Date: Tue, 24 Sep 2024 22:18:24 +0200 Subject: [PATCH 05/24] revert temp stuff --- settings.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index d013ad48..d5b6db58 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -10,8 +10,6 @@ dependencyResolutionManagement { repositories.gradlePluginPortal() } -//includeBuild("samples/configuration-cache") - rootProject.name = "java-module-dependencies" develocity { From 0ebd09b9f8703b45cec2128213dee4a3dc137695 Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 10:59:26 +0200 Subject: [PATCH 06/24] added header --- .../internal/utils/ValueSourceModuleInfo.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java index 1add01c1..3b5f2404 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java @@ -1,3 +1,19 @@ +/* + * Copyright the GradleX team. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.gradlex.javamodule.dependencies.internal.utils; import org.gradle.api.file.DirectoryProperty; From 20ab6a60d4a29e8fca57ff1502df77fd88318135 Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 11:28:27 +0200 Subject: [PATCH 07/24] fix moduleOrderTask exploding for sourcesets without modules --- .../javamodule/dependencies/JavaModuleDependenciesPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java index 1dc43ae4..17e2a545 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java @@ -216,14 +216,14 @@ private void setupOrderingCheckTasks(Project project, TaskProvider checkAl SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class); ConfigurationContainer configurations = project.getConfigurations(); - sourceSets.all(sourceSet -> { + sourceSets.configureEach(sourceSet -> { TaskProvider checkModuleInfo = project.getTasks().register(sourceSet.getTaskName("check", "ModuleInfo"), ModuleDirectivesOrderingCheck.class, t -> { t.setGroup("java modules"); t.setDescription("Check order of directives in 'module-info.java' in '" + sourceSet.getName() + "' source set"); ModuleInfo moduleInfo = javaModuleDependencies.getModuleInfoCache().get().get(sourceSet, project.getProviders()); File folder = javaModuleDependencies.getModuleInfoCache().get().getFolder(sourceSet, project.getProviders()); - t.getModuleInfoPath().convention(folder == null ? null : new File(folder, "module-info.java").getAbsolutePath()); + t.getModuleInfoPath().convention(folder == null ? "" : new File(folder, "module-info.java").getAbsolutePath()); t.getModuleNamePrefix().convention(moduleInfo.moduleNamePrefix(project.getName(), sourceSet.getName(), false)); t.getModuleInfo().convention(moduleInfo); From 348b629d776e0dade43a2b285326e39f18437f79 Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 12:48:44 +0200 Subject: [PATCH 08/24] revert accidentally comitted file --- .../dependencies/unique_modules.properties | 137 +----------------- 1 file changed, 8 insertions(+), 129 deletions(-) diff --git a/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties b/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties index 853ed211..345e67a0 100644 --- a/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties +++ b/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties @@ -250,7 +250,7 @@ cloud.piranha.http.undertow=cloud.piranha.http:piranha-http-undertow cloud.piranha.http.virtual=cloud.piranha.http:piranha-http-virtual cloud.piranha.http.webapp=cloud.piranha.http:piranha-http-webapp cloud.piranha.maven.plugins.micro=cloud.piranha.maven.plugins:piranha-micro-maven-plugin -cloud.piranha.maven.plugins.piranha=cloud.piranha.maven:piranha-maven-plugin +cloud.piranha.maven.plugins.piranha=cloud.piranha.maven.plugins:piranha-maven-plugin cloud.piranha.micro=cloud.piranha:piranha-micro cloud.piranha.micro.builder=cloud.piranha.micro:piranha-micro-builder cloud.piranha.micro.core=cloud.piranha.micro:piranha-micro-core @@ -487,11 +487,6 @@ com.apptasticsoftware.mic=com.apptasticsoftware:mic com.apptasticsoftware.repurchase=com.apptasticsoftware:repurchase com.apptasticsoftware.rssreader=com.apptasticsoftware:rssreader com.apptasticsoftware.tickersymbol=com.apptasticsoftware:tickersymbol -com.arjenzhou.kit.base=com.arjenzhou:kit-base -com.arjenzhou.kit.fsm=com.arjenzhou:kit-statemachine -com.arjenzhou.kit.http=com.arjenzhou:kit-http -com.arjenzhou.kit.lazy=com.arjenzhou:kit-lazy -com.arjenzhou.kit.scheduler=com.arjenzhou:kit-scheduler com.asprise.imaging.scan=com.asprise.imaging:java-scanner-access-twain com.athaydes.keepup.core=com.athaydes.keepup:keepup-core com.athaydes.logfx=com.athaydes.logfx:logfx @@ -501,7 +496,6 @@ com.azure.ai.contentsafety=com.azure:azure-ai-contentsafety com.azure.ai.documentintelligence=com.azure:azure-ai-documentintelligence com.azure.ai.documenttranslator=com.azure:azure-ai-documenttranslator com.azure.ai.formrecognizer=com.azure:azure-ai-formrecognizer -com.azure.ai.inference=com.azure:azure-ai-inference com.azure.ai.metricsadvisor=com.azure:azure-ai-metricsadvisor com.azure.ai.openai=com.azure:azure-ai-openai com.azure.ai.openai.assistants=com.azure:azure-ai-openai-assistants @@ -769,7 +763,6 @@ com.azure.resourcemanager.recoveryservices=com.azure.resourcemanager:azure-resou com.azure.resourcemanager.recoveryservicesbackup=com.azure.resourcemanager:azure-resourcemanager-recoveryservicesbackup com.azure.resourcemanager.recoveryservicesdatareplication=com.azure.resourcemanager:azure-resourcemanager-recoveryservicesdatareplication com.azure.resourcemanager.recoveryservicessiterecovery=com.azure.resourcemanager:azure-resourcemanager-recoveryservicessiterecovery -com.azure.resourcemanager.redhatopenshift=com.azure.resourcemanager:azure-resourcemanager-redhatopenshift com.azure.resourcemanager.redis=com.azure.resourcemanager:azure-resourcemanager-redis com.azure.resourcemanager.redisenterprise=com.azure.resourcemanager:azure-resourcemanager-redisenterprise com.azure.resourcemanager.relay=com.azure.resourcemanager:azure-resourcemanager-relay @@ -929,8 +922,6 @@ com.distrimind.bouncycastle.pkix=com.distrimind.bouncycastle:pkix com.distrimind.bouncycastle.provider=com.distrimind.bouncycastle:prov com.distrimind.bouncycastle.util=com.distrimind.bouncycastle:util com.distrimind.ood=com.distrimind.ood:OOD -com.distrimind.upnp_igd=com.distrimind.upnp_igd:UPnPIGD-Core -com.distrimind.upnp_igd.android=com.distrimind.upnp_igd.android:UPnPIGD-Android com.distrimind.util=com.distrimind.util:Utils com.dlsc.formsfx=com.dlsc.formsfx:formsfx-core com.dlsc.formsfx.demo=com.dlsc.formsfx:formsfx-demo @@ -1271,11 +1262,6 @@ com.github.robtimus.validation.year=com.github.robtimus:year-validation com.github.robtimus.validation.yearmonth=com.github.robtimus:year-month-validation com.github.romanqed.jconv=com.github.romanqed:jconv com.github.romanqed.jeflect=com.github.romanqed:jeflect -com.github.romanqed.jeflect.field=com.github.romanqed:jeflect-field -com.github.romanqed.jeflect.lambda=com.github.romanqed:jeflect-lambda -com.github.romanqed.jeflect.loader=com.github.romanqed:jeflect-loader -com.github.romanqed.jeflect.meta=com.github.romanqed:jeflect-meta -com.github.romanqed.jeflect.transform=com.github.romanqed:jeflect-transform com.github.romanqed.jfunc=com.github.romanqed:jfunc com.github.romanqed.jsm=com.github.romanqed:jsm com.github.romanqed.jtype=com.github.romanqed:jtype @@ -1439,7 +1425,7 @@ com.headius.backport9=com.headius:backport9 com.headius.invokebinder=com.headius:invokebinder com.headius.modulator=com.headius:modulator com.headius.options=com.headius:options -com.hedera.evm=com.hedera.evm:hedera-evm +com.hedera.evm.impl=com.hedera.evm:hedera-evm com.hedera.fullstack.base.api=com.hedera.fullstack:fullstack-base-api com.hedera.fullstack.helm.client=com.hedera.fullstack:fullstack-helm-client com.hedera.fullstack.junit.support=com.hedera.fullstack:fullstack-junit-support @@ -1817,7 +1803,6 @@ com.io7m.jwheatsheaf.oxygen=com.io7m.jwheatsheaf:com.io7m.jwheatsheaf.oxygen com.io7m.jwheatsheaf.ui=com.io7m.jwheatsheaf:com.io7m.jwheatsheaf.ui com.io7m.jxe.core=com.io7m.jxe:com.io7m.jxe.core com.io7m.jxe.documentation=com.io7m.jxe:com.io7m.jxe.documentation -com.io7m.jxe.tests=com.io7m.jxe:com.io7m.jxe.tests com.io7m.jxtrand.api=com.io7m.jxtrand:com.io7m.jxtrand.api com.io7m.jxtrand.compiler.api=com.io7m.jxtrand:com.io7m.jxtrand.compiler.api com.io7m.jxtrand.compiler.basic=com.io7m.jxtrand:com.io7m.jxtrand.compiler.basic @@ -2280,7 +2265,7 @@ com.nextbreakpoint.nextfractal.contextfree=com.nextbreakpoint:com.nextbreakpoint com.nextbreakpoint.nextfractal.core=com.nextbreakpoint:com.nextbreakpoint.nextfractal.core com.nextbreakpoint.nextfractal.mandelbrot=com.nextbreakpoint:com.nextbreakpoint.nextfractal.mandelbrot com.nextbreakpoint.nextfractal.runtime=com.nextbreakpoint:com.nextbreakpoint.nextfractal.runtime -com.nimbusds.jose.jwt=com.nimbusds:nimbus-jose-jwt +com.nimbusds.jose.jwt=com.nimbusds:c2id-server-jwkset com.ning.compress.lzf=com.ning:compress-lzf com.nulabinc.zxcvbn=com.nulab-inc:zxcvbn com.okta.cli=com.okta.cli:okta-cli @@ -2546,8 +2531,6 @@ com.swardana.materialiconfx=com.swardana:materialiconfx com.swardana.metroiconfx=com.swardana:metroiconfx com.swardana.midnight.core=com.swardana.midnight:midnight-core com.swardana.oofx=com.swardana:oofx -com.swardana.oombx=com.swardana:oombx -com.swardana.oomsg=com.swardana:oomsg com.swardana.wisteria=com.swardana:wisteria com.swirlds.base=com.swirlds:swirlds-base com.swirlds.cli=com.swirlds:swirlds-cli @@ -2676,7 +2659,6 @@ com.yelstream.topp.furnace.vertx.addressing=com.yelstream.topp.furnace:topp-furn com.yelstream.topp.furnace.vertx.core=com.yelstream.topp.furnace:topp-furnace-vertx-core com.yelstream.topp.furnace.vertx.health=com.yelstream.topp.furnace:topp-furnace-vertx-health com.yelstream.topp.furnace.vertx.lifecycle=com.yelstream.topp.furnace:topp-furnace-vertx-lifecycle -com.yelstream.topp.standard.annotator=com.yelstream.topp.standard:topp-standard-annotator com.yelstream.topp.standard.core=com.yelstream.topp.standard:topp-standard-core com.yelstream.topp.standard.health.serialization=com.yelstream.topp.standard:topp-standard-health-serialization com.yelstream.topp.standard.log.assistance.slf4j=com.yelstream.topp.standard:topp-standard-log-assist-slf4j @@ -2861,10 +2843,8 @@ dev.kske.undoredo.javafx=dev.kske:undo-redo-javafx dev.lukebemish.opensesame.core=dev.lukebemish.opensesame:opensesame-core dev.lukebemish.opensesame.natives=dev.lukebemish.opensesame:opensesame-natives dev.lukebemish.opensesame.runtime=dev.lukebemish.opensesame:opensesame-runtime -dev.mccue.atom=dev.mccue:atom dev.mccue.docopt=dev.mccue:docopt dev.mccue.feather=dev.mccue:feather -dev.mccue.flake=dev.mccue:flake dev.mccue.forever=dev.mccue:forever dev.mccue.guava=dev.mccue:guava dev.mccue.guava.base=dev.mccue:guava-base @@ -2919,21 +2899,6 @@ dev.mccue.purl=dev.mccue:purl dev.mccue.resolve=dev.mccue:resolve dev.mccue.resolve.cli=dev.mccue:jresolve-cli dev.mccue.search=dev.mccue:search -dev.mccue.tools=dev.mccue:tools -dev.mccue.tools.googlejavaformat=dev.mccue:tools-googlejavaformat -dev.mccue.tools.jar=dev.mccue:tools-jar -dev.mccue.tools.java=dev.mccue:tools-java -dev.mccue.tools.javac=dev.mccue:tools-javac -dev.mccue.tools.javadoc=dev.mccue:tools-javadoc -dev.mccue.tools.javap=dev.mccue:tools-javap -dev.mccue.tools.jdk=dev.mccue:tools-jdk -dev.mccue.tools.jlink=dev.mccue:tools-jlink -dev.mccue.tools.jmod=dev.mccue:tools-jmod -dev.mccue.tools.jpackage=dev.mccue:tools-jpackage -dev.mccue.tools.jresolve=dev.mccue:tools-jresolve -dev.mccue.tools.jstage=dev.mccue:tools-jstage -dev.mccue.tools.junit=dev.mccue:tools-junit -dev.mccue.tools.pmd=dev.mccue:tools-pmd dev.mccue.tritonus.share=dev.mccue:tritonus-share dev.mccue.urlparameters=dev.mccue:urlparameters dev.mccue.vorbisspi=dev.mccue:vorbisspi @@ -2950,11 +2915,6 @@ dev.peterrhodes.optionpricing=dev.peterrhodes.optionpricing:option-pricing dev.reformator.loomoroutines.bypassjpms=dev.reformator.loomoroutines:loomoroutines-bypassjpms dev.reformator.loomoroutines.common=dev.reformator.loomoroutines:loomoroutines-common dev.reformator.loomoroutines.dispatcher=dev.reformator.loomoroutines:loomoroutines-dispatcher -dev.reformator.stacktracedecoroutinator.common=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-common -dev.reformator.stacktracedecoroutinator.generator=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-generator -dev.reformator.stacktracedecoroutinator.jvm=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-jvm -dev.reformator.stacktracedecoroutinator.jvmagentcommon=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-jvm-agent-common -dev.reformator.stacktracedecoroutinator.provider=dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-provider dev.secondsun.javaisoengine=dev.secondsun:java-isoengine dev.secondsun.retro.util=dev.secondsun:retro-common dev.secondsun.tm4e.core=dev.secondsun:org.eclipse.tm4e.core @@ -2981,7 +2941,6 @@ es.iti.wakamiti.groovy=es.iti.wakamiti:groovy-wakamiti-plugin es.iti.wakamiti.io=es.iti.wakamiti:io-wakamiti-plugin es.iti.wakamiti.launcher=es.iti.wakamiti:wakamiti-launcher es.iti.wakamiti.lsp=es.iti.wakamiti:wakamiti-lsp -es.iti.wakamiti.plugins.jmeter=es.iti.wakamiti:jmeter-wakamiti-plugin es.iti.wakamiti.report.cucumber=es.iti.wakamiti:cucumber-exporter-wakamiti-plugin es.iti.wakamiti.report.html=es.iti.wakamiti:html-report-wakamiti-plugin es.iti.wakamiti.rest=es.iti.wakamiti:rest-wakamiti-plugin @@ -3151,7 +3110,6 @@ io.avaje.http.javalin.generator=io.avaje:avaje-http-javalin-generator io.avaje.http.jex.generator=io.avaje:avaje-http-jex-generator io.avaje.http.nima.generator=io.avaje:avaje-http-helidon-generator io.avaje.http.plugin=io.avaje:avaje-http-inject-plugin -io.avaje.http.sigma.generator=io.avaje:avaje-http-sigma-generator io.avaje.inject=io.avaje:avaje-inject io.avaje.inject.aop=io.avaje:avaje-inject-aop io.avaje.inject.events=io.avaje:avaje-inject-events @@ -3186,7 +3144,6 @@ io.avaje.prism=io.avaje:avaje-prisms io.avaje.prism.core=io.avaje:avaje-prism-core io.avaje.recordbuilder=io.avaje:avaje-record-builder io.avaje.recordbuilder.core=io.avaje:avaje-record-builder-core -io.avaje.sigma=io.avaje:avaje-sigma io.avaje.spi=io.avaje:avaje-spi-service io.avaje.spi.core=io.avaje:avaje-spi-core io.avaje.validation=io.avaje:avaje-validator @@ -3290,7 +3247,7 @@ io.github.classgraph=io.github.classgraph:classgraph io.github.coffeelibs.tinyoauth2client=io.github.coffeelibs:tiny-oauth2-client io.github.danthe1st.json_compile=io.github.danthe1st:compile-time-json-parser io.github.danygold.fx.moshi=io.github.danygold:fx-moshi -io.github.dmlloyd.classfile=io.github.dmlloyd:jdk-classfile-backport +io.github.dmlloyd.classfile=io.github.dmlloyd:jdk-classfile-preview io.github.dsheirer.rrapi=io.github.dsheirer:radio-reference-api io.github.easytuples=io.github.easytuples:easy-tuples io.github.ericmedvet.jgea.core=io.github.ericmedvet:jgea.core @@ -3299,7 +3256,6 @@ io.github.ericmedvet.jgea.problem=io.github.ericmedvet:jgea.problem io.github.ericmedvet.jgea.sample=io.github.ericmedvet:jgea.sample io.github.ericmedvet.jgea.telegram=io.github.ericmedvet:jgea.telegram io.github.ericmedvet.jgea.tui=io.github.ericmedvet:jgea.tui -io.github.ericmedvet.jnb.buildable=io.github.ericmedvet:jnb.buildable io.github.ericmedvet.jnb.core=io.github.ericmedvet:jnb.core io.github.ericmedvet.jnb.datastructure=io.github.ericmedvet:jnb.datastructure io.github.ericmedvet.jnb.sample=io.github.ericmedvet:jnb.sample @@ -4036,12 +3992,8 @@ io.jooby=io.jooby:jooby io.jooby.apt=io.jooby:jooby-apt io.jooby.avaje.inject=io.jooby:jooby-avaje-inject io.jooby.avaje.jsonb=io.jooby:jooby-avaje-jsonb -io.jooby.avaje.validator=io.jooby:jooby-avaje-validator -io.jooby.awssdkv2=io.jooby:jooby-awssdk-v2 io.jooby.caffeine=io.jooby:jooby-caffeine -io.jooby.camel=io.jooby:jooby-camel io.jooby.conscrypt=io.jooby:jooby-conscrypt -io.jooby.dbscheduler=io.jooby:jooby-db-scheduler io.jooby.ebean=io.jooby:jooby-ebean io.jooby.flyway=io.jooby:jooby-flyway io.jooby.freemarker=io.jooby:jooby-freemarker @@ -4051,7 +4003,6 @@ io.jooby.gson=io.jooby:jooby-gson io.jooby.guice=io.jooby:jooby-guice io.jooby.handlebars=io.jooby:jooby-handlebars io.jooby.hibernate=io.jooby:jooby-hibernate -io.jooby.hibernate.validator=io.jooby:jooby-hibernate-validator io.jooby.hikari=io.jooby:jooby-hikari io.jooby.jackson=io.jooby:jooby-jackson io.jooby.jdbi=io.jooby:jooby-jdbi @@ -4086,7 +4037,6 @@ io.jstach.opt.spring.webflux.example=io.jstach:jstachio-spring-webflux-example io.jstach.opt.spring.webmvc=io.jstach:jstachio-spring-webmvc io.jstach.rainbowgum=io.jstach.rainbowgum:rainbowgum-core io.jstach.rainbowgum.annotation=io.jstach.rainbowgum:rainbowgum-annotation -io.jstach.rainbowgum.apt=io.jstach.rainbowgum:rainbowgum-apt io.jstach.rainbowgum.avaje=io.jstach.rainbowgum:rainbowgum-avaje-config io.jstach.rainbowgum.bundle=io.jstach.rainbowgum:rainbowgum io.jstach.rainbowgum.disruptor=io.jstach.rainbowgum:rainbowgum-disruptor @@ -4096,13 +4046,9 @@ io.jstach.rainbowgum.json=io.jstach.rainbowgum:rainbowgum-json io.jstach.rainbowgum.pattern=io.jstach.rainbowgum:rainbowgum-pattern io.jstach.rainbowgum.rabbitmq=io.jstach.rainbowgum:rainbowgum-rabbitmq io.jstach.rainbowgum.slf4j=io.jstach.rainbowgum:rainbowgum-slf4j -io.jstach.rainbowgum.spring.boot=io.jstach.rainbowgum:rainbowgum-spring-boot -io.jstach.rainbowgum.spring.boot.starter=io.jstach.rainbowgum:rainbowgum-spring-boot-starter io.jstach.rainbowgum.systemlogger=io.jstach.rainbowgum:rainbowgum-systemlogger -io.jstach.rainbowgum.tomcat=io.jstach.rainbowgum:rainbowgum-tomcat io.kodokojo.property.configurer=io.kodokojo:property-configurer io.kojan.javadeptools.rpm=io.kojan:java-deptools-native -io.leangen.geantyref=io.leangen.geantyref:geantyref io.lindstrom.mpd=io.lindstrom:mpd-parser io.litterat.pep=io.litterat:litterat-pep io.matthewnelson.encoding.base16=io.matthewnelson.encoding:base16-jvm @@ -4142,22 +4088,6 @@ io.mokamint.plotter=io.mokamint:io-mokamint-plotter io.mokamint.plotter.api=io.mokamint:io-mokamint-plotter-api io.mokamint.plotter.cli=io.mokamint:io-mokamint-plotter-cli io.nayuki.qrcodegen=io.nayuki:qrcodegen -io.netty.codec.compression=io.netty:netty-codec-compression -io.netty.codec.marshalling=io.netty:netty-codec-marshalling -io.netty.codec.protobuf=io.netty:netty-codec-protobuf -io.netty.codec.redis=io.netty:netty-codec-redis -io.netty.codec.smtp=io.netty:netty-codec-smtp -io.netty.handler.ssl.ocsp=io.netty:netty-handler-ssl-ocsp -io.netty.internal.tcnative=io.netty:netty-tcnative-boringssl-static -io.netty.resolver.dns.classes.macos=io.netty:netty-resolver-dns-classes-macos -io.netty.resolver.dns.macos.osx.aarch_64=io.netty:netty-resolver-dns-native-macos -io.netty.tcnative.classes.openssl=io.netty:netty-tcnative-classes -io.netty.transport.classes.epoll=io.netty:netty-transport-classes-epoll -io.netty.transport.classes.io_uring=io.netty:netty-transport-classes-io_uring -io.netty.transport.classes.kqueue=io.netty:netty-transport-classes-kqueue -io.netty.transport.io_uring=io.netty:netty-transport-native-io_uring -io.netty.transport.kqueue=io.netty:netty-transport-native-kqueue -io.netty.transport.unix.common=io.netty:netty-transport-native-unix-common io.norberg.rut=io.norberg:rut io.opencmw=io.opencmw:core io.opencmw.client=io.opencmw:client @@ -4187,8 +4117,6 @@ io.smallrye.common.ref=io.smallrye.common:smallrye-common-ref io.smallrye.common.version=io.smallrye.common:smallrye-common-version io.smallrye.common.vertx=io.smallrye.common:smallrye-common-vertx-context io.toolisticon.cute.integrationtest.javanine.regularmodule=io.toolisticon.cute:integration-test-java9-regularModule -io.vertx.docgen=io.vertx:vertx-docgen-api -io.vertx.docgen.processor=io.vertx:vertx-docgen-processor io.vproxy.adaptor.netty=io.vproxy:vproxy-adaptor-netty io.vproxy.adaptor.vertx=io.vproxy:vproxy-adaptor-vertx io.vproxy.base=io.vproxy:commons @@ -4249,7 +4177,6 @@ is.codion.framework.db.http=is.codion:codion-framework-db-http is.codion.framework.db.local=is.codion:codion-framework-db-local is.codion.framework.db.rmi=is.codion:codion-framework-db-rmi is.codion.framework.domain=is.codion:codion-framework-domain -is.codion.framework.domain.db=is.codion:codion-framework-domain-db is.codion.framework.domain.test=is.codion:codion-framework-domain-test is.codion.framework.i18n=is.codion:codion-framework-i18n is.codion.framework.json.db=is.codion:codion-framework-json-db @@ -4442,29 +4369,6 @@ net.dongliu.xhttp.json=net.dongliu:xhttp-json-api net.dongliu.xhttp.json.jackson=net.dongliu:xhttp-json-jackson net.dongliu.xhttp.json.jsonb=net.dongliu:xhttp-json-jsonb net.dontcode.core=net.dontcode:core -net.dreamlu.mica.mqtt.client=net.dreamlu:mica-mqtt-client -net.dreamlu.mica.mqtt.client.jfinal.plugin=net.dreamlu:mica-mqtt-client-jfinal-plugin -net.dreamlu.mica.mqtt.client.solon.plugin=net.dreamlu:mica-mqtt-client-solon-plugin -net.dreamlu.mica.mqtt.client.spring.boot.starter=net.dreamlu:mica-mqtt-client-spring-boot-starter -net.dreamlu.mica.mqtt.codec=net.dreamlu:mica-mqtt-codec -net.dreamlu.mica.mqtt.common=net.dreamlu:mica-mqtt-common -net.dreamlu.mica.mqtt.server=net.dreamlu:mica-mqtt-server -net.dreamlu.mica.mqtt.server.jfinal.plugin=net.dreamlu:mica-mqtt-server-jfinal-plugin -net.dreamlu.mica.mqtt.server.solon.plugin=net.dreamlu:mica-mqtt-server-solon-plugin -net.dreamlu.mica.mqtt.server.spring.boot.starter=net.dreamlu:mica-mqtt-server-spring-boot-starter -net.dreamlu.mica.mqttx.client=net.dreamlu:mica-mqttx-client -net.dreamlu.mica.mqttx.client.jfinal.plugin=net.dreamlu:mica-mqttx-client-jfinal-plugin -net.dreamlu.mica.mqttx.client.solon.plugin=net.dreamlu:mica-mqttx-client-solon-plugin -net.dreamlu.mica.mqttx.client.spring.boot.starter=net.dreamlu:mica-mqttx-client-spring-boot-starter -net.dreamlu.mica.mqttx.codec=net.dreamlu:mica-mqttx-codec -net.dreamlu.mica.mqttx.common=net.dreamlu:mica-mqttx-common -net.dreamlu.mica.mqttx.server=net.dreamlu:mica-mqttx-server -net.dreamlu.mica.mqttx.server.jfinal.plugin=net.dreamlu:mica-mqttx-server-jfinal-plugin -net.dreamlu.mica.mqttx.server.solon.plugin=net.dreamlu:mica-mqttx-server-solon-plugin -net.dreamlu.mica.mqttx.server.spring.boot.starter=net.dreamlu:mica-mqttx-server-spring-boot-starter -net.dreamlu.mica.net.core=net.dreamlu:mica-net-core -net.dreamlu.mica.net.http=net.dreamlu:mica-net-http -net.dreamlu.mica.net.utils=net.dreamlu:mica-net-utils net.e175.klaus.solarpositioning=net.e175.klaus:solarpositioning net.fellbaum.jemoji=net.fellbaum:jemoji net.finmath.gpu=net.finmath:finmath-lib-cuda-extensions @@ -4472,7 +4376,6 @@ net.finmath.lib=net.finmath:finmath-lib net.finmath.opencl=net.finmath:finmath-lib-opencl-extensions net.finmath.plots=net.finmath:finmath-lib-plot-extensions net.frogmouth.chronyjava=net.frogmouth.chronyjava:java-chrny-candm -net.hamnaberg.arities=net.hamnaberg:arities net.javapla.jawn.core=net.javapla.jawn:jawn-core net.jonathangiles.tools.sitebuilder=net.jonathangiles.tools:sitebuilder net.jonathangiles.tools.teenyhttpd=net.jonathangiles.tools:teenyhttpd @@ -4496,9 +4399,7 @@ net.mahdilamb.colormap=net.mahdilamb:colormap net.mahdilamb.dataframe=net.mahdilamb:dataframe net.mahdilamb.util.property=net.mahdilamb:utils-properties net.mahdilamb.utils.tuples=net.mahdilamb:utils-tuples -net.morimekta.tiny.http=net.morimekta.tiny:tiny-http -net.morimekta.tiny.logback=net.morimekta.tiny:tiny-logback -net.morimekta.tiny.server=net.morimekta.tiny:tiny-server +net.morimekta.tiny.server=net.morimekta.tiny.server:tiny-server net.neoforged.bus=net.neoforged:bus net.nlacombe.jsonfeed=net.nlacombe:nl-jsonfeed net.nlacombe.jsonfeed.gson=net.nlacombe:nl-jsonfeed-gson @@ -4741,10 +4642,6 @@ org.apache.commons.rng.examples.jpms.app=org.apache.commons:commons-rng-examples org.apache.commons.rng.examples.jpms.lib=org.apache.commons:commons-rng-examples-jpms-lib org.apache.commons.rng.sampling=org.apache.commons:commons-rng-sampling org.apache.commons.rng.simple=org.apache.commons:commons-rng-simple -org.apache.commons.statistics.descriptive=org.apache.commons:commons-statistics-descriptive -org.apache.commons.statistics.distribution=org.apache.commons:commons-statistics-distribution -org.apache.commons.statistics.inference=org.apache.commons:commons-statistics-inference -org.apache.commons.statistics.ranking=org.apache.commons:commons-statistics-ranking org.apache.commons.text=org.apache.commons:commons-text org.apache.datasketches.memory=org.apache.datasketches:datasketches-memory org.apache.derby.client=org.apache.derby:derbyclient @@ -4841,7 +4738,6 @@ org.apache.logging.log4j.layout.jackson=org.apache.logging.log4j:log4j-layout-ja org.apache.logging.log4j.layout.jackson.xml=org.apache.logging.log4j:log4j-layout-jackson-xml org.apache.logging.log4j.layout.template.json=org.apache.logging.log4j:log4j-layout-template-json org.apache.logging.log4j.layout.template.json.test=org.apache.logging.log4j:log4j-layout-template-json-test -org.apache.logging.log4j.mongodb=org.apache.logging.log4j:log4j-mongodb org.apache.logging.log4j.mongodb4=org.apache.logging.log4j:log4j-mongodb4 org.apache.logging.log4j.plugin.processor=org.apache.logging.log4j:log4j-plugin-processor org.apache.logging.log4j.plugins=org.apache.logging.log4j:log4j-plugins @@ -4904,7 +4800,6 @@ org.apache.sis.storage.geotiff=org.apache.sis.storage:sis-geotiff org.apache.sis.storage.netcdf=org.apache.sis.storage:sis-netcdf org.apache.sis.storage.sql=org.apache.sis.storage:sis-sqlstore org.apache.sis.storage.xml=org.apache.sis.storage:sis-xmlstore -org.apache.sling.commons.threads=org.apache.sling:org.apache.sling.commons.threads org.apache.tomcat.api=org.apache.tomcat:tomcat-api org.apache.tomcat.catalina=org.apache.tomcat:tomcat-catalina org.apache.tomcat.catalina.ha=org.apache.tomcat:tomcat-catalina-ha @@ -5010,7 +4905,6 @@ org.bouncycastle.pkix=org.bouncycastle:bcpkix-jdk18on org.bouncycastle.provider=org.bouncycastle:bcprov-jdk18on org.bouncycastle.tls=org.bouncycastle:bctls-jdk18on org.bouncycastle.util=org.bouncycastle:bcutil-jdk18on -org.bspfsystems.yamlconfiguration=org.bspfsystems:yamlconfiguration org.burningwave=org.burningwave:common org.burningwave.core=org.burningwave:core org.burningwave.json=org.burningwave:json @@ -5209,7 +5103,6 @@ org.commandmosaic.spring.web=org.commandmosaic:commandmosaic-spring-web org.commandmosaic.springboot.autoconfigure=org.commandmosaic:commandmosaic-spring-boot-autoconfigure org.commonmark=org.commonmark:commonmark org.commonmark.ext.autolink=org.commonmark:commonmark-ext-autolink -org.commonmark.ext.footnotes=org.commonmark:commonmark-ext-footnotes org.commonmark.ext.front.matter=org.commonmark:commonmark-ext-yaml-front-matter org.commonmark.ext.gfm.strikethrough=org.commonmark:commonmark-ext-gfm-strikethrough org.commonmark.ext.gfm.tables=org.commonmark:commonmark-ext-gfm-tables @@ -5592,8 +5485,8 @@ org.glavo.png=org.glavo:simple-png org.glavo.png.imageio=org.glavo:simple-png-imageio org.glavo.png.javafx=org.glavo:simple-png-javafx org.graalvm.espresso=org.graalvm.espresso:espresso-language -org.graalvm.espresso.resources.libs=org.graalvm.espresso:espresso-libs-resources -org.graalvm.espresso.resources.runtime=org.graalvm.espresso:espresso-runtime-resources-jdk21 +org.graalvm.espresso.resources.libs=org.graalvm.espresso:espresso-libs-resources-linux-amd64 +org.graalvm.espresso.resources.runtime=org.graalvm.espresso:espresso-runtime-resources-linux-amd64 org.graalvm.js=org.graalvm.js:js-language org.graalvm.js.isolate=org.graalvm.js:js-isolate org.graalvm.js.launcher=org.graalvm.js:js-launcher @@ -5616,7 +5509,6 @@ org.graalvm.nativeimage.pointsto=org.graalvm.nativeimage:pointsto org.graalvm.nativeimage.pointsto.standalone=org.graalvm.nativeimage:standalone-pointsto org.graalvm.polyglot=org.graalvm.polyglot:polyglot org.graalvm.python.embedding=org.graalvm.python:python-embedding -org.graalvm.python.embedding.tools=org.graalvm.python:python-embedding-tools org.graalvm.ruby=org.graalvm.ruby:ruby-language org.graalvm.ruby.annotations=org.graalvm.ruby:ruby-annotations org.graalvm.ruby.resources=org.graalvm.ruby:ruby-resources @@ -5624,9 +5516,7 @@ org.graalvm.ruby.shared=org.graalvm.ruby:ruby-shared org.graalvm.sdk=org.graalvm.sdk:graal-sdk org.graalvm.shadowed.antlr4=org.graalvm.shadowed:antlr4 org.graalvm.shadowed.icu4j=org.graalvm.shadowed:icu4j -org.graalvm.shadowed.jcodings=org.graalvm.shadowed:jcodings org.graalvm.shadowed.jline=org.graalvm.shadowed:jline -org.graalvm.shadowed.joni=org.graalvm.shadowed:joni org.graalvm.shadowed.org.json=org.graalvm.shadowed:json org.graalvm.shadowed.xz=org.graalvm.shadowed:xz org.graalvm.tools.api.lsp=org.graalvm.tools:lsp_api @@ -6031,7 +5921,6 @@ org.nasdanika.models.functionflow.processors.doc=org.nasdanika.models.function-f org.nasdanika.models.functionflow.processors.ecore=org.nasdanika.models.function-flow.processors:ecore org.nasdanika.models.functionflow.processors.targets.java=org.nasdanika.models.function-flow.processors.targets:java org.nasdanika.models.gitlab=org.nasdanika.models.gitlab:model -org.nasdanika.models.gitlab.cli=org.nasdanika.models.gitlab:cli org.nasdanika.models.graph.processors=org.nasdanika.models.graph:processors org.nasdanika.models.java=org.nasdanika.models.java:model org.nasdanika.models.java.cli=org.nasdanika.models.java:cli @@ -6046,8 +5935,7 @@ org.nasdanika.rag.model=org.nasdanika.rag:model org.nasdanika.rag.openai=org.nasdanika.rag:open-ai org.nasdanika.rag.processors=org.nasdanika.rag:processors org.neo4j.cypherdsl.codegen.core=org.neo4j:neo4j-cypher-dsl-codegen-core -org.neo4j.cypherdsl.core=org.neo4j:neo4j-connector-apache-spark_2.13 -org.neo4j.cypherdsl.parser=org.neo4j:neo4j-cypher-dsl-parser +org.neo4j.cypherdsl.core=org.neo4j:neo4j-cypher-dsl org.neo4j.cypherdsl.support.schema_name=org.neo4j:neo4j-cypher-dsl-schema-name-support org.neo4j.driver=org.neo4j.driver:neo4j-java-driver-all org.neo4j.jdbc=org.neo4j:neo4j-jdbc-full-bundle @@ -6229,10 +6117,8 @@ org.praxislive.audio=org.praxislive:praxiscore-audio org.praxislive.audio.code=org.praxislive:praxiscore-audio-code org.praxislive.audio.components=org.praxislive:praxiscore-audio-components org.praxislive.base=org.praxislive:praxiscore-base -org.praxislive.bin=org.praxislive:praxiscore-bin org.praxislive.code=org.praxislive:praxiscore-code org.praxislive.code.ivy=org.praxislive:praxiscore-code-ivy -org.praxislive.code.mima=org.praxislive:praxiscore-code-mima org.praxislive.code.services=org.praxislive:praxiscore-code-services org.praxislive.core=org.praxislive:praxiscore-api org.praxislive.core.code=org.praxislive:praxiscore-core-code @@ -6249,7 +6135,6 @@ org.praxislive.libp5x.core=org.praxislive.libp5x:processing-core org.praxislive.libp5x.lwjgl=org.praxislive.libp5x:processing-lwjgl org.praxislive.midi=org.praxislive:praxiscore-midi org.praxislive.osc=org.praxislive:praxiscore-osc -org.praxislive.project=org.praxislive:praxiscore-project org.praxislive.purl=org.praxislive:praxiscore-purl org.praxislive.script=org.praxislive:praxiscore-script org.praxislive.tinkerforge=org.praxislive:praxiscore-tinkerforge @@ -6460,8 +6345,6 @@ org.seleniumhq.selenium.devtools_v124=org.seleniumhq.selenium:selenium-devtools- org.seleniumhq.selenium.devtools_v125=org.seleniumhq.selenium:selenium-devtools-v125 org.seleniumhq.selenium.devtools_v126=org.seleniumhq.selenium:selenium-devtools-v126 org.seleniumhq.selenium.devtools_v127=org.seleniumhq.selenium:selenium-devtools-v127 -org.seleniumhq.selenium.devtools_v128=org.seleniumhq.selenium:selenium-devtools-v128 -org.seleniumhq.selenium.devtools_v129=org.seleniumhq.selenium:selenium-devtools-v129 org.seleniumhq.selenium.devtools_v84=org.seleniumhq.selenium:selenium-devtools-v84 org.seleniumhq.selenium.devtools_v85=org.seleniumhq.selenium:selenium-devtools-v85 org.seleniumhq.selenium.devtools_v86=org.seleniumhq.selenium:selenium-devtools-v86 @@ -6928,9 +6811,6 @@ tokyo.northside.mdict=tokyo.northside:mdict4j tokyo.northside.pdic4j=tokyo.northside:pdic4j tokyo.northside.stardict4j=tokyo.northside:stardict4j tokyo.northside.trie4j=tokyo.northside:trie4j -tools.aqua.turnkey.cvc5=tools.aqua:cvc5-turnkey -tools.aqua.turnkey.support=tools.aqua:turnkey-support -tools.aqua.turnkey.z3=tools.aqua:z3-turnkey tools.dynamia.actions=tools.dynamia:tools.dynamia.actions tools.dynamia.commons=tools.dynamia:tools.dynamia.commons tools.dynamia.crud=tools.dynamia:tools.dynamia.crud @@ -6957,7 +6837,6 @@ uk.co.caprica.vlcj=uk.co.caprica:vlcj uk.co.caprica.vlcj.filefilters=uk.co.caprica:vlcj-file-filters uk.co.caprica.vlcj.info=uk.co.caprica:vlcj-info uk.co.caprica.vlcj.javafx=uk.co.caprica:vlcj-javafx -uk.co.caprica.vlcj.legacy=uk.co.caprica:vlcj-legacy uk.co.caprica.vlcj.mrls=uk.co.caprica:vlcj-mrls uk.co.caprica.vlcj.natives=uk.co.caprica:vlcj-natives uk.co.caprica.vlcj.osx.stubs=uk.co.caprica:vlcj-osx-stubs From 16d12b10ca1479ee6ea9f95ab0b7342fad7e052d Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 14:11:36 +0200 Subject: [PATCH 09/24] testCases for the settingsPlugin --- .../initialization/SettingsPluginTest.groovy | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy index e88379bb..cf502283 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy @@ -1,5 +1,6 @@ package org.gradlex.javamodule.dependencies.test.initialization +import org.gradle.testkit.runner.GradleRunner import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild import spock.lang.Specification @@ -67,6 +68,135 @@ class SettingsPluginTest extends Specification { result.task(":lib:compileJava").outcome == SUCCESS } + def "configurationCacheHit"() { + given: + settingsFile << ''' + javaModules { + directory(".") { plugin("java-library") } + } + ''' + libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' + module org.gradlex.test.app { + requires abc.lib; + } + ''' + + + def runner = runner(':app:compileJava') + when: + def result = runner.build() + + then: + result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + + when: + result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH + result = runner.build() + + then: + result.getOutput().contains("Reusing configuration cache.") + } + + def "configurationCacheHit"() { + given: + settingsFile << ''' + javaModules { + directory(".") { plugin("java-library") } + } + ''' + libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' + module org.gradlex.test.app { + requires abc.lib; + } + ''' + + + def runner = runner(':app:compileJava') + when: + def result = runner.build() + + then: + result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + + when: + result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH + result = runner.build() + + then: + result.getOutput().contains("Reusing configuration cache.") + } + + def "configurationCacheHitIrrelevantChange"() { + given: + settingsFile << ''' + javaModules { + directory(".") { plugin("java-library") } + } + ''' + libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' + module org.gradlex.test.app { + requires abc.lib; + } + ''' + + def runner = runner(':app:compileJava') + when: + def result = runner.build() + + then: + result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + + when: + result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH + appModuleInfoFile.write(''' + module org.gradlex.test.app { + requires abc.lib; //This is a comment and should not break the configurationCache + } + ''') + result = runner.build() + + then: + result.getOutput().contains("Reusing configuration cache.") + } + + def "configurationCacheHitRelevantChange"() { + given: + settingsFile << ''' + javaModules { + directory(".") { plugin("java-library") } + } + ''' + libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' + module org.gradlex.test.app { + requires abc.lib; + } + ''' + + def runner = runner(':app:compileJava') + when: + def result = runner.build() + + then: + result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + + when: + result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH + appModuleInfoFile.write(''' + module org.gradlex.test.app { + //dependency removed; so thats indeed a configuration change + } + ''') + result = runner.build() + + then: + result.output.contains("Calculating task graph as configuration cache cannot be reused because a build logic input of type 'ValueSourceModuleInfo' has changed.\n") + } + + def "automatically sets module for application plugin"() { given: settingsFile << ''' From 3964bc4db539bec2b9059090a5b848ac0870f06a Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 14:18:16 +0200 Subject: [PATCH 10/24] testCases for the notSettingsPlugin --- .../test/ConfigurationCacheTest.groovy | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy new file mode 100644 index 00000000..647e4597 --- /dev/null +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy @@ -0,0 +1,90 @@ +package org.gradlex.javamodule.dependencies.test + +import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild +import spock.lang.Specification + +class ConfigurationCacheTest extends Specification { + + @Delegate + GradleBuild build = new GradleBuild() + + def "configurationCacheHit"() { + given: + libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' + module abc.app { + requires abc.lib; + } + ''' + + + def runner = runner(':app:compileJava') + when: + def result = runner.build() + + then: + result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + + when: + result = runner.build() + + then: + result.getOutput().contains("Reusing configuration cache.") + } + + def "configurationCacheHitIrrelevantChange"() { + libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' + module abc.app { + requires abc.lib; + } + ''' + + def runner = runner(':app:compileJava') + when: + def result = runner.build() + + then: + result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + + when: + appModuleInfoFile.write(''' + module abc.app { + requires abc.lib; //This is a comment and should not break the configurationCache + } + ''') + result = runner.build() + + then: + result.getOutput().contains("Reusing configuration cache.") + } + + def "configurationCacheHitRelevantChange"() { + given: + libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' + module abc.app { + requires abc.lib; + } + ''' + + def runner = runner(':app:compileJava') + when: + def result = runner.build() + + then: + result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + + when: + appModuleInfoFile.write(''' + module abc.app { + //dependency removed; so thats indeed a configuration change + } + ''') + result = runner.build() + + then: + result.output.contains("Calculating task graph as configuration cache cannot be reused because a build logic input of type 'ValueSourceModuleInfo' has changed.\n") + } + +} From 85f5afee566993df01baf96af115becdf6693008 Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 14:25:02 +0200 Subject: [PATCH 11/24] corrected Names --- .../javamodule/dependencies/test/ConfigurationCacheTest.groovy | 2 +- .../dependencies/test/initialization/SettingsPluginTest.groovy | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy index 647e4597..7bc9c552 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy @@ -59,7 +59,7 @@ class ConfigurationCacheTest extends Specification { result.getOutput().contains("Reusing configuration cache.") } - def "configurationCacheHitRelevantChange"() { + def "configurationCacheMissRelevantChange"() { given: libModuleInfoFile << 'module abc.lib { }' appModuleInfoFile << ''' diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy index cf502283..7d194002 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy @@ -162,7 +162,7 @@ class SettingsPluginTest extends Specification { result.getOutput().contains("Reusing configuration cache.") } - def "configurationCacheHitRelevantChange"() { + def "configurationCacheMissRelevantChange"() { given: settingsFile << ''' javaModules { From 76074c1a0eba747652990f80abe5dfbc680a2a03 Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 15:02:02 +0200 Subject: [PATCH 12/24] fix except 7.4 which is bugged? --- .../test/ConfigurationCacheTest.groovy | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy index 7bc9c552..800b387b 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy @@ -1,5 +1,6 @@ package org.gradlex.javamodule.dependencies.test +import org.gradle.util.GradleVersion import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild import spock.lang.Specification @@ -11,6 +12,7 @@ class ConfigurationCacheTest extends Specification { def "configurationCacheHit"() { given: libModuleInfoFile << 'module abc.lib { }' + appModuleInfoFile << ''' module abc.app { requires abc.lib; @@ -18,12 +20,12 @@ class ConfigurationCacheTest extends Specification { ''' - def runner = runner(':app:compileJava') + def runner = runner('--configuration-cache',':app:compileJava') when: def result = runner.build() then: - result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + result.getOutput().contains(getNoCacheMessage() ) when: result = runner.build() @@ -32,6 +34,23 @@ class ConfigurationCacheTest extends Specification { result.getOutput().contains("Reusing configuration cache.") } + private String getNoCacheMessage() { + if (getVersionTest() >= GradleVersion.version("8.8")) { + return "Calculating task graph as no cached configuration is available for tasks: :app:compileJava" + } else { + return "Calculating task graph as no configuration cache is available for tasks: :app:compileJava" + } + + + } + + private GradleVersion getVersionTest() { + if (gradleVersionUnderTest == null) { + return GradleVersion.current() + } + return GradleVersion.version(gradleVersionUnderTest) + } + def "configurationCacheHitIrrelevantChange"() { libModuleInfoFile << 'module abc.lib { }' appModuleInfoFile << ''' @@ -40,12 +59,12 @@ class ConfigurationCacheTest extends Specification { } ''' - def runner = runner(':app:compileJava') + def runner = runner('--configuration-cache',':app:compileJava') when: def result = runner.build() then: - result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + result.getOutput().contains(getNoCacheMessage()) when: appModuleInfoFile.write(''' @@ -68,12 +87,12 @@ class ConfigurationCacheTest extends Specification { } ''' - def runner = runner(':app:compileJava') + def runner = runner('--configuration-cache',':app:compileJava') when: def result = runner.build() then: - result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") + result.getOutput().contains(getNoCacheMessage()) when: appModuleInfoFile.write(''' From 0bb7a67c399cae284c7553f963e29f075b98fcb2 Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 15:45:52 +0200 Subject: [PATCH 13/24] add and exception --- build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 0c220f32..f7e2c62e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -73,6 +73,10 @@ testing.suites.named("test") { description = "Runs tests against Gradle $gradleVersionUnderTest" systemProperty("gradleVersionUnderTest", gradleVersionUnderTest) exclude("**/*SamplesTest.class") // Not yet cross-version ready + if (gradleVersionUnderTest == "7.4") { + // affected by long since bugs in gradle + exclude("**/*ConfigurationCacheTest.class") + } exclude("**/initialization/**") // Settings plugin only for Gradle 8.8+ } } From 4eb556f192ce2318da6e590d84615f89527d38df Mon Sep 17 00:00:00 2001 From: goesen Date: Sun, 29 Sep 2024 16:02:22 +0200 Subject: [PATCH 14/24] typo --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index f7e2c62e..ef5801ab 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -74,7 +74,7 @@ testing.suites.named("test") { systemProperty("gradleVersionUnderTest", gradleVersionUnderTest) exclude("**/*SamplesTest.class") // Not yet cross-version ready if (gradleVersionUnderTest == "7.4") { - // affected by long since bugs in gradle + // affected by long since fixed bugs in gradle exclude("**/*ConfigurationCacheTest.class") } exclude("**/initialization/**") // Settings plugin only for Gradle 8.8+ From 80dc7a829a7a0eed3647cb9ebd9af1d26e510c0a Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 16:53:07 +0200 Subject: [PATCH 15/24] revert import reformating --- .../JavaModuleDependenciesPlugin.java | 19 ++++++++++++++++--- .../internal/utils/ModuleInfo.java | 7 +++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java index 17e2a545..0fc3e352 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java @@ -16,7 +16,11 @@ package org.gradlex.javamodule.dependencies; -import org.gradle.api.*; +import org.gradle.api.GradleException; +import org.gradle.api.NonNullApi; +import org.gradle.api.Plugin; +import org.gradle.api.Project; +import org.gradle.api.Task; import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.artifacts.VersionCatalogsExtension; @@ -36,7 +40,12 @@ import org.gradlex.javamodule.dependencies.internal.dsl.AllDirectivesInternal; import org.gradlex.javamodule.dependencies.internal.dsl.GradleOnlyDirectivesInternal; import org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo; -import org.gradlex.javamodule.dependencies.tasks.*; +import org.gradlex.javamodule.dependencies.tasks.BuildFileDependenciesGenerate; +import org.gradlex.javamodule.dependencies.tasks.ModuleDependencyReport; +import org.gradlex.javamodule.dependencies.tasks.ModuleDirectivesOrderingCheck; +import org.gradlex.javamodule.dependencies.tasks.ModuleInfoGenerate; +import org.gradlex.javamodule.dependencies.tasks.ModulePathAnalysis; +import org.gradlex.javamodule.dependencies.tasks.ModuleVersionRecommendation; import java.io.File; import java.util.HashSet; @@ -47,7 +56,11 @@ import static org.gradle.language.base.plugins.LifecycleBasePlugin.VERIFICATION_GROUP; import static org.gradlex.javamodule.dependencies.JavaModuleDependenciesExtension.JAVA_MODULE_DEPENDENCIES; import static org.gradlex.javamodule.dependencies.internal.utils.DependencyDeclarationsUtil.declaredDependencies; -import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.*; +import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES; +import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_RUNTIME; +import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_STATIC; +import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_STATIC_TRANSITIVE; +import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_TRANSITIVE; import static org.gradlex.javamodule.dependencies.internal.utils.ModuleNamingUtil.sourceSetToModuleName; @SuppressWarnings("unused") diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java index 8be5026b..762936f8 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java @@ -18,7 +18,11 @@ import javax.annotation.Nullable; import java.io.Serializable; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Objects; import static org.gradlex.javamodule.dependencies.internal.utils.ModuleNamingUtil.sourceSetToModuleName; @@ -102,7 +106,6 @@ public String moduleNamePrefix(String projectName, String sourceSetName, boolean return null; } - /** * @return true, if we are inside a multi-line comment after this line */ From b5fc768b7df6cd83f5afca234f27726f5414e24c Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 17:47:03 +0200 Subject: [PATCH 16/24] Adjust names for consistency --- .../JavaModuleDependenciesPlugin.java | 4 +++- .../internal/utils/ModuleInfoCache.java | 17 +++-------------- ...duleInfo.java => ModuleInfoValueSource.java} | 14 ++++---------- .../tasks/ModuleDirectivesOrderingCheck.java | 1 + 4 files changed, 11 insertions(+), 25 deletions(-) rename src/main/java/org/gradlex/javamodule/dependencies/internal/utils/{ValueSourceModuleInfo.java => ModuleInfoValueSource.java} (79%) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java index 0fc3e352..eec98333 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java @@ -236,7 +236,9 @@ private void setupOrderingCheckTasks(Project project, TaskProvider checkAl ModuleInfo moduleInfo = javaModuleDependencies.getModuleInfoCache().get().get(sourceSet, project.getProviders()); File folder = javaModuleDependencies.getModuleInfoCache().get().getFolder(sourceSet, project.getProviders()); - t.getModuleInfoPath().convention(folder == null ? "" : new File(folder, "module-info.java").getAbsolutePath()); + if (folder != null) { + t.getModuleInfoPath().convention(new File(folder, "module-info.java").getAbsolutePath()); + } t.getModuleNamePrefix().convention(moduleInfo.moduleNamePrefix(project.getName(), sourceSet.getName(), false)); t.getModuleInfo().convention(moduleInfo); diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java index 243246dd..b01d3f5f 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java @@ -16,12 +16,10 @@ package org.gradlex.javamodule.dependencies.internal.utils; -import org.gradle.api.Action; import org.gradle.api.logging.Logger; import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.Provider; import org.gradle.api.provider.ProviderFactory; -import org.gradle.api.provider.ValueSourceSpec; import org.gradle.api.tasks.SourceSet; import org.slf4j.LoggerFactory; @@ -124,17 +122,8 @@ private boolean maybePutModuleInfo(File folder, ProviderFactory providers) { } private Provider provideModuleInfo(File folder, ProviderFactory providers) { - return providers.of(ValueSourceModuleInfo.class, new Action>() { - @Override - public void execute(ValueSourceSpec moduleInfoSourcePValueSourceSpec) { - moduleInfoSourcePValueSourceSpec.parameters(new Action() { - @Override - public void execute(ValueSourceModuleInfo.ModuleInfoSourceP moduleInfoSourceP) { - moduleInfoSourceP.getDir().set(folder); - } - }); - - } - }); + return providers.of(ModuleInfoValueSource.class, + moduleInfoSourcePValueSourceSpec -> moduleInfoSourcePValueSourceSpec.parameters( + moduleInfoSourceP -> moduleInfoSourceP.getDir().set(folder))); } } diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoValueSource.java similarity index 79% rename from src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java rename to src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoValueSource.java index 3b5f2404..0a700a6d 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoValueSource.java @@ -25,28 +25,22 @@ import java.io.IOException; import java.util.Scanner; -public abstract class ValueSourceModuleInfo implements ValueSource { - - - interface ModuleInfoSourceP extends ValueSourceParameters { +public abstract class ModuleInfoValueSource implements ValueSource { + interface ModuleInfoValueSourceParameter extends ValueSourceParameters { DirectoryProperty getDir(); } - @Override public @Nullable ModuleInfo obtain() { - ModuleInfoSourceP parameters = getParameters(); + ModuleInfoValueSourceParameter parameters = getParameters(); File file = new File(parameters.getDir().get().getAsFile(), "module-info.java"); if (file.isFile()) { try { - Scanner scan = new Scanner(file); - try { + try (Scanner scan = new Scanner(file)) { scan.useDelimiter("\\Z"); String content = scan.next(); return new ModuleInfo(content); - } finally { - scan.close(); } } catch (IOException e) { throw new RuntimeException(e); diff --git a/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModuleDirectivesOrderingCheck.java b/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModuleDirectivesOrderingCheck.java index 0ba5c10f..81006eeb 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModuleDirectivesOrderingCheck.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/tasks/ModuleDirectivesOrderingCheck.java @@ -36,6 +36,7 @@ public abstract class ModuleDirectivesOrderingCheck extends DefaultTask { @Input + @Optional public abstract Property getModuleInfoPath(); @Input From f41db488d21593813290c26b650990cdab61e618 Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 18:05:08 +0200 Subject: [PATCH 17/24] Move config cache tests into own test package and some cleanup --- build.gradle.kts | 7 ++-- .../dependencies/unique_modules.properties | 2 +- .../ConfigurationCacheTest.groovy | 34 +++++------------ .../initialization/SettingsPluginTest.groovy | 37 ++----------------- 4 files changed, 17 insertions(+), 63 deletions(-) rename src/test/groovy/org/gradlex/javamodule/dependencies/test/{ => configcache}/ConfigurationCacheTest.groovy (67%) diff --git a/build.gradle.kts b/build.gradle.kts index 9e5a5edd..fc2518c1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -73,11 +73,12 @@ testing.suites.named("test") { description = "Runs tests against Gradle $gradleVersionUnderTest" systemProperty("gradleVersionUnderTest", gradleVersionUnderTest) exclude("**/*SamplesTest.class") // Not yet cross-version ready + exclude("**/initialization/**") // Settings plugin only for Gradle 8.8+ if (gradleVersionUnderTest == "7.4") { - // affected by long since fixed bugs in gradle - exclude("**/*ConfigurationCacheTest.class") + // Configuration cache only "reliable" since 7.6 (?) + // https://github.com/gradlex-org/java-module-dependencies/issues/129 + exclude("**/configcache/**") } - exclude("**/initialization/**") // Settings plugin only for Gradle 8.8+ } } } diff --git a/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties b/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties index 097059fd..a45f3e56 100644 --- a/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties +++ b/src/main/resources/org/gradlex/javamodule/dependencies/unique_modules.properties @@ -1151,7 +1151,7 @@ com.github.gv2011.util.gcol=com.github.gv2011:util-gcol com.github.gv2011.util.html.imp=com.github.gv2011:util-html com.github.gv2011.util.image=com.github.gv2011:util-image com.github.gv2011.util.json.imp=com.github.gv2011:util-json -com.github.gv2011.util.swing=com.github.gv2011:util-swing +com.github.gv2011.util.swing.imp=com.github.gv2011:util-swing com.github.gv2011.util.tika=com.github.gv2011:util-tika com.github.gw2toolbelt.gw2ml=com.github.gw2toolbelt.gw2ml:gw2ml com.github.hanshsieh.pixivj=com.github.hanshsieh:pixivj diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy similarity index 67% rename from src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy rename to src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy index 800b387b..1a8762cd 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/ConfigurationCacheTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy @@ -1,11 +1,13 @@ -package org.gradlex.javamodule.dependencies.test +package org.gradlex.javamodule.dependencies.test.configcache -import org.gradle.util.GradleVersion import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild import spock.lang.Specification class ConfigurationCacheTest extends Specification { + static final NO_CACHE_MESSAGE = + "Calculating task graph as no cached configuration is available for tasks: :app:compileJava" + @Delegate GradleBuild build = new GradleBuild() @@ -19,36 +21,18 @@ class ConfigurationCacheTest extends Specification { } ''' - def runner = runner('--configuration-cache',':app:compileJava') when: def result = runner.build() then: - result.getOutput().contains(getNoCacheMessage() ) + result.output.contains(NO_CACHE_MESSAGE) when: result = runner.build() then: - result.getOutput().contains("Reusing configuration cache.") - } - - private String getNoCacheMessage() { - if (getVersionTest() >= GradleVersion.version("8.8")) { - return "Calculating task graph as no cached configuration is available for tasks: :app:compileJava" - } else { - return "Calculating task graph as no configuration cache is available for tasks: :app:compileJava" - } - - - } - - private GradleVersion getVersionTest() { - if (gradleVersionUnderTest == null) { - return GradleVersion.current() - } - return GradleVersion.version(gradleVersionUnderTest) + result.output.contains("Reusing configuration cache.") } def "configurationCacheHitIrrelevantChange"() { @@ -64,7 +48,7 @@ class ConfigurationCacheTest extends Specification { def result = runner.build() then: - result.getOutput().contains(getNoCacheMessage()) + result.output.contains(NO_CACHE_MESSAGE) when: appModuleInfoFile.write(''' @@ -75,7 +59,7 @@ class ConfigurationCacheTest extends Specification { result = runner.build() then: - result.getOutput().contains("Reusing configuration cache.") + result.output.contains("Reusing configuration cache.") } def "configurationCacheMissRelevantChange"() { @@ -92,7 +76,7 @@ class ConfigurationCacheTest extends Specification { def result = runner.build() then: - result.getOutput().contains(getNoCacheMessage()) + result.output.contains(NO_CACHE_MESSAGE) when: appModuleInfoFile.write(''' diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy index 7d194002..68d01146 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy @@ -1,6 +1,5 @@ package org.gradlex.javamodule.dependencies.test.initialization -import org.gradle.testkit.runner.GradleRunner import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild import spock.lang.Specification @@ -91,37 +90,7 @@ class SettingsPluginTest extends Specification { result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") when: - result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH - result = runner.build() - - then: - result.getOutput().contains("Reusing configuration cache.") - } - - def "configurationCacheHit"() { - given: - settingsFile << ''' - javaModules { - directory(".") { plugin("java-library") } - } - ''' - libModuleInfoFile << 'module abc.lib { }' - appModuleInfoFile << ''' - module org.gradlex.test.app { - requires abc.lib; - } - ''' - - - def runner = runner(':app:compileJava') - when: - def result = runner.build() - - then: - result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") - - when: - result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH + runner.build() // https://github.com/gradlex-org/java-module-dependencies/issues/128 result = runner.build() then: @@ -150,7 +119,7 @@ class SettingsPluginTest extends Specification { result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") when: - result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH + runner.build() // https://github.com/gradlex-org/java-module-dependencies/issues/128 appModuleInfoFile.write(''' module org.gradlex.test.app { requires abc.lib; //This is a comment and should not break the configurationCache @@ -184,7 +153,7 @@ class SettingsPluginTest extends Specification { result.getOutput().contains("Calculating task graph as no cached configuration is available for tasks: :app:compileJava") when: - result = runner.build() //TODO Thats a big problem with the Settings Plugin AAAAAAAAH + runner.build() // https://github.com/gradlex-org/java-module-dependencies/issues/128 appModuleInfoFile.write(''' module org.gradlex.test.app { //dependency removed; so thats indeed a configuration change From a2dd946744965c49d72da5a4ce51c8baccdf765e Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 18:17:22 +0200 Subject: [PATCH 18/24] rename: ModuleInfoValueSource -> ValueSourceModuleInfo There seems to be some kind of name clash with other things called 'ModuleInfo'. --- .../dependencies/internal/utils/ModuleInfoCache.java | 4 +--- ...oduleInfoValueSource.java => ValueSourceModuleInfo.java} | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) rename src/main/java/org/gradlex/javamodule/dependencies/internal/utils/{ModuleInfoValueSource.java => ValueSourceModuleInfo.java} (84%) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java index b01d3f5f..a8a68550 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java @@ -122,8 +122,6 @@ private boolean maybePutModuleInfo(File folder, ProviderFactory providers) { } private Provider provideModuleInfo(File folder, ProviderFactory providers) { - return providers.of(ModuleInfoValueSource.class, - moduleInfoSourcePValueSourceSpec -> moduleInfoSourcePValueSourceSpec.parameters( - moduleInfoSourceP -> moduleInfoSourceP.getDir().set(folder))); + return providers.of(ValueSourceModuleInfo.class, spec -> spec.parameters(param -> param.getDir().set(folder))); } } diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoValueSource.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java similarity index 84% rename from src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoValueSource.java rename to src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java index 0a700a6d..524d6b83 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoValueSource.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ValueSourceModuleInfo.java @@ -25,15 +25,15 @@ import java.io.IOException; import java.util.Scanner; -public abstract class ModuleInfoValueSource implements ValueSource { +public abstract class ValueSourceModuleInfo implements ValueSource { - interface ModuleInfoValueSourceParameter extends ValueSourceParameters { + interface Parameter extends ValueSourceParameters { DirectoryProperty getDir(); } @Override public @Nullable ModuleInfo obtain() { - ModuleInfoValueSourceParameter parameters = getParameters(); + Parameter parameters = getParameters(); File file = new File(parameters.getDir().get().getAsFile(), "module-info.java"); if (file.isFile()) { try { From 17b73487d609c2a66c8ad5b8749dfc6a1ba29b2e Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 18:22:32 +0200 Subject: [PATCH 19/24] Reformat code for readability --- .../internal/utils/ModuleInfo.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java index 762936f8..f4c362db 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfo.java @@ -55,7 +55,7 @@ public String literal() { public ModuleInfo(String moduleInfoFileContent) { boolean insideComment = false; - for(String line: moduleInfoFileContent.split("\n")) { + for (String line : moduleInfoFileContent.split("\n")) { insideComment = parse(line, insideComment); } } @@ -150,11 +150,23 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ModuleInfo that = (ModuleInfo) o; - return Objects.equals(moduleName, that.moduleName) && Objects.equals(requires, that.requires) && Objects.equals(requiresTransitive, that.requiresTransitive) && Objects.equals(requiresStatic, that.requiresStatic) && Objects.equals(requiresStaticTransitive, that.requiresStaticTransitive) && Objects.equals(requiresRuntime, that.requiresRuntime); + return Objects.equals(moduleName, that.moduleName) + && Objects.equals(requires, that.requires) + && Objects.equals(requiresTransitive, that.requiresTransitive) + && Objects.equals(requiresStatic, that.requiresStatic) + && Objects.equals(requiresStaticTransitive, that.requiresStaticTransitive) + && Objects.equals(requiresRuntime, that.requiresRuntime); } @Override public int hashCode() { - return Objects.hash(moduleName, requires, requiresTransitive, requiresStatic, requiresStaticTransitive, requiresRuntime); + return Objects.hash( + moduleName, + requires, + requiresTransitive, + requiresStatic, + requiresStaticTransitive, + requiresRuntime + ); } } From 6c0b512a74dfd68e7d2b2cfeccd089b82f26e0f9 Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 18:23:16 +0200 Subject: [PATCH 20/24] Remove empty line --- .../javamodule/dependencies/internal/utils/ModuleInfoCache.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java index a8a68550..c9394087 100644 --- a/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java +++ b/src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java @@ -77,7 +77,6 @@ public File getFolder(SourceSet sourceSet, ProviderFactory providers) { return null; } - /** * @param projectRoot the project that should hold a Java module * @return parsed module-info.java for the given project assuming a standard Java project layout From 37ddeceb7d07b7c1877610de26d246658b04e453 Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 18:24:37 +0200 Subject: [PATCH 21/24] Remove empty line --- .../dependencies/test/initialization/SettingsPluginTest.groovy | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy index 68d01146..1f578d11 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy @@ -165,7 +165,6 @@ class SettingsPluginTest extends Specification { result.output.contains("Calculating task graph as configuration cache cannot be reused because a build logic input of type 'ValueSourceModuleInfo' has changed.\n") } - def "automatically sets module for application plugin"() { given: settingsFile << ''' From 7ed13233db213012c112b6a823450d5131efcae2 Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 19:12:08 +0200 Subject: [PATCH 22/24] restore: message assertion in test depends on Gradle version --- .../configcache/ConfigurationCacheTest.groovy | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy index 1a8762cd..0fba48e8 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy @@ -3,14 +3,17 @@ package org.gradlex.javamodule.dependencies.test.configcache import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild import spock.lang.Specification -class ConfigurationCacheTest extends Specification { +import static org.gradle.util.GradleVersion.version - static final NO_CACHE_MESSAGE = - "Calculating task graph as no cached configuration is available for tasks: :app:compileJava" +class ConfigurationCacheTest extends Specification { @Delegate GradleBuild build = new GradleBuild() + final noCacheMessage = version(gradleVersionUnderTest) >= version("8.8") + ? "Calculating task graph as no cached configuration is available for tasks: :app:compileJava" + : "Calculating task graph as no configuration cache is available for tasks: :app:compileJava" + def "configurationCacheHit"() { given: libModuleInfoFile << 'module abc.lib { }' @@ -26,7 +29,7 @@ class ConfigurationCacheTest extends Specification { def result = runner.build() then: - result.output.contains(NO_CACHE_MESSAGE) + result.output.contains(noCacheMessage) when: result = runner.build() @@ -48,7 +51,7 @@ class ConfigurationCacheTest extends Specification { def result = runner.build() then: - result.output.contains(NO_CACHE_MESSAGE) + result.output.contains(noCacheMessage) when: appModuleInfoFile.write(''' @@ -76,7 +79,7 @@ class ConfigurationCacheTest extends Specification { def result = runner.build() then: - result.output.contains(NO_CACHE_MESSAGE) + result.output.contains(noCacheMessage) when: appModuleInfoFile.write(''' From ddb2c84a707e4004115a9d8d862147f5a9fa379e Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 19:16:16 +0200 Subject: [PATCH 23/24] Add changelog entry --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24d1cb9c..a4b08236 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Java Module Dependencies Gradle Plugin - Changelog +## Version 1.8 +* [#127](https://github.com/gradlex-org/java-module-dependencies/issues/127) Less configuration cache misses when modifying `module-info.java` (Thanks [TheGoesen](https://github.com/TheGoesen)) + ## Version 1.7.1 * Update module name mappings From cfd7a5284ffba8020e5c7108f7cc3bfe071b2dcd Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Fri, 11 Oct 2024 19:34:57 +0200 Subject: [PATCH 24/24] Fix condition in test --- .../dependencies/test/configcache/ConfigurationCacheTest.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy b/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy index 0fba48e8..31f7f1d8 100644 --- a/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy +++ b/src/test/groovy/org/gradlex/javamodule/dependencies/test/configcache/ConfigurationCacheTest.groovy @@ -10,7 +10,7 @@ class ConfigurationCacheTest extends Specification { @Delegate GradleBuild build = new GradleBuild() - final noCacheMessage = version(gradleVersionUnderTest) >= version("8.8") + final noCacheMessage = !gradleVersionUnderTest || version(gradleVersionUnderTest) >= version("8.8") ? "Calculating task graph as no cached configuration is available for tasks: :app:compileJava" : "Calculating task graph as no configuration cache is available for tasks: :app:compileJava"