use of com.day.cq.replication.ReplicationOptions in project acs-aem-commons by Adobe-Consulting-Services.
the class ReplicationActions method activateAllWithRoundRobin.
/**
* Activate all nodes using provided options NOTE: If using large batch
* publishing it is highly recommended to set synchronous to true on the
* replication options
*
* @param options
* @return
*/
public static final CheckedBiConsumer<ResourceResolver, String> activateAllWithRoundRobin(final Replicator replicator, final ReplicationOptions... options) {
final List<ReplicationOptions> allTheOptions = Arrays.asList(options);
final Iterator<ReplicationOptions> roundRobin = new RoundRobin(allTheOptions).iterator();
return (ResourceResolver r, String path) -> {
nameThread(PREFIX_ACTIVATE + path);
replicator.replicate(r.adaptTo(Session.class), ReplicationActionType.ACTIVATE, path, roundRobin.next());
};
}
use of com.day.cq.replication.ReplicationOptions in project acs-aem-commons by Adobe-Consulting-Services.
the class DispatcherFlushRulesImplTest method testPreprocess_notAccepts_ReplicationActionIsNull.
@Test
public void testPreprocess_notAccepts_ReplicationActionIsNull() throws Exception {
when(this.hierarchicalFlushRules.size()).thenReturn(9);
when(this.resourceOnlyFlushRules.size()).thenReturn(9);
dispatcherFlushRules.preprocess(null, new ReplicationOptions());
verifyZeroInteractions(dispatcherFlusher);
}
use of com.day.cq.replication.ReplicationOptions in project acs-aem-commons by Adobe-Consulting-Services.
the class DispatcherFlushRulesImplTest method testPreprocess_notAccepts_NonMatchingPath.
@Test
public void testPreprocess_notAccepts_NonMatchingPath() throws Exception {
this.hierarchicalFlushRules.put(Pattern.compile("/content/foo.*"), new String[] { "/content/target" });
final ReplicationAction replicationAction = mock(ReplicationAction.class);
when(replicationAction.getPath()).thenReturn("/content/acs-aem-commons");
when(replicationAction.getType()).thenReturn(ReplicationActionType.ACTIVATE);
final ReplicationOptions replicationOptions = new ReplicationOptions();
replicationOptions.setSynchronous(false);
dispatcherFlushRules.preprocess(replicationAction, replicationOptions);
verifyZeroInteractions(dispatcherFlusher);
}
use of com.day.cq.replication.ReplicationOptions in project acs-aem-commons by Adobe-Consulting-Services.
the class DispatcherFlushRulesImplTest method testPreprocess_success_translation1.
@Test
public void testPreprocess_success_translation1() throws Exception {
hierarchicalFlushRules.put(Pattern.compile("/content/acs-aem-commons/(.*)"), new String[] { "/content/target/$1" });
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/page"));
assertEquals(DispatcherFlushFilter.FlushType.Hierarchical, agentFilterCaptor.getValue().getFlushType());
// Private impl class; no access to test for instanceof
assertEquals("DispatcherFlushRulesFilter", agentFilterCaptor.getValue().getClass().getSimpleName());
verifyNoMoreInteractions(dispatcherFlusher);
}
use of com.day.cq.replication.ReplicationOptions in project acs-aem-commons by Adobe-Consulting-Services.
the class DispatcherFlushRulesImplTest method testPreprocess_success_resourceonly_translation2.
@Test
public void testPreprocess_success_resourceonly_translation2() throws Exception {
resourceOnlyFlushRules.put(Pattern.compile("/content/acs-aem-commons/(.*)/(.*)"), new String[] { "/content/target/$1/acs-aem-commons/$2" });
final ReplicationAction replicationAction = mock(ReplicationAction.class);
when(replicationAction.getPath()).thenReturn("/content/acs-aem-commons/en/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/en/acs-aem-commons/page"));
assertEquals(DispatcherFlushFilter.FlushType.ResourceOnly, agentFilterCaptor.getValue().getFlushType());
// Private impl class; no access to test for instanceof
assertEquals("DispatcherFlushRulesFilter", agentFilterCaptor.getValue().getClass().getSimpleName());
verifyNoMoreInteractions(dispatcherFlusher);
}
Aggregations