X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FCmsContentSession.java;h=13494dd0a8588825b23c386fa926471bbe5543dc;hb=c0342975a37c70895c2e8f6b341d790700168d7f;hp=4e1c3bcfd0846c53567c82459988564c278cb4a9;hpb=eb4324be6ac9cdff15828a21ee7d3f6ca2f19fb9;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/CmsContentSession.java b/org.argeo.cms/src/org/argeo/cms/acr/CmsContentSession.java index 4e1c3bcfd..13494dd0a 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/CmsContentSession.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/CmsContentSession.java @@ -1,27 +1,23 @@ package org.argeo.cms.acr; -import java.util.Iterator; +import java.util.HashSet; import java.util.Locale; -import java.util.Map; import java.util.Set; -import java.util.TreeSet; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.function.Consumer; -import java.util.stream.Collectors; import javax.security.auth.Subject; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentSession; import org.argeo.api.acr.CrName; -import org.argeo.api.acr.NamespaceUtils; -import org.argeo.api.acr.RuntimeNamespaceContext; import org.argeo.api.acr.spi.ContentProvider; import org.argeo.api.acr.spi.ProvidedContent; import org.argeo.api.acr.spi.ProvidedRepository; import org.argeo.api.acr.spi.ProvidedSession; +import org.argeo.api.uuid.UuidFactory; import org.argeo.cms.acr.xml.DomContentProvider; /** Implements {@link ProvidedSession}. */ @@ -32,20 +28,23 @@ class CmsContentSession implements ProvidedSession { private Subject subject; private Locale locale; + private UuidFactory uuidFactory; + private CompletableFuture closed = new CompletableFuture<>(); private CompletableFuture edition; - private Set modifiedProviders = new TreeSet<>(); + private Set modifiedProviders = new HashSet<>(); private Content sessionRunDir; - public CmsContentSession(AbstractContentRepository contentRepository, UUID uuid, Subject subject, Locale locale) { + public CmsContentSession(AbstractContentRepository contentRepository, UUID uuid, Subject subject, Locale locale, + UuidFactory uuidFactory) { this.contentRepository = contentRepository; this.subject = subject; this.locale = locale; this.uuid = uuid; - + this.uuidFactory = uuidFactory; } public void close() { @@ -99,6 +98,10 @@ class CmsContentSession implements ProvidedSession { return contentRepository; } + public UuidFactory getUuidFactory() { + return uuidFactory; + } + /* * MOUNT MANAGEMENT */ @@ -170,7 +173,7 @@ class CmsContentSession implements ProvidedSession { else { Content runDir = get(CmsContentRepository.RUN_BASE); // TODO deal with no run dir available? - sessionRunDir = runDir.add(uuid.toString(), CrName.COLLECTION.get()); + sessionRunDir = runDir.add(uuid.toString(), CrName.collection.qName()); } } return sessionRunDir;