if (penalize) { final long expirationEpochMillis = System.currentTimeMillis() + context.getConnectable().getPenalizationPeriod(TimeUnit.MILLISECONDS); final FlowFileRecord newFile = new StandardFlowFileRecord.Builder().fromFlowFile(record.getOriginal()).penaltyExpirationTime(expirationEpochMillis).build(); originalQueue.put(newFile); } else {
final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder().id(recordId); final FlowFileRecord flowFileRecord = ffBuilder.build(); final StandardRepositoryRecord record = new StandardRepositoryRecord((FlowFileQueue) null, flowFileRecord); record.markForDelete(); final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder(); final long entryDate = in.readLong(); lineageStartIndex = 0L; ffBuilder.lineageStart(lineageStartDate, lineageStartIndex); ffBuilder.lastQueued(lastQueueDate, queueDateIndex); ffBuilder.id(recordId); ffBuilder.entryDate(entryDate); ffBuilder.size(size); ffBuilder.addAttributes(attributes); } else if (attributesChanged == -1) { throw new EOFException(); final FlowFileRecord flowFile = ffBuilder.build(); String swapLocation = null; if (action == ACTION_SWAPPED_IN) {
final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder(); final long recordId = in.readLong(); if (maxId == null || recordId > maxId) { ffBuilder.id(recordId); ffBuilder.entryDate(in.readLong()); ffBuilder.lineageStart(lineageStartDate, lineageStartIndex); ffBuilder.lastQueued(lastQueueDate, queueDateIndex); ffBuilder.size(in.readLong()); claim.setLength(resourceLength); ffBuilder.contentClaim(claim); ffBuilder.contentClaimOffset(claimOffset); final String value = readString(in); ffBuilder.addAttribute(key, value); final FlowFileRecord record = ffBuilder.build(); if (resourceClaim != null) { resourceClaims.add(resourceClaim);
final long recordId = in.readLong(); if (action == ACTION_DELETE) { final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder().id(recordId); final FlowFileRecord flowFileRecord = ffBuilder.build(); final StandardRepositoryRecord record = new StandardRepositoryRecord((FlowFileQueue) null, flowFileRecord); record.markForDelete(); final FlowFileRecord flowFileRecord = new StandardFlowFileRecord.Builder() .id(recordId) .build(); final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder(); final RepositoryRecord record = currentRecordStates.get(recordId); ffBuilder.id(recordId); if (record != null) { ffBuilder.fromFlowFile(record.getCurrent()); ffBuilder.entryDate(in.readLong()); ffBuilder.lineageStart(lineageStartDate, lineageStartIndex); ffBuilder.lastQueued(lastQueueDate, queueDateIndex); ffBuilder.size(in.readLong()); final String connectionId = readString(in); ffBuilder.addAttributes(attributes); } else if (attributesChanged != 0) {
final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder().id(recordId); final FlowFileRecord flowFileRecord = ffBuilder.build(); final StandardRepositoryRecord record = new StandardRepositoryRecord((FlowFileQueue) null, flowFileRecord); record.markForDelete(); final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder(); final long entryDate = in.readLong(); lineageStartIndex = 0L; ffBuilder.lineageStart(lineageStartDate, lineageStartIndex); ffBuilder.lastQueued(lastQueueDate, queueDateIndex); ffBuilder.id(recordId); ffBuilder.entryDate(entryDate); ffBuilder.size(size); ffBuilder.addAttributes(attributes); } else if (attributesChanged == -1) { throw new EOFException(); final FlowFileRecord flowFile = ffBuilder.build(); String swapLocation = null; if (action == ACTION_SWAPPED_IN) {
contentClaim.setLength(resourceLength); ffBuilder.contentClaim(contentClaim); ffBuilder.contentClaimOffset(claimOffset); } else if (claimExists == -1) { throw new EOFException();
@SuppressWarnings("unchecked") private StandardRepositoryRecord createRecord(final Record record) { final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder(); ffBuilder.id((Long) record.getFieldValue(RepositoryRecordSchema.RECORD_ID)); ffBuilder.entryDate((Long) record.getFieldValue(FlowFileSchema.ENTRY_DATE)); final Long lastQueueDate = (Long) record.getFieldValue(FlowFileSchema.QUEUE_DATE); final Long queueDateIndex = (Long) record.getFieldValue(FlowFileSchema.QUEUE_DATE_INDEX); ffBuilder.lastQueued(lastQueueDate, queueDateIndex); final Long lineageStartDate = (Long) record.getFieldValue(FlowFileSchema.LINEAGE_START_DATE); final Long lineageStartIndex = (Long) record.getFieldValue(FlowFileSchema.LINEAGE_START_INDEX); ffBuilder.lineageStart(lineageStartDate, lineageStartIndex); populateContentClaim(ffBuilder, record); ffBuilder.size((Long) record.getFieldValue(FlowFileSchema.FLOWFILE_SIZE)); ffBuilder.addAttributes((Map<String, String>) record.getFieldValue(FlowFileSchema.ATTRIBUTES)); final FlowFileRecord flowFileRecord = ffBuilder.build(); final String queueId = (String) record.getFieldValue(RepositoryRecordSchema.QUEUE_IDENTIFIER); final FlowFileQueue queue = getFlowFileQueue(queueId); final StandardRepositoryRecord repoRecord = new StandardRepositoryRecord(queue, flowFileRecord); requireFlowFileQueue(repoRecord, queueId); return repoRecord; }
@SuppressWarnings("unchecked") public static FlowFileRecord getFlowFile(final Record record, final ResourceClaimManager claimManager) { final StandardFlowFileRecord.Builder builder = new StandardFlowFileRecord.Builder(); builder.id((Long) record.getFieldValue(FlowFileSchema.RECORD_ID)); builder.entryDate((Long) record.getFieldValue(FlowFileSchema.ENTRY_DATE)); builder.size((Long) record.getFieldValue(FlowFileSchema.FLOWFILE_SIZE)); builder.addAttributes((Map<String, String>) record.getFieldValue(FlowFileSchema.ATTRIBUTES)); builder.lineageStart((Long) record.getFieldValue(FlowFileSchema.LINEAGE_START_DATE), (Long) record.getFieldValue(FlowFileSchema.LINEAGE_START_INDEX)); builder.lastQueued((Long) record.getFieldValue(FlowFileSchema.QUEUE_DATE), (Long) record.getFieldValue(FlowFileSchema.QUEUE_DATE_INDEX)); final Record contentClaimRecord = (Record) record.getFieldValue(FlowFileSchema.CONTENT_CLAIM); if (contentClaimRecord != null) { final ContentClaim claim = ContentClaimFieldMap.getContentClaim(contentClaimRecord, claimManager); builder.contentClaim(claim); final Long offset = ContentClaimFieldMap.getContentClaimOffset(contentClaimRecord); if (offset != null) { builder.contentClaimOffset(offset); } } return builder.build(); } }
private void populateContentClaim(final StandardFlowFileRecord.Builder ffBuilder, final Record record) { final Object claimMap = record.getFieldValue(FlowFileSchema.CONTENT_CLAIM); if (claimMap == null) { return; } final Record claimRecord = (Record) claimMap; final ContentClaim contentClaim = ContentClaimFieldMap.getContentClaim(claimRecord, resourceClaimManager); final Long offset = ContentClaimFieldMap.getContentClaimOffset(claimRecord); ffBuilder.contentClaim(contentClaim); ffBuilder.contentClaimOffset(offset); }
private RepositoryRecord swapOutRecord(final Record record) { final Long recordId = (Long) record.getFieldValue(RepositoryRecordSchema.RECORD_ID_FIELD); final String queueId = (String) record.getFieldValue(new SimpleRecordField(RepositoryRecordSchema.QUEUE_IDENTIFIER, FieldType.STRING, Repetition.EXACTLY_ONE)); final String swapLocation = (String) record.getFieldValue(new SimpleRecordField(RepositoryRecordSchema.SWAP_LOCATION, FieldType.STRING, Repetition.EXACTLY_ONE)); final FlowFileQueue queue = getFlowFileQueue(queueId); final FlowFileRecord flowFileRecord = new StandardFlowFileRecord.Builder() .id(recordId) .build(); return new StandardRepositoryRecord(queue, flowFileRecord, swapLocation); }
private RepositoryRecord deleteRecord(final Record record) { final Long recordId = (Long) record.getFieldValue(RepositoryRecordSchema.RECORD_ID_FIELD); final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder().id(recordId); final FlowFileRecord flowFileRecord = ffBuilder.build(); final StandardRepositoryRecord repoRecord = new StandardRepositoryRecord((FlowFileQueue) null, flowFileRecord); repoRecord.markForDelete(); return repoRecord; }
incrementConnectionInputCounts(destination, record); final FlowFileRecord currRec = record.getCurrent(); final StandardFlowFileRecord.Builder builder = new StandardFlowFileRecord.Builder().fromFlowFile(currRec); builder.id(context.getNextFlowFileSequence()); builder.addAttribute(CoreAttributes.UUID.key(), newUuid); final FlowFileRecord clone = builder.build(); final StandardRepositoryRecord newRecord = new StandardRepositoryRecord(destination.getFlowFileQueue()); provenanceReporter.clone(currRec, clone, false);
final FlowFileRecord newFile = new StandardFlowFileRecord.Builder().fromFlowFile(record.getCurrent()).contentClaim(newClaim).contentClaimOffset(0).size(newSize).build(); record.setWorking(newFile); return newFile;
final long recordId = in.readLong(); if (action == ACTION_DELETE) { final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder().id(recordId); final FlowFileRecord flowFileRecord = ffBuilder.build(); final StandardRepositoryRecord record = new StandardRepositoryRecord((FlowFileQueue) null, flowFileRecord); record.markForDelete(); final FlowFileRecord flowFileRecord = new StandardFlowFileRecord.Builder() .id(recordId) .build(); final StandardFlowFileRecord.Builder ffBuilder = new StandardFlowFileRecord.Builder(); final RepositoryRecord record = currentRecordStates.get(recordId); ffBuilder.id(recordId); if (record != null) { ffBuilder.fromFlowFile(record.getCurrent()); ffBuilder.entryDate(in.readLong()); ffBuilder.lineageStart(lineageStartDate, lineageStartIndex); ffBuilder.lastQueued(lastQueueDate, queueDateIndex); ffBuilder.size(in.readLong()); final String connectionId = readString(in); ffBuilder.addAttributes(attributes); } else if (attributesChanged != 0) {
final FlowFileRecord flowFileRecord = new StandardFlowFileRecord.Builder() .addAttributes(event.getPreviousAttributes()) .contentClaim(contentClaim) .contentClaimOffset(0L) // use 0 because we used the content claim offset in the Content Claim itself .entryDate(System.currentTimeMillis()) .id(flowFileRepository.getNextFlowFileSequence()) .lineageStart(event.getLineageStartDate(), 0L) .size(contentSize.longValue()) .addAttribute("flowfile.replay", "true") .addAttribute("flowfile.replay.timestamp", String.valueOf(new Date())) .addAttribute(CoreAttributes.UUID.key(), newFlowFileUUID) .removeAttributes(CoreAttributes.DISCARD_REASON.key(), CoreAttributes.ALTERNATE_IDENTIFIER.key()) .build();
final FlowFileRecord newFile = new StandardFlowFileRecord.Builder().fromFlowFile(destinationRecord.getCurrent()).contentClaim(newClaim).contentClaimOffset(0L).size(writtenCount).build(); destinationRecord.setWorking(newFile); return newFile;
final FlowFileRecord newFile = new StandardFlowFileRecord.Builder() .fromFlowFile(record.getCurrent()) .contentClaim(newClaim) .contentClaimOffset(Math.max(0L, newClaim.getLength() - writtenToFlowFile)) .size(writtenToFlowFile) .build();
final FlowFileRecord newFile = new StandardFlowFileRecord.Builder() .fromFlowFile(record.getCurrent()) .contentClaim(newClaim) .contentClaimOffset(Math.max(0, newClaim.getLength() - writtenToFlowFile)) .size(writtenToFlowFile) .build();
newAttributes.put(CoreAttributes.UUID.key(), uuid); final FlowFileRecord fFile = new StandardFlowFileRecord.Builder().id(context.getNextFlowFileSequence()) .addAttributes(newAttributes) .lineageStart(lineageStartDate, lineageStartIndex) .build();
contentClaim.setLength(resourceLength); ffBuilder.contentClaim(contentClaim); ffBuilder.contentClaimOffset(claimOffset); } else if (claimExists == -1) { throw new EOFException();