SLING-10131: use the mvn id instead of the ArtifactId directly (#1)
diff --git a/src/main/java/org/apache/sling/feature/extension/unpack/Unpack.java b/src/main/java/org/apache/sling/feature/extension/unpack/Unpack.java
index 5a7fb62..ca49ba8 100644
--- a/src/main/java/org/apache/sling/feature/extension/unpack/Unpack.java
+++ b/src/main/java/org/apache/sling/feature/extension/unpack/Unpack.java
@@ -77,7 +77,7 @@
for (Artifact artifact : extension.getArtifacts()) {
Map<String, Object> context = new HashMap<>();
- context.put("artifact.id", artifact.getId());
+ context.put("artifact.id", artifact.getId().toMvnId());
context.put("dir", dir);
context.put("override", Boolean.toString(override));
context.put("key", key);
diff --git a/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/InstallUnpackArchiveTask.java b/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/InstallUnpackArchiveTask.java
index 4c2e859..1ca02fa 100644
--- a/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/InstallUnpackArchiveTask.java
+++ b/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/InstallUnpackArchiveTask.java
@@ -55,6 +55,6 @@
@Override
public String getSortKey() {
- return getResource().getEntityId();
+ return "40-" + getResource().getEntityId();
}
}
diff --git a/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveExtensionHandler.java b/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveExtensionHandler.java
index 312288c..de410f1 100644
--- a/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveExtensionHandler.java
+++ b/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveExtensionHandler.java
@@ -45,7 +45,7 @@
@Override
public boolean handle(ExtensionHandlerContext context, Extension extension, Feature feature) throws Exception {
return unpack.handle(extension, context.getArtifactProvider(),
- (u,m) -> context.addInstallableArtifact((ArtifactId) m.get("artifact.id"), u, m));
+ (u,m) -> context.addInstallableArtifact(ArtifactId.fromMvnId((String) m.get("artifact.id")), u, m));
}
}
diff --git a/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPlugin.java b/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPlugin.java
index de36ca8..1f96300 100644
--- a/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPlugin.java
+++ b/src/main/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPlugin.java
@@ -83,7 +83,7 @@
return null;
}
try {
- ArtifactId aid = (ArtifactId) dict.get("artifact.id");
+ ArtifactId aid = dict.get("artifact.id") != null ? ArtifactId.fromMvnId((String) dict.get("artifact.id")) : null;
if (aid == null) {
// If aid is not set, the archive doesn't come from a feature model, and we'd have
// to generate some sort of ID for it...
diff --git a/src/test/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPluginTest.java b/src/test/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPluginTest.java
index e64a9d5..826fc66 100644
--- a/src/test/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPluginTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/unpack/impl/installer/UnpackArchiveInstallerPluginTest.java
@@ -77,7 +77,7 @@
ArtifactId aid = ArtifactId.fromMvnId("g:a:9");
Hashtable <String,Object> props = new Hashtable<>();
props.put("dir", "/some/where");
- props.put("artifact.id", aid);
+ props.put("artifact.id", aid.toMvnId());
InputStream bais = new ByteArrayInputStream("".getBytes());