please try like this:
Create an Event Listener: Implement an event listener to listen for content distribution events.
Update Properties: Update the cq:lastReplicated and cq:lastReplicatedBy properties in the event listener.
package com.example.aem.core.listeners;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
import java.util.Calendar;
@8220494(
service = EventHandler.class,
immediate = true,
property = {
"event.topics=org/apache/sling/distribution/event/DistributionEvent/END"
}
)
public class CustomReplicationEventListener implements EventHandler {
@3214626
private ResourceResolverFactory resourceResolverFactory;
@9944223
public void handleEvent(Event event) {
String path = (String) event.getProperty("path");
try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(null)) {
Resource resource = resolver.getResource(path);
if (resource != null) {
ModifiableValueMap properties = resource.adaptTo(ModifiableValueMap.class);
if (properties != null) {
properties.put("cq:lastReplicated", Calendar.getInstance());
properties.put("cq:lastReplicatedBy", resolver.getUserID());
resolver.commit();
}
}
} catch (Exception e) {
// Handle exception
}
}
}