X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdav%2FDavHttpHandler.java;h=f7c4ce7de8fbdd93ac9af5f61206578c35eecdac;hb=51cc05f670214c32f3beecc33bb701865ff6c735;hp=0bd3b398e075e479cfa8252d9bb621e7200be231;hpb=1d6840195189cbdbf632ca2800b6179d3b6349df;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/dav/DavHttpHandler.java b/org.argeo.cms/src/org/argeo/cms/dav/DavHttpHandler.java index 0bd3b398e..f7c4ce7de 100644 --- a/org.argeo.cms/src/org/argeo/cms/dav/DavHttpHandler.java +++ b/org.argeo.cms/src/org/argeo/cms/dav/DavHttpHandler.java @@ -24,7 +24,6 @@ import com.sun.net.httpserver.HttpHandler; * ACR-specific code more readable and maintainable. */ public abstract class DavHttpHandler implements HttpHandler { - private NamespaceContext namespaceContext; @Override public void handle(HttpExchange exchange) throws IOException { @@ -49,6 +48,7 @@ public abstract class DavHttpHandler implements HttpHandler { MultiStatusWriter multiStatusWriter = new MultiStatusWriter(); CompletableFuture published = handlePROPFIND(exchange, subPath, davPropfind, multiStatusWriter); exchange.sendResponseHeaders(HttpResponseStatus.MULTI_STATUS.getCode(), 0l); + NamespaceContext namespaceContext = getNamespaceContext(exchange, subPath); try (OutputStream out = exchange.getResponseBody()) { multiStatusWriter.process(namespaceContext, out, published.minimalCompletionStage(), davPropfind.isPropname()); @@ -68,6 +68,8 @@ public abstract class DavHttpHandler implements HttpHandler { } + protected abstract NamespaceContext getNamespaceContext(HttpExchange httpExchange, String path); + protected abstract CompletableFuture handlePROPFIND(HttpExchange exchange, String path, DavPropfind davPropfind, Consumer consumer) throws IOException; @@ -92,8 +94,4 @@ public abstract class DavHttpHandler implements HttpHandler { exchange.getResponseHeaders().add(HttpHeader.ALLOW.getHeaderName(), methods.toString()); } - public void setNamespaceContext(NamespaceContext namespaceContext) { - this.namespaceContext = namespaceContext; - } - }