@Override public void initialize(Map<String, Object> metaData) { // Initialise the replication meta data. stateWriter.initialize(metaData); // Get the replication state for this pipeline run. state = (ReplicationState) metaData.get(ReplicationState.META_DATA_KEY); // Initialize a new change writer for the current sequence number. if (state.getSequenceNumber() > 0) { changeWriter = replicationStore.saveData(state.getSequenceNumber()); } }
/** * {@inheritDoc} */ @Override protected void processComplete() { if (sinkActive) { LOG.finer("Closing change sink for interval with sequence number " + currentDataState.getSequenceNumber()); changeSink.complete(); replicationStore.saveState(currentDataState); changeSink.close(); changeSink = null; sinkActive = false; } }
currentDataState = replicationStore.getCurrentState();
currentDataState = replicationStore.getCurrentState();
/** * {@inheritDoc} */ @Override protected void processComplete() { if (sinkActive) { LOG.finer("Closing change sink for interval with sequence number " + currentDataState.getSequenceNumber()); changeSink.complete(); replicationStore.saveState(currentDataState); changeSink.close(); changeSink = null; sinkActive = false; } }
@Override public void initialize(Map<String, Object> metaData) { // Initialise the replication meta data. stateWriter.initialize(metaData); // Get the replication state for this pipeline run. state = (ReplicationState) metaData.get(ReplicationState.META_DATA_KEY); // Initialize a new change writer for the current sequence number. if (state.getSequenceNumber() > 0) { changeWriter = replicationStore.saveData(state.getSequenceNumber()); } }
/** * {@inheritDoc} */ @Override protected void processInitializeState(ReplicationState initialState) { Date initialDate; Date alignedDate; long intervalLength; intervalLength = getConfiguration().getIntervalLength(); initialDate = initialState.getTimestamp(); // Align the date to an interval boundary. alignedDate = alignDateToIntervalBoundary(initialDate, intervalLength); // If the date has been moved, then advance it to the next interval. We // do this because // during replication we never claim to have covered a time period that // we haven't received // data for. We may include extra data from a previous interval. By // advancing the stated // initial timestamp to the next interval our first replication will // include some data from // the previous interval. if (alignedDate.compareTo(initialDate) < 0) { alignedDate = new Date(alignedDate.getTime() + intervalLength); } // Create an initial replication state object. currentDataState = new ReplicationState(alignedDate, 0); // Write out the initial "0" state file. replicationStore.saveState(currentDataState); }
private ChangeSink buildResultWriter(long sequenceNumber) { XmlChangeWriter xmlChangeWriter; ChangeSorter changeSorter; xmlChangeWriter = replicationStore.saveData(sequenceNumber); changeSorter = new ChangeSorter(new ChangeForStreamableApplierComparator()); changeSorter.setChangeSink(xmlChangeWriter); return changeSorter; }
/** * {@inheritDoc} */ @Override protected void processInitializeState(ReplicationState initialState) { Date initialDate; Date alignedDate; long intervalLength; intervalLength = getConfiguration().getIntervalLength(); initialDate = initialState.getTimestamp(); // Align the date to an interval boundary. alignedDate = alignDateToIntervalBoundary(initialDate, intervalLength); // If the date has been moved, then advance it to the next interval. We // do this because // during replication we never claim to have covered a time period that // we haven't received // data for. We may include extra data from a previous interval. By // advancing the stated // initial timestamp to the next interval our first replication will // include some data from // the previous interval. if (alignedDate.compareTo(initialDate) < 0) { alignedDate = new Date(alignedDate.getTime() + intervalLength); } // Create an initial replication state object. currentDataState = new ReplicationState(alignedDate, 0); // Write out the initial "0" state file. replicationStore.saveState(currentDataState); }
private ChangeSink buildResultWriter(long sequenceNumber) { XmlChangeWriter xmlChangeWriter; ChangeSorter changeSorter; xmlChangeWriter = replicationStore.saveData(sequenceNumber); changeSorter = new ChangeSorter(new ChangeForStreamableApplierComparator()); changeSorter.setChangeSink(xmlChangeWriter); return changeSorter; }
@Override public void complete() { if (state.getSequenceNumber() > 0) { // Complete the writing of the change file. changeWriter.complete(); changeWriter.close(); changeWriter = null; } // Write the sequenced state file. replicationStore.saveState(state); // We must only complete the state writer after we've finished writing // the replication data and sequence numbered state. stateWriter.complete(); }
@Override public void complete() { if (state.getSequenceNumber() > 0) { // Complete the writing of the change file. changeWriter.complete(); changeWriter.close(); changeWriter = null; } // Write the sequenced state file. replicationStore.saveState(state); // We must only complete the state writer after we've finished writing // the replication data and sequence numbered state. stateWriter.complete(); }
changeSink.close(); replicationStore.saveState(currentDataState);
changeSink.close(); replicationStore.saveState(currentDataState);