[
+{
+ "name":"[B"
+},
+{
+ "name":"[Ljava.lang.String;"
+},
+{
+ "name":"[Lsun.security.pkcs.SignerInfo;"
+},
+{
+ "name":"com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.String"
+},
+{
+ "name":"java.security.SecureRandomParameters"
+},
+{
+ "name":"java.util.Date"
+},
{
"name":"javax.security.auth.login.Configuration$Parameters"
},
+{
+ "name":"javax.security.auth.x500.X500Principal",
+ "fields":[{"name":"thisX500Name"}],
+ "queriedMethods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
+},
+{
+ "name":"org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.xerces.impl.dv.dtd.XML11DTDDVFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.xerces.impl.dv.xs.ExtendedSchemaDVFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.xerces.impl.xs.XSMessageFormatter",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.argeo.cms.auth.DataAdminLoginModule",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
{
"name":"sun.security.provider.ConfigFile$Spi",
"methods":[{"name":"<init>","parameterTypes":["javax.security.auth.login.Configuration$Parameters"] }]
},
+{
+ "name":"sun.security.provider.DRBG",
+ "methods":[{"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
+},
{
"name":"sun.security.provider.SHA",
"methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"sun.security.provider.SHA2$SHA256",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"sun.security.util.ObjectIdentifier"
+},
+{
+ "name":"sun.security.x509.CertificateExtensions"
}
]
{
"resources":{
"includes":[
+ {
+ "pattern":"\\QMETA-INF/services/javax.xml.validation.SchemaFactory\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/DSMLv2.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/SVG.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/XForms-11-Schema.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/XMLSchema.dtd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/XMLSchema.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/cr.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/datatypes.dtd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/docbook.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/schema-for-xslt20.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/xlink.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/xml-events-attribs-1.xsd\\E"
+ },
+ {
+ "pattern":"\\Qorg/argeo/cms/acr/schemas/xml.xsd\\E"
+ },
{
"pattern":"\\Qorg/argeo/cms/internal/runtime/dc=example,dc=com.ldif\\E"
},
"pattern":"\\Qorg/argeo/cms/internal/runtime/ou=tokens,ou=node.ldif\\E"
}
]},
- "bundles":[]
+ "bundles":[
+ {
+ "name":"org.apache.xerces.impl.msg.XMLSchemaMessages",
+ "locales":[
+ "en",
+ "und"
+ ]
+ },
+ {
+ "name":"org.apache.xerces.impl.xpath.regex.message",
+ "locales":[
+ "",
+ "en",
+ "und"
+ ]
+ },
+ {
+ "name":"sun.security.util.Resources",
+ "classNames":["sun.security.util.Resources"]
+ }
+ ]
}
<provide interface="org.argeo.api.acr.spi.ProvidedRepository"/>
</service>
<reference bind="setCmsState" cardinality="1..1" interface="org.argeo.api.cms.CmsState" name="CmsState" policy="static"/>
+ <reference bind="setUuidFactory" cardinality="1..1" interface="org.argeo.api.uuid.UuidFactory" name="UuidFactory" policy="static"/>
</scr:component>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="UUID Factory">
+ <implementation class="org.argeo.cms.acr.CmsUuidFactory"/>
+ <service>
+ <provide interface="org.argeo.api.uuid.UuidFactory"/>
+ </service>
+</scr:component>
OSGI-INF/nodeUserAdmin.xml,\
OSGI-INF/cmsUserManager.xml,\
OSGI-INF/deployConfig.xml,\
+OSGI-INF/uuidFactory.xml,\
OSGI-INF/acrContentRepository.xml,\
OSGI-INF/cmsDeployment.xml,\
OSGI-INF/cmsContext.xml,\
OSGI-INF/deployConfig.xml,\
OSGI-INF/cmsDeployment.xml,\
OSGI-INF/cmsContext.xml,\
- OSGI-INF/acrContentRepository.xml
+ OSGI-INF/acrContentRepository.xml,\
+ OSGI-INF/uuidFactory.xml
source.. = src/
import org.argeo.api.acr.spi.ProvidedContent;
import org.argeo.api.acr.spi.ProvidedRepository;
import org.argeo.api.cms.CmsLog;
+import org.argeo.api.uuid.UuidFactory;
import org.argeo.cms.acr.xml.DomContentProvider;
import org.argeo.cms.acr.xml.DomUtils;
import org.w3c.dom.DOMException;
public abstract class AbstractContentRepository implements ProvidedRepository {
private final static CmsLog log = CmsLog.getLog(AbstractContentRepository.class);
- private final MountManager mountManager;
- private final TypesManager typesManager;
+ private UuidFactory uuidFactory;
+
+ private MountManager mountManager;
+ private TypesManager typesManager;
private CmsContentSession systemSession;
log.trace(type + " - " + typesManager.getAttributeTypes(type));
}
- systemSession = newSystemSession();
-
- // mounts
- mountManager = new MountManager(systemSession);
-
}
protected abstract CmsContentSession newSystemSession();
public void start() {
+ systemSession = newSystemSession();
+ // mounts
+ mountManager = new MountManager(systemSession);
}
public void stop() {
-
+ systemSession.close();
+ systemSession = null;
}
/*
return typesManager;
}
+ public void setUuidFactory(UuidFactory uuidFactory) {
+ this.uuidFactory = uuidFactory;
+ }
+
}
public SingleUserContentRepository(Subject subject) {
this(subject, Locale.getDefault());
-
- initRootContentProvider(null);
}
public SingleUserContentRepository(Subject subject, Locale locale) {
Objects.requireNonNull(locale);
super.start();
+ initRootContentProvider(null);
if (contentSession != null)
throw new IllegalStateException("Repository is already started, stop it first.");
contentSession = new CmsContentSession(this, subject, locale);
subject.getPrincipals().add(principal);
SingleUserContentRepository contentRepository = new SingleUserContentRepository(subject);
+ contentRepository.start();
FsContentProvider homeContentProvider = new FsContentProvider("/home", homePath);
contentRepository.addProvider(homeContentProvider);
Runtime.getRuntime().addShutdownHook(new Thread(() -> contentRepository.stop(), "Shutdown content repository"));
- contentRepository.start();
ContentSession contentSession = contentRepository.get();
ContentUtils.traverse(contentSession.get("/"), (c, depth) -> ContentUtils.print(c, System.out, depth, false),
import java.util.Dictionary;
import java.util.concurrent.CompletableFuture;
+import org.argeo.api.acr.ContentRepository;
+import org.argeo.api.acr.spi.ProvidedRepository;
import org.argeo.api.cms.CmsContext;
import org.argeo.api.cms.CmsDeployment;
import org.argeo.api.cms.CmsState;
+import org.argeo.api.uuid.UuidFactory;
+import org.argeo.cms.acr.CmsUuidFactory;
import org.argeo.cms.internal.osgi.DeployConfig;
import org.argeo.cms.internal.runtime.CmsContextImpl;
import org.argeo.cms.internal.runtime.CmsDeploymentImpl;
import org.argeo.cms.internal.runtime.CmsStateImpl;
import org.argeo.cms.internal.runtime.CmsUserAdmin;
+import org.argeo.cms.internal.runtime.DeployedContentRepository;
import org.argeo.osgi.transaction.SimpleTransactionManager;
import org.argeo.osgi.transaction.WorkControl;
import org.argeo.osgi.transaction.WorkTransaction;
.build(register);
assert cmsContextC.get() == cmsContext;
+ // UID factory
+ CmsUuidFactory uuidFactory = new CmsUuidFactory();
+ Component<CmsUuidFactory> uuidFactoryC = new Component.Builder<>(uuidFactory) //
+ .addType(UuidFactory.class) //
+ .build(register);
+
+ // Content Repository
+ DeployedContentRepository contentRepository = new DeployedContentRepository();
+ Component<DeployedContentRepository> contentRepositoryC = new Component.Builder<>(contentRepository) //
+ .addType(ProvidedRepository.class) //
+ .addType(ContentRepository.class) //
+ .addActivation(contentRepository::start) //
+ .addDeactivation(contentRepository::stop) //
+ .addDependency(cmsStateC.getType(CmsState.class), contentRepository::setCmsState, null) //
+ .addDependency(uuidFactoryC.getType(UuidFactory.class), contentRepository::setUuidFactory, null) //
+ .build(register);
+
register.activate();
}