]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/runtime/StaticCms.java
Make CMS running without data area, and remove unnecessary dependencies.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / runtime / StaticCms.java
index 6744700d4cccc390d9c0a18a9e13a1d2500296b3..e473d27994ff8f4e467461166b3b6523c7043fb5 100644 (file)
@@ -19,6 +19,7 @@ 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.ComponentRegister;
 import org.argeo.util.register.SimpleRegister;
 import org.argeo.util.transaction.SimpleTransactionManager;
 import org.argeo.util.transaction.WorkControl;
@@ -26,11 +27,11 @@ 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>();
 
@@ -50,14 +51,6 @@ public class StaticCms {
                                .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) //
@@ -74,10 +67,6 @@ public class StaticCms {
                                .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
@@ -132,7 +121,23 @@ public class StaticCms {
                                .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() {