Class C4CSyncJobPerformable
java.lang.Object
de.hybris.platform.servicelayer.cronjob.AbstractJobPerformable<Y2YSyncCronJobModel>
de.hybris.platform.c4ccustomer.job.C4CSyncJobPerformable
- All Implemented Interfaces:
de.hybris.platform.servicelayer.cronjob.JobPerformable<Y2YSyncCronJobModel>
public abstract class C4CSyncJobPerformable
extends de.hybris.platform.servicelayer.cronjob.AbstractJobPerformable<Y2YSyncCronJobModel>
C4C synchronization cron job.
-
Field Summary
FieldsFields inherited from class de.hybris.platform.servicelayer.cronjob.AbstractJobPerformable
flexibleSearchService, modelService, sessionService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected TypeChangesDataaddTypeChangesDataForConfig(Map<String, TypeChangesData> containers, Y2YStreamConfigurationModel y2YStreamConfigurationModel, de.hybris.y2ysync.deltadetection.collector.BatchingCollector collector) Create entry ofTypeChangesDatacorresponding to the configuration.protected voidassignStreamIds(C4CAggregatingCollector collector, Set<StreamConfigurationModel> configurations) Assign stream ids to corresponding collectors.protected voidcreateAllTasksInTx(String syncExecutionId, List<de.hybris.y2ysync.task.internal.MediasForType> allMedia, Y2YSyncType syncType) Run prepared synchronization tasks.protected voidfillParameters(Map<String, Object> globalQueryParameters, CatalogVersionModel catalogVersion) Collect parameters.protected Set<StreamConfigurationModel>All active configurations of given container.protected abstract C4CAggregatingCollectorGet collector that joins customers and addresses.protected intprotected de.hybris.deltadetection.ChangeDetectionServiceprotected Map<String,TypeChangesData> getChangesDataMap(String syncExecutionId, Map<String, Object> globalQueryParameters, Set<StreamConfigurationModel> configurations) Collect changes, store them on media.protected de.hybris.platform.servicelayer.media.MediaServiceprotected C4CBatchingCollectorgetSplittingCollector(String syncExecutionId, String collectorId) Get collector that splits change list into chunks.protected de.hybris.y2ysync.task.internal.SyncTaskFactoryprotected de.hybris.platform.servicelayer.type.TypeServiceprotected booleanisChangesDetected(List<de.hybris.y2ysync.task.internal.MediasForType> allMedias) protected Stringjoin(Y2YStreamConfigurationModel y2yStreamConfiguration, Function<Y2YColumnDefinitionModel, String> mapper) Create semicolon-delimited list of columns from configuration.de.hybris.platform.servicelayer.cronjob.PerformResultperform(Y2YSyncCronJobModel cronJob) voidsetBatchSize(int value) voidsetChangeDetectionService(de.hybris.deltadetection.ChangeDetectionService changeDetectionService) voidsetMediaService(de.hybris.platform.servicelayer.media.MediaService mediaService) voidsetSyncTaskFactory(de.hybris.y2ysync.task.internal.SyncTaskFactory syncTaskFactory) voidsetTypeService(de.hybris.platform.servicelayer.type.TypeService typeService) protected de.hybris.deltadetection.StreamConfigurationtoStreamConfiguration(Map<String, Object> globalQueryParameters, Y2YStreamConfigurationModel y2YStreamConfigurationModel) Merge parameters with stream configuration.Methods inherited from class de.hybris.platform.servicelayer.cronjob.AbstractJobPerformable
clearAbortRequestedIfNeeded, isAbortable, isPerformable, setFlexibleSearchService, setModelService, setSessionService
-
Field Details
-
COLUMNS_DELIMITER
- See Also:
-
-
Constructor Details
-
C4CSyncJobPerformable
public C4CSyncJobPerformable()
-
-
Method Details
-
getAggregatingCollector
Get collector that joins customers and addresses.- Returns:
- collector
-
getSplittingCollector
Get collector that splits change list into chunks.- Returns:
- constructed collector
-
perform
- Specified by:
performin interfacede.hybris.platform.servicelayer.cronjob.JobPerformable<Y2YSyncCronJobModel>- Specified by:
performin classde.hybris.platform.servicelayer.cronjob.AbstractJobPerformable<Y2YSyncCronJobModel>
-
getChangesDataMap
protected Map<String,TypeChangesData> getChangesDataMap(String syncExecutionId, Map<String, Object> globalQueryParameters, Set<StreamConfigurationModel> configurations) Collect changes, store them on media.- Parameters:
syncExecutionId- unique synchronization session idglobalQueryParameters- synchronization settingsconfigurations- what to synchronize- Returns:
- changes grouped by item type
-
assignStreamIds
protected void assignStreamIds(C4CAggregatingCollector collector, Set<StreamConfigurationModel> configurations) Assign stream ids to corresponding collectors.Needed for further call of
consumeChanges.- Parameters:
collector- aggregating collector, having separate sub-collectors for customers and for addresses.configurations- synchronization configurations
-
addTypeChangesDataForConfig
protected TypeChangesData addTypeChangesDataForConfig(Map<String, TypeChangesData> containers, Y2YStreamConfigurationModel y2YStreamConfigurationModel, de.hybris.y2ysync.deltadetection.collector.BatchingCollector collector) Create entry ofTypeChangesDatacorresponding to the configuration.- Parameters:
containers- receiver of the entriesy2YStreamConfigurationModel- configuration details
-
join
protected String join(Y2YStreamConfigurationModel y2yStreamConfiguration, Function<Y2YColumnDefinitionModel, String> mapper) Create semicolon-delimited list of columns from configuration.- Parameters:
y2yStreamConfiguration- configurationmapper- how to process each column definition- Returns:
- resulting list
-
getActiveConfigurations
protected Set<StreamConfigurationModel> getActiveConfigurations(Y2YStreamConfigurationContainerModel container) All active configurations of given container.- Parameters:
container- configuration container- Returns:
- subsequent configurations
-
createAllTasksInTx
protected void createAllTasksInTx(String syncExecutionId, List<de.hybris.y2ysync.task.internal.MediasForType> allMedia, Y2YSyncType syncType) Run prepared synchronization tasks.- Parameters:
syncExecutionId- session idallMedia- data descriptorssyncType- how to synchronize
-
toStreamConfiguration
protected de.hybris.deltadetection.StreamConfiguration toStreamConfiguration(Map<String, Object> globalQueryParameters, Y2YStreamConfigurationModel y2YStreamConfigurationModel) Merge parameters with stream configuration.- Parameters:
globalQueryParameters- global settingsy2YStreamConfigurationModel- stream own settings- Returns:
- merged configuration
-
fillParameters
protected void fillParameters(Map<String, Object> globalQueryParameters, CatalogVersionModel catalogVersion) Collect parameters.- Parameters:
globalQueryParameters- global parameterscatalogVersion- optional catalog version
-
isChangesDetected
-
setChangeDetectionService
public void setChangeDetectionService(de.hybris.deltadetection.ChangeDetectionService changeDetectionService) -
setMediaService
public void setMediaService(de.hybris.platform.servicelayer.media.MediaService mediaService) -
setSyncTaskFactory
public void setSyncTaskFactory(de.hybris.y2ysync.task.internal.SyncTaskFactory syncTaskFactory) -
setTypeService
public void setTypeService(de.hybris.platform.servicelayer.type.TypeService typeService) -
setBatchSize
public void setBatchSize(int value) -
getChangeDetectionService
protected de.hybris.deltadetection.ChangeDetectionService getChangeDetectionService()- Returns:
- change detection service.
-
getMediaService
protected de.hybris.platform.servicelayer.media.MediaService getMediaService()- Returns:
- media service.
-
getSyncTaskFactory
protected de.hybris.y2ysync.task.internal.SyncTaskFactory getSyncTaskFactory()- Returns:
- synchronization task factory.
-
getTypeService
protected de.hybris.platform.servicelayer.type.TypeService getTypeService()- Returns:
- type service.
-
getBatchSize
protected int getBatchSize()- Returns:
- chunk length.
-