@Override public boolean applies(LoggedEvent event) { event.readMetadata(metadata); return metadataFilter.applies(metadata); } }
@Override public boolean applies(LoggedEvent event) { event.readMetadata(metadata); return metadataFilter.applies(metadata); } }
private static RecordMetadata getMetadata(final LoggedEvent event) { final RecordMetadata metadata = new RecordMetadata(); event.readMetadata(metadata); return metadata; }
private static RecordMetadata getMetadata(final LoggedEvent event) { final RecordMetadata metadata = new RecordMetadata(); event.readMetadata(metadata); return metadata; }
@Override public EventProcessor onEvent(LoggedEvent event) { final EventProcessor processor; event.readMetadata(rawMetadata); if (rawMetadata.getValueType() == ValueType.EXPORTER) { exporterRecordProcessor.wrap(event); processor = exporterRecordProcessor; } else { recordExporter.wrap(event); processor = recordExporter; } return processor; }
@Override public EventProcessor onEvent(LoggedEvent event) { final EventProcessor processor; event.readMetadata(rawMetadata); if (rawMetadata.getValueType() == ValueType.EXPORTER) { exporterRecordProcessor.wrap(event); processor = exporterRecordProcessor; } else { recordExporter.wrap(event); processor = recordExporter; } return processor; }
@Override @SuppressWarnings({"unchecked"}) public <T extends UnpackedObject> TypedRecord<T> readValue(long position, Class<T> eventClass) { final boolean success = reader.seek(position); if (!success) { throw new RuntimeException("Could not find an event at position " + position); } final LoggedEvent rawEvent = reader.next(); metadata.reset(); rawEvent.readMetadata(metadata); final UnpackedObject value = eventCache.get(eventClass); value.reset(); rawEvent.readValue(value); event.wrap(rawEvent, metadata, value); return event; }
@Override @SuppressWarnings({"unchecked"}) public <T extends UnpackedObject> TypedRecord<T> readValue(long position, Class<T> eventClass) { final boolean success = reader.seek(position); if (!success) { throw new RuntimeException("Could not find an event at position " + position); } final LoggedEvent rawEvent = reader.next(); metadata.reset(); rawEvent.readMetadata(metadata); final UnpackedObject value = eventCache.get(eventClass); value.reset(); rawEvent.readValue(value); event.wrap(rawEvent, metadata, value); return event; }
private static void writeRecord(final LoggedEvent event, final StringBuilder sb) { sb.append(HEADER_INDENTATION); writeRecordHeader(event, sb); sb.append("\n"); final RecordMetadata metadata = new RecordMetadata(); event.readMetadata(metadata); sb.append(ENTRY_INDENTATION); writeMetadata(metadata, sb); sb.append("\n"); sb.append(ENTRY_INDENTATION); writeRecordBody(sb, event, metadata); sb.append("\n"); }
private static void writeRecord(final LoggedEvent event, final StringBuilder sb) { sb.append(HEADER_INDENTATION); writeRecordHeader(event, sb); sb.append("\n"); final RecordMetadata metadata = new RecordMetadata(); event.readMetadata(metadata); sb.append(ENTRY_INDENTATION); writeMetadata(metadata, sb); sb.append("\n"); sb.append(ENTRY_INDENTATION); writeRecordBody(sb, event, metadata); sb.append("\n"); }
@Test public void shouldWriteCommandRequestEventType() { // given final int writtenLength = writeCommandRequestToBuffer( buffer, LOG_STREAM_PARTITION_ID, null, ValueType.JOB, JobIntent.CREATE); // when final boolean isHandled = messageHandler.onRequest(serverOutput, DEFAULT_ADDRESS, buffer, 0, writtenLength, 123); // then assertThat(isHandled).isTrue(); final BufferedLogStreamReader logStreamReader = new BufferedLogStreamReader(logStream, true); waitForAvailableEvent(logStreamReader); final LoggedEvent loggedEvent = logStreamReader.next(); final RecordMetadata eventMetadata = new RecordMetadata(); loggedEvent.readMetadata(eventMetadata); assertThat(eventMetadata.getValueType()).isEqualTo(ValueType.JOB); assertThat(eventMetadata.getIntent()).isEqualTo(JobIntent.CREATE); }
CopiedTypedEvent(LoggedEvent event, UnpackedObject object) { this.value = object; this.key = event.getKey(); this.position = event.getPosition(); this.sourcePosition = event.getSourceEventPosition(); this.metadata = new RecordMetadata(); event.readMetadata(metadata); }
@Test public void shouldWriteCommandRequestEventType() { // given final int writtenLength = writeCommandRequestToBuffer( buffer, LOG_STREAM_PARTITION_ID, null, ValueType.JOB, JobIntent.CREATE); // when final boolean isHandled = messageHandler.onRequest(serverOutput, DEFAULT_ADDRESS, buffer, 0, writtenLength, 123); // then assertThat(isHandled).isTrue(); final BufferedLogStreamReader logStreamReader = new BufferedLogStreamReader(logStream, true); waitForAvailableEvent(logStreamReader); final LoggedEvent loggedEvent = logStreamReader.next(); final RecordMetadata eventMetadata = new RecordMetadata(); loggedEvent.readMetadata(eventMetadata); assertThat(eventMetadata.getValueType()).isEqualTo(ValueType.JOB); assertThat(eventMetadata.getIntent()).isEqualTo(JobIntent.CREATE); }
CopiedTypedEvent(LoggedEvent event, UnpackedObject object) { this.value = object; this.key = event.getKey(); this.position = event.getPosition(); this.sourcePosition = event.getSourceEventPosition(); this.metadata = new RecordMetadata(); event.readMetadata(metadata); }
@Override public EventProcessor onEvent(final LoggedEvent event) { final long position = event.getPosition(); metadata.reset(); event.readMetadata(metadata); final TypedRecordProcessor<?> currentProcessor = recordProcessors.get( metadata.getRecordType(), metadata.getValueType(), metadata.getIntent().value()); if (currentProcessor != null) { final UnpackedObject value = eventCache.get(metadata.getValueType()); value.reset(); event.readValue(value); typedEvent.wrap(event, metadata, value); eventProcessorWrapper.wrap(currentProcessor, typedEvent, position); return eventProcessorWrapper; } else { return null; } }
@Test public void shouldWriteCommandRequestProtocolVersion() { // given final short clientProtocolVersion = Protocol.PROTOCOL_VERSION - 1; final int writtenLength = writeCommandRequestToBuffer( buffer, LOG_STREAM_PARTITION_ID, clientProtocolVersion, ValueType.JOB, JobIntent.CREATE); // when final boolean isHandled = messageHandler.onRequest(serverOutput, DEFAULT_ADDRESS, buffer, 0, writtenLength, 123); // then assertThat(isHandled).isTrue(); final BufferedLogStreamReader logStreamReader = new BufferedLogStreamReader(logStream, true); waitForAvailableEvent(logStreamReader); final LoggedEvent loggedEvent = logStreamReader.next(); final RecordMetadata eventMetadata = new RecordMetadata(); loggedEvent.readMetadata(eventMetadata); assertThat(eventMetadata.getProtocolVersion()).isEqualTo(clientProtocolVersion); }
@Test public void shouldWriteCommandRequestProtocolVersion() { // given final short clientProtocolVersion = Protocol.PROTOCOL_VERSION - 1; final int writtenLength = writeCommandRequestToBuffer( buffer, LOG_STREAM_PARTITION_ID, clientProtocolVersion, ValueType.JOB, JobIntent.CREATE); // when final boolean isHandled = messageHandler.onRequest(serverOutput, DEFAULT_ADDRESS, buffer, 0, writtenLength, 123); // then assertThat(isHandled).isTrue(); final BufferedLogStreamReader logStreamReader = new BufferedLogStreamReader(logStream, true); waitForAvailableEvent(logStreamReader); final LoggedEvent loggedEvent = logStreamReader.next(); final RecordMetadata eventMetadata = new RecordMetadata(); loggedEvent.readMetadata(eventMetadata); assertThat(eventMetadata.getProtocolVersion()).isEqualTo(clientProtocolVersion); }
@Override public EventProcessor onEvent(final LoggedEvent event) { final long position = event.getPosition(); metadata.reset(); event.readMetadata(metadata); final TypedRecordProcessor<?> currentProcessor = recordProcessors.get( metadata.getRecordType(), metadata.getValueType(), metadata.getIntent().value()); if (currentProcessor != null) { final UnpackedObject value = eventCache.get(metadata.getValueType()); value.reset(); event.readValue(value); typedEvent.wrap(event, metadata, value); eventProcessorWrapper.wrap(currentProcessor, typedEvent, position); return eventProcessorWrapper; } else { return null; } }
@Test public void shouldHandleCommandRequest() { // given final int writtenLength = writeCommandRequestToBuffer( buffer, LOG_STREAM_PARTITION_ID, null, ValueType.JOB, JobIntent.CREATE); // when final boolean isHandled = messageHandler.onRequest( serverOutput, DEFAULT_ADDRESS, buffer, 0, writtenLength, REQUEST_ID); // then assertThat(isHandled).isTrue(); final BufferedLogStreamReader logStreamReader = new BufferedLogStreamReader(logStream, true); waitForAvailableEvent(logStreamReader); final LoggedEvent loggedEvent = logStreamReader.next(); final byte[] valueBuffer = new byte[JOB_EVENT.length]; loggedEvent .getValueBuffer() .getBytes(loggedEvent.getValueOffset(), valueBuffer, 0, loggedEvent.getValueLength()); assertThat(loggedEvent.getValueLength()).isEqualTo(JOB_EVENT.length); assertThat(valueBuffer).isEqualTo(JOB_EVENT); final RecordMetadata eventMetadata = new RecordMetadata(); loggedEvent.readMetadata(eventMetadata); assertThat(eventMetadata.getRequestId()).isEqualTo(REQUEST_ID); assertThat(eventMetadata.getRequestStreamId()).isEqualTo(DEFAULT_ADDRESS.getStreamId()); }
@Test public void shouldHandleCommandRequest() { // given final int writtenLength = writeCommandRequestToBuffer( buffer, LOG_STREAM_PARTITION_ID, null, ValueType.JOB, JobIntent.CREATE); // when final boolean isHandled = messageHandler.onRequest( serverOutput, DEFAULT_ADDRESS, buffer, 0, writtenLength, REQUEST_ID); // then assertThat(isHandled).isTrue(); final BufferedLogStreamReader logStreamReader = new BufferedLogStreamReader(logStream, true); waitForAvailableEvent(logStreamReader); final LoggedEvent loggedEvent = logStreamReader.next(); final byte[] valueBuffer = new byte[JOB_EVENT.length]; loggedEvent .getValueBuffer() .getBytes(loggedEvent.getValueOffset(), valueBuffer, 0, loggedEvent.getValueLength()); assertThat(loggedEvent.getValueLength()).isEqualTo(JOB_EVENT.length); assertThat(valueBuffer).isEqualTo(JOB_EVENT); final RecordMetadata eventMetadata = new RecordMetadata(); loggedEvent.readMetadata(eventMetadata); assertThat(eventMetadata.getRequestId()).isEqualTo(REQUEST_ID); assertThat(eventMetadata.getRequestStreamId()).isEqualTo(DEFAULT_ADDRESS.getStreamId()); }