You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2022/01/06 14:54:48 UTC
[karaf] branch karaf-4.2.x updated: [KARAF-7316] Support for standard maven coordinates.
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch karaf-4.2.x
in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/karaf-4.2.x by this push:
new 1642860 [KARAF-7316] Support for standard maven coordinates.
new 7fdbb53 Merge pull request #1474 from splatch/KARAF-7316
1642860 is described below
commit 1642860925a82105642583bfa03b7ac4bf05c100
Author: Łukasz Dywicki <lu...@code-house.org>
AuthorDate: Mon Jan 3 18:48:15 2022 +0100
[KARAF-7316] Support for standard maven coordinates.
This commit introduces very basic support for semi standard group:artifact:type[:classifier]:version syntax.
In case if all parts are given they take over computed values.
If version is missing - computed one is used.
If type is missing - zip is assumed.
If classifier is missing (which is common) empty string will be used.
This should simplify handling of basic feature verification projects.
Signed-off-by: Łukasz Dywicki <lu...@code-house.org>
---
.../java/org/apache/karaf/tooling/VerifyMojo.java | 23 +++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java
index 938fdc5..1c3c3df 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/VerifyMojo.java
@@ -47,6 +47,9 @@ import java.util.TreeSet;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.atomic.AtomicLong;
+import java.util.function.BiFunction;
+import java.util.function.Function;
+import java.util.function.Supplier;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
import java.util.regex.Pattern;
@@ -546,7 +549,7 @@ public class VerifyMojo extends MojoSupport {
} else {
String version = getVersion(distribution, "RELEASE");
String[] dist = distribution.split(":");
- File distFile = resolver.resolve(dist[0], dist[1], null, "zip", version);
+ File distFile = resolveDistributionArtifact(version, dist);
String resolvedVersion = distFile.getName().substring(dist[1].length() + 1, distFile.getName().length() - 4);
String dir = distDir;
if (dir == null) {
@@ -591,6 +594,24 @@ public class VerifyMojo extends MojoSupport {
return resource.getBundle();
}
+ private File resolveDistributionArtifact(String version, String[] dist) throws IOException {
+ // groupId:artifactId:type[:classifier]:version
+ BiFunction<String, String, String> fallback = (input, fbk) -> input == null || input.trim().isEmpty() ? fbk : input;
+ if (dist.length < 3) {
+ return resolver.resolve(dist[0], dist[1], "", "zip", version);
+ }
+ if (dist.length < 4) {
+ return resolver.resolve(dist[0], dist[1], "", fallback.apply(dist[2], "zip"), version);
+ }
+ if (dist.length < 5) {
+ return resolver.resolve(dist[0], dist[1], "", fallback.apply(dist[2], "zip"), fallback.apply(dist[3], version));
+ }
+ if (dist.length == 5) {
+ return resolver.resolve(dist[0], dist[1], fallback.apply(dist[3], ""), fallback.apply(dist[2], "zip"), fallback.apply(dist[4], version));
+ }
+ throw new IllegalArgumentException("Invalid distribution uri");
+ }
+
public Map<String, Features> loadRepositories(DownloadManager manager, Set<String> uris) throws Exception {
final Map<String, Features> loaded = new HashMap<>();