mirror of
https://github.com/ethauvin/bld.git
synced 2025-04-25 16:27:11 -07:00
Added support for overriding dependency versions with properties throughout all of dependency resolution.
This commit is contained in:
parent
fd38de9644
commit
30f456e47a
27 changed files with 1002 additions and 214 deletions
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
|
@ -1,8 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="PDMPlugin">
|
<component name="PDMPlugin">
|
||||||
<option name="skipTestSources" value="false" />
|
<option name="skipTestSources" value="false" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="19" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build" />
|
<output url="file://$PROJECT_DIR$/build" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=file:/Users/gbevin/.m2/repository/com/uwyn/rife2/bld/2.0.0-SNAPSHOT
|
||||||
bld.extension-antlr=com.uwyn.rife2:bld-antlr4:1.2.8
|
bld.extension-antlr=com.uwyn.rife2:bld-antlr4:1.2.8
|
||||||
bld.extension-archive=com.uwyn.rife2:bld-archive:0.4.8
|
bld.extension-archive=com.uwyn.rife2:bld-archive:0.4.8
|
||||||
bld.extension-tests=com.uwyn.rife2:bld-tests-badge:1.4.8
|
bld.extension-tests=com.uwyn.rife2:bld-tests-badge:1.4.8
|
||||||
|
|
|
@ -1616,6 +1616,7 @@ public class BaseProject extends BuildExecutor {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String createHash() {
|
private String createHash() {
|
||||||
|
var resolution = new VersionResolution(properties());
|
||||||
var finger_print = new StringBuilder();
|
var finger_print = new StringBuilder();
|
||||||
for (var repository : repositories()) {
|
for (var repository : repositories()) {
|
||||||
finger_print.append(repository.toString());
|
finger_print.append(repository.toString());
|
||||||
|
@ -1626,7 +1627,7 @@ public class BaseProject extends BuildExecutor {
|
||||||
finger_print.append('\n');
|
finger_print.append('\n');
|
||||||
if (entry.getValue() != null) {
|
if (entry.getValue() != null) {
|
||||||
for (var dependency : entry.getValue()) {
|
for (var dependency : entry.getValue()) {
|
||||||
finger_print.append(dependency.toString());
|
finger_print.append(resolution.overrideDependency(dependency).toString());
|
||||||
finger_print.append('\n');
|
finger_print.append('\n');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,7 +132,7 @@ public class BuildExecutor {
|
||||||
*
|
*
|
||||||
* @return {@code true} if JSON output is enabled;
|
* @return {@code true} if JSON output is enabled;
|
||||||
* or {@code false} otherwise
|
* or {@code false} otherwise
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public boolean outputJson() {
|
public boolean outputJson() {
|
||||||
return outputJson_;
|
return outputJson_;
|
||||||
|
|
|
@ -139,6 +139,16 @@ public record Dependency(String groupId, String artifactId, VersionNumber versio
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a string representation of the dependency in the format "groupId:artifactId".
|
||||||
|
*
|
||||||
|
* @return the string representation of the dependency
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public String toArtifactString() {
|
||||||
|
return groupId + ':' + artifactId;
|
||||||
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
var result = new StringBuilder(groupId).append(':').append(artifactId);
|
var result = new StringBuilder(groupId).append(':').append(artifactId);
|
||||||
if (!version.equals(VersionNumber.UNKNOWN)) {
|
if (!version.equals(VersionNumber.UNKNOWN)) {
|
||||||
|
|
|
@ -18,6 +18,7 @@ import java.util.stream.Collectors;
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public class DependencyResolver {
|
public class DependencyResolver {
|
||||||
|
private final VersionResolution resolution_;
|
||||||
private final ArtifactRetriever retriever_;
|
private final ArtifactRetriever retriever_;
|
||||||
private final List<Repository> repositories_;
|
private final List<Repository> repositories_;
|
||||||
private final Dependency dependency_;
|
private final Dependency dependency_;
|
||||||
|
@ -30,12 +31,14 @@ public class DependencyResolver {
|
||||||
* <p>
|
* <p>
|
||||||
* The repositories will be checked in the order they're listed.
|
* The repositories will be checked in the order they're listed.
|
||||||
*
|
*
|
||||||
|
* @param resolution the version resolution state that can be cached
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the resolution
|
* @param repositories the repositories to use for the resolution
|
||||||
* @param dependency the dependency to resolve
|
* @param dependency the dependency to resolve
|
||||||
* @since 1.5.18
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public DependencyResolver(ArtifactRetriever retriever, List<Repository> repositories, Dependency dependency) {
|
public DependencyResolver(VersionResolution resolution, ArtifactRetriever retriever, List<Repository> repositories, Dependency dependency) {
|
||||||
|
resolution_ = resolution;
|
||||||
retriever_ = retriever;
|
retriever_ = retriever;
|
||||||
if (repositories == null) {
|
if (repositories == null) {
|
||||||
repositories = Collections.emptyList();
|
repositories = Collections.emptyList();
|
||||||
|
@ -64,7 +67,6 @@ public class DependencyResolver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resolves the dependency version in the provided repositories.
|
* Resolves the dependency version in the provided repositories.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -77,7 +79,7 @@ public class DependencyResolver {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public VersionNumber resolveVersion() {
|
public VersionNumber resolveVersion() {
|
||||||
var version = dependency_.version();
|
var version = resolution_.overrideVersion(dependency_);
|
||||||
if (version.equals(VersionNumber.UNKNOWN)) {
|
if (version.equals(VersionNumber.UNKNOWN)) {
|
||||||
return latestVersion();
|
return latestVersion();
|
||||||
}
|
}
|
||||||
|
@ -98,7 +100,7 @@ public class DependencyResolver {
|
||||||
var pom_dependencies = getMavenPom(dependency_).getDependencies(scopes);
|
var pom_dependencies = getMavenPom(dependency_).getDependencies(scopes);
|
||||||
var result = new DependencySet();
|
var result = new DependencySet();
|
||||||
for (var dependency : pom_dependencies) {
|
for (var dependency : pom_dependencies) {
|
||||||
result.add(dependency.convertToDependency());
|
result.add(resolution_.overrideDependency(dependency.convertToDependency()));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -118,11 +120,12 @@ public class DependencyResolver {
|
||||||
*/
|
*/
|
||||||
public DependencySet getAllDependencies(Scope... scopes) {
|
public DependencySet getAllDependencies(Scope... scopes) {
|
||||||
var result = new DependencySet();
|
var result = new DependencySet();
|
||||||
result.add(dependency_);
|
var overridden = resolution_.overrideDependency(dependency_);
|
||||||
|
result.add(overridden);
|
||||||
|
|
||||||
var dependency_queue = new ArrayList<PomDependency>();
|
var dependency_queue = new ArrayList<PomDependency>();
|
||||||
|
|
||||||
var parent = dependency_;
|
var parent = overridden;
|
||||||
var next_dependencies = getMavenPom(parent).getDependencies(scopes);
|
var next_dependencies = getMavenPom(parent).getDependencies(scopes);
|
||||||
|
|
||||||
while (parent != null && next_dependencies != null) {
|
while (parent != null && next_dependencies != null) {
|
||||||
|
@ -142,7 +145,7 @@ public class DependencyResolver {
|
||||||
// part of the results yet
|
// part of the results yet
|
||||||
while (!dependency_queue.isEmpty()) {
|
while (!dependency_queue.isEmpty()) {
|
||||||
var candidate = dependency_queue.remove(0);
|
var candidate = dependency_queue.remove(0);
|
||||||
var dependency = candidate.convertToDependency();
|
var dependency = resolution_.overrideDependency(candidate.convertToDependency());
|
||||||
if (!result.contains(dependency)) {
|
if (!result.contains(dependency)) {
|
||||||
result.add(dependency);
|
result.add(dependency);
|
||||||
|
|
||||||
|
@ -150,7 +153,7 @@ public class DependencyResolver {
|
||||||
// dependencies so that they can be added to the queue after
|
// dependencies so that they can be added to the queue after
|
||||||
// filtering
|
// filtering
|
||||||
parent = dependency;
|
parent = dependency;
|
||||||
next_dependencies = new DependencyResolver(retriever_, repositories_, dependency).getMavenPom(parent).getDependencies(scopes);
|
next_dependencies = new DependencyResolver(resolution_, retriever_, repositories_, dependency).getMavenPom(parent).getDependencies(scopes);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -258,6 +261,16 @@ public class DependencyResolver {
|
||||||
return dependency_;
|
return dependency_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the version resolution state that can be cached.
|
||||||
|
*
|
||||||
|
* @return the version resolution state
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public VersionResolution resolution() {
|
||||||
|
return resolution_;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves all the potential locations for the dependency
|
* Retrieves all the potential locations for the dependency
|
||||||
* within the provided repositories.
|
* within the provided repositories.
|
||||||
|
@ -435,7 +448,7 @@ public class DependencyResolver {
|
||||||
throw new ArtifactNotFoundException(dependency_, location);
|
throw new ArtifactNotFoundException(dependency_, location);
|
||||||
}
|
}
|
||||||
|
|
||||||
var xml = new Xml2MavenPom(parent, retriever_, repositories_);
|
var xml = new Xml2MavenPom(parent, resolution_, retriever_, repositories_);
|
||||||
if (!xml.processXml(pom)) {
|
if (!xml.processXml(pom)) {
|
||||||
throw new DependencyXmlParsingErrorException(dependency_, retrieved_artifact.location(), xml.getErrors());
|
throw new DependencyXmlParsingErrorException(dependency_, retrieved_artifact.location(), xml.getErrors());
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
*/
|
*/
|
||||||
package rife.bld.dependencies;
|
package rife.bld.dependencies;
|
||||||
|
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -66,13 +68,14 @@ public class DependencyScopes extends LinkedHashMap<Scope, DependencySet> {
|
||||||
/**
|
/**
|
||||||
* Returns the transitive set of dependencies that would be used for the compile scope in a project.
|
* Returns the transitive set of dependencies that would be used for the compile scope in a project.
|
||||||
*
|
*
|
||||||
|
* @param properties the properties to use to get artifacts
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the resolution
|
* @param repositories the repositories to use for the resolution
|
||||||
* @return the compile scope dependency set
|
* @return the compile scope dependency set
|
||||||
* @since 1.6
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public DependencySet resolveCompileDependencies(ArtifactRetriever retriever, List<Repository> repositories) {
|
public DependencySet resolveCompileDependencies(HierarchicalProperties properties, ArtifactRetriever retriever, List<Repository> repositories) {
|
||||||
return resolveScopedDependencies(retriever, repositories,
|
return resolveScopedDependencies(properties, retriever, repositories,
|
||||||
new Scope[]{Scope.compile},
|
new Scope[]{Scope.compile},
|
||||||
new Scope[]{Scope.compile},
|
new Scope[]{Scope.compile},
|
||||||
null);
|
null);
|
||||||
|
@ -81,13 +84,14 @@ public class DependencyScopes extends LinkedHashMap<Scope, DependencySet> {
|
||||||
/**
|
/**
|
||||||
* Returns the transitive set of dependencies that would be used for the provided scope in a project.
|
* Returns the transitive set of dependencies that would be used for the provided scope in a project.
|
||||||
*
|
*
|
||||||
|
* @param properties the properties to use to get artifacts
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the resolution
|
* @param repositories the repositories to use for the resolution
|
||||||
* @return the provided scope dependency set
|
* @return the provided scope dependency set
|
||||||
* @since 1.8
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public DependencySet resolveProvidedDependencies(ArtifactRetriever retriever, List<Repository> repositories) {
|
public DependencySet resolveProvidedDependencies(HierarchicalProperties properties, ArtifactRetriever retriever, List<Repository> repositories) {
|
||||||
return resolveScopedDependencies(retriever, repositories,
|
return resolveScopedDependencies(properties, retriever, repositories,
|
||||||
new Scope[]{Scope.provided},
|
new Scope[]{Scope.provided},
|
||||||
new Scope[]{Scope.compile, Scope.runtime},
|
new Scope[]{Scope.compile, Scope.runtime},
|
||||||
null);
|
null);
|
||||||
|
@ -96,28 +100,30 @@ public class DependencyScopes extends LinkedHashMap<Scope, DependencySet> {
|
||||||
/**
|
/**
|
||||||
* Returns the transitive set of dependencies that would be used for the runtime scope in a project.
|
* Returns the transitive set of dependencies that would be used for the runtime scope in a project.
|
||||||
*
|
*
|
||||||
|
* @param properties the properties to use to get artifacts
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the resolution
|
* @param repositories the repositories to use for the resolution
|
||||||
* @return the runtime scope dependency set
|
* @return the runtime scope dependency set
|
||||||
* @since 1.6
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public DependencySet resolveRuntimeDependencies(ArtifactRetriever retriever, List<Repository> repositories) {
|
public DependencySet resolveRuntimeDependencies(HierarchicalProperties properties, ArtifactRetriever retriever, List<Repository> repositories) {
|
||||||
return resolveScopedDependencies(retriever, repositories,
|
return resolveScopedDependencies(properties, retriever, repositories,
|
||||||
new Scope[]{Scope.compile, Scope.runtime},
|
new Scope[]{Scope.compile, Scope.runtime},
|
||||||
new Scope[]{Scope.compile, Scope.runtime},
|
new Scope[]{Scope.compile, Scope.runtime},
|
||||||
resolveCompileDependencies(retriever, repositories));
|
resolveCompileDependencies(properties, retriever, repositories));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the transitive set of dependencies that would be used for the standalone scope in a project.
|
* Returns the transitive set of dependencies that would be used for the standalone scope in a project.
|
||||||
*
|
*
|
||||||
|
* @param properties the properties to use to get artifacts
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the resolution
|
* @param repositories the repositories to use for the resolution
|
||||||
* @return the standalone scope dependency set
|
* @return the standalone scope dependency set
|
||||||
* @since 1.6
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public DependencySet resolveStandaloneDependencies(ArtifactRetriever retriever, List<Repository> repositories) {
|
public DependencySet resolveStandaloneDependencies(HierarchicalProperties properties, ArtifactRetriever retriever, List<Repository> repositories) {
|
||||||
return resolveScopedDependencies(retriever, repositories,
|
return resolveScopedDependencies(properties, retriever, repositories,
|
||||||
new Scope[]{Scope.standalone},
|
new Scope[]{Scope.standalone},
|
||||||
new Scope[]{Scope.compile, Scope.runtime},
|
new Scope[]{Scope.compile, Scope.runtime},
|
||||||
null);
|
null);
|
||||||
|
@ -126,25 +132,27 @@ public class DependencyScopes extends LinkedHashMap<Scope, DependencySet> {
|
||||||
/**
|
/**
|
||||||
* Returns the transitive set of dependencies that would be used for the test scope in a project.
|
* Returns the transitive set of dependencies that would be used for the test scope in a project.
|
||||||
*
|
*
|
||||||
|
* @param properties the properties to use to get artifacts
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the resolution
|
* @param repositories the repositories to use for the resolution
|
||||||
* @return the test scope dependency set
|
* @return the test scope dependency set
|
||||||
* @since 1.6
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public DependencySet resolveTestDependencies(ArtifactRetriever retriever, List<Repository> repositories) {
|
public DependencySet resolveTestDependencies(HierarchicalProperties properties, ArtifactRetriever retriever, List<Repository> repositories) {
|
||||||
return resolveScopedDependencies(retriever, repositories,
|
return resolveScopedDependencies(properties, retriever, repositories,
|
||||||
new Scope[]{Scope.test},
|
new Scope[]{Scope.test},
|
||||||
new Scope[]{Scope.compile, Scope.runtime},
|
new Scope[]{Scope.compile, Scope.runtime},
|
||||||
null);
|
null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private DependencySet resolveScopedDependencies(ArtifactRetriever retriever, List<Repository> repositories, Scope[] resolvedScopes, Scope[] transitiveScopes, DependencySet excluded) {
|
private DependencySet resolveScopedDependencies(HierarchicalProperties properties, ArtifactRetriever retriever, List<Repository> repositories, Scope[] resolvedScopes, Scope[] transitiveScopes, DependencySet excluded) {
|
||||||
|
var resolution = new VersionResolution(properties);
|
||||||
var dependencies = new DependencySet();
|
var dependencies = new DependencySet();
|
||||||
for (var scope : resolvedScopes) {
|
for (var scope : resolvedScopes) {
|
||||||
var scoped_dependencies = get(scope);
|
var scoped_dependencies = get(scope);
|
||||||
if (scoped_dependencies != null) {
|
if (scoped_dependencies != null) {
|
||||||
for (var dependency : scoped_dependencies) {
|
for (var dependency : scoped_dependencies) {
|
||||||
dependencies.addAll(new DependencyResolver(retriever, repositories, dependency).getAllDependencies(transitiveScopes));
|
dependencies.addAll(new DependencyResolver(resolution, retriever, repositories, dependency).getAllDependencies(transitiveScopes));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,15 +84,16 @@ public class DependencySet extends AbstractSet<Dependency> implements Set<Depend
|
||||||
* <p>
|
* <p>
|
||||||
* The destination directory must exist and be writable.
|
* The destination directory must exist and be writable.
|
||||||
*
|
*
|
||||||
|
* @param resolution the version resolution state that can be cached
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the transfer
|
* @param repositories the repositories to use for the transfer
|
||||||
* @param directory the directory to transfer the artifacts into
|
* @param directory the directory to transfer the artifacts into
|
||||||
* @return the list of artifacts that were transferred successfully
|
* @return the list of artifacts that were transferred successfully
|
||||||
* @throws DependencyTransferException when an error occurred during the transfer
|
* @throws DependencyTransferException when an error occurred during the transfer
|
||||||
* @since 1.5.10
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public List<RepositoryArtifact> transferIntoDirectory(ArtifactRetriever retriever, List<Repository> repositories, File directory) {
|
public List<RepositoryArtifact> transferIntoDirectory(VersionResolution resolution, ArtifactRetriever retriever, List<Repository> repositories, File directory) {
|
||||||
return transferIntoDirectory(retriever, repositories, directory, (String[]) null);
|
return transferIntoDirectory(resolution, retriever, repositories, directory, (String[]) null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -101,18 +102,19 @@ public class DependencySet extends AbstractSet<Dependency> implements Set<Depend
|
||||||
* <p>
|
* <p>
|
||||||
* The destination directory must exist and be writable.
|
* The destination directory must exist and be writable.
|
||||||
*
|
*
|
||||||
|
* @param resolution the version resolution state that can be cached
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to use for the download
|
* @param repositories the repositories to use for the download
|
||||||
* @param directory the directory to download the artifacts into
|
* @param directory the directory to download the artifacts into
|
||||||
* @param classifiers the additional classifiers to transfer
|
* @param classifiers the additional classifiers to transfer
|
||||||
* @return the list of artifacts that were transferred successfully
|
* @return the list of artifacts that were transferred successfully
|
||||||
* @throws DependencyTransferException when an error occurred during the transfer
|
* @throws DependencyTransferException when an error occurred during the transfer
|
||||||
* @since 1.5.10
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public List<RepositoryArtifact> transferIntoDirectory(ArtifactRetriever retriever, List<Repository> repositories, File directory, String... classifiers) {
|
public List<RepositoryArtifact> transferIntoDirectory(VersionResolution resolution, ArtifactRetriever retriever, List<Repository> repositories, File directory, String... classifiers) {
|
||||||
var result = new ArrayList<RepositoryArtifact>();
|
var result = new ArrayList<RepositoryArtifact>();
|
||||||
for (var dependency : this) {
|
for (var dependency : this) {
|
||||||
var artifact = new DependencyResolver(retriever, repositories, dependency).transferIntoDirectory(directory);
|
var artifact = new DependencyResolver(resolution, retriever, repositories, dependency).transferIntoDirectory(directory);
|
||||||
if (artifact != null) {
|
if (artifact != null) {
|
||||||
result.add(artifact);
|
result.add(artifact);
|
||||||
}
|
}
|
||||||
|
@ -120,7 +122,7 @@ public class DependencySet extends AbstractSet<Dependency> implements Set<Depend
|
||||||
if (classifiers != null) {
|
if (classifiers != null) {
|
||||||
for (var classifier : classifiers) {
|
for (var classifier : classifiers) {
|
||||||
if (classifier != null) {
|
if (classifier != null) {
|
||||||
var classifier_artifact = new DependencyResolver(retriever, repositories, dependency.withClassifier(classifier)).transferIntoDirectory(directory);
|
var classifier_artifact = new DependencyResolver(resolution, retriever, repositories, dependency.withClassifier(classifier)).transferIntoDirectory(directory);
|
||||||
if (classifier_artifact != null) {
|
if (classifier_artifact != null) {
|
||||||
result.add(classifier_artifact);
|
result.add(classifier_artifact);
|
||||||
}
|
}
|
||||||
|
@ -150,17 +152,18 @@ public class DependencySet extends AbstractSet<Dependency> implements Set<Depend
|
||||||
* Generates the string description of the transitive hierarchical tree of
|
* Generates the string description of the transitive hierarchical tree of
|
||||||
* dependencies for a particular scope.
|
* dependencies for a particular scope.
|
||||||
*
|
*
|
||||||
|
* @param resolution the version resolution state that can be cached
|
||||||
* @param retriever the retriever to use to get artifacts
|
* @param retriever the retriever to use to get artifacts
|
||||||
* @param repositories the repositories to look for dependencies in
|
* @param repositories the repositories to look for dependencies in
|
||||||
* @param scopes the scopes to return the transitive dependencies for
|
* @param scopes the scopes to return the transitive dependencies for
|
||||||
* @return the generated tree description string; or an empty string if
|
* @return the generated tree description string; or an empty string if
|
||||||
* there were no dependencies to describe
|
* there were no dependencies to describe
|
||||||
* @since 1.5.21
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public String generateTransitiveDependencyTree(ArtifactRetriever retriever, List<Repository> repositories, Scope... scopes) {
|
public String generateTransitiveDependencyTree(VersionResolution resolution, ArtifactRetriever retriever, List<Repository> repositories, Scope... scopes) {
|
||||||
var compile_dependencies = new DependencySet();
|
var compile_dependencies = new DependencySet();
|
||||||
for (var dependency : this) {
|
for (var dependency : this) {
|
||||||
compile_dependencies.addAll(new DependencyResolver(retriever, repositories, dependency).getAllDependencies(scopes));
|
compile_dependencies.addAll(new DependencyResolver(resolution, retriever, repositories, dependency).getAllDependencies(scopes));
|
||||||
}
|
}
|
||||||
return compile_dependencies.generateDependencyTree();
|
return compile_dependencies.generateDependencyTree();
|
||||||
}
|
}
|
||||||
|
|
115
src/main/java/rife/bld/dependencies/VersionResolution.java
Normal file
115
src/main/java/rife/bld/dependencies/VersionResolution.java
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2024 Geert Bevin (gbevin[remove] at uwyn dot com)
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License")
|
||||||
|
*/
|
||||||
|
package rife.bld.dependencies;
|
||||||
|
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is responsible for managing version overrides for dependencies.
|
||||||
|
* <p>
|
||||||
|
* It allows users to specify a property keys with the prefix "{@code bld.override}" where the values will be parsed as
|
||||||
|
* a comma-separated list of dependencies with the versions that should override any other versions that are encountered.
|
||||||
|
* <p>
|
||||||
|
* For instance:
|
||||||
|
* <pre>
|
||||||
|
* bld.override=com.uwyn.rife2:bld-tests-badge:1.4.7,com.h2database:h2:2.2.222
|
||||||
|
* </pre>
|
||||||
|
* <p>
|
||||||
|
* Multiple override properties can be used by simply adding differentiators behind the "{@code bld.override}" keys.
|
||||||
|
* <p>
|
||||||
|
* For instance:
|
||||||
|
* <pre>
|
||||||
|
* bld.override-tests=com.uwyn.rife2:bld-tests-badge:1.4.7
|
||||||
|
* bld.override-h2=com.h2database:h2:2.2.222
|
||||||
|
* </pre>
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public class VersionResolution {
|
||||||
|
/**
|
||||||
|
* The prefix for property keys used to override versions of dependencies.
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public static final String PROPERTY_OVERRIDE_PREFIX = "bld.override";
|
||||||
|
|
||||||
|
private final Map<String, VersionNumber> versionOverrides_ = new HashMap<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a dummy {@code VersionResolution} instance that doesn't override anything.
|
||||||
|
*
|
||||||
|
* @return the dummy instance
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
static VersionResolution dummy() {
|
||||||
|
return new VersionResolution(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance of the {@code VersionReslution} class from hierarchical properties that
|
||||||
|
* are passed in.
|
||||||
|
* <p>
|
||||||
|
* The actual version overrides are determined at instantiation time and any future changes to the
|
||||||
|
* properties will not influence version resolution.
|
||||||
|
*
|
||||||
|
* @param properties the hierarchical properties that will be used to determine the version overrides
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public VersionResolution(HierarchicalProperties properties) {
|
||||||
|
if (properties != null) {
|
||||||
|
for (var name : properties.getNames()) {
|
||||||
|
if (name.startsWith(PROPERTY_OVERRIDE_PREFIX)) {
|
||||||
|
for (var override : properties.get(name).toString().split(",")) {
|
||||||
|
override = override.trim();
|
||||||
|
if (!override.isBlank()) {
|
||||||
|
var dependency = Dependency.parse(override);
|
||||||
|
if (dependency != null) {
|
||||||
|
versionOverrides_.put(dependency.toArtifactString(), dependency.version());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overrides the version of a given dependency with the corresponding overridden version.
|
||||||
|
*
|
||||||
|
* @param original the dependency for which the version needs to be overridden
|
||||||
|
* @return the overridden version if it is available; or the original version otherwise
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public VersionNumber overrideVersion(Dependency original) {
|
||||||
|
var overridden = versionOverrides_.get(original.toArtifactString());
|
||||||
|
if (overridden == null) {
|
||||||
|
return original.version();
|
||||||
|
}
|
||||||
|
return overridden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overrides the version of a given dependency with the corresponding overridden version and
|
||||||
|
* creates a new dependency object with the overridden version, if needed.
|
||||||
|
*
|
||||||
|
* @param original the dependency for which the version needs to be overridden
|
||||||
|
* @return the dependency with the overridden version if it's available; or the original dependency otherwise
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public Dependency overrideDependency(Dependency original) {
|
||||||
|
var overridden = versionOverrides_.get(original.toArtifactString());
|
||||||
|
if (overridden == null) {
|
||||||
|
return original;
|
||||||
|
}
|
||||||
|
return new Dependency(original.groupId(),
|
||||||
|
original.artifactId(),
|
||||||
|
overridden,
|
||||||
|
original.classifier(),
|
||||||
|
original.type(),
|
||||||
|
original.exclusions(),
|
||||||
|
original.parent());
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,13 +18,14 @@ import java.util.regex.Pattern;
|
||||||
*/
|
*/
|
||||||
class Xml2MavenPom extends Xml2Data {
|
class Xml2MavenPom extends Xml2Data {
|
||||||
private final Dependency parent_;
|
private final Dependency parent_;
|
||||||
|
private final VersionResolution resolution_;
|
||||||
private final ArtifactRetriever retriever_;
|
private final ArtifactRetriever retriever_;
|
||||||
private final List<Repository> repositories_;
|
private final List<Repository> repositories_;
|
||||||
private Map<Scope, Set<PomDependency>> resolvedDependencies_ = null;
|
private Map<Scope, Set<PomDependency>> resolvedDependencies_ = null;
|
||||||
|
|
||||||
private final Map<PomDependency, PomDependency> dependencyManagement_ = new LinkedHashMap<>();
|
private final Map<PomDependency, PomDependency> dependencyManagement_ = new LinkedHashMap<>();
|
||||||
private final Set<PomDependency> dependencies_ = new LinkedHashSet<>();
|
private final Set<PomDependency> dependencies_ = new LinkedHashSet<>();
|
||||||
private final Map<String, String> properties_ = new HashMap<>();
|
private final Map<String, String> mavenProperties_ = new HashMap<>();
|
||||||
private final Stack<String> elementStack_ = new Stack<>();
|
private final Stack<String> elementStack_ = new Stack<>();
|
||||||
private ExclusionSet exclusions_ = null;
|
private ExclusionSet exclusions_ = null;
|
||||||
|
|
||||||
|
@ -45,8 +46,9 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
private String lastExclusionGroupId_ = null;
|
private String lastExclusionGroupId_ = null;
|
||||||
private String lastExclusionArtifactId_ = null;
|
private String lastExclusionArtifactId_ = null;
|
||||||
|
|
||||||
Xml2MavenPom(Dependency parent, ArtifactRetriever retriever, List<Repository> repositories) {
|
Xml2MavenPom(Dependency parent, VersionResolution resolution, ArtifactRetriever retriever, List<Repository> repositories) {
|
||||||
parent_ = parent;
|
parent_ = parent;
|
||||||
|
resolution_ = resolution;
|
||||||
retriever_ = retriever;
|
retriever_ = retriever;
|
||||||
repositories_ = repositories;
|
repositories_ = repositories;
|
||||||
}
|
}
|
||||||
|
@ -85,17 +87,17 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
if (dep_scope == null) {
|
if (dep_scope == null) {
|
||||||
dep_scope = "compile";
|
dep_scope = "compile";
|
||||||
}
|
}
|
||||||
optional = resolveProperties(optional);
|
optional = resolveMavenProperties(optional);
|
||||||
if ("true".equals(optional)) {
|
if ("true".equals(optional)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var resolved_dependency = new PomDependency(
|
var resolved_dependency = new PomDependency(
|
||||||
resolveProperties(dependency.groupId()),
|
resolveMavenProperties(dependency.groupId()),
|
||||||
resolveProperties(dependency.artifactId()),
|
resolveMavenProperties(dependency.artifactId()),
|
||||||
resolveProperties(version),
|
resolveMavenProperties(version),
|
||||||
resolveProperties(dependency.classifier()),
|
resolveMavenProperties(dependency.classifier()),
|
||||||
resolveProperties(dependency.type()),
|
resolveMavenProperties(dependency.type()),
|
||||||
dep_scope,
|
dep_scope,
|
||||||
"false",
|
"false",
|
||||||
exclusions,
|
exclusions,
|
||||||
|
@ -126,13 +128,13 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
|
|
||||||
PomDependency resolveDependency(PomDependency dependency) {
|
PomDependency resolveDependency(PomDependency dependency) {
|
||||||
return new PomDependency(
|
return new PomDependency(
|
||||||
resolveProperties(dependency.groupId()),
|
resolveMavenProperties(dependency.groupId()),
|
||||||
resolveProperties(dependency.artifactId()),
|
resolveMavenProperties(dependency.artifactId()),
|
||||||
resolveProperties(dependency.version()),
|
resolveMavenProperties(dependency.version()),
|
||||||
resolveProperties(dependency.classifier()),
|
resolveMavenProperties(dependency.classifier()),
|
||||||
resolveProperties(dependency.type()),
|
resolveMavenProperties(dependency.type()),
|
||||||
dependency.scope(),
|
dependency.scope(),
|
||||||
resolveProperties(dependency.optional()),
|
resolveMavenProperties(dependency.optional()),
|
||||||
dependency.exclusions(),
|
dependency.exclusions(),
|
||||||
dependency.parent());
|
dependency.parent());
|
||||||
}
|
}
|
||||||
|
@ -178,11 +180,11 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
switch (qName) {
|
switch (qName) {
|
||||||
case "parent" -> {
|
case "parent" -> {
|
||||||
if (isChildOfProject()) {
|
if (isChildOfProject()) {
|
||||||
var parent_dependency = new Dependency(resolveProperties(lastGroupId_), resolveProperties(lastArtifactId_), VersionNumber.parse(resolveProperties(lastVersion_)));
|
var parent_dependency = new Dependency(resolveMavenProperties(lastGroupId_), resolveMavenProperties(lastArtifactId_), VersionNumber.parse(resolveMavenProperties(lastVersion_)));
|
||||||
var parent = new DependencyResolver(retriever_, repositories_, parent_dependency).getMavenPom(parent_);
|
var parent = new DependencyResolver(resolution_, retriever_, repositories_, parent_dependency).getMavenPom(parent_);
|
||||||
|
|
||||||
parent.properties_.keySet().removeAll(properties_.keySet());
|
parent.mavenProperties_.keySet().removeAll(mavenProperties_.keySet());
|
||||||
properties_.putAll(parent.properties_);
|
mavenProperties_.putAll(parent.mavenProperties_);
|
||||||
|
|
||||||
parent.dependencyManagement_.keySet().removeAll(dependencyManagement_.keySet());
|
parent.dependencyManagement_.keySet().removeAll(dependencyManagement_.keySet());
|
||||||
dependencyManagement_.putAll(parent.dependencyManagement_);
|
dependencyManagement_.putAll(parent.dependencyManagement_);
|
||||||
|
@ -206,8 +208,8 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
var dependency = new PomDependency(lastGroupId_, lastArtifactId_, lastVersion_, lastClassifier_, lastType_, lastScope_, lastOptional_, exclusions_, parent_);
|
var dependency = new PomDependency(lastGroupId_, lastArtifactId_, lastVersion_, lastClassifier_, lastType_, lastScope_, lastOptional_, exclusions_, parent_);
|
||||||
if (collectDependencyManagement_) {
|
if (collectDependencyManagement_) {
|
||||||
if (dependency.isPomImport()) {
|
if (dependency.isPomImport()) {
|
||||||
var import_dependency = new Dependency(resolveProperties(lastGroupId_), resolveProperties(lastArtifactId_), VersionNumber.parse(resolveProperties(lastVersion_)));
|
var import_dependency = new Dependency(resolveMavenProperties(lastGroupId_), resolveMavenProperties(lastArtifactId_), VersionNumber.parse(resolveMavenProperties(lastVersion_)));
|
||||||
var imported_pom = new DependencyResolver(retriever_, repositories_, import_dependency).getMavenPom(parent_);
|
var imported_pom = new DependencyResolver(resolution_, retriever_, repositories_, import_dependency).getMavenPom(parent_);
|
||||||
imported_pom.dependencyManagement_.keySet().removeAll(dependencyManagement_.keySet());
|
imported_pom.dependencyManagement_.keySet().removeAll(dependencyManagement_.keySet());
|
||||||
var resolved_dependencies = new LinkedHashSet<PomDependency>();
|
var resolved_dependencies = new LinkedHashSet<PomDependency>();
|
||||||
for (var managed_dependency : imported_pom.dependencyManagement_.keySet()) {
|
for (var managed_dependency : imported_pom.dependencyManagement_.keySet()) {
|
||||||
|
@ -278,7 +280,7 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
}
|
}
|
||||||
default -> {
|
default -> {
|
||||||
if (collectProperties_) {
|
if (collectProperties_) {
|
||||||
properties_.put(qName, getCharacterData());
|
mavenProperties_.put(qName, getCharacterData());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -303,7 +305,7 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addProjectProperty(String name) {
|
private void addProjectProperty(String name) {
|
||||||
properties_.put("project." + name, getCharacterData());
|
mavenProperties_.put("project." + name, getCharacterData());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getCharacterData() {
|
private String getCharacterData() {
|
||||||
|
@ -320,7 +322,7 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
|
|
||||||
private static final Pattern MAVEN_PROPERTY = Pattern.compile("\\$\\{([^<>{}]+)}");
|
private static final Pattern MAVEN_PROPERTY = Pattern.compile("\\$\\{([^<>{}]+)}");
|
||||||
|
|
||||||
private String resolveProperties(String data) {
|
private String resolveMavenProperties(String data) {
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -335,9 +337,9 @@ class Xml2MavenPom extends Xml2Data {
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
if (matcher.groupCount() == 1) {
|
if (matcher.groupCount() == 1) {
|
||||||
var property = matcher.group(1);
|
var property = matcher.group(1);
|
||||||
if (properties_.containsKey(property)) {
|
if (mavenProperties_.containsKey(property)) {
|
||||||
processed_data.append(data, last_end, matcher.start());
|
processed_data.append(data, last_end, matcher.start());
|
||||||
processed_data.append(properties_.get(property));
|
processed_data.append(mavenProperties_.get(property));
|
||||||
last_end = matcher.end();
|
last_end = matcher.end();
|
||||||
|
|
||||||
replaced = true;
|
replaced = true;
|
||||||
|
|
|
@ -8,6 +8,7 @@ import rife.bld.BaseProject;
|
||||||
import rife.bld.BldVersion;
|
import rife.bld.BldVersion;
|
||||||
import rife.bld.dependencies.*;
|
import rife.bld.dependencies.*;
|
||||||
import rife.bld.wrapper.Wrapper;
|
import rife.bld.wrapper.Wrapper;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -22,6 +23,7 @@ import static rife.bld.dependencies.Scope.*;
|
||||||
* @since 1.5.21
|
* @since 1.5.21
|
||||||
*/
|
*/
|
||||||
public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOperation> {
|
public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOperation> {
|
||||||
|
private HierarchicalProperties properties_ = null;
|
||||||
private ArtifactRetriever retriever_ = null;
|
private ArtifactRetriever retriever_ = null;
|
||||||
private final List<Repository> repositories_ = new ArrayList<>();
|
private final List<Repository> repositories_ = new ArrayList<>();
|
||||||
private final DependencyScopes dependencies_ = new DependencyScopes();
|
private final DependencyScopes dependencies_ = new DependencyScopes();
|
||||||
|
@ -66,7 +68,7 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
protected String executeGenerateExtensionsDependencies() {
|
protected String executeGenerateExtensionsDependencies() {
|
||||||
var extensions_tree = extensionDependencies().scope(compile).generateTransitiveDependencyTree(artifactRetriever(), extensionRepositories(), compile, runtime);
|
var extensions_tree = extensionDependencies().scope(compile).generateTransitiveDependencyTree(new VersionResolution(properties()), artifactRetriever(), extensionRepositories(), compile, runtime);
|
||||||
if (extensions_tree.isEmpty()) {
|
if (extensions_tree.isEmpty()) {
|
||||||
extensions_tree = "no dependencies" + System.lineSeparator();
|
extensions_tree = "no dependencies" + System.lineSeparator();
|
||||||
}
|
}
|
||||||
|
@ -79,7 +81,7 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
* @since 1.5.21
|
* @since 1.5.21
|
||||||
*/
|
*/
|
||||||
protected String executeGenerateCompileDependencies() {
|
protected String executeGenerateCompileDependencies() {
|
||||||
var compile_tree = dependencies().scope(compile).generateTransitiveDependencyTree(artifactRetriever(), repositories(), compile);
|
var compile_tree = dependencies().scope(compile).generateTransitiveDependencyTree(new VersionResolution(properties()), artifactRetriever(), repositories(), compile);
|
||||||
if (compile_tree.isEmpty()) {
|
if (compile_tree.isEmpty()) {
|
||||||
compile_tree = "no dependencies" + System.lineSeparator();
|
compile_tree = "no dependencies" + System.lineSeparator();
|
||||||
}
|
}
|
||||||
|
@ -92,7 +94,7 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
* @since 1.7.3
|
* @since 1.7.3
|
||||||
*/
|
*/
|
||||||
protected String executeGenerateProvidedDependencies() {
|
protected String executeGenerateProvidedDependencies() {
|
||||||
var provided_tree = dependencies().scope(provided).generateTransitiveDependencyTree(artifactRetriever(), repositories(), compile, runtime);
|
var provided_tree = dependencies().scope(provided).generateTransitiveDependencyTree(new VersionResolution(properties()), artifactRetriever(), repositories(), compile, runtime);
|
||||||
if (provided_tree.isEmpty()) {
|
if (provided_tree.isEmpty()) {
|
||||||
provided_tree = "no dependencies" + System.lineSeparator();
|
provided_tree = "no dependencies" + System.lineSeparator();
|
||||||
}
|
}
|
||||||
|
@ -105,7 +107,7 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
* @since 1.5.21
|
* @since 1.5.21
|
||||||
*/
|
*/
|
||||||
protected String executeGenerateRuntimeDependencies() {
|
protected String executeGenerateRuntimeDependencies() {
|
||||||
var runtime_tree = dependencies().scope(runtime).generateTransitiveDependencyTree(artifactRetriever(), repositories(), compile, runtime);
|
var runtime_tree = dependencies().scope(runtime).generateTransitiveDependencyTree(new VersionResolution(properties()), artifactRetriever(), repositories(), compile, runtime);
|
||||||
if (runtime_tree.isEmpty()) {
|
if (runtime_tree.isEmpty()) {
|
||||||
runtime_tree = "no dependencies" + System.lineSeparator();
|
runtime_tree = "no dependencies" + System.lineSeparator();
|
||||||
}
|
}
|
||||||
|
@ -118,7 +120,7 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
* @since 1.7.3
|
* @since 1.7.3
|
||||||
*/
|
*/
|
||||||
protected String executeGenerateTestDependencies() {
|
protected String executeGenerateTestDependencies() {
|
||||||
var test_tree = dependencies().scope(test).generateTransitiveDependencyTree(artifactRetriever(), repositories(), compile, runtime);
|
var test_tree = dependencies().scope(test).generateTransitiveDependencyTree(new VersionResolution(properties()), artifactRetriever(), repositories(), compile, runtime);
|
||||||
if (test_tree.isEmpty()) {
|
if (test_tree.isEmpty()) {
|
||||||
test_tree = "no dependencies" + System.lineSeparator();
|
test_tree = "no dependencies" + System.lineSeparator();
|
||||||
}
|
}
|
||||||
|
@ -147,7 +149,8 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the repositories and the dependencies from the project
|
// add the repositories and the dependencies from the project
|
||||||
return artifactRetriever(project.artifactRetriever())
|
return properties(project.properties())
|
||||||
|
.artifactRetriever(project.artifactRetriever())
|
||||||
.repositories(project.repositories())
|
.repositories(project.repositories())
|
||||||
.dependencies(project.dependencies());
|
.dependencies(project.dependencies());
|
||||||
}
|
}
|
||||||
|
@ -240,6 +243,18 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the hierarchical properties to use.
|
||||||
|
*
|
||||||
|
* @param properties the hierarchical properties
|
||||||
|
* @return this operation instance
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public DependencyTreeOperation properties(HierarchicalProperties properties) {
|
||||||
|
properties_ = properties;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the repositories in which the dependencies will be resolved.
|
* Retrieves the repositories in which the dependencies will be resolved.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -310,4 +325,17 @@ public class DependencyTreeOperation extends AbstractOperation<DependencyTreeOpe
|
||||||
public String dependencyTree() {
|
public String dependencyTree() {
|
||||||
return dependencyTree_.toString();
|
return dependencyTree_.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the hierarchical properties that are used.
|
||||||
|
*
|
||||||
|
* @return the hierarchical properties
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public HierarchicalProperties properties() {
|
||||||
|
if (properties_ == null) {
|
||||||
|
properties_ = new HierarchicalProperties();
|
||||||
|
}
|
||||||
|
return properties_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ package rife.bld.operations;
|
||||||
|
|
||||||
import rife.bld.BaseProject;
|
import rife.bld.BaseProject;
|
||||||
import rife.bld.dependencies.*;
|
import rife.bld.dependencies.*;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -24,6 +25,7 @@ import static rife.bld.dependencies.Dependency.CLASSIFIER_SOURCES;
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
|
private HierarchicalProperties properties_ = null;
|
||||||
private ArtifactRetriever retriever_ = null;
|
private ArtifactRetriever retriever_ = null;
|
||||||
private final List<Repository> repositories_ = new ArrayList<>();
|
private final List<Repository> repositories_ = new ArrayList<>();
|
||||||
private final DependencyScopes dependencies_ = new DependencyScopes();
|
private final DependencyScopes dependencies_ = new DependencyScopes();
|
||||||
|
@ -57,7 +59,7 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executeDownloadCompileDependencies() {
|
protected void executeDownloadCompileDependencies() {
|
||||||
executeDownloadDependencies(libCompileDirectory(), dependencies().resolveCompileDependencies(artifactRetriever(), repositories()));
|
executeDownloadDependencies(libCompileDirectory(), dependencies().resolveCompileDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,7 +68,7 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
* @since 1.8
|
* @since 1.8
|
||||||
*/
|
*/
|
||||||
protected void executeDownloadProvidedDependencies() {
|
protected void executeDownloadProvidedDependencies() {
|
||||||
executeDownloadDependencies(libProvidedDirectory(), dependencies().resolveProvidedDependencies(artifactRetriever(), repositories()));
|
executeDownloadDependencies(libProvidedDirectory(), dependencies().resolveProvidedDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,7 +77,7 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executeDownloadRuntimeDependencies() {
|
protected void executeDownloadRuntimeDependencies() {
|
||||||
executeDownloadDependencies(libRuntimeDirectory(), dependencies().resolveRuntimeDependencies(artifactRetriever(), repositories()));
|
executeDownloadDependencies(libRuntimeDirectory(), dependencies().resolveRuntimeDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,7 +86,7 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executeDownloadStandaloneDependencies() {
|
protected void executeDownloadStandaloneDependencies() {
|
||||||
executeDownloadDependencies(libStandaloneDirectory(), dependencies().resolveStandaloneDependencies(artifactRetriever(), repositories()));
|
executeDownloadDependencies(libStandaloneDirectory(), dependencies().resolveStandaloneDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -93,7 +95,7 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executeDownloadTestDependencies() {
|
protected void executeDownloadTestDependencies() {
|
||||||
executeDownloadDependencies(libTestDirectory(), dependencies().resolveTestDependencies(artifactRetriever(), repositories()));
|
executeDownloadDependencies(libTestDirectory(), dependencies().resolveTestDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -120,7 +122,7 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
additional_classifiers = classifiers.toArray(new String[0]);
|
additional_classifiers = classifiers.toArray(new String[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies.transferIntoDirectory(artifactRetriever(), repositories(), destinationDirectory, additional_classifiers);
|
dependencies.transferIntoDirectory(new VersionResolution(properties()), artifactRetriever(), repositories(), destinationDirectory, additional_classifiers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -131,7 +133,8 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public DownloadOperation fromProject(BaseProject project) {
|
public DownloadOperation fromProject(BaseProject project) {
|
||||||
return artifactRetriever(project.artifactRetriever())
|
return properties(project.properties())
|
||||||
|
.artifactRetriever(project.artifactRetriever())
|
||||||
.repositories(project.repositories())
|
.repositories(project.repositories())
|
||||||
.dependencies(project.dependencies())
|
.dependencies(project.dependencies())
|
||||||
.libCompileDirectory(project.libCompileDirectory())
|
.libCompileDirectory(project.libCompileDirectory())
|
||||||
|
@ -279,6 +282,18 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the hierarchical properties to use.
|
||||||
|
*
|
||||||
|
* @param properties the hierarchical properties
|
||||||
|
* @return this operation instance
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public DownloadOperation properties(HierarchicalProperties properties) {
|
||||||
|
properties_ = properties;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the repositories in which the dependencies will be resolved.
|
* Retrieves the repositories in which the dependencies will be resolved.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -387,4 +402,17 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
|
||||||
}
|
}
|
||||||
return retriever_;
|
return retriever_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the hierarchical properties that are used.
|
||||||
|
*
|
||||||
|
* @return the hierarchical properties
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public HierarchicalProperties properties() {
|
||||||
|
if (properties_ == null) {
|
||||||
|
properties_ = new HierarchicalProperties();
|
||||||
|
}
|
||||||
|
return properties_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import rife.bld.operations.exceptions.OperationOptionException;
|
||||||
import rife.bld.operations.exceptions.SignException;
|
import rife.bld.operations.exceptions.SignException;
|
||||||
import rife.bld.operations.exceptions.UploadException;
|
import rife.bld.operations.exceptions.UploadException;
|
||||||
import rife.bld.publish.*;
|
import rife.bld.publish.*;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
import rife.tools.FileUtils;
|
import rife.tools.FileUtils;
|
||||||
import rife.tools.exceptions.FileUtilsErrorException;
|
import rife.tools.exceptions.FileUtilsErrorException;
|
||||||
|
|
||||||
|
@ -38,6 +39,7 @@ import static rife.tools.StringUtils.encodeHexLower;
|
||||||
* @since 1.5.7
|
* @since 1.5.7
|
||||||
*/
|
*/
|
||||||
public class PublishOperation extends AbstractOperation<PublishOperation> {
|
public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
|
private HierarchicalProperties properties_ = null;
|
||||||
private ArtifactRetriever retriever_ = null;
|
private ArtifactRetriever retriever_ = null;
|
||||||
private final HttpClient client_ = HttpClient.newHttpClient();
|
private final HttpClient client_ = HttpClient.newHttpClient();
|
||||||
|
|
||||||
|
@ -45,7 +47,7 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
private final List<Repository> repositories_ = new ArrayList<>();
|
private final List<Repository> repositories_ = new ArrayList<>();
|
||||||
private final DependencyScopes dependencies_ = new DependencyScopes();
|
private final DependencyScopes dependencies_ = new DependencyScopes();
|
||||||
private PublishInfo info_ = new PublishInfo();
|
private PublishInfo info_ = new PublishInfo();
|
||||||
private PublishProperties properties_ = new PublishProperties();
|
private PublishProperties publishProperties_ = new PublishProperties();
|
||||||
private final List<PublishArtifact> artifacts_ = new ArrayList<>();
|
private final List<PublishArtifact> artifacts_ = new ArrayList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -121,7 +123,8 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
// determine which build number to use
|
// determine which build number to use
|
||||||
var snapshot_build_number = 1;
|
var snapshot_build_number = 1;
|
||||||
try {
|
try {
|
||||||
var resolver = new DependencyResolver(artifactRetriever(), List.of(repository), new Dependency(info().groupId(), info().artifactId(), info().version()));
|
var resolution = new VersionResolution(properties());
|
||||||
|
var resolver = new DependencyResolver(resolution, artifactRetriever(), List.of(repository), new Dependency(info().groupId(), info().artifactId(), info().version()));
|
||||||
var snapshot_meta = resolver.getSnapshotMavenMetadata();
|
var snapshot_meta = resolver.getSnapshotMavenMetadata();
|
||||||
snapshot_build_number = snapshot_meta.getSnapshotBuildNumber() + 1;
|
snapshot_build_number = snapshot_meta.getSnapshotBuildNumber() + 1;
|
||||||
} catch (DependencyException e) {
|
} catch (DependencyException e) {
|
||||||
|
@ -191,7 +194,7 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
// generate and upload pom
|
// generate and upload pom
|
||||||
executePublishStringArtifact(
|
executePublishStringArtifact(
|
||||||
repository,
|
repository,
|
||||||
new PomBuilder().properties(properties()).info(info()).dependencies(dependencies()).build(),
|
new PomBuilder().properties(publishProperties()).info(info()).dependencies(dependencies()).build(),
|
||||||
info().version() + "/" + info().artifactId() + "-" + actualVersion + ".pom", true);
|
info().version() + "/" + info().artifactId() + "-" + actualVersion + ".pom", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,7 +207,8 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
*/
|
*/
|
||||||
protected void executePublishMetadata(Repository repository, ZonedDateTime moment) {
|
protected void executePublishMetadata(Repository repository, ZonedDateTime moment) {
|
||||||
var current_versions = new ArrayList<VersionNumber>();
|
var current_versions = new ArrayList<VersionNumber>();
|
||||||
var resolver = new DependencyResolver(artifactRetriever(), List.of(repository), new Dependency(info().groupId(), info().artifactId(), info().version()));
|
var resolution = new VersionResolution(properties());
|
||||||
|
var resolver = new DependencyResolver(resolution, artifactRetriever(), List.of(repository), new Dependency(info().groupId(), info().artifactId(), info().version()));
|
||||||
try {
|
try {
|
||||||
current_versions.addAll(resolver.getMavenMetadata().getVersions());
|
current_versions.addAll(resolver.getMavenMetadata().getVersions());
|
||||||
} catch (DependencyException e) {
|
} catch (DependencyException e) {
|
||||||
|
@ -498,10 +502,11 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
*/
|
*/
|
||||||
public PublishOperation fromProject(BaseProject project) {
|
public PublishOperation fromProject(BaseProject project) {
|
||||||
if (project.javaRelease() != null) {
|
if (project.javaRelease() != null) {
|
||||||
properties()
|
publishProperties()
|
||||||
.mavenCompilerSource(project.javaRelease())
|
.mavenCompilerSource(project.javaRelease())
|
||||||
.mavenCompilerTarget(project.javaRelease());
|
.mavenCompilerTarget(project.javaRelease());
|
||||||
}
|
}
|
||||||
|
properties(project.properties());
|
||||||
artifactRetriever(project.artifactRetriever());
|
artifactRetriever(project.artifactRetriever());
|
||||||
dependencies().include(project.dependencies());
|
dependencies().include(project.dependencies());
|
||||||
artifacts(List.of(
|
artifacts(List.of(
|
||||||
|
@ -604,10 +609,10 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
*
|
*
|
||||||
* @param properties the publication properties
|
* @param properties the publication properties
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public PublishOperation properties(PublishProperties properties) {
|
public PublishOperation publishProperties(PublishProperties properties) {
|
||||||
properties_ = properties;
|
publishProperties_ = properties;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -661,6 +666,18 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the hierarchical properties to use.
|
||||||
|
*
|
||||||
|
* @param properties the hierarchical properties
|
||||||
|
* @return this operation instance
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public PublishOperation properties(HierarchicalProperties properties) {
|
||||||
|
properties_ = properties;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the repositories to which will be published.
|
* Retrieves the repositories to which will be published.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -691,10 +708,10 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
* This is a modifiable structure that can be retrieved and changed.
|
* This is a modifiable structure that can be retrieved and changed.
|
||||||
*
|
*
|
||||||
* @return the publication properties
|
* @return the publication properties
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public PublishProperties properties() {
|
public PublishProperties publishProperties() {
|
||||||
return properties_;
|
return publishProperties_;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -733,4 +750,17 @@ public class PublishOperation extends AbstractOperation<PublishOperation> {
|
||||||
}
|
}
|
||||||
return retriever_;
|
return retriever_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the hierarchical properties that are used.
|
||||||
|
*
|
||||||
|
* @return the hierarchical properties
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public HierarchicalProperties properties() {
|
||||||
|
if (properties_ == null) {
|
||||||
|
properties_ = new HierarchicalProperties();
|
||||||
|
}
|
||||||
|
return properties_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ package rife.bld.operations;
|
||||||
|
|
||||||
import rife.bld.BaseProject;
|
import rife.bld.BaseProject;
|
||||||
import rife.bld.dependencies.*;
|
import rife.bld.dependencies.*;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -24,6 +25,7 @@ import static rife.bld.dependencies.Dependency.CLASSIFIER_SOURCES;
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
|
private HierarchicalProperties properties_ = null;
|
||||||
private ArtifactRetriever retriever_ = null;
|
private ArtifactRetriever retriever_ = null;
|
||||||
private final List<Repository> repositories_ = new ArrayList<>();
|
private final List<Repository> repositories_ = new ArrayList<>();
|
||||||
private final DependencyScopes dependencies_ = new DependencyScopes();
|
private final DependencyScopes dependencies_ = new DependencyScopes();
|
||||||
|
@ -57,7 +59,7 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executePurgeCompileDependencies() {
|
protected void executePurgeCompileDependencies() {
|
||||||
executePurgeDependencies(libCompileDirectory(), dependencies().resolveCompileDependencies(artifactRetriever(), repositories()));
|
executePurgeDependencies(libCompileDirectory(), dependencies().resolveCompileDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,7 +68,7 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
* @since 1.8
|
* @since 1.8
|
||||||
*/
|
*/
|
||||||
protected void executePurgeProvidedDependencies() {
|
protected void executePurgeProvidedDependencies() {
|
||||||
executePurgeDependencies(libProvidedDirectory(), dependencies().resolveProvidedDependencies(artifactRetriever(), repositories()));
|
executePurgeDependencies(libProvidedDirectory(), dependencies().resolveProvidedDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,7 +77,7 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executePurgeRuntimeDependencies() {
|
protected void executePurgeRuntimeDependencies() {
|
||||||
executePurgeDependencies(libRuntimeDirectory(), dependencies().resolveRuntimeDependencies(artifactRetriever(), repositories()));
|
executePurgeDependencies(libRuntimeDirectory(), dependencies().resolveRuntimeDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,7 +86,7 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executePurgeStandaloneDependencies() {
|
protected void executePurgeStandaloneDependencies() {
|
||||||
executePurgeDependencies(libStandaloneDirectory(), dependencies().resolveStandaloneDependencies(artifactRetriever(), repositories()));
|
executePurgeDependencies(libStandaloneDirectory(), dependencies().resolveStandaloneDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -93,7 +95,7 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
protected void executePurgeTestDependencies() {
|
protected void executePurgeTestDependencies() {
|
||||||
executePurgeDependencies(libTestDirectory(), dependencies().resolveTestDependencies(artifactRetriever(), repositories()));
|
executePurgeDependencies(libTestDirectory(), dependencies().resolveTestDependencies(properties(), artifactRetriever(), repositories()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -132,7 +134,8 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addTransferLocations(HashSet<String> filenames, Dependency dependency) {
|
private void addTransferLocations(HashSet<String> filenames, Dependency dependency) {
|
||||||
for (var location : new DependencyResolver(artifactRetriever(), repositories(), dependency).getTransferLocations()) {
|
var resolution = new VersionResolution(properties());
|
||||||
|
for (var location : new DependencyResolver(resolution, artifactRetriever(), repositories(), dependency).getTransferLocations()) {
|
||||||
filenames.add(location.substring(location.lastIndexOf("/") + 1));
|
filenames.add(location.substring(location.lastIndexOf("/") + 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -144,7 +147,8 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public PurgeOperation fromProject(BaseProject project) {
|
public PurgeOperation fromProject(BaseProject project) {
|
||||||
return artifactRetriever(project.artifactRetriever())
|
return properties(project.properties())
|
||||||
|
.artifactRetriever(project.artifactRetriever())
|
||||||
.repositories(project.repositories())
|
.repositories(project.repositories())
|
||||||
.dependencies(project.dependencies())
|
.dependencies(project.dependencies())
|
||||||
.libCompileDirectory(project.libCompileDirectory())
|
.libCompileDirectory(project.libCompileDirectory())
|
||||||
|
@ -292,6 +296,18 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the hierarchical properties to use.
|
||||||
|
*
|
||||||
|
* @param properties the hierarchical properties
|
||||||
|
* @return this operation instance
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public PurgeOperation properties(HierarchicalProperties properties) {
|
||||||
|
properties_ = properties;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the repositories in which the dependencies will be resolved.
|
* Retrieves the repositories in which the dependencies will be resolved.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -400,4 +416,17 @@ public class PurgeOperation extends AbstractOperation<PurgeOperation> {
|
||||||
}
|
}
|
||||||
return retriever_;
|
return retriever_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the hierarchical properties that are used.
|
||||||
|
*
|
||||||
|
* @return the hierarchical properties
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public HierarchicalProperties properties() {
|
||||||
|
if (properties_ == null) {
|
||||||
|
properties_ = new HierarchicalProperties();
|
||||||
|
}
|
||||||
|
return properties_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ package rife.bld.operations;
|
||||||
|
|
||||||
import rife.bld.BaseProject;
|
import rife.bld.BaseProject;
|
||||||
import rife.bld.dependencies.*;
|
import rife.bld.dependencies.*;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -17,6 +18,7 @@ import java.util.List;
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public class UpdatesOperation extends AbstractOperation<UpdatesOperation> {
|
public class UpdatesOperation extends AbstractOperation<UpdatesOperation> {
|
||||||
|
private HierarchicalProperties properties_ = null;
|
||||||
private ArtifactRetriever retriever_ = null;
|
private ArtifactRetriever retriever_ = null;
|
||||||
private final List<Repository> repositories_ = new ArrayList<>();
|
private final List<Repository> repositories_ = new ArrayList<>();
|
||||||
private final DependencyScopes dependencies_ = new DependencyScopes();
|
private final DependencyScopes dependencies_ = new DependencyScopes();
|
||||||
|
@ -28,11 +30,12 @@ public class UpdatesOperation extends AbstractOperation<UpdatesOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public void execute() {
|
public void execute() {
|
||||||
|
var resolution = new VersionResolution(properties());
|
||||||
var result = new DependencyScopes();
|
var result = new DependencyScopes();
|
||||||
for (var entry : dependencies_.entrySet()) {
|
for (var entry : dependencies_.entrySet()) {
|
||||||
var scope = entry.getKey();
|
var scope = entry.getKey();
|
||||||
for (var dependency : entry.getValue()) {
|
for (var dependency : entry.getValue()) {
|
||||||
var latest = new DependencyResolver(artifactRetriever(), repositories(), dependency).latestVersion();
|
var latest = new DependencyResolver(resolution, artifactRetriever(), repositories(), dependency).latestVersion();
|
||||||
if (latest.compareTo(dependency.version()) > 0) {
|
if (latest.compareTo(dependency.version()) > 0) {
|
||||||
var latest_dependency = new Dependency(dependency.groupId(), dependency.artifactId(), latest,
|
var latest_dependency = new Dependency(dependency.groupId(), dependency.artifactId(), latest,
|
||||||
dependency.classifier(), dependency.type());
|
dependency.classifier(), dependency.type());
|
||||||
|
@ -65,7 +68,8 @@ public class UpdatesOperation extends AbstractOperation<UpdatesOperation> {
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
*/
|
*/
|
||||||
public UpdatesOperation fromProject(BaseProject project) {
|
public UpdatesOperation fromProject(BaseProject project) {
|
||||||
return artifactRetriever(project.artifactRetriever())
|
return properties(project.properties())
|
||||||
|
.artifactRetriever(project.artifactRetriever())
|
||||||
.repositories(project.repositories())
|
.repositories(project.repositories())
|
||||||
.dependencies(project.dependencies());
|
.dependencies(project.dependencies());
|
||||||
}
|
}
|
||||||
|
@ -120,6 +124,18 @@ public class UpdatesOperation extends AbstractOperation<UpdatesOperation> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the hierarchical properties to use.
|
||||||
|
*
|
||||||
|
* @param properties the hierarchical properties
|
||||||
|
* @return this operation instance
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public UpdatesOperation properties(HierarchicalProperties properties) {
|
||||||
|
properties_ = properties;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the repositories in which the dependencies will be resolved.
|
* Retrieves the repositories in which the dependencies will be resolved.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -166,4 +182,17 @@ public class UpdatesOperation extends AbstractOperation<UpdatesOperation> {
|
||||||
}
|
}
|
||||||
return retriever_;
|
return retriever_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the hierarchical properties that are used.
|
||||||
|
*
|
||||||
|
* @return the hierarchical properties
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public HierarchicalProperties properties() {
|
||||||
|
if (properties_ == null) {
|
||||||
|
properties_ = new HierarchicalProperties();
|
||||||
|
}
|
||||||
|
return properties_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class PomBuilder {
|
||||||
*
|
*
|
||||||
* @param properties the properties to use
|
* @param properties the properties to use
|
||||||
* @return this {@code PomBuilder} instance
|
* @return this {@code PomBuilder} instance
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public PomBuilder properties(PublishProperties properties) {
|
public PomBuilder properties(PublishProperties properties) {
|
||||||
properties_ = properties;
|
properties_ = properties;
|
||||||
|
@ -63,7 +63,7 @@ public class PomBuilder {
|
||||||
* Retrieves the properties to build the POM with.
|
* Retrieves the properties to build the POM with.
|
||||||
*
|
*
|
||||||
* @return the properties to use
|
* @return the properties to use
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public PublishProperties properties() {
|
public PublishProperties properties() {
|
||||||
return properties_;
|
return properties_;
|
||||||
|
|
|
@ -10,7 +10,7 @@ import java.util.*;
|
||||||
* Provides the properties information for publication.
|
* Provides the properties information for publication.
|
||||||
*
|
*
|
||||||
* @author Geert Bevin (gbevin[remove] at uwyn dot com)
|
* @author Geert Bevin (gbevin[remove] at uwyn dot com)
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public class PublishProperties extends LinkedHashMap<String, String> {
|
public class PublishProperties extends LinkedHashMap<String, String> {
|
||||||
private static final String MAVEN_COMPILER_SOURCE = "maven.compiler.source";
|
private static final String MAVEN_COMPILER_SOURCE = "maven.compiler.source";
|
||||||
|
@ -21,7 +21,7 @@ public class PublishProperties extends LinkedHashMap<String, String> {
|
||||||
*
|
*
|
||||||
* @param value the value to be set for the 'maven.compiler.source' property
|
* @param value the value to be set for the 'maven.compiler.source' property
|
||||||
* @return this {@code PomProperties} instance
|
* @return this {@code PomProperties} instance
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public PublishProperties mavenCompilerSource(Integer value) {
|
public PublishProperties mavenCompilerSource(Integer value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
|
@ -37,7 +37,7 @@ public class PublishProperties extends LinkedHashMap<String, String> {
|
||||||
* Retrieves the value of the 'maven.compiler.source' property.
|
* Retrieves the value of the 'maven.compiler.source' property.
|
||||||
*
|
*
|
||||||
* @return the value of the 'maven.compiler.source' property
|
* @return the value of the 'maven.compiler.source' property
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public Integer mavenCompilerSource() {
|
public Integer mavenCompilerSource() {
|
||||||
var value = get(MAVEN_COMPILER_SOURCE);
|
var value = get(MAVEN_COMPILER_SOURCE);
|
||||||
|
@ -52,7 +52,7 @@ public class PublishProperties extends LinkedHashMap<String, String> {
|
||||||
*
|
*
|
||||||
* @param value the value to be set for the 'maven.compiler.target' property
|
* @param value the value to be set for the 'maven.compiler.target' property
|
||||||
* @return this {@code PomProperties} instance
|
* @return this {@code PomProperties} instance
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public PublishProperties mavenCompilerTarget(Integer value) {
|
public PublishProperties mavenCompilerTarget(Integer value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
|
@ -68,7 +68,7 @@ public class PublishProperties extends LinkedHashMap<String, String> {
|
||||||
* Retrieves the value of the 'maven.compiler.target' property.
|
* Retrieves the value of the 'maven.compiler.target' property.
|
||||||
*
|
*
|
||||||
* @return the value of the 'maven.compiler.target' property
|
* @return the value of the 'maven.compiler.target' property
|
||||||
* @since 2.0.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public Integer mavenCompilerTarget() {
|
public Integer mavenCompilerTarget() {
|
||||||
var value = get(MAVEN_COMPILER_TARGET);
|
var value = get(MAVEN_COMPILER_TARGET);
|
||||||
|
|
|
@ -69,6 +69,7 @@ public class Wrapper {
|
||||||
static final Pattern META_DATA_LOCAL_COPY = Pattern.compile("<localCopy>\\s*true\\s*</localCopy>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
|
static final Pattern META_DATA_LOCAL_COPY = Pattern.compile("<localCopy>\\s*true\\s*</localCopy>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
|
||||||
static final Pattern META_DATA_SNAPSHOT_VERSION = Pattern.compile("<snapshotVersion>.*?<value>([^<]+)</value>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
|
static final Pattern META_DATA_SNAPSHOT_VERSION = Pattern.compile("<snapshotVersion>.*?<value>([^<]+)</value>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
|
||||||
static final Pattern OPTIONS_PATTERN = Pattern.compile("\"[^\"]+\"|\\S+");
|
static final Pattern OPTIONS_PATTERN = Pattern.compile("\"[^\"]+\"|\\S+");
|
||||||
|
static final Pattern JVM_PROPERTY_PATTERN = Pattern.compile("-D(.+?)=(.*)");
|
||||||
|
|
||||||
private static final Pattern JAR_EXCLUDE_SOURCES_PATTERN = Pattern.compile("^.*-sources\\.jar$", Pattern.CASE_INSENSITIVE);
|
private static final Pattern JAR_EXCLUDE_SOURCES_PATTERN = Pattern.compile("^.*-sources\\.jar$", Pattern.CASE_INSENSITIVE);
|
||||||
private static final Pattern JAR_EXCLUDE_JAVADOC_PATTERN = Pattern.compile("^.*-javadoc\\.jar$", Pattern.CASE_INSENSITIVE);
|
private static final Pattern JAR_EXCLUDE_JAVADOC_PATTERN = Pattern.compile("^.*-javadoc\\.jar$", Pattern.CASE_INSENSITIVE);
|
||||||
|
@ -78,6 +79,7 @@ public class Wrapper {
|
||||||
private File currentDir_ = new File(System.getProperty("user.dir"));
|
private File currentDir_ = new File(System.getProperty("user.dir"));
|
||||||
private LaunchMode launchMode_ = LaunchMode.Cli;
|
private LaunchMode launchMode_ = LaunchMode.Cli;
|
||||||
|
|
||||||
|
private final Properties jvmProperties_ = new Properties();
|
||||||
private final Properties wrapperProperties_ = new Properties();
|
private final Properties wrapperProperties_ = new Properties();
|
||||||
private File wrapperPropertiesFile_ = null;
|
private File wrapperPropertiesFile_ = null;
|
||||||
private final Set<String> repositories_ = new LinkedHashSet<>();
|
private final Set<String> repositories_ = new LinkedHashSet<>();
|
||||||
|
@ -376,6 +378,7 @@ public class Wrapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
extractJvmProperties(arguments);
|
||||||
initWrapperProperties(getVersion());
|
initWrapperProperties(getVersion());
|
||||||
File distribution;
|
File distribution;
|
||||||
try {
|
try {
|
||||||
|
@ -389,6 +392,15 @@ public class Wrapper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void extractJvmProperties(List<String> arguments) {
|
||||||
|
for (var arg : arguments) {
|
||||||
|
var matcher = JVM_PROPERTY_PATTERN.matcher(arg);
|
||||||
|
if (matcher.matches()) {
|
||||||
|
jvmProperties_.put(matcher.group(1), matcher.group(2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private File buildBldDirectory() {
|
private File buildBldDirectory() {
|
||||||
return Path.of(currentDir_.getAbsolutePath(), "build", "bld").toFile();
|
return Path.of(currentDir_.getAbsolutePath(), "build", "bld").toFile();
|
||||||
}
|
}
|
||||||
|
@ -587,9 +599,10 @@ public class Wrapper {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var resolver_class = classloader_.loadClass("rife.bld.wrapper.WrapperExtensionResolver");
|
var resolver_class = classloader_.loadClass("rife.bld.wrapper.WrapperExtensionResolver");
|
||||||
var constructor = resolver_class.getConstructor(File.class, File.class, File.class, Collection.class, Collection.class, boolean.class, boolean.class);
|
var constructor = resolver_class.getConstructor(File.class, File.class, File.class, Properties.class, Properties.class, Collection.class, Collection.class, boolean.class, boolean.class);
|
||||||
var update_method = resolver_class.getMethod("updateExtensions");
|
var update_method = resolver_class.getMethod("updateExtensions");
|
||||||
var resolver = constructor.newInstance(currentDir_, new File(wrapperPropertiesFile_.getAbsolutePath() + ".hash"), libBldDirectory(),
|
var resolver = constructor.newInstance(currentDir_, new File(wrapperPropertiesFile_.getAbsolutePath() + ".hash"), libBldDirectory(),
|
||||||
|
jvmProperties_, wrapperProperties_,
|
||||||
repositories_, extensions_,
|
repositories_, extensions_,
|
||||||
downloadExtensionSources_, downloadExtensionJavadoc_);
|
downloadExtensionSources_, downloadExtensionJavadoc_);
|
||||||
update_method.invoke(resolver);
|
update_method.invoke(resolver);
|
||||||
|
@ -612,7 +625,7 @@ public class Wrapper {
|
||||||
throws IOException, InterruptedException {
|
throws IOException, InterruptedException {
|
||||||
var args = new ArrayList<String>();
|
var args = new ArrayList<String>();
|
||||||
args.add("java");
|
args.add("java");
|
||||||
includeJvmParameters(arguments, args);
|
includeJvmProperties(arguments, args);
|
||||||
|
|
||||||
args.add("-cp");
|
args.add("-cp");
|
||||||
args.add(jarFile.getAbsolutePath());
|
args.add(jarFile.getAbsolutePath());
|
||||||
|
@ -665,7 +678,7 @@ public class Wrapper {
|
||||||
|
|
||||||
var java_args = new ArrayList<String>();
|
var java_args = new ArrayList<String>();
|
||||||
java_args.add("java");
|
java_args.add("java");
|
||||||
includeJvmParameters(arguments, java_args);
|
includeJvmProperties(arguments, java_args);
|
||||||
|
|
||||||
java_args.add("-cp");
|
java_args.add("-cp");
|
||||||
java_args.add(classpath);
|
java_args.add(classpath);
|
||||||
|
@ -681,11 +694,11 @@ public class Wrapper {
|
||||||
return process.waitFor();
|
return process.waitFor();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void includeJvmParameters(List<String> arguments, List<String> javaArgs) {
|
private static void includeJvmProperties(List<String> arguments, List<String> javaArgs) {
|
||||||
var i = arguments.iterator();
|
var i = arguments.iterator();
|
||||||
while (i.hasNext()) {
|
while (i.hasNext()) {
|
||||||
var arg = i.next();
|
var arg = i.next();
|
||||||
if (arg.matches("-D(.+?)=(.*)")) {
|
if (JVM_PROPERTY_PATTERN.matcher(arg).matches()) {
|
||||||
javaArgs.add(arg);
|
javaArgs.add(arg);
|
||||||
i.remove();
|
i.remove();
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ package rife.bld.wrapper;
|
||||||
|
|
||||||
import rife.bld.BuildExecutor;
|
import rife.bld.BuildExecutor;
|
||||||
import rife.bld.dependencies.*;
|
import rife.bld.dependencies.*;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
import rife.tools.FileUtils;
|
import rife.tools.FileUtils;
|
||||||
import rife.tools.StringUtils;
|
import rife.tools.StringUtils;
|
||||||
import rife.tools.exceptions.FileUtilsErrorException;
|
import rife.tools.exceptions.FileUtilsErrorException;
|
||||||
|
@ -28,7 +29,9 @@ import static rife.bld.dependencies.Dependency.CLASSIFIER_SOURCES;
|
||||||
* @since 1.5.8
|
* @since 1.5.8
|
||||||
*/
|
*/
|
||||||
public class WrapperExtensionResolver {
|
public class WrapperExtensionResolver {
|
||||||
private final ArtifactRetriever retriever_ = ArtifactRetriever.cachingInstance();
|
private final HierarchicalProperties properties_;
|
||||||
|
private final VersionResolution resolution_;
|
||||||
|
private final ArtifactRetriever retriever_;
|
||||||
private final File hashFile_;
|
private final File hashFile_;
|
||||||
private final String fingerPrintHash_;
|
private final String fingerPrintHash_;
|
||||||
private final File destinationDirectory_;
|
private final File destinationDirectory_;
|
||||||
|
@ -41,20 +44,35 @@ public class WrapperExtensionResolver {
|
||||||
private boolean headerPrinted_ = false;
|
private boolean headerPrinted_ = false;
|
||||||
|
|
||||||
public WrapperExtensionResolver(File currentDir, File hashFile, File destinationDirectory,
|
public WrapperExtensionResolver(File currentDir, File hashFile, File destinationDirectory,
|
||||||
|
Properties jvmProperties, Properties wrapperProperties,
|
||||||
Collection<String> repositories, Collection<String> extensions,
|
Collection<String> repositories, Collection<String> extensions,
|
||||||
boolean downloadSources, boolean downloadJavadoc) {
|
boolean downloadSources, boolean downloadJavadoc) {
|
||||||
var properties = BuildExecutor.setupProperties(currentDir);
|
var properties = BuildExecutor.setupProperties(currentDir);
|
||||||
Repository.resolveMavenLocal(properties);
|
properties.getRoot().putAll(jvmProperties);
|
||||||
|
properties_ = new HierarchicalProperties().parent(properties);
|
||||||
|
properties_.putAll(wrapperProperties);
|
||||||
|
|
||||||
|
resolution_ = new VersionResolution(properties_);
|
||||||
|
|
||||||
|
retriever_ = ArtifactRetriever.cachingInstance();
|
||||||
|
Repository.resolveMavenLocal(properties_);
|
||||||
|
|
||||||
hashFile_ = hashFile;
|
hashFile_ = hashFile;
|
||||||
|
|
||||||
destinationDirectory_ = destinationDirectory;
|
destinationDirectory_ = destinationDirectory;
|
||||||
|
|
||||||
for (var repository : repositories) {
|
for (var repository : repositories) {
|
||||||
repositories_.add(Repository.resolveRepository(properties, repository));
|
repositories_.add(Repository.resolveRepository(properties_, repository));
|
||||||
}
|
}
|
||||||
dependencies_.addAll(extensions.stream().map(Dependency::parse).toList());
|
|
||||||
|
dependencies_.addAll(extensions.stream().map(d -> resolution_.overrideDependency(Dependency.parse(d))).toList());
|
||||||
|
|
||||||
downloadSources_ = downloadSources;
|
downloadSources_ = downloadSources;
|
||||||
downloadJavadoc_ = downloadJavadoc;
|
downloadJavadoc_ = downloadJavadoc;
|
||||||
fingerPrintHash_ = createHash(repositories_.stream().map(Objects::toString).toList(), extensions, downloadSources, downloadJavadoc);
|
fingerPrintHash_ = createHash(
|
||||||
|
repositories_.stream().map(Objects::toString).toList(),
|
||||||
|
dependencies_.stream().map(Objects::toString).toList(),
|
||||||
|
downloadSources, downloadJavadoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String createHash(Collection<String> repositories, Collection<String> extensions, boolean downloadSources, boolean downloadJavadoc) {
|
private String createHash(Collection<String> repositories, Collection<String> extensions, boolean downloadSources, boolean downloadJavadoc) {
|
||||||
|
@ -149,7 +167,7 @@ public class WrapperExtensionResolver {
|
||||||
var dependencies = new DependencySet();
|
var dependencies = new DependencySet();
|
||||||
for (var d : dependencies_) {
|
for (var d : dependencies_) {
|
||||||
if (d != null) {
|
if (d != null) {
|
||||||
dependencies.addAll(new DependencyResolver(retriever_, repositories_, d).getAllDependencies(Scope.compile, Scope.runtime));
|
dependencies.addAll(new DependencyResolver(resolution_, retriever_, repositories_, d).getAllDependencies(Scope.compile, Scope.runtime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!dependencies.isEmpty()) {
|
if (!dependencies.isEmpty()) {
|
||||||
|
@ -166,7 +184,7 @@ public class WrapperExtensionResolver {
|
||||||
additional_classifiers = classifiers.toArray(new String[0]);
|
additional_classifiers = classifiers.toArray(new String[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var artifacts = dependencies.transferIntoDirectory(retriever_, repositories_, destinationDirectory_, additional_classifiers);
|
var artifacts = dependencies.transferIntoDirectory(resolution_, retriever_, repositories_, destinationDirectory_, additional_classifiers);
|
||||||
for (var artifact : artifacts) {
|
for (var artifact : artifacts) {
|
||||||
var location = artifact.location();
|
var location = artifact.location();
|
||||||
|
|
||||||
|
|
|
@ -82,6 +82,14 @@ public class TestDependency {
|
||||||
assertEquals("com.uwyn.rife2:rife2:1.4.0:bld@zip", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0), "bld", "zip").toString());
|
assertEquals("com.uwyn.rife2:rife2:1.4.0:bld@zip", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0), "bld", "zip").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testToArtifactString() {
|
||||||
|
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2").toArtifactString());
|
||||||
|
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)).toArtifactString());
|
||||||
|
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0), "agent").toArtifactString());
|
||||||
|
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0), "bld", "zip").toArtifactString());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testToFileName() {
|
void testToFileName() {
|
||||||
assertEquals("rife2-0.0.0.jar", new Dependency("com.uwyn.rife2", "rife2").toFileName());
|
assertEquals("rife2-0.0.0.jar", new Dependency("com.uwyn.rife2", "rife2").toFileName());
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
package rife.bld.dependencies;
|
package rife.bld.dependencies;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
import rife.tools.FileUtils;
|
import rife.tools.FileUtils;
|
||||||
import rife.tools.StringUtils;
|
import rife.tools.StringUtils;
|
||||||
|
|
||||||
|
@ -16,6 +17,7 @@ import java.util.*;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
import static rife.bld.dependencies.Dependency.CLASSIFIER_JAVADOC;
|
import static rife.bld.dependencies.Dependency.CLASSIFIER_JAVADOC;
|
||||||
import static rife.bld.dependencies.Dependency.CLASSIFIER_SOURCES;
|
import static rife.bld.dependencies.Dependency.CLASSIFIER_SOURCES;
|
||||||
|
import static rife.bld.dependencies.VersionResolution.PROPERTY_OVERRIDE_PREFIX;
|
||||||
import static rife.bld.dependencies.Repository.*;
|
import static rife.bld.dependencies.Repository.*;
|
||||||
import static rife.bld.dependencies.Scope.compile;
|
import static rife.bld.dependencies.Scope.compile;
|
||||||
import static rife.bld.dependencies.Scope.runtime;
|
import static rife.bld.dependencies.Scope.runtime;
|
||||||
|
@ -23,8 +25,10 @@ import static rife.bld.dependencies.Scope.runtime;
|
||||||
public class TestDependencyResolver {
|
public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testInstantiation() {
|
void testInstantiation() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
|
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "com.uwyn.rife2:rife2:1.8.0")),
|
||||||
|
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
|
||||||
assertNotNull(resolver);
|
assertNotNull(resolver);
|
||||||
|
assertEquals(new VersionNumber(1,8,0), resolver.resolution().overrideVersion(new Dependency("com.uwyn.rife2", "rife2")));
|
||||||
assertTrue(resolver.repositories().contains(MAVEN_CENTRAL));
|
assertTrue(resolver.repositories().contains(MAVEN_CENTRAL));
|
||||||
assertTrue(resolver.repositories().contains(SONATYPE_SNAPSHOTS));
|
assertTrue(resolver.repositories().contains(SONATYPE_SNAPSHOTS));
|
||||||
assertEquals(new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)), resolver.dependency());
|
assertEquals(new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)), resolver.dependency());
|
||||||
|
@ -32,31 +36,38 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testNotFound() {
|
void testNotFound() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.org.unknown", "voidthing"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.org.unknown", "voidthing"));
|
||||||
assertFalse(resolver.exists());
|
assertFalse(resolver.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testCheckExistence() {
|
void testCheckExistence() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
assertTrue(resolver.exists());
|
assertTrue(resolver.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testCheckExistenceVersion() {
|
void testCheckExistenceVersion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
|
||||||
assertTrue(resolver.exists());
|
assertTrue(resolver.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testCheckExistenceMissingVersion() {
|
void testCheckExistenceMissingVersion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 3, 9)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 3, 9)));
|
||||||
assertFalse(resolver.exists());
|
assertFalse(resolver.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testCheckVersionOverride() {
|
||||||
|
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "com.uwyn.rife2:rife2:1.8.0")),
|
||||||
|
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 3, 9)));
|
||||||
|
assertEquals(new VersionNumber(1, 8, 0), resolver.resolveVersion());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testListVersions() {
|
void testListVersions() {
|
||||||
var resolver1 = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver1 = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var versions1 = resolver1.listVersions();
|
var versions1 = resolver1.listVersions();
|
||||||
assertNotNull(versions1);
|
assertNotNull(versions1);
|
||||||
assertFalse(versions1.isEmpty());
|
assertFalse(versions1.isEmpty());
|
||||||
|
@ -64,7 +75,7 @@ public class TestDependencyResolver {
|
||||||
assertTrue(versions1.contains(new VersionNumber(1, 0, 0)));
|
assertTrue(versions1.contains(new VersionNumber(1, 0, 0)));
|
||||||
assertTrue(versions1.contains(new VersionNumber(1, 2, 1)));
|
assertTrue(versions1.contains(new VersionNumber(1, 2, 1)));
|
||||||
|
|
||||||
var resolver2 = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server"));
|
var resolver2 = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server"));
|
||||||
var versions2 = resolver2.listVersions();
|
var versions2 = resolver2.listVersions();
|
||||||
assertNotNull(versions2);
|
assertNotNull(versions2);
|
||||||
assertFalse(versions2.isEmpty());
|
assertFalse(versions2.isEmpty());
|
||||||
|
@ -75,7 +86,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetLatestVersion() {
|
void testGetLatestVersion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var version = resolver.latestVersion();
|
var version = resolver.latestVersion();
|
||||||
assertNotNull(version);
|
assertNotNull(version);
|
||||||
assertTrue(version.compareTo(new VersionNumber(1, 4)) >= 0);
|
assertTrue(version.compareTo(new VersionNumber(1, 4)) >= 0);
|
||||||
|
@ -83,7 +94,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetReleaseVersion() {
|
void testGetReleaseVersion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var version = resolver.releaseVersion();
|
var version = resolver.releaseVersion();
|
||||||
assertNotNull(version);
|
assertNotNull(version);
|
||||||
assertTrue(version.compareTo(new VersionNumber(1, 4)) >= 0);
|
assertTrue(version.compareTo(new VersionNumber(1, 4)) >= 0);
|
||||||
|
@ -91,7 +102,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testMetadata() {
|
void testMetadata() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
|
||||||
var metadata = resolver.getMavenMetadata();
|
var metadata = resolver.getMavenMetadata();
|
||||||
assertNotNull(metadata);
|
assertNotNull(metadata);
|
||||||
assertTrue(metadata.getLatest().compareTo(resolver.dependency().version()) > 0);
|
assertTrue(metadata.getLatest().compareTo(resolver.dependency().version()) > 0);
|
||||||
|
@ -100,7 +111,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSnapshotMetadata() {
|
void testSnapshotMetadata() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
||||||
var metadata = resolver.getSnapshotMavenMetadata();
|
var metadata = resolver.getSnapshotMavenMetadata();
|
||||||
assertNotNull(metadata);
|
assertNotNull(metadata);
|
||||||
assertEquals("20230303.130437", metadata.getSnapshotTimestamp());
|
assertEquals("20230303.130437", metadata.getSnapshotTimestamp());
|
||||||
|
@ -109,7 +120,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesRIFE2() {
|
void testGetCompileDependenciesRIFE2() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var dependencies = resolver.getDirectDependencies(compile);
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(0, dependencies.size());
|
assertEquals(0, dependencies.size());
|
||||||
|
@ -117,7 +128,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesRIFE2Snapshot() {
|
void testGetCompileDependenciesRIFE2Snapshot() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
||||||
var dependencies = resolver.getDirectDependencies(compile);
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(0, dependencies.size());
|
assertEquals(0, dependencies.size());
|
||||||
|
@ -125,7 +136,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesJetty() {
|
void testGetCompileDependenciesJetty() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
var dependencies = resolver.getDirectDependencies(compile);
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(4, dependencies.size());
|
assertEquals(4, dependencies.size());
|
||||||
|
@ -136,9 +147,37 @@ public class TestDependencyResolver {
|
||||||
org.slf4j:slf4j-api:2.0.5""", StringUtils.join(dependencies, "\n"));
|
org.slf4j:slf4j-api:2.0.5""", StringUtils.join(dependencies, "\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testGetCompileDependenciesJettyOverride1() {
|
||||||
|
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.13")),
|
||||||
|
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
|
assertNotNull(dependencies);
|
||||||
|
assertEquals(4, dependencies.size());
|
||||||
|
assertEquals("""
|
||||||
|
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2
|
||||||
|
org.eclipse.jetty:jetty-http:11.0.14
|
||||||
|
org.eclipse.jetty:jetty-io:11.0.14
|
||||||
|
org.slf4j:slf4j-api:2.0.13""", StringUtils.join(dependencies, "\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testGetCompileDependenciesJettyOverride2() {
|
||||||
|
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.11,org.eclipse.jetty:jetty-io:11.0.13,org.eclipse.jetty:jetty-server:11.0.15")),
|
||||||
|
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
|
assertNotNull(dependencies);
|
||||||
|
assertEquals(4, dependencies.size());
|
||||||
|
assertEquals("""
|
||||||
|
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2
|
||||||
|
org.eclipse.jetty:jetty-http:11.0.15
|
||||||
|
org.eclipse.jetty:jetty-io:11.0.13
|
||||||
|
org.slf4j:slf4j-api:2.0.11""", StringUtils.join(dependencies, "\n"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileRuntimeDependenciesJunit() {
|
void testGetCompileRuntimeDependenciesJunit() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
|
||||||
var dependencies_compile = resolver.getDirectDependencies(compile, runtime);
|
var dependencies_compile = resolver.getDirectDependencies(compile, runtime);
|
||||||
assertNotNull(dependencies_compile);
|
assertNotNull(dependencies_compile);
|
||||||
assertEquals(3, dependencies_compile.size());
|
assertEquals(3, dependencies_compile.size());
|
||||||
|
@ -150,7 +189,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesSpringBoot() {
|
void testGetCompileDependenciesSpringBoot() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
|
||||||
var dependencies = resolver.getDirectDependencies(compile);
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(6, dependencies.size());
|
assertEquals(6, dependencies.size());
|
||||||
|
@ -165,7 +204,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesMaven() {
|
void testGetCompileDependenciesMaven() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
|
||||||
var dependencies = resolver.getDirectDependencies(compile);
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(26, dependencies.size());
|
assertEquals(26, dependencies.size());
|
||||||
|
@ -200,7 +239,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesPlay() {
|
void testGetCompileDependenciesPlay() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
|
||||||
var dependencies = resolver.getDirectDependencies(compile);
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(25, dependencies.size());
|
assertEquals(25, dependencies.size());
|
||||||
|
@ -234,7 +273,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileDependenciesVaadin() {
|
void testGetCompileDependenciesVaadin() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
|
||||||
var dependencies = resolver.getDirectDependencies(compile);
|
var dependencies = resolver.getDirectDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(9, dependencies.size());
|
assertEquals(9, dependencies.size());
|
||||||
|
@ -252,7 +291,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileRuntimeDependenciesBitly() {
|
void testGetCompileRuntimeDependenciesBitly() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
|
||||||
var dependencies = resolver.getDirectDependencies(compile, runtime);
|
var dependencies = resolver.getDirectDependencies(compile, runtime);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(4, dependencies.size());
|
assertEquals(4, dependencies.size());
|
||||||
|
@ -265,7 +304,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesRIFE2() {
|
void testGetCompileTransitiveDependenciesRIFE2() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(1, dependencies.size());
|
assertEquals(1, dependencies.size());
|
||||||
|
@ -275,7 +314,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesRIFE2Snapshot() {
|
void testGetCompileTransitiveDependenciesRIFE2Snapshot() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(1, dependencies.size());
|
assertEquals(1, dependencies.size());
|
||||||
|
@ -285,7 +324,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesJetty() {
|
void testGetCompileTransitiveDependenciesJetty() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(6, dependencies.size());
|
assertEquals(6, dependencies.size());
|
||||||
|
@ -300,7 +339,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesJettyExclusion() {
|
void testGetCompileTransitiveDependenciesJettyExclusion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
||||||
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
||||||
.exclude("org.slf4j", "slf4j-api"));
|
.exclude("org.slf4j", "slf4j-api"));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
|
@ -316,7 +355,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesJettyFullGroupExclusion() {
|
void testGetCompileTransitiveDependenciesJettyFullGroupExclusion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
||||||
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
||||||
.exclude("org.eclipse.jetty", "*"));
|
.exclude("org.eclipse.jetty", "*"));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
|
@ -330,7 +369,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesJettyFullArtifactExclusion() {
|
void testGetCompileTransitiveDependenciesJettyFullArtifactExclusion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
||||||
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
||||||
.exclude("*", "jetty-http")
|
.exclude("*", "jetty-http")
|
||||||
.exclude("*", "slf4j-api"));
|
.exclude("*", "slf4j-api"));
|
||||||
|
@ -346,7 +385,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesJettyFullExclusion() {
|
void testGetCompileTransitiveDependenciesJettyFullExclusion() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
|
||||||
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
|
||||||
.exclude("*", "*"));
|
.exclude("*", "*"));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
|
@ -358,8 +397,8 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesJettyAndSlfj() {
|
void testGetCompileTransitiveDependenciesJettyAndSlfj() {
|
||||||
var dependencies = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))).getAllDependencies(compile);
|
var dependencies = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))).getAllDependencies(compile);
|
||||||
var dependencies2 = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.slf4j", "slf4j-simple", new VersionNumber(2, 0, 6))).getAllDependencies(compile, runtime);
|
var dependencies2 = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.slf4j", "slf4j-simple", new VersionNumber(2, 0, 6))).getAllDependencies(compile, runtime);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertNotNull(dependencies2);
|
assertNotNull(dependencies2);
|
||||||
assertEquals(6, dependencies.size());
|
assertEquals(6, dependencies.size());
|
||||||
|
@ -378,7 +417,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileRuntimeTransitiveDependenciesJunit() {
|
void testGetCompileRuntimeTransitiveDependenciesJunit() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
|
||||||
var dependencies_compile = resolver.getAllDependencies(compile, runtime);
|
var dependencies_compile = resolver.getAllDependencies(compile, runtime);
|
||||||
assertNotNull(dependencies_compile);
|
assertNotNull(dependencies_compile);
|
||||||
assertEquals(8, dependencies_compile.size());
|
assertEquals(8, dependencies_compile.size());
|
||||||
|
@ -401,7 +440,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesSpringBoot() {
|
void testGetCompileTransitiveDependenciesSpringBoot() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(18, dependencies.size());
|
assertEquals(18, dependencies.size());
|
||||||
|
@ -428,7 +467,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesMaven() {
|
void testGetCompileTransitiveDependenciesMaven() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(32, dependencies.size());
|
assertEquals(32, dependencies.size());
|
||||||
|
@ -469,7 +508,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesPlay() {
|
void testGetCompileTransitiveDependenciesPlay() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(48, dependencies.size());
|
assertEquals(48, dependencies.size());
|
||||||
|
@ -526,7 +565,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileTransitiveDependenciesVaadin() {
|
void testGetCompileTransitiveDependenciesVaadin() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
|
||||||
var dependencies = resolver.getAllDependencies(compile);
|
var dependencies = resolver.getAllDependencies(compile);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(88, dependencies.size());
|
assertEquals(88, dependencies.size());
|
||||||
|
@ -623,7 +662,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileRuntimeTransitiveDependenciesBitly() {
|
void testGetCompileRuntimeTransitiveDependenciesBitly() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
|
||||||
var dependencies = resolver.getAllDependencies(compile, runtime);
|
var dependencies = resolver.getAllDependencies(compile, runtime);
|
||||||
assertNotNull(dependencies);
|
assertNotNull(dependencies);
|
||||||
assertEquals(11, dependencies.size());
|
assertEquals(11, dependencies.size());
|
||||||
|
@ -643,7 +682,7 @@ public class TestDependencyResolver {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCompileRuntimeTransitiveDependenciesMariaDb() {
|
void testGetCompileRuntimeTransitiveDependenciesMariaDb() {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.mariadb.jdbc", "mariadb-java-client", new VersionNumber(3, 1, 3)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.mariadb.jdbc", "mariadb-java-client", new VersionNumber(3, 1, 3)));
|
||||||
var dependencies_compile = resolver.getAllDependencies(compile, runtime);
|
var dependencies_compile = resolver.getAllDependencies(compile, runtime);
|
||||||
assertNotNull(dependencies_compile);
|
assertNotNull(dependencies_compile);
|
||||||
assertEquals(9, dependencies_compile.size());
|
assertEquals(9, dependencies_compile.size());
|
||||||
|
@ -667,10 +706,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependency()
|
void testTransferDependency()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertTrue(StringUtils.join(result, "\n").matches("""
|
assertTrue(StringUtils.join(result, "\n").matches("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar"""));
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar"""));
|
||||||
|
|
||||||
|
@ -685,10 +724,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencySources()
|
void testTransferDependencySources()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
|
||||||
assertTrue(StringUtils.join(result, "\n").matches("""
|
assertTrue(StringUtils.join(result, "\n").matches("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*-sources.jar"""));
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*-sources.jar"""));
|
||||||
|
@ -704,10 +743,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencySourcesJavadoc()
|
void testTransferDependencySourcesJavadoc()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
|
||||||
assertTrue(StringUtils.join(result, "\n").matches("""
|
assertTrue(StringUtils.join(result, "\n").matches("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*-sources.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*-sources.jar
|
||||||
|
@ -724,10 +763,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencySnapshot()
|
void testTransferDependencySnapshot()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar""", StringUtils.join(result, "\n"));
|
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar""", StringUtils.join(result, "\n"));
|
||||||
|
|
||||||
|
@ -742,10 +781,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencySnapshotSources()
|
void testTransferDependencySnapshotSources()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar
|
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar
|
||||||
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4-sources.jar""", StringUtils.join(result, "\n"));
|
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4-sources.jar""", StringUtils.join(result, "\n"));
|
||||||
|
@ -762,10 +801,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencySnapshotSourcesJavadoc()
|
void testTransferDependencySnapshotSourcesJavadoc()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar
|
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar
|
||||||
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4-sources.jar
|
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4-sources.jar
|
||||||
|
@ -784,10 +823,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencyJetty()
|
void testTransferDependencyJetty()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar
|
||||||
|
@ -812,12 +851,46 @@ public class TestDependencyResolver {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencyJettySources()
|
void testTransferDependencyJettyOverriddenVersions()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
var resolution = new VersionResolution(new HierarchicalProperties()
|
||||||
|
.put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.11")
|
||||||
|
.put(PROPERTY_OVERRIDE_PREFIX + "1", "org.eclipse.jetty:jetty-io:11.0.13")
|
||||||
|
.put(PROPERTY_OVERRIDE_PREFIX + "2", "org.eclipse.jetty:jetty-server:11.0.15"));
|
||||||
|
var resolver = new DependencyResolver(resolution, ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(resolution, ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
|
assertEquals("""
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.15/jetty-server-11.0.15.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-http/11.0.15/jetty-http-11.0.15.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-io/11.0.13/jetty-io-11.0.13.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.11/slf4j-api-2.0.11.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-util/11.0.15/jetty-util-11.0.15.jar""", StringUtils.join(result, "\n"));
|
||||||
|
|
||||||
|
var files = FileUtils.getFileList(tmp);
|
||||||
|
assertEquals(6, files.size());
|
||||||
|
Collections.sort(files);
|
||||||
|
assertEquals("""
|
||||||
|
jetty-http-11.0.15.jar
|
||||||
|
jetty-io-11.0.13.jar
|
||||||
|
jetty-jakarta-servlet-api-5.0.2.jar
|
||||||
|
jetty-server-11.0.15.jar
|
||||||
|
jetty-util-11.0.15.jar
|
||||||
|
slf4j-api-2.0.11.jar""", StringUtils.join(files, "\n"));
|
||||||
|
} finally {
|
||||||
|
FileUtils.deleteDirectory(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testTransferDependencyJettySources()
|
||||||
|
throws Exception {
|
||||||
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
|
try {
|
||||||
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14-sources.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14-sources.jar
|
||||||
|
@ -856,10 +929,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencyJettySourcesJavadoc()
|
void testTransferDependencyJettySourcesJavadoc()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14-sources.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14-sources.jar
|
||||||
|
@ -910,10 +983,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependenciesJunit()
|
void testTransferDependenciesJunit()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile, runtime).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile, runtime).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter/5.9.2/junit-jupiter-5.9.2.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter/5.9.2/junit-jupiter-5.9.2.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2.jar
|
||||||
|
@ -944,10 +1017,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencySpringBoot()
|
void testTransferDependencySpringBoot()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter/3.0.4/spring-boot-starter-3.0.4.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter/3.0.4/spring-boot-starter-3.0.4.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/springframework/boot/spring-boot/3.0.4/spring-boot-3.0.4.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/springframework/boot/spring-boot/3.0.4/spring-boot-3.0.4.jar
|
||||||
|
@ -998,10 +1071,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencyMaven()
|
void testTransferDependencyMaven()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/apache/maven/maven-core/3.9.0/maven-core-3.9.0.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/apache/maven/maven-core/3.9.0/maven-core-3.9.0.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/apache/maven/maven-model/3.9.0/maven-model-3.9.0.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/apache/maven/maven-model/3.9.0/maven-model-3.9.0.jar
|
||||||
|
@ -1080,10 +1153,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencyPlay()
|
void testTransferDependencyPlay()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play_2.13/2.8.19/play_2.13-2.8.19.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play_2.13/2.8.19/play_2.13-2.8.19.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.10/scala-library-2.13.10.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.10/scala-library-2.13.10.jar
|
||||||
|
@ -1192,12 +1265,128 @@ public class TestDependencyResolver {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testTransferDependencyVaadin()
|
void testTransferDependencyPlayOverriddenVersions()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
|
var resolution = new VersionResolution(new HierarchicalProperties()
|
||||||
|
.put(PROPERTY_OVERRIDE_PREFIX, "org.scala-lang:scala-library:2.13.12,org.slf4j:slf4j-api:2.0.11,com.google.guava:guava:31.1-jre"));
|
||||||
|
var resolver = new DependencyResolver(resolution, ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(resolution, ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
|
assertEquals("""
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play_2.13/2.8.19/play_2.13-2.8.19.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.12/scala-library-2.13.12.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/build-link/2.8.19/build-link-2.8.19.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-streams_2.13/2.8.19/play-streams_2.13-2.8.19.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/twirl-api_2.13/1.5.1/twirl-api_2.13-1.5.1.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.11/slf4j-api-2.0.11.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/jul-to-slf4j/1.7.36/jul-to-slf4j-1.7.36.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor_2.13/2.6.20/akka-actor_2.13-2.6.20.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor-typed_2.13/2.6.20/akka-actor-typed_2.13-2.6.20.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-slf4j_2.13/2.6.20/akka-slf4j_2.13-2.6.20.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-serialization-jackson_2.13/2.6.20/akka-serialization-jackson_2.13-2.6.20.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-json_2.13/2.8.2/play-json_2.13-2.8.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/io/jsonwebtoken/jjwt/0.9.1/jjwt-0.9.1.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.13/1.0.2/scala-java8-compat_2.13-1.0.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.13/0.4.3/ssl-config-core_2.13-0.4.3.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.13/1.1.2/scala-parser-combinators_2.13-1.1.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-exceptions/2.8.19/play-exceptions-2.8.19.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-stream_2.13/2.6.20/akka-stream_2.13-2.6.20.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.13/1.2.0/scala-xml_2.13-1.2.0.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/config/1.4.2/config-1.4.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-scala_2.13/2.11.4/jackson-module-scala_2.13-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-functional_2.13/2.8.2/play-functional_2.13-2.8.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.1/scala-reflect-2.13.1.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/joda-time/joda-time/2.10.5/joda-time-2.10.5.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-protobuf-v3_2.13/2.6.20/akka-protobuf-v3_2.13-2.6.20.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-paranamer/2.11.4/jackson-module-paranamer-2.11.4.jar
|
||||||
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/thoughtworks/paranamer/paranamer/2.8/paranamer-2.8.jar""", StringUtils.join(result, "\n"));
|
||||||
|
|
||||||
|
var files = FileUtils.getFileList(tmp);
|
||||||
|
assertEquals(48, files.size());
|
||||||
|
Collections.sort(files);
|
||||||
|
assertEquals("""
|
||||||
|
akka-actor-typed_2.13-2.6.20.jar
|
||||||
|
akka-actor_2.13-2.6.20.jar
|
||||||
|
akka-protobuf-v3_2.13-2.6.20.jar
|
||||||
|
akka-serialization-jackson_2.13-2.6.20.jar
|
||||||
|
akka-slf4j_2.13-2.6.20.jar
|
||||||
|
akka-stream_2.13-2.6.20.jar
|
||||||
|
build-link-2.8.19.jar
|
||||||
|
checker-qual-3.12.0.jar
|
||||||
|
config-1.4.2.jar
|
||||||
|
error_prone_annotations-2.11.0.jar
|
||||||
|
failureaccess-1.0.1.jar
|
||||||
|
guava-31.1-jre.jar
|
||||||
|
j2objc-annotations-1.3.jar
|
||||||
|
jackson-annotations-2.11.4.jar
|
||||||
|
jackson-core-2.11.4.jar
|
||||||
|
jackson-databind-2.11.4.jar
|
||||||
|
jackson-dataformat-cbor-2.11.4.jar
|
||||||
|
jackson-datatype-jdk8-2.11.4.jar
|
||||||
|
jackson-datatype-jsr310-2.11.4.jar
|
||||||
|
jackson-module-parameter-names-2.11.4.jar
|
||||||
|
jackson-module-paranamer-2.11.4.jar
|
||||||
|
jackson-module-scala_2.13-2.11.4.jar
|
||||||
|
jakarta.activation-api-1.2.2.jar
|
||||||
|
jakarta.transaction-api-1.3.3.jar
|
||||||
|
jakarta.xml.bind-api-2.3.3.jar
|
||||||
|
javax.inject-1.jar
|
||||||
|
jcl-over-slf4j-1.7.36.jar
|
||||||
|
jjwt-0.9.1.jar
|
||||||
|
joda-time-2.10.5.jar
|
||||||
|
jsr305-3.0.2.jar
|
||||||
|
jul-to-slf4j-1.7.36.jar
|
||||||
|
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
|
||||||
|
lz4-java-1.8.0.jar
|
||||||
|
paranamer-2.8.jar
|
||||||
|
play-exceptions-2.8.19.jar
|
||||||
|
play-functional_2.13-2.8.2.jar
|
||||||
|
play-json_2.13-2.8.2.jar
|
||||||
|
play-streams_2.13-2.8.19.jar
|
||||||
|
play_2.13-2.8.19.jar
|
||||||
|
reactive-streams-1.0.3.jar
|
||||||
|
scala-java8-compat_2.13-1.0.2.jar
|
||||||
|
scala-library-2.13.12.jar
|
||||||
|
scala-parser-combinators_2.13-1.1.2.jar
|
||||||
|
scala-reflect-2.13.1.jar
|
||||||
|
scala-xml_2.13-1.2.0.jar
|
||||||
|
slf4j-api-2.0.11.jar
|
||||||
|
ssl-config-core_2.13-0.4.3.jar
|
||||||
|
twirl-api_2.13-1.5.1.jar""", StringUtils.join(files, "\n"));
|
||||||
|
} finally {
|
||||||
|
FileUtils.deleteDirectory(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testTransferDependencyVaadin()
|
||||||
|
throws Exception {
|
||||||
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
|
||||||
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
|
try {
|
||||||
|
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertEquals("""
|
assertEquals("""
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/vaadin/vaadin/23.3.7/vaadin-23.3.7.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/vaadin/vaadin/23.3.7/vaadin-23.3.7.jar
|
||||||
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/vaadin/vaadin-core/23.3.7/vaadin-core-23.3.7.jar
|
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/vaadin/vaadin-core/23.3.7/vaadin-core-23.3.7.jar
|
||||||
|
@ -1388,10 +1577,10 @@ public class TestDependencyResolver {
|
||||||
@Test
|
@Test
|
||||||
void testTransferCheckExisting()
|
void testTransferCheckExisting()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
|
||||||
var tmp = Files.createTempDirectory("transfers").toFile();
|
var tmp = Files.createTempDirectory("transfers").toFile();
|
||||||
try {
|
try {
|
||||||
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
|
|
||||||
var modification_map = new HashMap<String, Long>();
|
var modification_map = new HashMap<String, Long>();
|
||||||
Files.walk(Path.of(tmp.getAbsolutePath()))
|
Files.walk(Path.of(tmp.getAbsolutePath()))
|
||||||
|
@ -1400,7 +1589,7 @@ public class TestDependencyResolver {
|
||||||
.forEach(it -> modification_map.put(it, new File(it).lastModified()));
|
.forEach(it -> modification_map.put(it, new File(it).lastModified()));
|
||||||
|
|
||||||
// re-transfer and check the modification time didn't change
|
// re-transfer and check the modification time didn't change
|
||||||
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
Files.walk(Path.of(tmp.getAbsolutePath()))
|
Files.walk(Path.of(tmp.getAbsolutePath()))
|
||||||
.map(path -> path.toAbsolutePath().toString())
|
.map(path -> path.toAbsolutePath().toString())
|
||||||
.filter(s -> !s.equals(tmp.getAbsolutePath()))
|
.filter(s -> !s.equals(tmp.getAbsolutePath()))
|
||||||
|
@ -1410,7 +1599,7 @@ public class TestDependencyResolver {
|
||||||
var first = modification_map.keySet().stream().findFirst().get();
|
var first = modification_map.keySet().stream().findFirst().get();
|
||||||
var first_file = new File(first);
|
var first_file = new File(first);
|
||||||
first_file.delete();
|
first_file.delete();
|
||||||
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertNotEquals(first_file.lastModified(), modification_map.get(first));
|
assertNotEquals(first_file.lastModified(), modification_map.get(first));
|
||||||
modification_map.put(first, first_file.lastModified());
|
modification_map.put(first, first_file.lastModified());
|
||||||
Files.walk(Path.of(tmp.getAbsolutePath()))
|
Files.walk(Path.of(tmp.getAbsolutePath()))
|
||||||
|
@ -1421,7 +1610,7 @@ public class TestDependencyResolver {
|
||||||
// change one file and check that this is transfered again
|
// change one file and check that this is transfered again
|
||||||
FileUtils.writeString("stuff", first_file);
|
FileUtils.writeString("stuff", first_file);
|
||||||
var before_transfer_modified = first_file.lastModified();
|
var before_transfer_modified = first_file.lastModified();
|
||||||
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
|
||||||
assertNotEquals(first_file.lastModified(), before_transfer_modified);
|
assertNotEquals(first_file.lastModified(), before_transfer_modified);
|
||||||
modification_map.put(first, first_file.lastModified());
|
modification_map.put(first, first_file.lastModified());
|
||||||
Files.walk(Path.of(tmp.getAbsolutePath()))
|
Files.walk(Path.of(tmp.getAbsolutePath()))
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
package rife.bld.dependencies;
|
package rife.bld.dependencies;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
import rife.tools.StringUtils;
|
import rife.tools.StringUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -91,7 +92,7 @@ public class TestDependencySet {
|
||||||
│ └─ org.eclipse.jetty:jetty-io:11.0.14
|
│ └─ org.eclipse.jetty:jetty-io:11.0.14
|
||||||
└─ org.slf4j:slf4j-simple:2.0.6
|
└─ org.slf4j:slf4j-simple:2.0.6
|
||||||
└─ org.slf4j:slf4j-api:2.0.6
|
└─ org.slf4j:slf4j-api:2.0.6
|
||||||
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -117,7 +118,7 @@ public class TestDependencySet {
|
||||||
├─ org.springframework:spring-core:6.0.6
|
├─ org.springframework:spring-core:6.0.6
|
||||||
│ └─ org.springframework:spring-jcl:6.0.6
|
│ └─ org.springframework:spring-jcl:6.0.6
|
||||||
└─ org.yaml:snakeyaml:1.33
|
└─ org.yaml:snakeyaml:1.33
|
||||||
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -157,7 +158,7 @@ public class TestDependencySet {
|
||||||
├─ org.codehaus.plexus:plexus-component-annotations:2.1.0
|
├─ org.codehaus.plexus:plexus-component-annotations:2.1.0
|
||||||
├─ org.apache.commons:commons-lang3:3.8.1
|
├─ org.apache.commons:commons-lang3:3.8.1
|
||||||
└─ org.slf4j:slf4j-api:1.7.36
|
└─ org.slf4j:slf4j-api:1.7.36
|
||||||
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -213,7 +214,7 @@ public class TestDependencySet {
|
||||||
├─ org.scala-lang.modules:scala-java8-compat_2.13:1.0.2
|
├─ org.scala-lang.modules:scala-java8-compat_2.13:1.0.2
|
||||||
├─ com.typesafe:ssl-config-core_2.13:0.4.3
|
├─ com.typesafe:ssl-config-core_2.13:0.4.3
|
||||||
└─ org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
|
└─ org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
|
||||||
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -309,7 +310,7 @@ public class TestDependencySet {
|
||||||
│ ├─ net.java.dev.jna:jna:5.11.0
|
│ ├─ net.java.dev.jna:jna:5.11.0
|
||||||
│ └─ net.java.dev.jna:jna-platform:5.11.0
|
│ └─ net.java.dev.jna:jna-platform:5.11.0
|
||||||
└─ com.auth0:java-jwt:3.19.2
|
└─ com.auth0:java-jwt:3.19.2
|
||||||
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -352,7 +353,7 @@ public class TestDependencySet {
|
||||||
└─ com.google.zxing:javase:3.5.1
|
└─ com.google.zxing:javase:3.5.1
|
||||||
├─ com.google.zxing:core:3.5.1
|
├─ com.google.zxing:core:3.5.1
|
||||||
└─ com.beust:jcommander:1.82
|
└─ com.beust:jcommander:1.82
|
||||||
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -371,6 +372,6 @@ public class TestDependencySet {
|
||||||
│ └─ com.squareup.okio:okio-jvm:3.2.0
|
│ └─ com.squareup.okio:okio-jvm:3.2.0
|
||||||
├─ com.squareup.okhttp3:logging-interceptor:4.11.0
|
├─ com.squareup.okhttp3:logging-interceptor:4.11.0
|
||||||
└─ org.json:json:20230618
|
└─ org.json:json:20230618
|
||||||
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), compile, runtime));
|
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), compile, runtime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2024 Geert Bevin (gbevin[remove] at uwyn dot com)
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License")
|
||||||
|
*/
|
||||||
|
package rife.bld.dependencies;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import rife.ioc.HierarchicalProperties;
|
||||||
|
|
||||||
|
public class TestVersionResolution {
|
||||||
|
@Test
|
||||||
|
public void testVersionResolutionConstructor() {
|
||||||
|
var properties = new HierarchicalProperties();
|
||||||
|
properties.put("bld.override", "com.bookstore:book-api:2.0.0");
|
||||||
|
|
||||||
|
var versionResolution = new VersionResolution(properties);
|
||||||
|
Assertions.assertNotNull(versionResolution);
|
||||||
|
|
||||||
|
versionResolution = new VersionResolution(null);
|
||||||
|
Assertions.assertNotNull(versionResolution);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testOverrideVersion() {
|
||||||
|
var properties = new HierarchicalProperties();
|
||||||
|
properties.put("bld.override", "com.bookstore:book-api:2.0.0");
|
||||||
|
|
||||||
|
var versionResolution = new VersionResolution(properties);
|
||||||
|
|
||||||
|
var originalDependency = new Dependency("com.bookstore", "book-api", new VersionNumber(1,0,0));
|
||||||
|
var overriddenVersion = versionResolution.overrideVersion(originalDependency);
|
||||||
|
|
||||||
|
Assertions.assertEquals(new VersionNumber(2,0,0), overriddenVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testOverrideDependency() {
|
||||||
|
var properties = new HierarchicalProperties();
|
||||||
|
properties.put("bld.override", "com.bookstore:book-api:2.0.0");
|
||||||
|
|
||||||
|
var versionResolution = new VersionResolution(properties);
|
||||||
|
|
||||||
|
var originalDependency = new Dependency("com.bookstore", "book-api",new VersionNumber(1,0,0));
|
||||||
|
var overriddenDependency = versionResolution.overrideDependency(originalDependency);
|
||||||
|
|
||||||
|
Assertions.assertEquals(new VersionNumber(2,0,0), overriddenDependency.version());
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,6 +22,7 @@ public class TestDependencyTreeOperation {
|
||||||
@Test
|
@Test
|
||||||
void testInstantiation() {
|
void testInstantiation() {
|
||||||
var operation = new DependencyTreeOperation();
|
var operation = new DependencyTreeOperation();
|
||||||
|
assertEquals(operation.properties().size(), 0);
|
||||||
assertTrue(operation.dependencies().isEmpty());
|
assertTrue(operation.dependencies().isEmpty());
|
||||||
assertTrue(operation.repositories().isEmpty());
|
assertTrue(operation.repositories().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class TestPublishOperation {
|
||||||
assertTrue(operation.repositories().isEmpty());
|
assertTrue(operation.repositories().isEmpty());
|
||||||
assertNull(operation.moment());
|
assertNull(operation.moment());
|
||||||
assertTrue(operation.dependencies().isEmpty());
|
assertTrue(operation.dependencies().isEmpty());
|
||||||
assertTrue(operation.properties().isEmpty());
|
assertTrue(operation.publishProperties().isEmpty());
|
||||||
assertNotNull(operation.info());
|
assertNotNull(operation.info());
|
||||||
assertNull(operation.info().groupId());
|
assertNull(operation.info().groupId());
|
||||||
assertNull(operation.info().artifactId());
|
assertNull(operation.info().artifactId());
|
||||||
|
@ -113,14 +113,14 @@ public class TestPublishOperation {
|
||||||
.repository(repository2)
|
.repository(repository2)
|
||||||
.moment(moment)
|
.moment(moment)
|
||||||
.artifacts(List.of(artifact1, artifact2));
|
.artifacts(List.of(artifact1, artifact2));
|
||||||
operation3.properties().mavenCompilerSource(17).mavenCompilerTarget(19);
|
operation3.publishProperties().mavenCompilerSource(17).mavenCompilerTarget(19);
|
||||||
assertTrue(operation3.repositories().contains(repository1));
|
assertTrue(operation3.repositories().contains(repository1));
|
||||||
assertTrue(operation3.repositories().contains(repository2));
|
assertTrue(operation3.repositories().contains(repository2));
|
||||||
assertEquals(moment, operation3.moment());
|
assertEquals(moment, operation3.moment());
|
||||||
assertTrue(operation3.artifacts().contains(artifact1));
|
assertTrue(operation3.artifacts().contains(artifact1));
|
||||||
assertTrue(operation3.artifacts().contains(artifact2));
|
assertTrue(operation3.artifacts().contains(artifact2));
|
||||||
assertEquals(17, operation3.properties().mavenCompilerSource());
|
assertEquals(17, operation3.publishProperties().mavenCompilerSource());
|
||||||
assertEquals(19, operation3.properties().mavenCompilerTarget());
|
assertEquals(19, operation3.publishProperties().mavenCompilerTarget());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -6,6 +6,7 @@ package rife.bld.wrapper;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import rife.bld.BldVersion;
|
import rife.bld.BldVersion;
|
||||||
|
import rife.bld.dependencies.VersionResolution;
|
||||||
import rife.tools.FileUtils;
|
import rife.tools.FileUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -33,7 +34,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, Collections.emptySet(), Collections.emptySet(), false, false);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), Collections.emptySet(), Collections.emptySet(), false, false);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -66,7 +67,9 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
|
||||||
|
new Properties(), new Properties(),
|
||||||
|
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -89,6 +92,95 @@ public class TestWrapperExtensionResolver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testUpdateExtensionsOverride1()
|
||||||
|
throws Exception {
|
||||||
|
var tmp1 = Files.createTempDirectory("test1").toFile();
|
||||||
|
var tmp2 = Files.createTempDirectory("test2").toFile();
|
||||||
|
try {
|
||||||
|
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
|
||||||
|
|
||||||
|
var hash_file = new File(tmp1, "wrapper.hash");
|
||||||
|
assertFalse(hash_file.exists());
|
||||||
|
var files1 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(2, files1.size());
|
||||||
|
Collections.sort(files1);
|
||||||
|
assertEquals("""
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
|
var properties = new Properties();
|
||||||
|
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.antlr:antlr4:4.11.0");
|
||||||
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
|
||||||
|
properties, new Properties(),
|
||||||
|
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
|
resolver.updateExtensions();
|
||||||
|
|
||||||
|
assertTrue(hash_file.exists());
|
||||||
|
var files2 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(9, files2.size());
|
||||||
|
Collections.sort(files2);
|
||||||
|
assertEquals("""
|
||||||
|
ST4-4.3.4.jar
|
||||||
|
antlr-runtime-3.5.3.jar
|
||||||
|
antlr4-4.11.0.jar
|
||||||
|
antlr4-runtime-4.11.0.jar
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties
|
||||||
|
icu4j-71.1.jar
|
||||||
|
javax.json-1.1.4.jar
|
||||||
|
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
||||||
|
} finally {
|
||||||
|
tmp2.delete();
|
||||||
|
tmp1.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testUpdateExtensionsOverride2()
|
||||||
|
throws Exception {
|
||||||
|
var tmp1 = Files.createTempDirectory("test1").toFile();
|
||||||
|
var tmp2 = Files.createTempDirectory("test2").toFile();
|
||||||
|
try {
|
||||||
|
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
|
||||||
|
|
||||||
|
var hash_file = new File(tmp1, "wrapper.hash");
|
||||||
|
assertFalse(hash_file.exists());
|
||||||
|
var files1 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(2, files1.size());
|
||||||
|
Collections.sort(files1);
|
||||||
|
assertEquals("""
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
|
var properties = new Properties();
|
||||||
|
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.glassfish:javax.json:1.1.3");
|
||||||
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
|
||||||
|
properties, new Properties(),
|
||||||
|
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
|
resolver.updateExtensions();
|
||||||
|
|
||||||
|
assertTrue(hash_file.exists());
|
||||||
|
var files2 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(10, files2.size());
|
||||||
|
Collections.sort(files2);
|
||||||
|
assertEquals("""
|
||||||
|
ST4-4.3.4.jar
|
||||||
|
antlr-runtime-3.5.3.jar
|
||||||
|
antlr4-4.11.1.jar
|
||||||
|
antlr4-runtime-4.11.1.jar
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties
|
||||||
|
icu4j-71.1.jar
|
||||||
|
javax.json-1.1.3.jar
|
||||||
|
javax.json-api-1.1.3.jar
|
||||||
|
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
||||||
|
} finally {
|
||||||
|
tmp2.delete();
|
||||||
|
tmp1.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testUpdateExtensionsSources()
|
void testUpdateExtensionsSources()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
@ -106,7 +198,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, false);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, false);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -153,7 +245,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, true);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, true);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -200,7 +292,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, true);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, true);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -237,6 +329,64 @@ public class TestWrapperExtensionResolver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testUpdateExtensionsBothOverride()
|
||||||
|
throws Exception {
|
||||||
|
var tmp1 = Files.createTempDirectory("test1").toFile();
|
||||||
|
var tmp2 = Files.createTempDirectory("test2").toFile();
|
||||||
|
try {
|
||||||
|
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
|
||||||
|
|
||||||
|
var hash_file = new File(tmp1, "wrapper.hash");
|
||||||
|
assertFalse(hash_file.exists());
|
||||||
|
var files1 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(2, files1.size());
|
||||||
|
Collections.sort(files1);
|
||||||
|
assertEquals("""
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
|
var properties = new Properties();
|
||||||
|
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.antlr:antlr4:4.11.0");
|
||||||
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
|
||||||
|
properties, new Properties(),
|
||||||
|
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, true);
|
||||||
|
resolver.updateExtensions();
|
||||||
|
|
||||||
|
assertTrue(hash_file.exists());
|
||||||
|
var files2 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(23, files2.size());
|
||||||
|
Collections.sort(files2);
|
||||||
|
assertEquals("""
|
||||||
|
ST4-4.3.4-javadoc.jar
|
||||||
|
ST4-4.3.4-sources.jar
|
||||||
|
ST4-4.3.4.jar
|
||||||
|
antlr-runtime-3.5.3-javadoc.jar
|
||||||
|
antlr-runtime-3.5.3-sources.jar
|
||||||
|
antlr-runtime-3.5.3.jar
|
||||||
|
antlr4-4.11.0-javadoc.jar
|
||||||
|
antlr4-4.11.0-sources.jar
|
||||||
|
antlr4-4.11.0.jar
|
||||||
|
antlr4-runtime-4.11.0-javadoc.jar
|
||||||
|
antlr4-runtime-4.11.0-sources.jar
|
||||||
|
antlr4-runtime-4.11.0.jar
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties
|
||||||
|
icu4j-71.1-javadoc.jar
|
||||||
|
icu4j-71.1-sources.jar
|
||||||
|
icu4j-71.1.jar
|
||||||
|
javax.json-1.1.4-javadoc.jar
|
||||||
|
javax.json-1.1.4-sources.jar
|
||||||
|
javax.json-1.1.4.jar
|
||||||
|
org.abego.treelayout.core-1.0.3-javadoc.jar
|
||||||
|
org.abego.treelayout.core-1.0.3-sources.jar
|
||||||
|
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
||||||
|
} finally {
|
||||||
|
tmp2.delete();
|
||||||
|
tmp1.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testResolvedRepository()
|
void testResolvedRepository()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
@ -257,7 +407,7 @@ public class TestWrapperExtensionResolver {
|
||||||
var properties = new File(tmp1, "local.properties");
|
var properties = new File(tmp1, "local.properties");
|
||||||
FileUtils.writeString("bld.repo.testrepo=" + MAVEN_CENTRAL, properties);
|
FileUtils.writeString("bld.repo.testrepo=" + MAVEN_CENTRAL, properties);
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of("testrepo"), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of("testrepo"), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -297,7 +447,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -345,7 +495,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -409,7 +559,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
resolver.updateExtensions();
|
resolver.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -473,7 +623,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
resolver1.updateExtensions();
|
resolver1.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -491,7 +641,7 @@ public class TestWrapperExtensionResolver {
|
||||||
javax.json-1.1.4.jar
|
javax.json-1.1.4.jar
|
||||||
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
||||||
|
|
||||||
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
|
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
|
||||||
resolver2.updateExtensions();
|
resolver2.updateExtensions();
|
||||||
var files3 = FileUtils.getFileList(tmp2);
|
var files3 = FileUtils.getFileList(tmp2);
|
||||||
assertEquals(10, files3.size());
|
assertEquals(10, files3.size());
|
||||||
|
@ -530,7 +680,7 @@ public class TestWrapperExtensionResolver {
|
||||||
bld-wrapper.jar
|
bld-wrapper.jar
|
||||||
bld-wrapper.properties""", String.join("\n", files1));
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
|
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
|
||||||
resolver1.updateExtensions();
|
resolver1.updateExtensions();
|
||||||
|
|
||||||
assertTrue(hash_file.exists());
|
assertTrue(hash_file.exists());
|
||||||
|
@ -549,7 +699,7 @@ public class TestWrapperExtensionResolver {
|
||||||
jsoup-1.15.4.jar
|
jsoup-1.15.4.jar
|
||||||
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
||||||
|
|
||||||
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.jsoup:jsoup:1.15.4"), false, false);
|
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.jsoup:jsoup:1.15.4"), false, false);
|
||||||
resolver2.updateExtensions();
|
resolver2.updateExtensions();
|
||||||
var files3 = FileUtils.getFileList(tmp2);
|
var files3 = FileUtils.getFileList(tmp2);
|
||||||
assertEquals(3, files3.size());
|
assertEquals(3, files3.size());
|
||||||
|
@ -563,4 +713,66 @@ public class TestWrapperExtensionResolver {
|
||||||
tmp1.delete();
|
tmp1.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testOverrideExtension()
|
||||||
|
throws Exception {
|
||||||
|
var tmp1 = Files.createTempDirectory("test1").toFile();
|
||||||
|
var tmp2 = Files.createTempDirectory("test2").toFile();
|
||||||
|
try {
|
||||||
|
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
|
||||||
|
|
||||||
|
var hash_file = new File(tmp1, "wrapper.hash");
|
||||||
|
assertFalse(hash_file.exists());
|
||||||
|
var files1 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(2, files1.size());
|
||||||
|
Collections.sort(files1);
|
||||||
|
assertEquals("""
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties""", String.join("\n", files1));
|
||||||
|
|
||||||
|
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
|
||||||
|
new Properties(), new Properties(),
|
||||||
|
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
|
resolver1.updateExtensions();
|
||||||
|
|
||||||
|
assertTrue(hash_file.exists());
|
||||||
|
var files2 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(9, files2.size());
|
||||||
|
Collections.sort(files2);
|
||||||
|
assertEquals("""
|
||||||
|
ST4-4.3.4.jar
|
||||||
|
antlr-runtime-3.5.3.jar
|
||||||
|
antlr4-4.11.1.jar
|
||||||
|
antlr4-runtime-4.11.1.jar
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties
|
||||||
|
icu4j-71.1.jar
|
||||||
|
javax.json-1.1.4.jar
|
||||||
|
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
|
||||||
|
|
||||||
|
var properties = new Properties();
|
||||||
|
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.antlr:antlr4:4.11.0");
|
||||||
|
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
|
||||||
|
properties, new Properties(),
|
||||||
|
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
|
||||||
|
resolver2.updateExtensions();
|
||||||
|
var files3 = FileUtils.getFileList(tmp2);
|
||||||
|
assertEquals(9, files3.size());
|
||||||
|
Collections.sort(files3);
|
||||||
|
assertEquals("""
|
||||||
|
ST4-4.3.4.jar
|
||||||
|
antlr-runtime-3.5.3.jar
|
||||||
|
antlr4-4.11.0.jar
|
||||||
|
antlr4-runtime-4.11.0.jar
|
||||||
|
bld-wrapper.jar
|
||||||
|
bld-wrapper.properties
|
||||||
|
icu4j-71.1.jar
|
||||||
|
javax.json-1.1.4.jar
|
||||||
|
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files3));
|
||||||
|
} finally {
|
||||||
|
tmp2.delete();
|
||||||
|
tmp1.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue