|
|
|
|
@ -20,7 +20,9 @@ import java.net.URI;
@@ -20,7 +20,9 @@ import java.net.URI;
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Collections; |
|
|
|
|
import java.util.Comparator; |
|
|
|
|
import java.util.LinkedHashMap; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.function.BiFunction; |
|
|
|
|
import java.util.function.Function; |
|
|
|
|
|
|
|
|
|
@ -37,6 +39,8 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
@@ -37,6 +39,8 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
|
|
|
|
|
*/ |
|
|
|
|
public class RepositoryTransformersExtension { |
|
|
|
|
|
|
|
|
|
private static final String CREDENTIALS_MARKER = "{spring.mavenCredentials}"; |
|
|
|
|
|
|
|
|
|
private static final String REPOSITORIES_MARKER = "{spring.mavenRepositories}"; |
|
|
|
|
|
|
|
|
|
private static final String PLUGIN_REPOSITORIES_MARKER = "{spring.mavenPluginRepositories}"; |
|
|
|
|
@ -60,6 +64,19 @@ public class RepositoryTransformersExtension {
@@ -60,6 +64,19 @@ public class RepositoryTransformersExtension {
|
|
|
|
|
return "%s<ibiblio name=\"%s\" m2compatible=\"true\" root=\"%s\" />".formatted(indent, name, url); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (line.contains(CREDENTIALS_MARKER)) { |
|
|
|
|
Map<String, MavenCredential> hostCredentials = new LinkedHashMap<>(); |
|
|
|
|
getSpringRepositories().forEach((repository) -> { |
|
|
|
|
if (repository.getName().startsWith("spring-commercial-")) { |
|
|
|
|
String host = repository.getUrl().getHost(); |
|
|
|
|
hostCredentials.put(host, |
|
|
|
|
new MavenCredential("${env.COMMERCIAL_REPO_USERNAME}", "${env.COMMERCIAL_REPO_PASSWORD")); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
return transform(line, hostCredentials.entrySet(), (entry, |
|
|
|
|
indent) -> "%s<credentials host=\"%s\" realm=\"Artifactory Realm\" username=\"%s\" passwd=\"%s\" />%n" |
|
|
|
|
.formatted(indent, entry.getKey(), entry.getValue().username(), entry.getValue().password())); |
|
|
|
|
} |
|
|
|
|
return line; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -99,10 +116,14 @@ public class RepositoryTransformersExtension {
@@ -99,10 +116,14 @@ public class RepositoryTransformersExtension {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String transform(String line, BiFunction<MavenArtifactRepository, String, String> generator) { |
|
|
|
|
return transform(line, getSpringRepositories(), generator); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private <T> String transform(String line, Iterable<T> iterable, BiFunction<T, String, String> generator) { |
|
|
|
|
StringBuilder result = new StringBuilder(); |
|
|
|
|
String indent = getIndent(line); |
|
|
|
|
getSpringRepositories().forEach((repository) -> { |
|
|
|
|
String fragment = generator.apply(repository, indent); |
|
|
|
|
iterable.forEach((item) -> { |
|
|
|
|
String fragment = generator.apply(item, indent); |
|
|
|
|
if (fragment != null) { |
|
|
|
|
result.append(!result.isEmpty() ? "\n" : ""); |
|
|
|
|
result.append(fragment); |
|
|
|
|
@ -136,4 +157,8 @@ public class RepositoryTransformersExtension {
@@ -136,4 +157,8 @@ public class RepositoryTransformersExtension {
|
|
|
|
|
project.getExtensions().create("springRepositoryTransformers", RepositoryTransformersExtension.class, project); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
record MavenCredential(String username, String password) { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|