You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2022/01/14 18:28:57 UTC
[jackrabbit-filevault] 01/01: JCRVLT-581 make path mapping really rely on node paths only (instead of file paths)
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch bugfix/JCRVLT-582
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git
commit 0d67c33aa81e325c351f6ef9f6532f085cefa77b
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Jan 14 19:28:45 2022 +0100
JCRVLT-581 make path mapping really rely on node paths only (instead of
file paths)
WIP
---
.../apache/jackrabbit/vault/fs/io/MappedArchive.java | 19 ++++++++++++-------
.../vault/packaging/integration/MappedImportIT.java | 2 +-
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/MappedArchive.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/MappedArchive.java
index 6a10e7b..996b64d 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/MappedArchive.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/MappedArchive.java
@@ -68,7 +68,7 @@ public class MappedArchive extends AbstractArchive {
private void applyMapping(@NotNull Entry src, @NotNull VirtualEntry dst) {
for (Entry child: src.getChildren()) {
VirtualEntry dstChild = dst.add(child.getName(), child);
- if ("/jcr_root".equals(dstChild.getPath())) {
+ if ("/jcr_root".equals(dstChild.getNodePath())) {
jcrRoot = dstChild;
applyMapping(child, "");
} else {
@@ -86,10 +86,11 @@ public class MappedArchive extends AbstractArchive {
*/
private void applyMapping(@NotNull Entry src, @NotNull String jcrPath) {
for (Entry child: src.getChildren()) {
+ // TODO: convert to node name
String path = jcrPath + "/" + child.getName();
String mappedPath = mapping.map(path);
- // add entry to tree
+ // add entry to tree (convert back to file name format)
String[] segments = Text.explode(mappedPath, '/');
VirtualEntry entry = jcrRoot;
for (String seg: segments) {
@@ -183,14 +184,18 @@ public class MappedArchive extends AbstractArchive {
return name;
}
+ /**
+ *
+ * @return the JCR node path (only the root node) represented by this entry
+ */
@NotNull
- public String getPath() {
- return getPath(new StringBuilder()).toString();
+ public String getNodePath() {
+ return getNodePath(new StringBuilder()).toString();
}
@NotNull
- private StringBuilder getPath(@NotNull StringBuilder sb) {
- return parent == null ? sb : parent.getPath(sb).append('/').append(name);
+ private StringBuilder getNodePath(@NotNull StringBuilder sb) {
+ return parent == null ? sb : parent.getNodePath(sb).append('/').append(name);
}
/**
@@ -235,7 +240,7 @@ public class MappedArchive extends AbstractArchive {
}
VirtualEntry ve = new VirtualEntry(this, name, baseEntry);
if (children == null) {
- children = new LinkedHashMap<String, VirtualEntry>();
+ children = new LinkedHashMap<>();
}
children.put(name, ve);
return ve;
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/MappedImportIT.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/MappedImportIT.java
index 2aba53f..039ad42 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/MappedImportIT.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/MappedImportIT.java
@@ -194,7 +194,7 @@ public class MappedImportIT extends IntegrationTestBase {
ImportOptions opts = getDefaultOptions();
RegexpPathMapping pathMapping = new RegexpPathMapping();
- pathMapping.addMapping("/testroot/_cq_tags/(.*)", "/root/_cq_tags/$1");
+ //pathMapping.addMapping("/testroot/_cq_tags/(.*)", "/root/_cq_tags/$1");
pathMapping.addMapping("/testroot/cq:tags/(.*)", "/root/cq:tags/$1");
opts.setPathMapping(pathMapping);