Smint.io Content Licensing Consumer Java Integration Core package - version 1

How to use this library to implement custom synchronization feature

Smint.io base library for synchronizing assets from our Enterprise Buying Platform to downstream targets, like Digital Asset Management (DAM) software.

This base library makes integration of the Smint.io platform and synchronization of assets from Smint.io to any target a breeze. A basic infrastructure to run one-way synchronization is provided by this library. Synchronization of meta-data and assets is targeted from Smint.io to any kind of downstream target system.

What to implement to make it fly with a synchronization target

To make it work with a sync target, you need to implement the interfaces from the package io.smint.clapi.consumer.integration.core.target. Additionally, some database abstraction instances are needed, to store to and load work data from the database. The most important interfaces are:

How to provide your implementation to the sync library: Factory or dependency injection

In order to provide your implementation to the synchronization library framework, you need to provide a factory, implementing the interface ISyncTargetFactory. There is a default implementation available as DefaultSyncTargetFactory. This class can be used even if you do not have any dependency injection available. Nevertheless using any DI framework would be helpful. There is an example how to use DefaultSyncTargetFactory in the documentation for that class and in the Get Started document.

Initialize the synchronization process

Initialization is performed utilizing class SmintIoSynchronization.

 final ISmintIoSynchronization smintIoSync = new SmintIoSynchronization(
     new DefaultSyncTargetFactory()
         .setSettingsProvider(() -> settings)
         .setAuthTokenStorage(new MyAuthTokenStorage())
         .setJobDataStorage(new MyJobStorageHandler())
         .setDataFactory(new MySyncTargetDataFactory())
         .setSyncTargetProvider(() -> new MySyncTarget())
 ).start();