Expand my Community achievements bar.

SOLVED

Sling Distribution API for SCD - impl and agent packages not available/resolved

Avatar

Level 3

We have our AEM set-up with one author and multiple publish instance. We are working on Sling Content Distribution (SCD) to synch the changes on one publish instance to all other publish instance as well as on author.  We are using the "sling-org-apache-sling-distribution-core" API for creating the distribution request. The required agent configuration has been done on author and publish instances.

API Location - https://github.com/apache/sling-org-apache-sling-distribution-core

We are having issue in calling the distribution request while trying to use Sling distribution API to sync assets, on other publishers and author if any change is made on one of the publishers. We are trying to import org.apache.sling.distribution.impl.DefaultDistributor and org.apache.sling.distribution.agent.spi.DistributionAgent from the "impl" and "agent" packages in distribution API but these packages and various other packages are not available and my import is not resolved.

importError.png

I don't see the class SimpleDistributionResponse too. I just see a couple of classes like SimpleDistributionRequest, DistributionRequestType etc.

Please suggest, we intend to invoke distribute method from Distributor interface and it needs DistributionAgent. And without these packages being available in the API, we are not able to proceed.

Could you please advise if any anyone has implemented this distribution request using the sling distribution API package? Are we using correct API package? If not, please share the link/pointers to correct API with all the required packages.

Please suggest.

Thank you in advance!

-Nilesh

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Dear Nilesh,

Have you explored possibility of using standard AEM OOTB replication system[0], with this system you could use normal AEM replication API[1]. This API is 2 hierarchies's higher than Sling Distribution, it still relies on Sling distribution for part of it's functionality, while trying to hide all of the complexity, via the brilliant AEM Interface!

Furthermore, to distribute simple state data between all instances, Redis with persistence or other similar tools, might prove better choice. They can transfer only state you need, without going through reverse replication to journeys.

In terms of the package path's you are trying to resolve now, I'm afraid you won't be able to resolve  .impl one, as it's not exported by the Distribution bundle. org.apache.sling.distribution.agent.spi, should resolve fine through.

[0] Replication

[0] Replicator ("The Adobe AEM Quickstart and Web Application.")

Regards,

Peter

View solution in original post

1 Reply

Avatar

Correct answer by
Community Advisor

Dear Nilesh,

Have you explored possibility of using standard AEM OOTB replication system[0], with this system you could use normal AEM replication API[1]. This API is 2 hierarchies's higher than Sling Distribution, it still relies on Sling distribution for part of it's functionality, while trying to hide all of the complexity, via the brilliant AEM Interface!

Furthermore, to distribute simple state data between all instances, Redis with persistence or other similar tools, might prove better choice. They can transfer only state you need, without going through reverse replication to journeys.

In terms of the package path's you are trying to resolve now, I'm afraid you won't be able to resolve  .impl one, as it's not exported by the Distribution bundle. org.apache.sling.distribution.agent.spi, should resolve fine through.

[0] Replication

[0] Replicator ("The Adobe AEM Quickstart and Web Application.")

Regards,

Peter