Skip to content

Commit

Permalink
Refactor CMSEngine.initSubsystem()
Browse files Browse the repository at this point in the history
  • Loading branch information
edewata committed Jan 23, 2024
1 parent 8be3519 commit 955df75
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 18 deletions.
14 changes: 12 additions & 2 deletions base/ca/src/main/java/org/dogtagpki/server/ca/CAEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
import com.netscape.cms.servlet.processors.CAProcessor;
import com.netscape.cmscore.apps.CMS;
import com.netscape.cmscore.apps.CMSEngine;
import com.netscape.cmscore.apps.SubsystemInfoConfig;
import com.netscape.cmscore.authentication.VerifiedCert;
import com.netscape.cmscore.base.ArgBlock;
import com.netscape.cmscore.base.ConfigStorage;
Expand Down Expand Up @@ -1085,14 +1086,23 @@ public void initSubsystems() throws Exception {
}

@Override
public void initSubsystem(Subsystem subsystem, ConfigStore subsystemConfig) throws Exception {
public void initSubsystem(SubsystemInfoConfig subsystemInfoConfig, ConfigStore subsystemConfig) throws Exception {

String className = subsystemInfoConfig.getClassName();
Class<?> clazz = Class.forName(className);

Subsystem subsystem = (Subsystem) clazz.getDeclaredConstructor().newInstance();
subsystem.setCMSEngine(this);
subsystem.setId(id);

subsystems.put(id, subsystem);

if (subsystem instanceof CertificateAuthority || subsystem instanceof CrossCertPairSubsystem) {
// skip initialization during installation
if (isPreOpMode()) return;
}

super.initSubsystem(subsystem, subsystemConfig);
subsystem.init(subsystemConfig);

if (subsystem instanceof CertificateAuthority ca) {

Expand Down
14 changes: 12 additions & 2 deletions base/kra/src/main/java/org/dogtagpki/server/kra/KRAEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import com.netscape.certsrv.base.Subsystem;
import com.netscape.cmscore.apps.CMSEngine;
import com.netscape.cmscore.apps.SubsystemInfoConfig;
import com.netscape.cmscore.base.ConfigStorage;
import com.netscape.cmscore.base.ConfigStore;
import com.netscape.cmscore.request.KeyRequestRepository;
Expand Down Expand Up @@ -57,14 +58,23 @@ public KeyRequestRepository getKeyRequestRepository() {
}

@Override
public void initSubsystem(Subsystem subsystem, ConfigStore subsystemConfig) throws Exception {
public void initSubsystem(SubsystemInfoConfig subsystemInfoConfig, ConfigStore subsystemConfig) throws Exception {

String className = subsystemInfoConfig.getClassName();
Class<?> clazz = Class.forName(className);

Subsystem subsystem = (Subsystem) clazz.getDeclaredConstructor().newInstance();
subsystem.setCMSEngine(this);
subsystem.setId(id);

subsystems.put(id, subsystem);

if (subsystem instanceof KeyRecoveryAuthority) {
// skip initialization during installation
if (isPreOpMode()) return;
}

super.initSubsystem(subsystem, subsystemConfig);
subsystem.init(subsystemConfig);
}

@Override
Expand Down
15 changes: 13 additions & 2 deletions base/ocsp/src/main/java/org/dogtagpki/server/ocsp/OCSPEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import com.netscape.cms.ocsp.LDAPStore;
import com.netscape.cmscore.apps.CMSEngine;
import com.netscape.cmscore.apps.DatabaseConfig;
import com.netscape.cmscore.apps.SubsystemInfoConfig;
import com.netscape.cmscore.base.ConfigStorage;
import com.netscape.cmscore.base.ConfigStore;
import com.netscape.cmscore.cert.CertUtils;
Expand Down Expand Up @@ -83,14 +84,24 @@ public void initDBSubsystem() throws Exception {
dbSubsystem.setEngineConfig(config);
}
@Override
public void initSubsystem(Subsystem subsystem, ConfigStore subsystemConfig) throws Exception {
public void initSubsystem(SubsystemInfoConfig subsystemInfoConfig, ConfigStore subsystemConfig) throws Exception {

String className = subsystemInfoConfig.getClassName();
Class<?> clazz = Class.forName(className);

Subsystem subsystem = (Subsystem) clazz.getDeclaredConstructor().newInstance();
subsystem.setCMSEngine(this);
subsystem.setId(id);

subsystems.put(id, subsystem);

if (subsystem instanceof OCSPAuthority) {
// skip initialization during installation
if (isPreOpMode()) return;
}

super.initSubsystem(subsystem, subsystemConfig);
subsystem.init(subsystemConfig);

if (subsystem instanceof OCSPAuthority) {
subsystem.startup();
}
Expand Down
21 changes: 11 additions & 10 deletions base/server/src/main/java/com/netscape/cmscore/apps/CMSEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -960,7 +960,16 @@ public Subsystem getSubsystem(String name) {
return subsystems.get(name);
}

public void initSubsystem(Subsystem subsystem, ConfigStore subsystemConfig) throws Exception {
public void initSubsystem(SubsystemInfoConfig subsystemInfoConfig, ConfigStore subsystemConfig) throws Exception {

String className = subsystemInfoConfig.getClassName();
Class<?> clazz = Class.forName(className);

Subsystem subsystem = (Subsystem) clazz.getDeclaredConstructor().newInstance();
subsystem.setCMSEngine(this);
subsystem.setId(id);

subsystems.put(id, subsystem);

if (subsystem instanceof SelfTestSubsystem) {
// skip SelfTestSubsystem during installation
Expand All @@ -986,16 +995,8 @@ public void initSubsystems() throws Exception {
continue;
}

String className = subsystemInfoConfig.getClassName();

Subsystem subsystem = (Subsystem) Class.forName(className).getDeclaredConstructor().newInstance();
subsystem.setCMSEngine(this);
subsystem.setId(id);

subsystems.put(id, subsystem);

ConfigStore subsystemConfig = mConfig.getSubStore(id, ConfigStore.class);
initSubsystem(subsystem, subsystemConfig);
initSubsystem(subsystemInfoConfig, subsystemConfig);
}
}

Expand Down
14 changes: 12 additions & 2 deletions base/tks/src/main/java/org/dogtagpki/server/tks/TKSEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import com.netscape.certsrv.base.Subsystem;
import com.netscape.cmscore.apps.CMSEngine;
import com.netscape.cmscore.apps.SubsystemInfoConfig;
import com.netscape.cmscore.base.ConfigStorage;
import com.netscape.cmscore.base.ConfigStore;
import com.netscape.tks.TKSAuthority;
Expand Down Expand Up @@ -48,13 +49,22 @@ public TKSEngineConfig getConfig() {
}

@Override
public void initSubsystem(Subsystem subsystem, ConfigStore subsystemConfig) throws Exception {
public void initSubsystem(SubsystemInfoConfig subsystemInfoConfig, ConfigStore subsystemConfig) throws Exception {

String className = subsystemInfoConfig.getClassName();
Class<?> clazz = Class.forName(className);

Subsystem subsystem = (Subsystem) clazz.getDeclaredConstructor().newInstance();
subsystem.setCMSEngine(this);
subsystem.setId(id);

subsystems.put(id, subsystem);

if (subsystem instanceof TKSAuthority) {
// skip initialization during installation
if (isPreOpMode()) return;
}

super.initSubsystem(subsystem, subsystemConfig);
subsystem.init(subsystemConfig);
}
}

0 comments on commit 955df75

Please sign in to comment.