diff --git a/base/ca/src/main/java/org/dogtagpki/server/ca/CAEngine.java b/base/ca/src/main/java/org/dogtagpki/server/ca/CAEngine.java index e520d7ae54b..178a8978ac5 100644 --- a/base/ca/src/main/java/org/dogtagpki/server/ca/CAEngine.java +++ b/base/ca/src/main/java/org/dogtagpki/server/ca/CAEngine.java @@ -793,6 +793,8 @@ public void startSerialNumberUpdateTask() throws Exception { @Override public void initSubsystems() throws Exception { + super.initSubsystems(); + CertificateAuthority hostCA = getCA(); CAEngineConfig engineConfig = getConfig(); @@ -909,8 +911,6 @@ public void initSubsystems() throws Exception { initCRLPublisher(); initPublisherProcessor(); } - - super.initSubsystems(); } @Override diff --git a/base/server/src/main/java/com/netscape/cmscore/apps/CMSEngine.java b/base/server/src/main/java/com/netscape/cmscore/apps/CMSEngine.java index cf22d0dc380..b8399d126a4 100644 --- a/base/server/src/main/java/com/netscape/cmscore/apps/CMSEngine.java +++ b/base/server/src/main/java/com/netscape/cmscore/apps/CMSEngine.java @@ -879,8 +879,6 @@ public void initSecurityDomain() throws Exception { public void init() throws Exception { logger.info("Initializing " + name + " subsystem"); - - loadSubsystems(); initSubsystems(); // The ports must be configured here to avoid problems @@ -968,10 +966,20 @@ public void setSubsystemEnabled(String id, boolean enabled) { si.enabled = enabled; } + public void initSubsystem(Subsystem subsystem, ConfigStore subsystemConfig) throws Exception { + + if (subsystem instanceof SelfTestSubsystem) { + // skip SelfTestSubsystem during installation + if (isPreOpMode()) return; + } + + subsystem.init(subsystemConfig); + } + /** * load subsystems */ - protected void loadSubsystems() throws Exception { + public void initSubsystems() throws Exception { subsystemInfos.clear(); subsystems.clear(); @@ -979,12 +987,12 @@ protected void loadSubsystems() throws Exception { SubsystemsConfig subsystemsConfig = mConfig.getSubsystemsConfig(); for (String subsystemNumber : subsystemsConfig.getSubsystemNames()) { - SubsystemConfig subsystemConfig = subsystemsConfig.getSubsystemConfig(subsystemNumber); - String id = subsystemConfig.getID(); - logger.info("CMSEngine: Loading " + id + " subsystem"); + SubsystemConfig subsystemInfoConfig = subsystemsConfig.getSubsystemConfig(subsystemNumber); + String id = subsystemInfoConfig.getID(); + logger.info("CMSEngine: Initializing " + id + " subsystem"); - String className = subsystemConfig.getClassName(); - boolean enabled = subsystemConfig.isEnabled(); + String className = subsystemInfoConfig.getClassName(); + boolean enabled = subsystemInfoConfig.isEnabled(); Subsystem subsystem = (Subsystem) Class.forName(className).getDeclaredConstructor().newInstance(); subsystem.setCMSEngine(this); @@ -995,26 +1003,6 @@ protected void loadSubsystems() throws Exception { subsystems.put(id, subsystem); subsystemInfos.put(id, subsystemInfo); - } - } - - public void initSubsystem(Subsystem subsystem, ConfigStore subsystemConfig) throws Exception { - - if (subsystem instanceof SelfTestSubsystem) { - // skip SelfTestSubsystem during installation - if (isPreOpMode()) return; - } - - subsystem.init(subsystemConfig); - } - - public void initSubsystems() throws Exception { - - for (String id : subsystems.keySet()) { - logger.info("CMSEngine: Initializing " + id + " subsystem"); - - Subsystem subsystem = subsystems.get(id); - SubsystemInfo subsystemInfo = subsystemInfos.get(id); if (subsystemInfo.updateIdOnInit) { subsystem.setId(id);