Search in sources :

Example 16 with ReplicationOptions

use of com.day.cq.replication.ReplicationOptions in project acs-aem-commons by Adobe-Consulting-Services.

the class DispatcherFlushRulesImplTest method testPreprocess_success_hierarchical.

@Test
public void testPreprocess_success_hierarchical() throws Exception {
    hierarchicalFlushRules.put(Pattern.compile("/content/acs-aem-commons/.*"), new String[] { "/content/target", "/content/target2" });
    final ReplicationAction replicationAction = mock(ReplicationAction.class);
    when(replicationAction.getPath()).thenReturn("/content/acs-aem-commons/page");
    when(replicationAction.getType()).thenReturn(ReplicationActionType.ACTIVATE);
    final ReplicationOptions replicationOptions = new ReplicationOptions();
    replicationOptions.setSynchronous(false);
    final ArgumentCaptor<DispatcherFlushFilter> agentFilterCaptor = ArgumentCaptor.forClass(DispatcherFlushFilter.class);
    dispatcherFlushRules.preprocess(replicationAction, replicationOptions);
    verify(dispatcherFlusher, times(1)).flush(any(ResourceResolver.class), eq(ReplicationActionType.ACTIVATE), eq(false), agentFilterCaptor.capture(), eq("/content/target"));
    assertEquals(DispatcherFlushFilter.FlushType.Hierarchical, agentFilterCaptor.getValue().getFlushType());
    // Private impl class; no access to test for instanceof
    assertEquals("DispatcherFlushRulesFilter", agentFilterCaptor.getValue().getClass().getSimpleName());
    verify(dispatcherFlusher, times(1)).flush(any(ResourceResolver.class), eq(ReplicationActionType.ACTIVATE), eq(false), agentFilterCaptor.capture(), eq("/content/target2"));
    assertEquals(DispatcherFlushFilter.FlushType.Hierarchical, agentFilterCaptor.getValue().getFlushType());
    // Private impl class; no access to test for instanceof
    assertEquals("DispatcherFlushRulesFilter", agentFilterCaptor.getValue().getClass().getSimpleName());
    verifyNoMoreInteractions(dispatcherFlusher);
}
Also used : ReplicationOptions(com.day.cq.replication.ReplicationOptions) ReplicationAction(com.day.cq.replication.ReplicationAction) ResourceResolver(org.apache.sling.api.resource.ResourceResolver) DispatcherFlushFilter(com.adobe.acs.commons.replication.dispatcher.DispatcherFlushFilter) Test(org.junit.Test)

Example 17 with ReplicationOptions

use of com.day.cq.replication.ReplicationOptions in project acs-aem-commons by Adobe-Consulting-Services.

the class ReplicateVersionImpl method replicateResource.

private List<ReplicationResult> replicateResource(ResourceResolver resolver, List<Resource> resources, String[] agents, Date date) {
    List<ReplicationResult> results = new ArrayList<ReplicationResult>();
    ReplicationOptions opts = new ReplicationOptions();
    AgentIdFilter agentFilter = new AgentIdFilter(agents);
    opts.setFilter(agentFilter);
    Session session = resolver.adaptTo(Session.class);
    for (Resource resource : resources) {
        String path = resource.getPath();
        try {
            Version v = getAppropriateVersion(resource, date, session);
            if (v == null) {
                results.add(new ReplicationResult(path, Status.not_replicated));
                continue;
            }
            String versionName = v.getName();
            opts.setRevision(versionName);
            replicator.replicate(session, ReplicationActionType.ACTIVATE, path, opts);
            results.add(new ReplicationResult(path, Status.replicated, versionName));
        } catch (RepositoryException e) {
            results.add(new ReplicationResult(path, Status.error));
            log.error("Exception while replicating version of " + path, e);
        } catch (ReplicationException e) {
            results.add(new ReplicationResult(path, Status.error));
            log.error("Exception while replicating version of " + path, e);
        }
    }
    return results;
}
Also used : ReplicationResult(com.adobe.acs.commons.replication.ReplicationResult) ReplicationOptions(com.day.cq.replication.ReplicationOptions) AgentIdFilter(com.day.cq.replication.AgentIdFilter) Version(javax.jcr.version.Version) ReplicateVersion(com.adobe.acs.commons.replication.ReplicateVersion) ArrayList(java.util.ArrayList) Resource(org.apache.sling.api.resource.Resource) RepositoryException(javax.jcr.RepositoryException) ReplicationException(com.day.cq.replication.ReplicationException) Session(javax.jcr.Session)

Aggregations

ReplicationOptions (com.day.cq.replication.ReplicationOptions)17 Test (org.junit.Test)13 ReplicationAction (com.day.cq.replication.ReplicationAction)12 ResourceResolver (org.apache.sling.api.resource.ResourceResolver)7 DispatcherFlushFilter (com.adobe.acs.commons.replication.dispatcher.DispatcherFlushFilter)6 Session (javax.jcr.Session)2 RoundRobin (com.adobe.acs.commons.functions.RoundRobin)1 ReplicateVersion (com.adobe.acs.commons.replication.ReplicateVersion)1 ReplicationResult (com.adobe.acs.commons.replication.ReplicationResult)1 AgentIdFilter (com.day.cq.replication.AgentIdFilter)1 ReplicationException (com.day.cq.replication.ReplicationException)1 ArrayList (java.util.ArrayList)1 RepositoryException (javax.jcr.RepositoryException)1 Version (javax.jcr.version.Version)1 Resource (org.apache.sling.api.resource.Resource)1