refactor: avoid file mapper in tdengine history path

This commit is contained in:
lingniu
2026-07-01 07:55:20 +08:00
parent 56a6c01f95
commit 59e8315fe6
4 changed files with 11 additions and 15 deletions

View File

@@ -35,15 +35,13 @@ public final class EventHistoryEnvelopeIngestor implements EnvelopeBatchIngestor
this(store, mapper, null); this(store, mapper, null);
} }
public EventHistoryEnvelopeIngestor(TelemetryEnvelopeRecordMapper mapper, public EventHistoryEnvelopeIngestor(TdengineHistoryWriter tdengineWriter) {
TdengineHistoryWriter tdengineWriter) { this(tdengineWriter, false);
this(mapper, tdengineWriter, false);
} }
public EventHistoryEnvelopeIngestor(TelemetryEnvelopeRecordMapper mapper, public EventHistoryEnvelopeIngestor(TdengineHistoryWriter tdengineWriter,
TdengineHistoryWriter tdengineWriter,
boolean telemetryFieldsEnabled) { boolean telemetryFieldsEnabled) {
this(null, mapper, tdengineWriter, false, telemetryFieldsEnabled); this(null, null, tdengineWriter, false, telemetryFieldsEnabled);
} }
public EventHistoryEnvelopeIngestor(EventFileStore store, public EventHistoryEnvelopeIngestor(EventFileStore store,
@@ -69,7 +67,7 @@ public final class EventHistoryEnvelopeIngestor implements EnvelopeBatchIngestor
throw new IllegalArgumentException("store must not be null"); throw new IllegalArgumentException("store must not be null");
} }
} }
if (mapper == null) { if (store != null && mapper == null) {
throw new IllegalArgumentException("mapper must not be null"); throw new IllegalArgumentException("mapper must not be null");
} }
this.store = store; this.store = store;

View File

@@ -53,6 +53,7 @@ import java.nio.file.Path;
public class EventHistoryAutoConfiguration { public class EventHistoryAutoConfiguration {
@Bean @Bean
@ConditionalOnBean(EventFileStore.class)
@ConditionalOnMissingBean @ConditionalOnMissingBean
public TelemetryEnvelopeRecordMapper telemetryEnvelopeRecordMapper() { public TelemetryEnvelopeRecordMapper telemetryEnvelopeRecordMapper() {
return new TelemetryEnvelopeRecordMapper(); return new TelemetryEnvelopeRecordMapper();
@@ -70,11 +71,10 @@ public class EventHistoryAutoConfiguration {
@Bean @Bean
@ConditionalOnBean(TdengineHistoryWriter.class) @ConditionalOnBean(TdengineHistoryWriter.class)
@ConditionalOnMissingBean @ConditionalOnMissingBean
public EventHistoryEnvelopeIngestor tdengineEventHistoryEnvelopeIngestor(TelemetryEnvelopeRecordMapper mapper, public EventHistoryEnvelopeIngestor tdengineEventHistoryEnvelopeIngestor(TdengineHistoryWriter writer,
TdengineHistoryWriter writer,
@Value("${lingniu.ingest.tdengine-history.telemetry-fields-enabled:false}") @Value("${lingniu.ingest.tdengine-history.telemetry-fields-enabled:false}")
boolean telemetryFieldsEnabled) { boolean telemetryFieldsEnabled) {
return new EventHistoryEnvelopeIngestor(mapper, writer, telemetryFieldsEnabled); return new EventHistoryEnvelopeIngestor(writer, telemetryFieldsEnabled);
} }
@Bean @Bean

View File

@@ -186,8 +186,7 @@ class EventHistoryEnvelopeIngestorTest {
@Test @Test
void tryIngestCanWriteTdengineFactsWithoutEventFileStore() { void tryIngestCanWriteTdengineFactsWithoutEventFileStore() {
CapturingTdengineWriter tdengineWriter = new CapturingTdengineWriter(); CapturingTdengineWriter tdengineWriter = new CapturingTdengineWriter();
EventHistoryEnvelopeIngestor ingestor = new EventHistoryEnvelopeIngestor( EventHistoryEnvelopeIngestor ingestor = new EventHistoryEnvelopeIngestor(tdengineWriter);
new TelemetryEnvelopeRecordMapper(), tdengineWriter);
EnvelopeIngestResult result = ingestor.tryIngest( EnvelopeIngestResult result = ingestor.tryIngest(
jt808LocationEnvelope("jt808-location-1", "frame-jt808-1", "013800000001").toByteArray()); jt808LocationEnvelope("jt808-location-1", "frame-jt808-1", "013800000001").toByteArray());
@@ -203,8 +202,7 @@ class EventHistoryEnvelopeIngestorTest {
@Test @Test
void tryIngestCanWriteTelemetryFieldFactsWhenExplicitlyEnabled() { void tryIngestCanWriteTelemetryFieldFactsWhenExplicitlyEnabled() {
CapturingTdengineWriter tdengineWriter = new CapturingTdengineWriter(); CapturingTdengineWriter tdengineWriter = new CapturingTdengineWriter();
EventHistoryEnvelopeIngestor ingestor = new EventHistoryEnvelopeIngestor( EventHistoryEnvelopeIngestor ingestor = new EventHistoryEnvelopeIngestor(tdengineWriter, true);
new TelemetryEnvelopeRecordMapper(), tdengineWriter, true);
EnvelopeIngestResult result = ingestor.tryIngest( EnvelopeIngestResult result = ingestor.tryIngest(
jt808LocationEnvelope("jt808-location-1", "frame-jt808-1", "013800000001").toByteArray()); jt808LocationEnvelope("jt808-location-1", "frame-jt808-1", "013800000001").toByteArray());

View File

@@ -100,7 +100,7 @@ class EventHistoryAutoConfigurationTest {
.withPropertyValues("lingniu.ingest.event-history.enabled=true") .withPropertyValues("lingniu.ingest.event-history.enabled=true")
.run(context -> { .run(context -> {
assertThat(context).doesNotHaveBean(EventFileStore.class); assertThat(context).doesNotHaveBean(EventFileStore.class);
assertThat(context).hasSingleBean(TelemetryEnvelopeRecordMapper.class); assertThat(context).doesNotHaveBean(TelemetryEnvelopeRecordMapper.class);
assertThat(context).hasSingleBean(EventHistoryEnvelopeIngestor.class); assertThat(context).hasSingleBean(EventHistoryEnvelopeIngestor.class);
assertThat(context.getBeansOfType(EnvelopeConsumerProcessor.class)) assertThat(context.getBeansOfType(EnvelopeConsumerProcessor.class))
.containsOnlyKeys( .containsOnlyKeys(