Hi Jason,

I would think the ContentLoader could be enhanced to provide more granular
import logic than the "overwrite" and "overwriteProperties" directives
provide.

For a point of comparison, in a previous (non-sling) project I worked on we
had a similar mechanism for importing content into a taxonomy.  The
solution we ended up with for this kind of problem was to have a mechanism
to specify an import sync mode that changed how the new information was
interpreted.

For example, the import "sync mode" could be set to something like this
with a directive (or with a special tag within the content itself):

   - default - merge the new content into the existing taxonomy overwriting
   anything existing at the same location
   - update - merge the new content into the existing taxonomy by
   overwriting/updating existing content but don't create anything that
   doesn't already exist
   - add - merge the new content into the existing taxonomy but don't add
   or update any items that already exist
   - sync - same as "default" but remove all nodes from each of the parent
   nodes if there is no equivalent item in the new content.


Regards,
Eric

On Thu, Dec 6, 2018 at 10:44 AM Jason E Bailey <j...@apache.org> wrote:

> We've set up a process to import content into our Sling instance and
> we're running into a problem with the ContentLoader.
> The use case is that a set of data that is managed in another part of
> our company is being provided to us in the form of a JSON object for
> loading into our Sling environment.
> This works. However, this content changes daily, sometimes properties
> will change and sometimes node structure.
> We don't want to say "overwrite" because that causes the entire tree
> structure to be deleted which is really intensive, however if we
> don't say "overwrite" then nodes that are removed from the import
> continue to exist.
> Effectively what we need is a delta, we want to delete nodes if they
> aren't in the import but otherwise leave it alone, the same thing with
> properties.
> Which, unless I'm missing something, is not a function the
> importer supports. Has anyone had to deal with this? Maybe used a
> different process?
> Thanks
> - Jason
>
>
>

Reply via email to