import org.argeo.api.cms.CmsContext;
import org.argeo.api.cms.CmsDeployment;
import org.argeo.api.cms.CmsState;
+import org.argeo.api.cms.transaction.SimpleTransactionManager;
+import org.argeo.api.cms.transaction.WorkControl;
+import org.argeo.api.cms.transaction.WorkTransaction;
+import org.argeo.api.register.Component;
+import org.argeo.api.register.ComponentRegister;
+import org.argeo.api.register.SimpleRegister;
import org.argeo.api.uuid.UuidFactory;
import org.argeo.cms.CmsUserManager;
import org.argeo.cms.acr.CmsUuidFactory;
import org.argeo.cms.internal.runtime.CmsStateImpl;
import org.argeo.cms.internal.runtime.CmsUserAdmin;
import org.argeo.cms.internal.runtime.DeployedContentRepository;
-import org.argeo.util.register.Component;
-import org.argeo.util.register.SimpleRegister;
-import org.argeo.util.transaction.SimpleTransactionManager;
-import org.argeo.util.transaction.WorkControl;
-import org.argeo.util.transaction.WorkTransaction;
import org.osgi.service.useradmin.UserAdmin;
/**
- * A CMS assembly which is programatically defined, as an alternative to OSGi
+ * A CMS assembly which is programmatically defined, as an alternative to OSGi
* deployment. Useful for testing or AOT compilation.
*/
public class StaticCms {
- private static SimpleRegister register = new SimpleRegister();
+ private SimpleRegister register = new SimpleRegister();
private CompletableFuture<Void> stopped = new CompletableFuture<Void>();
.addDependency(uuidFactoryC.getType(UuidFactory.class), cmsState::setUuidFactory, null) //
.build(register);
- // Deployment Configuration
-// DeployConfig deployConfig = new DeployConfig();
-// Component<DeployConfig> deployConfigC = new Component.Builder<>(deployConfig) //
-// .addType(DeployConfig.class) //
-// .addActivation(deployConfig::start) //
-// .addDeactivation(deployConfig::stop) //
-// .build(register);
-
// Transaction manager
SimpleTransactionManager transactionManager = new SimpleTransactionManager();
Component<SimpleTransactionManager> transactionManagerC = new Component.Builder<>(transactionManager) //
.addDependency(cmsStateC.getType(CmsState.class), userAdmin::setCmsState, null) //
.addDependency(transactionManagerC.getType(WorkControl.class), userAdmin::setTransactionManager, null) //
.addDependency(transactionManagerC.getType(WorkTransaction.class), userAdmin::setUserTransaction, null) //
-// .addDependency(deployConfigC.getType(DeployConfig.class), (d) -> {
-// for (Dictionary<String, Object> userDirectoryConfig : d.getUserDirectoryConfigs())
-// userAdmin.enableUserDirectory(userDirectoryConfig);
-// }, null) //
.build(register);
// User manager
.build(register);
assert cmsContextC.get() == cmsContext;
+ addComponents(register);
+
register.activate();
+
+ postActivation(register);
+ }
+
+ protected void addComponents(ComponentRegister register) {
+
+ }
+
+ protected void postActivation(ComponentRegister register) {
+
+ }
+
+ public ComponentRegister getComponentRegister() {
+ return register;
}
public void stop() {