protected HollowIncrementalProducer(HollowProducer producer, double threadsPerCpu, HollowConsumer.AnnouncementWatcher announcementWatcher, HollowConsumer.BlobRetriever blobRetriever, List<IncrementalCycleListener> listeners, Class<?>... classes) { this.producer = producer; this.mutations = new ConcurrentHashMap<RecordPrimaryKey, Object>(); this.populator = new HollowIncrementalCyclePopulator(mutations, threadsPerCpu); this.dataModel = classes; this.announcementWatcher = announcementWatcher; this.blobRetriever = blobRetriever; this.listeners = new ListenerSupport(); this.cycleMetadata = new HashMap<String, Object>(); this.threadsPerCpu = threadsPerCpu; for (IncrementalCycleListener listener : listeners) this.listeners.add(listener); }
private HollowProducer( BlobStager blobStager, Publisher publisher, Announcer announcer, List<? extends HollowProducerEventListener> eventListeners, VersionMinter versionMinter, Executor snapshotPublishExecutor, int numStatesBetweenSnapshots, long targetMaxTypeShardSize, HollowMetricsCollector<HollowProducerMetrics> metricsCollector, BlobStorageCleaner blobStorageCleaner, SingleProducerEnforcer singleProducerEnforcer) { this.publisher = publisher; this.announcer = announcer; this.versionMinter = versionMinter; this.blobStager = blobStager; this.singleProducerEnforcer = singleProducerEnforcer; this.snapshotPublishExecutor = snapshotPublishExecutor == null ? Runnable::run : snapshotPublishExecutor; this.numStatesBetweenSnapshots = numStatesBetweenSnapshots; HollowWriteStateEngine writeEngine = new HollowWriteStateEngine(); writeEngine.setTargetMaxTypeShardSize(targetMaxTypeShardSize); this.objectMapper = new HollowObjectMapper(writeEngine); this.readStates = ReadStateHelper.newDeltaChain(); this.blobStorageCleaner = blobStorageCleaner; this.listeners = new ListenerSupport(eventListeners.stream().distinct().collect(toList())); this.metrics = new HollowProducerMetrics(); this.metricsCollector = metricsCollector; }
@Test public void testDuplicates() { ListenerSupport ls = new ListenerSupport(); CycleListener l = Mockito.mock(CycleListener.class); ls.addListener(l); ls.addListener(l); ListenerSupport.Listeners s = ls.listeners(); s.fireCycleStart(1); Mockito.verify(l, Mockito.times(1)).onCycleStart(1); }
@Before public void setUp() { MockitoAnnotations.initMocks(this); listenerSupport = new ListenerSupport(); listenerSupport.addListener(listener); listenerSupport.addListener(validationStatusListener); listenerSupport.addListener(producerAndValidationStatusListener); }
@Test public void testAddDuringCycle() { ListenerSupport ls = new ListenerSupport();
@Test public void testRemoveDuringCycle() { ListenerSupport ls = new ListenerSupport();