From caab4a68aaa0d9d02394b92cfcb58f9b54805e8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= Date: Mon, 11 Apr 2022 19:48:24 +0200 Subject: [PATCH] Fix #876 - [2.7.1][regression] Neither raw version nor format was specified --- .../packaging/FeatureXmlTransformer.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/FeatureXmlTransformer.java b/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/FeatureXmlTransformer.java index 6ab8513490..d8c4a72c55 100644 --- a/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/FeatureXmlTransformer.java +++ b/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/FeatureXmlTransformer.java @@ -76,8 +76,8 @@ public Feature expandReferences(Feature feature, TargetPlatform targetPlatform) String version = pluginRef.getVersion(); if ("0.0.0".equals(version)) { ImportRef importRef = pluginImports.get(pluginRef.getId()); - if (importRef != null) { - version = importRef.getVersion() + "|" + importRef.getMatch(); + if (isVersionedRef(importRef)) { + version = String.format("%s|%s", importRef.getVersion(), importRef.getMatch()); } } ArtifactKey plugin = resolvePluginReference(targetPlatform, pluginRef, version); @@ -94,8 +94,8 @@ public Feature expandReferences(Feature feature, TargetPlatform targetPlatform) String version = featureRef.getVersion(); if ("0.0.0".equals(version)) { ImportRef importRef = featureImports.get(featureRef.getId()); - if (importRef != null) { - version = importRef.getVersion() + "|" + importRef.getMatch(); + if (isVersionedRef(importRef)) { + version = String.format("%s|%s", importRef.getVersion(), importRef.getMatch()); } } ArtifactKey includedFeature = resolveFeatureReference(targetPlatform, featureRef, version); @@ -105,6 +105,21 @@ public Feature expandReferences(Feature feature, TargetPlatform targetPlatform) return feature; } + private boolean isVersionedRef(ImportRef importRef) { + if (importRef == null) { + return false; + } + String version = importRef.getVersion(); + if (version == null || version.isEmpty()) { + return false; + } + String match = importRef.getMatch(); + if (match == null || match.isEmpty()) { + return false; + } + return true; + } + private ArtifactKey resolvePluginReference(TargetPlatform targetPlatform, PluginRef pluginRef, String version) throws MojoFailureException { try {