X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FCmsContentRepository.java;h=2493a89bedc0993c856d7c85cb6b5014d5fa7cb7;hb=9174f78c93c94b9c148dff66c38204baf55bc8f2;hp=923142c82333ec02d7d566cb3a9503065c2d5c93;hpb=750a3e154c078d6e9fd72d8da950cb325b8ab012;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/CmsContentRepository.java b/org.argeo.cms/src/org/argeo/cms/acr/CmsContentRepository.java index 923142c82..2493a89be 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/CmsContentRepository.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/CmsContentRepository.java @@ -11,7 +11,6 @@ import java.util.Iterator; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; -import java.util.Set; import java.util.TreeMap; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; @@ -29,7 +28,6 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import javax.xml.validation.Schema; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentSession; @@ -64,7 +62,7 @@ public class CmsContentRepository implements ProvidedRepository { // TODO synchronize ? private NavigableMap prefixes = new TreeMap<>(); - private Schema schema; +// private Schema schema; private CmsContentSession systemSession; @@ -176,7 +174,7 @@ public class CmsContentRepository implements ProvidedRepository { }); Document document; - if (Files.exists(path)) { + if (path != null && Files.exists(path)) { InputSource inputSource = new InputSource(path.toAbsolutePath().toUri().toString()); inputSource.setEncoding(StandardCharsets.UTF_8.name()); // TODO public id as well? @@ -185,18 +183,20 @@ public class CmsContentRepository implements ProvidedRepository { document = dBuilder.newDocument(); // Element root = document.createElementNS(CrName.ROOT.getNamespaceURI(), // CrName.ROOT.get().toPrefixedString()); - Element root = document.createElement(CrName.ROOT.get().toPrefixedString()); + Element root = document.createElementNS(CrName.CR_NAMESPACE_URI, CrName.ROOT.get().toPrefixedString()); // root.setAttribute("xmlns", ""); - root.setAttribute("xmlns:" + CrName.CR_DEFAULT_PREFIX, CrName.CR_NAMESPACE_URI); +// root.setAttribute("xmlns:" + CrName.CR_DEFAULT_PREFIX, CrName.CR_NAMESPACE_URI); document.appendChild(root); // write it - TransformerFactory transformerFactory = TransformerFactory.newInstance(); - Transformer transformer = transformerFactory.newTransformer(); - DOMSource source = new DOMSource(document); - try (Writer writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) { - StreamResult result = new StreamResult(writer); - transformer.transform(source, result); + if (path != null) { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + DOMSource source = new DOMSource(document); + try (Writer writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) { + StreamResult result = new StreamResult(writer); + transformer.transform(source, result); + } } } @@ -240,6 +240,8 @@ public class CmsContentRepository implements ProvidedRepository { @Override public Content get(String path) { Map.Entry entry = partitions.floorEntry(path); + if (entry == null) + throw new IllegalArgumentException("No entry provider found for " + path); String mountPath = entry.getKey(); ContentProvider provider = entry.getValue(); String relativePath = path.substring(mountPath.length());