Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Java Module Dependencies Gradle Plugin - Changelog

## Version 1.10
* [#235](https://github.com/gradlex-org/java-module-dependencies/issues/235) Upgrade to Gradle 9.1, address deprecation
* [#221](https://github.com/gradlex-org/java-module-dependencies/issues/221) Upgrade to Gradle 9, remove deprecated features
* [#209](https://github.com/gradlex-org/java-module-dependencies/issues/209) Fix: configuration cache issue when building kotlin-dsl plugins
* Update module name mappings
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=8fad3d78296ca518113f3d29016617c7f9367dc005f932bd9d93bf45ba46072b
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
distributionSha256Sum=91b3bb52f09bab37df8f922d47d7df6ba76c00a52494a75feafad956f4d2a360
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-rc-4-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
3 changes: 0 additions & 3 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac

CLASSPATH="\\\"\\\""


# Determine the Java command to use to start the JVM.
Expand Down Expand Up @@ -172,7 +171,6 @@ fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )

JAVACMD=$( cygpath --unix "$JAVACMD" )

Expand Down Expand Up @@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"

Expand Down
3 changes: 1 addition & 2 deletions gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,10 @@ goto fail
:execute
@rem Setup the command line

set CLASSPATH=


@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*

:end
@rem End local scope for the variables with windows NT shell
Expand Down
23 changes: 0 additions & 23 deletions src/main/java/org/gradlex/javamodule/dependencies/GAV.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.artifacts.Dependency;
import org.gradle.api.artifacts.ExternalDependency;
import org.gradle.api.artifacts.ModuleDependency;
import org.gradle.api.artifacts.ProjectDependency;
import org.gradle.api.artifacts.VersionCatalog;
Expand Down Expand Up @@ -63,6 +64,7 @@
import java.util.stream.Collectors;

import static java.util.Optional.empty;
import static org.gradlex.javamodule.dependencies.internal.utils.DependencyDeclarationsUtil.copyVersionConstraint;
import static org.gradlex.javamodule.dependencies.internal.utils.ModuleInfo.Directive.REQUIRES_RUNTIME;

/**
Expand Down Expand Up @@ -280,7 +282,7 @@ private Provider<Dependency> createWithGuessing(String moduleName, SourceSet sou
private @Nullable ModuleDependency createExternalDependency(String moduleName) {
Provider<String> coordinates = getModuleNameToGA().getting(moduleName).orElse(mapByPrefix(getProviders().provider(() -> moduleName)));
if (coordinates.isPresent()) {
Map<String, Object> component;
ExternalDependency component;
String capability;
if (coordinates.get().contains("|")) {
String[] split = coordinates.get().split("\\|");
Expand Down Expand Up @@ -344,7 +346,7 @@ public Provider<String> gav(Provider<String> moduleName, Provider<String> versio
* @return Dependency notation
*/
@SuppressWarnings("unused")
public Provider<Map<String, Object>> gav(String moduleName) {
public Provider<ExternalDependency> gav(String moduleName) {
return ga(moduleName).map(ga -> findGav(ga, moduleName));
}

Expand All @@ -358,24 +360,19 @@ public Provider<Map<String, Object>> gav(String moduleName) {
* @return Dependency notation
*/
@SuppressWarnings("unused")
public Provider<Map<String, Object>> gav(Provider<String> moduleName) {
public Provider<ExternalDependency> gav(Provider<String> moduleName) {
return ga(moduleName).map(ga -> findGav(ga, moduleName.get()));
}

private Map<String, Object> findGav(String ga, String moduleName) {
VersionCatalog catalog = versionCatalogs == null ? null : versionCatalogs.find(getVersionCatalogName().get()).orElse(null);
Optional<VersionConstraint> version = catalog == null ? empty() : catalog.findVersion(moduleName.replace('_', '.'));
Map<String, Object> gav = new HashMap<>();
String[] gaSplit = ga.split(":");
if (gaSplit.length < 2) {
throw new RuntimeException("Invalid mapping: " + moduleName + "="+ ga);
}
gav.put(GAV.GROUP, gaSplit[0]);
gav.put(GAV.ARTIFACT, gaSplit[1]);
version.ifPresent(versionConstraint -> gav.put(GAV.VERSION, versionConstraint));
return gav;
private ExternalDependency findGav(String ga, String moduleName) {
Optional<VersionCatalog> catalog = versionCatalogs == null ? empty() : versionCatalogs.find(getVersionCatalogName().get());
Optional<VersionConstraint> version = catalog.flatMap(versionCatalog -> versionCatalog.findVersion(moduleName.replace('_', '.')));
ExternalDependency dependency = (ExternalDependency) getDependencies().create(ga);
version.ifPresent(versionConstraint -> dependency.version(copy -> copyVersionConstraint(versionConstraint, copy)));
return dependency;
}


/**
* Finds the Module Name for given coordinates
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.artifacts.Dependency;
import org.gradle.api.artifacts.ModuleDependency;
import org.gradle.api.artifacts.MutableVersionConstraint;
import org.gradle.api.artifacts.ProjectDependency;
import org.gradle.api.artifacts.VersionConstraint;
import org.gradle.api.attributes.Category;
import org.gradle.api.capabilities.Capability;
import org.gradle.api.provider.Provider;
Expand Down Expand Up @@ -65,4 +67,28 @@ private static boolean isLibraryDependency(Dependency dependency) {
}
return false;
}

/**
* Fill a MutableVersionConstraint with the information from another VersionConstraint object retrieved
* from a version catalog.
*/
public static void copyVersionConstraint(VersionConstraint version, MutableVersionConstraint copy) {
String branch = version.getBranch();
String requiredVersion = version.getRequiredVersion();
String preferredVersion = version.getPreferredVersion();
String strictVersion = version.getStrictVersion();

if (branch != null && !branch.isEmpty()) {
copy.setBranch(branch);
}
if (!requiredVersion.isEmpty()) {
copy.require(requiredVersion);
}
if (!preferredVersion.isEmpty()) {
copy.prefer(preferredVersion);
}
if (!strictVersion.isEmpty()) {
copy.strictly(strictVersion);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,12 @@ void can_add_custom_mapping_via_properties_file_in_custom_location() {
@Test
void can_use_custom_catalog() {
build.settingsFile.appendText("""
dependencyResolutionManagement.versionCatalogs.create("modules") {
dependencyResolutionManagement.versionCatalogs.create("moduleLibs") {
version("org.apache.xmlbeans", "5.0.1")
version("com.fasterxml.jackson.databind", "2.12.5")
}""");
build.appBuildFile.appendText("""
javaModuleDependencies.versionCatalogName.set("modules")""");
javaModuleDependencies.versionCatalogName.set("moduleLibs")""");
build.appModuleInfoFile.writeText("""
module org.gradlex.test.app {
requires com.fasterxml.jackson.databind;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public GradleRunner runner(boolean projectIsolation, String... args) {
);
Stream<String> standardArgs = Stream.of(
"-s",
"--warning-mode=all",
"--warning-mode=fail",
"-Porg.gradlex.java-module-dependencies.register-help-tasks=" + withHelpTasks
);
GradleRunner runner = GradleRunner.create()
Expand Down