Class DefaultTransitionRequestManager
- All Implemented Interfaces:
TransitionRequestManager
- Author:
- Jeff Fischer
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe default level that promotions happen in. -
Constructor Summary
ConstructorsConstructorDescriptionDefaultTransitionRequestManager(ChangeSummaryService<ChangeSummary> summaryService, ChangeSummaryGroupService<ChangeSummaryGroup> groupService, com.broadleafcommerce.common.messaging.repository.ResourceLockRepository<?, ?> resourceLockRepository, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, ChangeSummaryRepository<?> changeSummaryRepository, com.broadleafcommerce.common.messaging.notification.MessageSerializationHelper helper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, DeploymentRequestHandler deploymentRequestHandler, com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidatorManager validator, BatchTransitionService batchTransitionService) -
Method Summary
Modifier and TypeMethodDescriptionvoidapprove(ChangeSummaryGroups groups, String sandbox) Moves theChangeSummaryGroupinstances identified by the approveGroups param into theChangeState.APPROVEDstate.voidapprove(ChangeSummaryGroups groups, String sandbox, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Moves theChangeSummaryGroupinstances identified by the approveGroups param into theChangeState.APPROVEDstate.voidclearDeployment(String changeDeployId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Accepts an ID for aChangeDeploythat previously failed and starts the process of clearing the error state of the deployment.voiddeploy(ChangeSummaryGroups groups, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox, int level) Moves theChangeSummaryGroupinstances identified by the scheduleGroups param into theChangeStatusType.DEPLOYINGstatus.findExistingChangeGroup(List<ChangeSummary> changeSummaries) Retrieve the common ChangeSummaryGroup for a list of summariesfindExistingChangeGroup(List<ChangeSummary> changeSummaries, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Retrieve the common ChangeSummaryGroup for a list of summariesprotected booleanWhether or not vendor processing is enabled.voidpromote(PromoteSummaries summaries, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, String sandbox) Moves theChangeSummariesidentified by thePromoteSummaries.getChangeSummaries()into thePROMOTING statusand notifies all interested microservices managing matchingTrackable entitiesthat they should perform a promotion for each of said entities.voidpromoteDeploy(PromoteSummaries summaries, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, String sandbox) Moves theChangeSummariesidentified by thePromoteSummaries.getChangeSummaries()into theDeploying statusand notifies all interested microservices managing matchingTrackable entitiesthat they should perform a deployment for each of said entities.voidrebase(ChangeSummaries summaries, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox) Moves theChangeSummariesidentified by theChangeSummaries.getChangeSummaryIds()into theREBASING statusand notifies all interested microservices that manage matchingTrackable entitiesthat they should perform a rebase for each of the said entities.voidreject(ChangeSummaryGroups groups, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupsit targets those with theChangeStateof PROMOTEDvoidrejectApproved(ChangeSummaryGroups groups, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupsit targets those with theChangeStateof APPROVEDprotected voidrejectInternal(ChangeSummaryGroups groups, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox, String whereState, List<String> whereStatuses) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupswith a state matchingwhereStateand a status matching one ofwhereStatuses.voidrejectPromoted(ChangeSummaryGroups groups, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupsit targets those with theChangeStateof PROMOTEDremove(ChangeSummaryRemovalRequest request) Remove theChangeSummariesof the provided ids from theirChangeSummaryGroupand add them to a new one.remove(ChangeSummaryRemovalRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Remove theChangeSummariesof the provided ids from theirChangeSummaryGroupand add them to a new one.protected voidIfvendorProcessingEnabled, then updates the datastore such that the temporary placeholder frominitializeVendorFields(ChangeSummaryGroup)is removed from the givengroupId.voidrevert(ChangeSummaries summaries, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox) Moves theChangeSummariesidentified by theChangeSummaries.getChangeSummaryIds()into theREVERTING statusand notifies all interested microservices that manage matchingTrackable entitiesthat they should perform a reversion for each of the said entities.voidscheduleDeployment(ChangeSummaryGroups scheduleGroups, com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String sandbox, Instant deployTime, int level) Moves theChangeSummaryGroupinstances identified by the scheduleGroups param into theChangeStatusType.SCHEDULINGstatus.voidsetVendorProcessingEnabled(boolean vendorProcessingEnabled) Whether or not vendor processing is enabled.voidunscheduleDeployment(String changeDeployId) Accepts an ID for aChangeDeploythat was previously scheduled and starts the process of unscheduling the deployment.voidunscheduleDeployment(String changeDeployId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Accepts an ID for aChangeDeploythat was previously scheduled and starts the process of unscheduling the deployment.
-
Field Details
-
PROMOTION_TRACKING_LEVEL
public static final int PROMOTION_TRACKING_LEVELThe default level that promotions happen in. Intentionally not maintained inTrackingLevelto promote the eventual idea of flexible workflow steps in tracking- See Also:
-
-
Constructor Details
-
DefaultTransitionRequestManager
public DefaultTransitionRequestManager(ChangeSummaryService<ChangeSummary> summaryService, ChangeSummaryGroupService<ChangeSummaryGroup> groupService, com.broadleafcommerce.common.messaging.repository.ResourceLockRepository<?, ?> resourceLockRepository, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, ChangeSummaryRepository<?> changeSummaryRepository, com.broadleafcommerce.common.messaging.notification.MessageSerializationHelper helper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, DeploymentRequestHandler deploymentRequestHandler, com.broadleafcommerce.data.tracking.core.mapping.validation.EntityValidatorManager validator, BatchTransitionService batchTransitionService)
-
-
Method Details
-
approve
Description copied from interface:TransitionRequestManagerMoves theChangeSummaryGroupinstances identified by the approveGroups param into theChangeState.APPROVEDstate. Also, moves anyChangeSummaryinstances identified byChangeSummaryGroup.getChangeSummaryIds()into theChangeState.APPROVEDstate as well.This transition should be performed in a multi-user safe way so that multiple requests for transitions on the same ChangeSummaryGroup instances cannot happen concurrently.
A QualifiedStateException can be thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation. For example, if a
ChangeSummaryGroupwas in an APPROVED state, but a reject was requested on it, this exception would be thrown because the expected state for a reject is PROMOTED.- Specified by:
approvein interfaceTransitionRequestManager- Parameters:
groups- Construct that identifies one or moreChangeSummaryGroupinstancessandbox- the sandbox to filter the search on
-
approve
public void approve(@NonNull ChangeSummaryGroups groups, @NonNull String sandbox, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:TransitionRequestManagerMoves theChangeSummaryGroupinstances identified by the approveGroups param into theChangeState.APPROVEDstate. Also, moves anyChangeSummaryinstances identified byChangeSummaryGroup.getChangeSummaryIds()into theChangeState.APPROVEDstate as well.This transition should be performed in a multi-user safe way so that multiple requests for transitions on the same ChangeSummaryGroup instances cannot happen concurrently.
A QualifiedStateException can be thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation. For example, if a
ChangeSummaryGroupwas in an APPROVED state, but a reject was requested on it, this exception would be thrown because the expected state for a reject is PROMOTED.- Specified by:
approvein interfaceTransitionRequestManager- Parameters:
groups- Construct that identifies one or moreChangeSummaryGroupinstancessandbox- the sandbox to filter the search oncontextInfo- context information surrounding sandboxing and multitenant state
-
promote
public void promote(@NonNull PromoteSummaries summaries, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, @NonNull String sandbox) Description copied from interface:TransitionRequestManagerMoves theChangeSummariesidentified by thePromoteSummaries.getChangeSummaries()into thePROMOTING statusand notifies all interested microservices managing matchingTrackable entitiesthat they should perform a promotion for each of said entities. This notification is performed via aWorkflowPromoteRequest.When
ChangeSummaries.isAllChangeSummaries()is true, this operation will promote all items owned by the current user in theUSER state. IfChangeSummaries.isAllChangeSummaries()is false, then only the items specified inChangeSummaries.getChangeSummaryIds()are promoted.ChangeSummaries.isAllChangeSummaries()is false by default.Finally, if any of the requested change summaries are diverged, then this promotion is cancelled and a
DivergedChangeExceptionis thrown. A summary can be diverged when it has not absorbed allChangeDetail entriesproduced by another ChangeSummary for the same entity but promoted by another author. Meaning, the current ChangeSummary is unaware of some changes already promoted in advance and, thus, is considered diverged. Diverged ChangeSummaries must be rebased before they are allowed to promote (seeTransitionRequestManager.rebase(ChangeSummaries, ContextInfo, String)).- Specified by:
promotein interfaceTransitionRequestManager- Parameters:
summaries- Construct that identifies one or moreChangeSummaryinstances.contextInfo- Request context information identifying the usersandbox- the sandbox to filter the search on
-
promoteDeploy
public void promoteDeploy(@NonNull PromoteSummaries summaries, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, @NonNull String sandbox) Description copied from interface:TransitionRequestManagerMoves theChangeSummariesidentified by thePromoteSummaries.getChangeSummaries()into theDeploying statusand notifies all interested microservices managing matchingTrackable entitiesthat they should perform a deployment for each of said entities. This notification is performed via aWorkflowDeployRequest.When
ChangeSummaries.isAllChangeSummaries()is true, this operation will deploy all items owned by the current user in theUSER state. IfChangeSummaries.isAllChangeSummaries()is false, then only the items specified inChangeSummaries.getChangeSummaryIds()are deployed.ChangeSummaries.isAllChangeSummaries()is false by default.Finally, if any of the requested change summaries are diverged, then this promotion is cancelled and a
DivergedChangeExceptionis thrown. A summary can be diverged when it has not absorbed allChangeDetail entriesproduced by another ChangeSummary for the same entity but promoted by another author. Meaning, the current ChangeSummary is unaware of some changes already promoted in advance and, thus, is considered diverged. Diverged ChangeSummaries must be rebased before they are allowed to promote (seeTransitionRequestManager.rebase(ChangeSummaries, ContextInfo, String)).- Specified by:
promoteDeployin interfaceTransitionRequestManager- Parameters:
summaries- Construct that identifies on or moreChangeSummaryinstances.contextInfo- Request context information identifying the usersandbox- the sandbox to filter the search on
-
rebase
public void rebase(@NonNull ChangeSummaries summaries, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox) Description copied from interface:TransitionRequestManagerMoves theChangeSummariesidentified by theChangeSummaries.getChangeSummaryIds()into theREBASING statusand notifies all interested microservices that manage matchingTrackable entitiesthat they should perform a rebase for each of the said entities. This notification is performed via aWorkflowRebaseRequest.When
ChangeSummaries.isAllChangeSummaries()is true, this operation will rebase all items owned by the current user in theUSER state. IfChangeSummaries.isAllChangeSummaries()is false, then only the items specified inChangeSummaries.getChangeSummaryIds()are rebased.ChangeSummaries.isAllChangeSummaries()is false by default.If any of the items contained by a
ChangeSummaryidentified in theChangeSummariesare not owned by the author identified byContextInfo.getAuthor(), then anEntityMissingExceptionis thrown.- Specified by:
rebasein interfaceTransitionRequestManager- Parameters:
summaries- Construct that identifies on or moreChangeSummaryinstances.context- Request context information identifying user, sandbox, etc...sandbox- the sandbox to filter the search on
-
reject
public void reject(@NonNull ChangeSummaryGroups groups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupsit targets those with theChangeStateof PROMOTED- Specified by:
rejectin interfaceTransitionRequestManager- Parameters:
groups-ChangeSummaryGroupthat you would like to rejectcontext- context information surrounding sandboxingsandbox- The sandbox for which change summaries should be filtered
-
rejectPromoted
public void rejectPromoted(@NonNull ChangeSummaryGroups groups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupsit targets those with theChangeStateof PROMOTED- Specified by:
rejectPromotedin interfaceTransitionRequestManager- Parameters:
groups-ChangeSummaryGroupthat you would like to rejectcontext- context information surrounding sandboxingsandbox- The sandbox for which change summaries should be filtered
-
rejectApproved
public void rejectApproved(@NonNull ChangeSummaryGroups groups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupsit targets those with theChangeStateof APPROVED- Specified by:
rejectApprovedin interfaceTransitionRequestManager- Parameters:
groups-ChangeSummaryGroupthat you would like to rejectcontext- context information surrounding sandboxingsandbox- The sandbox for which change summaries should be filtered
-
rejectInternal
protected void rejectInternal(@NonNull ChangeSummaryGroups groups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, @NonNull String whereState, @NonNull List<String> whereStatuses) Rejects the targeted changeSummaryGroupIds inChangeSummaryGroupswith a state matchingwhereStateand a status matching one ofwhereStatuses.- Parameters:
groups-ChangeSummaryGroupthat you would like to rejectcontext- context information surrounding sandboxingsandbox- The sandbox for which change summaries and change summary groups should be filteredwhereState- theChangeStatethat the summaries and summary groups should match to be considered eligible for rejectionwhereStatuses- thestatusesthat the summaries and summary groups should match one of to be considered eligible for rejection
-
revert
public void revert(@NonNull ChangeSummaries summaries, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox) Description copied from interface:TransitionRequestManagerMoves theChangeSummariesidentified by theChangeSummaries.getChangeSummaryIds()into theREVERTING statusand notifies all interested microservices that manage matchingTrackable entitiesthat they should perform a reversion for each of the said entities. This notification is performed via aWorkflowRevertRequest.When
ChangeSummaries.isAllChangeSummaries()is true, this operation will rebase all items owned by the current user in theUSER state. IfChangeSummaries.isAllChangeSummaries()is false, then only the items specified inChangeSummaries.getChangeSummaryIds()are rebased.ChangeSummaries.isAllChangeSummaries()is false by default.If any of the items contained by a
ChangeSummaryidentified in theChangeSummariesare not owned by the author identified byContextInfo.getAuthor(), then anEntityMissingExceptionis thrown.- Specified by:
revertin interfaceTransitionRequestManager- Parameters:
summaries- Construct that identifies on or moreChangeSummaryinstances.context- Request context information identifying user, sandbox, etc...sandbox- theSandbox.getId()on which to filter the search
-
scheduleDeployment
public void scheduleDeployment(@NonNull ChangeSummaryGroups scheduleGroups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, @NonNull Instant deployTime, int level) Description copied from interface:TransitionRequestManagerMoves theChangeSummaryGroupinstances identified by the scheduleGroups param into theChangeStatusType.SCHEDULINGstatus. Also, moves anyChangeSummaryinstances identified byChangeSummaryGroup.getChangeSummaryIds()into the same status. Finally, this will create a newChangeDeploythat is scheduled to deploy at the specifieddeployTime.When
ChangeSummaryGroups.isAllChangeSummaryGroups()is true, this operation will schedule all groups owned by the current user in theAPPROVED state. Otherwise, only the items specified inChangeSummaryGroups.getChangeSummaryGroupIds()are deployed.ChangeSummaryGroups.isAllChangeSummaryGroups()is false by default.A QualifiedStateException can be thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation. For example, if a
ChangeSummaryGroupwas in a DEPLOYED state already, but a scheduling was requested for it, this exception would be thrown because the expected state for a scheduling is APPROVED.- Specified by:
scheduleDeploymentin interfaceTransitionRequestManager- Parameters:
scheduleGroups- Construct that identifies one or moreChangeSummaryGroupinstances to be scheduled for a future deployment.context- Information about the deploy request containing the ID of the request's author.sandbox- The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.level- The tracking level from which to perform the deployment (seeTrackingLevel)
-
unscheduleDeployment
Description copied from interface:TransitionRequestManagerAccepts an ID for aChangeDeploythat was previously scheduled and starts the process of unscheduling the deployment. The deployment, its groups, and their associated summaries have their statuses updated toChangeStatusType.UNSCHEDULING, and aWorkflowJobUnschedulingRequestis published to actually unschedule the job.- Specified by:
unscheduleDeploymentin interfaceTransitionRequestManager- Parameters:
changeDeployId- the ID of the previously scheduledChangeDeploywhich should be unscheduled- See Also:
-
unscheduleDeployment
public void unscheduleDeployment(@NonNull String changeDeployId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:TransitionRequestManagerAccepts an ID for aChangeDeploythat was previously scheduled and starts the process of unscheduling the deployment. The deployment, its groups, and their associated summaries have their statuses updated toChangeStatusType.UNSCHEDULING, and aWorkflowJobUnschedulingRequestis published to actually unschedule the job.- Specified by:
unscheduleDeploymentin interfaceTransitionRequestManager- Parameters:
changeDeployId- the ID of the previously scheduledChangeDeploywhich should be unscheduledcontextInfo- context information about sandboxing and multitenant state- See Also:
-
clearDeployment
public void clearDeployment(@NonNull String changeDeployId, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:TransitionRequestManagerAccepts an ID for aChangeDeploythat previously failed and starts the process of clearing the error state of the deployment. This includes notifying (via special deployment case) all resource tier services with impacted entities. The resource tier service is responsible for rectifying theChangeDetailstate to obsolete for deployment version matches in the tracking information for affected entities.- Specified by:
clearDeploymentin interfaceTransitionRequestManager- Parameters:
changeDeployId- The ID of the previously failed deploymentcontextInfo- context information about sandboxing and multitenant state
-
deploy
public void deploy(@NonNull ChangeSummaryGroups groups, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @NonNull String sandbox, int level) Description copied from interface:TransitionRequestManagerMoves theChangeSummaryGroupinstances identified by the scheduleGroups param into theChangeStatusType.DEPLOYINGstatus. Also, moves anyChangeSummaryinstances identified byChangeSummaryGroup.getChangeSummaryIds()into the same status. Finally, this will create a newChangeDeploythat is scheduled to deploy immediately.When
ChangeSummaryGroups.isAllChangeSummaryGroups()is true, this operation will deploy all groups owned by the current user in theAPPROVED state. Otherwise, only the items specified inChangeSummaryGroups.getChangeSummaryGroupIds()are deployed.ChangeSummaryGroups.isAllChangeSummaryGroups()is false by default.A QualifiedStateException can be thrown for any id values determined to be in an incorrect state from that expected to perform a transition operation. For example, if a
ChangeSummaryGroupwas in a DEPLOYED state already, but a deployment was requested for it, this exception would be thrown because the expected state for a deployment is APPROVED.- Specified by:
deployin interfaceTransitionRequestManager- Parameters:
groups- Construct that identifies one or moreChangeSummaryGroupinstances to be scheduled for a future deployment.context- Information about the deploy request containing the ID of the request's author.sandbox- The sandbox ID upon which to filter searches on when retrieving the group instances and their summaries.level- The tracking level from which to perform the deployment (seeTrackingLevel)
-
remove
Description copied from interface:TransitionRequestManagerRemove theChangeSummariesof the provided ids from theirChangeSummaryGroupand add them to a new one.- Specified by:
removein interfaceTransitionRequestManager- Parameters:
request- Construct that indicates whichChangeSummariesto remove, given their ids. Also indicates what the name of the newChangeSummaryGroupshould be.- Returns:
- Remove the
ChangeSummariesof the provided ids from theirChangeSummaryGroupand into a new one
-
remove
@NonNull public ChangeSummaryRemovalResponse remove(@NonNull ChangeSummaryRemovalRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:TransitionRequestManagerRemove theChangeSummariesof the provided ids from theirChangeSummaryGroupand add them to a new one.- Specified by:
removein interfaceTransitionRequestManager- Parameters:
request- Construct that indicates whichChangeSummariesto remove, given their ids. Also indicates what the name of the newChangeSummaryGroupshould be.contextInfo- context information about sandboxing and multitenant state- Returns:
- Remove the
ChangeSummariesof the provided ids from theirChangeSummaryGroupand into a new one
-
findExistingChangeGroup
@Nullable public ChangeSummaryGroup findExistingChangeGroup(@NonNull List<ChangeSummary> changeSummaries) Description copied from interface:TransitionRequestManagerRetrieve the common ChangeSummaryGroup for a list of summaries- Specified by:
findExistingChangeGroupin interfaceTransitionRequestManager- Parameters:
changeSummaries- The summaries sharing a common group- Returns:
- The group containing the requested summaries
-
findExistingChangeGroup
@Nullable public ChangeSummaryGroup findExistingChangeGroup(@NonNull List<ChangeSummary> changeSummaries, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:TransitionRequestManagerRetrieve the common ChangeSummaryGroup for a list of summaries- Specified by:
findExistingChangeGroupin interfaceTransitionRequestManager- Parameters:
changeSummaries- The summaries sharing a common groupcontextInfo- context information about sandboxing and multitenant state- Returns:
- The group containing the requested summaries
-
removeTemporaryPlaceholderFromAffectedVendors
IfvendorProcessingEnabled, then updates the datastore such that the temporary placeholder frominitializeVendorFields(ChangeSummaryGroup)is removed from the givengroupId.- Parameters:
groupId- the ID of the group from which to remove the temporary placeholder from affected vendors- See Also:
-
initializeVendorFields(ChangeSummaryGroup)
-
isVendorProcessingEnabled
protected boolean isVendorProcessingEnabled()Whether or not vendor processing is enabled. This will determine how certain vendor-related fields on domains are initialized and whether vendor narrowing is applied to filter results. -
setVendorProcessingEnabled
@Autowired public void setVendorProcessingEnabled(@Value("${broadleaf.sandbox.propagation.enabled:false}") boolean vendorProcessingEnabled) Whether or not vendor processing is enabled. This will determine how certain vendor-related fields on domains are initialized and whether vendor narrowing is applied to filter results.
-