BulkOperationsService
was designed to use a datasource for support of
Detached Durable Messaging.
Messages sent from BulkOperationsService
will store a detached notification state to support message retries.
Bulk Operations service serves as an orchestration service to determine business logic & gathers/persists the necessary data to/from resource tier services.
In order for BulkOperationsService
to communicate with these resource tier services, hook points known as "providers" are needed to interact.
Default out-of-box providers are implemented to communicate with Broadleaf resource tier services.
Provider to interface with Catalog entities.
This is used in BulkOperationsService
to perform CRUD operations on Bulk Operations, Bulk Operation Items, and the entities saved on those items.
The default implementation, ExternalCatalogProvider
, is designed to interact with Broadleaf’s Catalog Services.
It is responsible for creating the bulk operation, finding supported bulk operations, initializing bulk operation items, and updating the bulk operations’s total record count.
ExternalCatalogProperties
defines the properties needed to configure ExternalCatalogProvider
.
These include:
broadleaf.bulkoperations.catalogprovider.url
: The base url for an external catalog service.
broadleaf.bulkoperations.catalogprovider.bulk-operation-uri
: The context path to the bulk operation endpoint.
broadleaf.bulkoperations.catalogprovider.bulk-operation-items-uri
: The context path to the bulk operation items endpoint.
broadleaf.bulkoperations.catalogprovider.bulk-operation-total-records-uri
: The context path to update the bulk operation total records.
broadleaf.bulkoperations.catalogprovider.supported-bulk-ops-uri
: The context path to the supported bulk operations endpoint.
broadleaf.bulkoperations.catalogprovider.service-client
: The service client to use when calling catalog. Default is "bulkopsclient".
UriComponentsBuilder.fromHttpUrl(properties.getUrl())
.path(properties.getBulkOperationUri())
.toUriString();
Provider to interface with Search Engine to supply catalog search results.
This is used in BulkOperationsService
to lookup search engine results for the given bulk operation.
The default implementation, ExternalSearchProvider
, is designed to interact with Broadleaf’s Search Services.
It is responsible for looking up the search engine results from the provided search filters & query on the bulk operation request.
ExternalSearchProperties
defines the properties needed to configure ExternalSearchProvider
.
These include:
broadleaf.bulkoperations.searchprovider.url
: The base url for an external search engine service.
broadleaf.bulkoperations.searchprovider.search-uri
: The context path to the catalog search endpoint.
broadleaf.bulkoperations.searchprovider.service-client
: The service client to use when calling search. Default is "bulkopsclient".
UriComponentsBuilder.fromHttpUrl(properties.getUrl())
.path(properties.getSearchUri())
.queryParams(searchParams)
.toUriString();