import java.nio.file.Paths;
import java.util.Locale;
import java.util.Objects;
+import java.util.UUID;
import javax.security.auth.Subject;
import javax.security.auth.x500.X500Principal;
import org.argeo.api.acr.ContentSession;
+import org.argeo.api.acr.ldap.LdapAttr;
import org.argeo.api.acr.spi.ProvidedRepository;
+import org.argeo.api.uuid.MacAddressUuidFactory;
+import org.argeo.api.uuid.UuidFactory;
import org.argeo.cms.acr.fs.FsContentProvider;
-import org.argeo.util.naming.LdapAttrs;
/**
* A standalone {@link ProvidedRepository} with a single {@link Subject} (which
private final Subject subject;
private final Locale locale;
+ private UUID uuid;
+
+ private UuidFactory uuidFactory = new MacAddressUuidFactory();
+
// the single session
private CmsContentSession contentSession;
this.subject = subject;
this.locale = locale;
+
+ // TODO use an UUID factory
+ this.uuid = UUID.randomUUID();
}
@Override
initRootContentProvider(null);
if (contentSession != null)
throw new IllegalStateException("Repository is already started, stop it first.");
- contentSession = new CmsContentSession(this, subject, locale);
+ contentSession = new CmsContentSession(this, uuid, subject, locale, uuidFactory);
}
@Override
@Override
protected CmsContentSession newSystemSession() {
- return new CmsContentSession(this, subject, Locale.getDefault());
+ return new CmsContentSession(this, uuid, subject, Locale.getDefault(), uuidFactory);
}
public static void main(String... args) {
Path homePath = Paths.get(System.getProperty("user.home"));
String username = System.getProperty("user.name");
- X500Principal principal = new X500Principal(LdapAttrs.uid + "=" + username + ",dc=localhost");
+ X500Principal principal = new X500Principal(LdapAttr.uid + "=" + username + ",dc=localhost");
Subject subject = new Subject();
subject.getPrincipals().add(principal);