Class DefaultSynchronizationFacade

java.lang.Object
de.hybris.platform.cmsfacades.synchronization.impl.DefaultSynchronizationFacade
All Implemented Interfaces:
SynchronizationFacade

public class DefaultSynchronizationFacade extends Object implements SynchronizationFacade
Default implementation of the synchronization facade.
  • Constructor Details

    • DefaultSynchronizationFacade

      public DefaultSynchronizationFacade()
  • Method Details

    • getSynchronizationByCatalogSourceTarget

      public SyncJobData getSynchronizationByCatalogSourceTarget(SyncRequestData syncJobRequest) throws ValidationException
      Description copied from interface: SynchronizationFacade
      Get a synchronization status by SyncRequestData.
      Specified by:
      getSynchronizationByCatalogSourceTarget in interface SynchronizationFacade
      Parameters:
      syncJobRequest - the synchronization request data
      Returns:
      the SyncJobData
      Throws:
      ValidationException - if there any validation errors.
    • getLastSynchronizationByCatalogTarget

      public SyncJobData getLastSynchronizationByCatalogTarget(SyncRequestData syncJobRequest) throws ValidationException
      Description copied from interface: SynchronizationFacade
      Get the status of the last synchronization job by SyncRequestData. Information is retrieved based on the catalog version target.
      Specified by:
      getLastSynchronizationByCatalogTarget in interface SynchronizationFacade
      Parameters:
      syncJobRequest - the synchronization request data
      Returns:
      the SyncJobData
      Throws:
      ValidationException - if there are any validation errors
    • getIncomingSynchronizations

      protected List<SyncItemJobModel> getIncomingSynchronizations(String catalogId, String targetCatalogVersionName)
      Finds the list of synchronizations targeting the provided catalog version.
      Parameters:
      catalogId - a catalog id
      targetCatalogVersionName - the target catalog version
      Returns:
      List List of SyncItemJobModel
    • getSynchronizationsLastSuccessfulCronJob

      protected Map<PK,CronJobModel> getSynchronizationsLastSuccessfulCronJob(List<SyncItemJobModel> synchronizations)
      Retrieves the last successful cron job of each of the provided synchronization items.
      Parameters:
      synchronizations - A list of synchronization items
      Returns:
      Map<PK, CronJobModel> A map. It contains the last successful cron job of each synchronization item. It's indexed by the PK of the synchronization item.
    • getLastSuccessfulCronJob

      protected Optional<CronJobModel> getLastSuccessfulCronJob(SyncItemJobModel syncItemJobModel)
      Retrieves the last successful (SUCCESSFUL and FINISHED) cron job of the provided synchronization item.
      Parameters:
      syncItemJobModel - A synchronization item
      Returns:
      Optional The last successful cron job.
    • findLatestSyncItemJobModelByTarget

      protected Optional<SyncItemJobModel> findLatestSyncItemJobModelByTarget(List<SyncItemJobModel> incomingSynchronizations, Map<PK,CronJobModel> latestCronJobs)
      Retrieves the synchronization item that triggered the last successful cron job (SUCCESSFUL and FINISHED).
      Parameters:
      incomingSynchronizations - A list of synchronization items
      latestCronJobs - A map of the latest synchronization cron jobs. Its indexed by synchronization items PKs.
      Returns:
      Optional The synchronization item
    • createCatalogSynchronization

      public SyncJobData createCatalogSynchronization(SyncRequestData syncJobRequest)
      Description copied from interface: SynchronizationFacade
      Attempts to create a synchronization job. It may not succeed due to internal constraints, and in this case it will throw an exception.
      Specified by:
      createCatalogSynchronization in interface SynchronizationFacade
      Parameters:
      syncJobRequest - the synchronization request data
      Returns:
      the synchronization job status
    • validateIfJobIsRunning

      protected void validateIfJobIsRunning(Optional<CronJobStatus> cronJobStatus)
      Check if the a cron job is running
      Parameters:
      cronJobStatus - an Optional of CronJobStatus
    • createSyncJobModel

      protected SyncItemJobModel createSyncJobModel(CatalogVersionModel source, CatalogVersionModel target)
      Create a sync job
      Parameters:
      source - the catalog source version
      target - the catalog target version.
      Returns:
      a SyncItemJobModel
    • findLatestSyncItemJobModel

      protected Optional<SyncItemJobModel> findLatestSyncItemJobModel(String catalogId, String sourceCatalogVersionName, String targetCatalogVersionName)
      Find the latest SyncItemJobModel
      Parameters:
      catalogId -
      sourceCatalogVersionName -
      targetCatalogVersionName -
      Returns:
      Optional
    • findTheCronJob

      protected Optional<CronJobModel> findTheCronJob(String catalogId, String sourceCatalogVersionName, String targetCatalogVersionName)
      Find a cron job based a catalog and version.
      Parameters:
      catalogId - a catalog id
      sourceCatalogVersionName - the source catalog version
      targetCatalogVersionName - the target catalog version
      Returns:
      Optional a Optional of CronJobModel
    • findTheCronJob

      protected Optional<CronJobModel> findTheCronJob(Optional<SyncItemJobModel> syncItemJobModel)
      Return the latest cron job of a syncItemJobModel
      Parameters:
      syncItemJobModel - an Optional of SyncItemJobModel
      Returns:
      a Optional of CronJobModel
    • getCronJobStatus

      protected Optional<CronJobStatus> getCronJobStatus(Optional<CronJobModel> cronJobModel)
      Get a cron job status
      Parameters:
      cronJobModel - Optional of CronJobModel
      Returns:
      Optional of CronJobStatus
    • createSyncCronJob

      protected SyncItemCronJobModel createSyncCronJob(SyncItemJobModel job)
      Creates a new SyncItemCronJobModel for the same SyncItemJobModel
      Parameters:
      job - the SyncItemJobModel that will hold the new instance of the cron Job
      Returns:
      a new SyncItemCronJobModel
    • getCatalogVersionService

      protected CatalogVersionService getCatalogVersionService()
    • setCatalogVersionService

      public void setCatalogVersionService(CatalogVersionService catalogVersionService)
    • getSyncJobConverter

      protected Converter<Optional<CronJobModel>,SyncJobData> getSyncJobConverter()
    • setSyncJobConverter

      public void setSyncJobConverter(Converter<Optional<CronJobModel>,SyncJobData> syncJobConverter)
    • getFacadeValidationService

      protected FacadeValidationService getFacadeValidationService()
    • setFacadeValidationService

      public void setFacadeValidationService(FacadeValidationService facadeValidationService)
    • getModelService

      protected ModelService getModelService()
    • setModelService

      public void setModelService(ModelService modelService)
    • getCatalogSynchronizationCompositeValidator

      protected org.springframework.validation.Validator getCatalogSynchronizationCompositeValidator()
    • setCatalogSynchronizationCompositeValidator

      public void setCatalogSynchronizationCompositeValidator(org.springframework.validation.Validator catalogSynchronizationCompositeValidator)
    • getSyncJobRequestCompositeValidator

      protected org.springframework.validation.Validator getSyncJobRequestCompositeValidator()
    • setSyncJobRequestCompositeValidator

      public void setSyncJobRequestCompositeValidator(org.springframework.validation.Validator syncJobRequestCompositeValidator)
    • getBasicSyncJobRequestCompositeValidator

      protected org.springframework.validation.Validator getBasicSyncJobRequestCompositeValidator()
    • setBasicSyncJobRequestCompositeValidator

      public void setBasicSyncJobRequestCompositeValidator(org.springframework.validation.Validator basicSyncJobRequestCompositeValidator)
    • getCronJobService

      protected CronJobService getCronJobService()
    • setCronJobService

      public void setCronJobService(CronJobService cronJobService)
    • getSyncItemJobToSyncJobDataPopulator

      protected Populator<Optional<SyncItemJobModel>,SyncJobData> getSyncItemJobToSyncJobDataPopulator()
    • setSyncItemJobToSyncJobDataPopulator

      public void setSyncItemJobToSyncJobDataPopulator(Populator<Optional<SyncItemJobModel>,SyncJobData> syncItemJobToSyncJobDataPopulator)
    • getUserService

      protected UserService getUserService()
    • setUserService

      public void setUserService(UserService userService)