diff --git a/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreApplication.java b/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreApplication.java index 8f358ed832..d38f7a5ef5 100644 --- a/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreApplication.java +++ b/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreApplication.java @@ -22,6 +22,7 @@ import org.apache.cxf.spring.boot.autoconfigure.openapi.OpenApiAutoConfiguration; import org.apache.syncope.common.keymaster.client.api.ConfParamOps; import org.apache.syncope.common.keymaster.client.api.DomainOps; +import org.apache.syncope.common.keymaster.client.api.KeymasterProperties; import org.apache.syncope.common.keymaster.client.api.startstop.KeymasterStop; import org.apache.syncope.common.lib.info.SystemInfo; import org.apache.syncope.core.persistence.api.DomainHolder; @@ -122,14 +123,16 @@ public TaskExecutorUnloader taskExecutorUnloader(final ListableBeanFactory beanF @ConditionalOnMissingBean @Bean - public SyncopeCoreStart keymasterStart(final DomainHolder domainHolder) { - return new SyncopeCoreStart(domainHolder); + public SyncopeCoreStart keymasterStart( + final DomainHolder domainHolder, + final KeymasterProperties keymasterProps) { + return new SyncopeCoreStart(domainHolder, keymasterProps.isEnableAutoRegistration()); } @ConditionalOnMissingBean @Bean - public KeymasterStop keymasterStop(final DomainHolder domainHolder) { - return new SyncopeCoreStop(domainHolder); + public KeymasterStop keymasterStop(final DomainHolder domainHolder, final KeymasterProperties keymasterProps) { + return new SyncopeCoreStop(domainHolder, keymasterProps.isEnableAutoRegistration()); } @ConditionalOnMissingBean diff --git a/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStart.java b/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStart.java index b3e6e440e1..501e6c7b1c 100644 --- a/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStart.java +++ b/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStart.java @@ -39,9 +39,12 @@ public class SyncopeCoreStart extends KeymasterStart implements Ordered { private final DomainHolder domainHolder; - public SyncopeCoreStart(final DomainHolder domainHolder) { + private final boolean enableAutoRegistration; + + public SyncopeCoreStart(final DomainHolder domainHolder, final boolean enableAutoRegistration) { super(NetworkService.Type.CORE); this.domainHolder = domainHolder; + this.enableAutoRegistration = enableAutoRegistration; } @Override @@ -71,7 +74,9 @@ public void onApplicationEvent(final ContextRefreshedEvent event) { LOG.debug("[{}] Init completed", loaderName); }); - super.onApplicationEvent(event); + if (enableAutoRegistration) { + super.onApplicationEvent(event); + } event.getApplicationContext().getBean(JobStatusUpdater.class).initComplete(); } diff --git a/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStop.java b/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStop.java index 2a10985ac7..137fc9f935 100644 --- a/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStop.java +++ b/core/starter/src/main/java/org/apache/syncope/core/starter/SyncopeCoreStop.java @@ -37,10 +37,13 @@ public class SyncopeCoreStop extends KeymasterStop implements Ordered { private static final Logger LOG = LoggerFactory.getLogger(SyncopeCoreStop.class); private final DomainHolder domainHolder; + + private final boolean enableAutoRegistration; - public SyncopeCoreStop(final DomainHolder domainHolder) { + public SyncopeCoreStop(final DomainHolder domainHolder, final boolean enableAutoRegistration) { super(NetworkService.Type.CORE); this.domainHolder = domainHolder; + this.enableAutoRegistration = enableAutoRegistration; } @Override @@ -68,6 +71,8 @@ public void onApplicationEvent(final ContextClosedEvent event) { LOG.debug("[{}] Dispose completed", loaderName); }); - super.onApplicationEvent(event); + if (enableAutoRegistration) { + super.onApplicationEvent(event); + } } }