Skip to content

Commit

Permalink
feat: Add support for ServiceConfigurator to AbstractServiceConfigura…
Browse files Browse the repository at this point in the history
…tion

Added a generic implementation of ServiceConfigurator to AbstractServiceConfiguration and implemented it in the concrete ServiceConfiguration classes.

This change allows easier customisation of the individual ServiceConfigurations while they are initialized.
  • Loading branch information
ikaakkola authored and filiphr committed Jan 25, 2024
1 parent e578616 commit 1b0e465
Show file tree
Hide file tree
Showing 11 changed files with 586 additions and 114 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
/**
* @author Tijs Rademakers
*/
public class BatchServiceConfiguration extends AbstractServiceConfiguration {
public class BatchServiceConfiguration extends AbstractServiceConfiguration<BatchServiceConfiguration> {

// SERVICES
// /////////////////////////////////////////////////////////////////
Expand All @@ -52,12 +52,21 @@ public BatchServiceConfiguration(String engineName) {
super(engineName);
}

@Override
protected BatchServiceConfiguration getService() {
return this;
}

// init
// /////////////////////////////////////////////////////////////////////

public void init() {
configuratorsBeforeInit();

initDataManagers();
initEntityManagers();

configuratorsAfterInit();
}

// Data managers
Expand Down Expand Up @@ -96,7 +105,7 @@ public BatchServiceConfiguration setBatchService(BatchService batchService) {
this.batchService = batchService;
return this;
}

public BatchDataManager getBatchDataManager() {
return batchDataManager;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
Expand Down Expand Up @@ -471,16 +470,20 @@ public class CmmnEngineConfiguration extends AbstractEngineConfiguration impleme

// Identitylink support
protected IdentityLinkServiceConfiguration identityLinkServiceConfiguration;

protected Collection<ServiceConfigurator<IdentityLinkServiceConfiguration>> identityLinkServiceConfigurators;

// Entitylink support
protected EntityLinkServiceConfiguration entityLinkServiceConfiguration;
protected Collection<ServiceConfigurator<EntityLinkServiceConfiguration>> entityLinkServiceConfigurators;
protected boolean enableEntityLinks;

// EventSubscription support
protected EventSubscriptionServiceConfiguration eventSubscriptionServiceConfiguration;
protected Collection<ServiceConfigurator<EventSubscriptionServiceConfiguration>> eventSubscriptionServiceConfigurators;

// Task support
protected TaskServiceConfiguration taskServiceConfiguration;
protected Collection<ServiceConfigurator<TaskServiceConfiguration>> taskServiceConfigurators;
protected InternalHistoryTaskManager internalHistoryTaskManager;
protected InternalTaskVariableScopeResolver internalTaskVariableScopeResolver;
protected InternalTaskAssignmentManager internalTaskAssignmentManager;
Expand All @@ -489,12 +492,14 @@ public class CmmnEngineConfiguration extends AbstractEngineConfiguration impleme

// Batch support
protected BatchServiceConfiguration batchServiceConfiguration;
protected Collection<ServiceConfigurator<BatchServiceConfiguration>> batchServiceConfigurators;

// Variable support
protected VariableTypes variableTypes;
protected List<VariableType> customPreVariableTypes;
protected List<VariableType> customPostVariableTypes;
protected VariableServiceConfiguration variableServiceConfiguration;
protected Collection<ServiceConfigurator<VariableServiceConfiguration>> variableServiceConfigurators;
protected InternalHistoryVariableManager internalHistoryVariableManager;
protected boolean serializableVariableTypeTrackDeserializedObjects = true;
/**
Expand Down Expand Up @@ -1518,6 +1523,7 @@ public void configureVariableServiceConfiguration() {
this.variableServiceConfiguration.setMaxLengthString(this.getMaxLengthString());
this.variableServiceConfiguration.setSerializableVariableTypeTrackDeserializedObjects(this.isSerializableVariableTypeTrackDeserializedObjects());
this.variableServiceConfiguration.setLoggingSessionEnabled(isLoggingSessionEnabled());
this.variableServiceConfiguration.setConfigurators(variableServiceConfigurators);
}

public void initVariableServiceConfiguration() {
Expand Down Expand Up @@ -1568,6 +1574,7 @@ public void initTaskServiceConfiguration() {

this.taskServiceConfiguration.setEnableTaskRelationshipCounts(this.isEnableTaskRelationshipCounts);

this.taskServiceConfiguration.setConfigurators(this.taskServiceConfigurators);
this.taskServiceConfiguration.init();

if (dbSqlSessionFactory != null && taskServiceConfiguration.getTaskDataManager() instanceof AbstractDataManager) {
Expand All @@ -1590,6 +1597,7 @@ public void initIdentityLinkServiceConfiguration() {
this.identityLinkServiceConfiguration.setEventDispatcher(this.eventDispatcher);
this.identityLinkServiceConfiguration.setIdentityLinkEventHandler(this.identityLinkEventHandler);

this.identityLinkServiceConfiguration.setConfigurators(this.identityLinkServiceConfigurators);
this.identityLinkServiceConfiguration.init();

addServiceConfiguration(EngineConfigurationConstants.KEY_IDENTITY_LINK_SERVICE_CONFIG, this.identityLinkServiceConfiguration);
Expand All @@ -1608,6 +1616,7 @@ public void initEntityLinkServiceConfiguration() {
this.entityLinkServiceConfiguration.setObjectMapper(this.objectMapper);
this.entityLinkServiceConfiguration.setEventDispatcher(this.eventDispatcher);

this.entityLinkServiceConfiguration.setConfigurators(this.entityLinkServiceConfigurators);
this.entityLinkServiceConfiguration.init();

addServiceConfiguration(EngineConfigurationConstants.KEY_ENTITY_LINK_SERVICE_CONFIG, this.entityLinkServiceConfiguration);
Expand All @@ -1626,6 +1635,7 @@ public void initEventSubscriptionServiceConfiguration() {
this.eventSubscriptionServiceConfiguration.setEventDispatcher(this.eventDispatcher);
this.eventSubscriptionServiceConfiguration.setEventSubscriptionLockTime(this.eventRegistryUniqueCaseInstanceStartLockTime);

this.eventSubscriptionServiceConfiguration.setConfigurators(this.eventSubscriptionServiceConfigurators);
this.eventSubscriptionServiceConfiguration.init();

addServiceConfiguration(EngineConfigurationConstants.KEY_EVENT_SUBSCRIPTION_SERVICE_CONFIG, this.eventSubscriptionServiceConfiguration);
Expand Down Expand Up @@ -1911,6 +1921,7 @@ public void initBatchServiceConfiguration() {
this.batchServiceConfiguration.setObjectMapper(this.objectMapper);
this.batchServiceConfiguration.setEventDispatcher(this.eventDispatcher);

this.batchServiceConfiguration.setConfigurators(this.batchServiceConfigurators);
this.batchServiceConfiguration.init();
}

Expand Down Expand Up @@ -2895,7 +2906,25 @@ public CmmnEngineConfiguration setIdentityLinkServiceConfiguration(IdentityLinkS
this.identityLinkServiceConfiguration = identityLinkServiceConfiguration;
return this;
}


public Collection<ServiceConfigurator<IdentityLinkServiceConfiguration>> getIdentityLinkServiceConfigurators() {
return identityLinkServiceConfigurators;
}

public CmmnEngineConfiguration setIdentityLinkServiceConfigurators(
Collection<ServiceConfigurator<IdentityLinkServiceConfiguration>> identityLinkServiceConfigurators) {
this.identityLinkServiceConfigurators = identityLinkServiceConfigurators;
return this;
}

public CmmnEngineConfiguration addIdentityLinkServiceConfigurator(ServiceConfigurator<IdentityLinkServiceConfiguration> configurator) {
if (this.identityLinkServiceConfigurators == null) {
this.identityLinkServiceConfigurators = new ArrayList<>();
}
this.identityLinkServiceConfigurators.add(configurator);
return this;
}

public EntityLinkServiceConfiguration getEntityLinkServiceConfiguration() {
return entityLinkServiceConfiguration;
}
Expand All @@ -2905,6 +2934,24 @@ public CmmnEngineConfiguration setEntityLinkServiceConfiguration(EntityLinkServi
return this;
}

public Collection<ServiceConfigurator<EntityLinkServiceConfiguration>> getEntityLinkServiceConfigurators() {
return entityLinkServiceConfigurators;
}

public CmmnEngineConfiguration setEntityLinkServiceConfigurators(
Collection<ServiceConfigurator<EntityLinkServiceConfiguration>> entityLinkServiceConfigurators) {
this.entityLinkServiceConfigurators = entityLinkServiceConfigurators;
return this;
}

public CmmnEngineConfiguration addEntityLinkServiceConfigurator(ServiceConfigurator<EntityLinkServiceConfiguration> configurator) {
if (this.entityLinkServiceConfigurators == null) {
this.entityLinkServiceConfigurators = new ArrayList<>();
}
this.entityLinkServiceConfigurators.add(configurator);
return this;
}

@Override
public VariableServiceConfiguration getVariableServiceConfiguration() {
return variableServiceConfiguration;
Expand All @@ -2915,6 +2962,24 @@ public CmmnEngineConfiguration setVariableServiceConfiguration(VariableServiceCo
return this;
}

public Collection<ServiceConfigurator<VariableServiceConfiguration>> getVariableServiceConfigurators() {
return variableServiceConfigurators;
}

public CmmnEngineConfiguration setVariableServiceConfigurators(Collection<ServiceConfigurator<VariableServiceConfiguration>> variableServiceConfigurators) {
this.variableServiceConfigurators = variableServiceConfigurators;
return this;
}

public CmmnEngineConfiguration addVariableServiceConfigurator(ServiceConfigurator<VariableServiceConfiguration> configurator) {
if (this.variableServiceConfigurators == null) {
this.variableServiceConfigurators = new ArrayList<>();
}

this.variableServiceConfigurators.add(configurator);
return this;
}

public TaskServiceConfiguration getTaskServiceConfiguration() {
return taskServiceConfiguration;
}
Expand All @@ -2924,6 +2989,24 @@ public CmmnEngineConfiguration setTaskServiceConfiguration(TaskServiceConfigurat
return this;
}

public Collection<ServiceConfigurator<TaskServiceConfiguration>> getTaskServiceConfigurators() {
return taskServiceConfigurators;
}

public CmmnEngineConfiguration setTaskServiceConfigurators(Collection<ServiceConfigurator<TaskServiceConfiguration>> taskServiceConfigurators) {
this.taskServiceConfigurators = taskServiceConfigurators;
return this;
}

public CmmnEngineConfiguration addTaskServiceConfigurator(ServiceConfigurator<TaskServiceConfiguration> configurator) {
if (this.taskServiceConfigurators == null) {
this.taskServiceConfigurators = new ArrayList<>();
}

this.taskServiceConfigurators.add(configurator);
return this;
}

public InternalHistoryTaskManager getInternalHistoryTaskManager() {
return internalHistoryTaskManager;
}
Expand Down Expand Up @@ -2960,6 +3043,25 @@ public CmmnEngineConfiguration setBatchServiceConfiguration(BatchServiceConfigur
return this;
}

public Collection<ServiceConfigurator<BatchServiceConfiguration>> getBatchServiceConfigurators() {
return batchServiceConfigurators;
}

public CmmnEngineConfiguration setBatchServiceConfigurators(Collection<ServiceConfigurator<BatchServiceConfiguration>> batchServiceConfigurators) {
this.batchServiceConfigurators = batchServiceConfigurators;
return this;
}

public CmmnEngineConfiguration addBatchServiceConfigurator(
ServiceConfigurator<BatchServiceConfiguration> configurator) {
if (this.batchServiceConfigurators == null) {
this.batchServiceConfigurators = new ArrayList<>();
}

this.batchServiceConfigurators.add(configurator);
return this;
}

public InternalHistoryVariableManager getInternalHistoryVariableManager() {
return internalHistoryVariableManager;
}
Expand Down Expand Up @@ -3971,6 +4073,26 @@ public CmmnEngineConfiguration setEventSubscriptionServiceConfiguration(EventSub
return this;
}

public Collection<ServiceConfigurator<EventSubscriptionServiceConfiguration>> getEventSubscriptionServiceConfigurators() {
return eventSubscriptionServiceConfigurators;
}

public CmmnEngineConfiguration setEventSubscriptionServiceConfigurators(
Collection<ServiceConfigurator<EventSubscriptionServiceConfiguration>> eventSubscriptionServiceConfigurators) {
this.eventSubscriptionServiceConfigurators = eventSubscriptionServiceConfigurators;
return this;
}

public CmmnEngineConfiguration addEventSubscriptionServiceConfigurator(
ServiceConfigurator<EventSubscriptionServiceConfiguration> configurator) {
if (this.eventSubscriptionServiceConfigurators == null) {
this.eventSubscriptionServiceConfigurators = new ArrayList<>();
}

this.eventSubscriptionServiceConfigurators.add(configurator);
return this;
}

public Map<String, HistoryJobHandler> getHistoryJobHandlers() {
return historyJobHandlers;
}
Expand Down
Loading

0 comments on commit 1b0e465

Please sign in to comment.