Hi all
In a forward SCD scenario, the process of resource distribution from source A
to target instance B comprises a series of Sling Events [1] as configured in
the forward agent settings[2]. In my scenario, the user should be informed
about the success or failure of the distribution process as a whole. I also
want some Sling JUnit testing of the forward distribution that do not rely on
thread sleep.
For example, a service starts forward distribution like this…
DistributionResponse distResponse = distributor.distribute(
agentName,
resourceResolver,
new SimpleDistributionRequest(
activate ?
DistributionRequestType.ADD :
DistributionRequestType.DELETE,
paths)
);
If I pause and debug after that call, DistributionResponse object has
properties: state=ACCEPTED, message=[QUEUED] and
SimpleDistributionResponse.state=DISTRIBUTED. My programmatic tests to instance
B fail, because I assume the processes of packaging, transporting and importing
are still underway.
How does one identify and monitor the event instances associated with SCD? In
particular, on the source instance how can I monitor “distributed' and
‘dropped’ events. When it comes to notifying the client, how would these events
be used in responding to a client given that these processes are asynchronous?
Any clues would be highly appreciated!
Cris
[1]:
https://sling.apache.org/documentation/bundles/content-distribution.html#events
<https://sling.apache.org/documentation/bundles/content-distribution.html#events>
[2]:
https://sling.apache.org/documentation/bundles/distribution.html#sling-job-handling-based-queue
<https://sling.apache.org/documentation/bundles/distribution.html#sling-job-handling-based-queue>