refactor: reject legacy identity store modes

This commit is contained in:
lingniu
2026-07-01 08:38:50 +08:00
parent 625d09c856
commit dcd5f2a1a2
2 changed files with 27 additions and 5 deletions

View File

@@ -23,6 +23,18 @@ public class VehicleIdentityAutoConfiguration {
return new ObjectMapper(); return new ObjectMapper();
} }
@Bean
@ConditionalOnProperty(prefix = "lingniu.ingest.identity", name = "store", havingValue = "file")
public Object rejectedLegacyFileIdentityStore() {
throw new IllegalStateException("identity.store=file has been removed; configure identity.store=mysql");
}
@Bean
@ConditionalOnProperty(prefix = "lingniu.ingest.identity", name = "store", havingValue = "sqlite")
public Object rejectedLegacySqliteIdentityStore() {
throw new IllegalStateException("identity.store=sqlite has been removed; configure identity.store=mysql");
}
@Bean @Bean
@ConditionalOnMissingBean({VehicleIdentityResolver.class, VehicleIdentityRegistry.class}) @ConditionalOnMissingBean({VehicleIdentityResolver.class, VehicleIdentityRegistry.class})
@ConditionalOnProperty(prefix = "lingniu.ingest.identity", name = "store", havingValue = "mysql", @ConditionalOnProperty(prefix = "lingniu.ingest.identity", name = "store", havingValue = "mysql",

View File

@@ -51,12 +51,22 @@ class VehicleIdentityAutoConfigurationTest {
} }
@Test @Test
void unsupportedStoreModeDoesNotCreateRuntimeFallback() { void rejectsLegacyFileStoreMode() {
runner runner
.withPropertyValues("lingniu.ingest.identity.store=file") .withPropertyValues("lingniu.ingest.identity.store=file")
.run(context -> { .run(context -> assertThat(context.getStartupFailure())
assertThat(context).doesNotHaveBean(VehicleIdentityResolver.class); .hasRootCauseInstanceOf(IllegalStateException.class)
assertThat(context).doesNotHaveBean(VehicleIdentityRegistry.class); .hasMessageContaining("identity.store=file has been removed")
}); .hasMessageContaining("identity.store=mysql"));
}
@Test
void rejectsLegacySqliteStoreMode() {
runner
.withPropertyValues("lingniu.ingest.identity.store=sqlite")
.run(context -> assertThat(context.getStartupFailure())
.hasRootCauseInstanceOf(IllegalStateException.class)
.hasMessageContaining("identity.store=sqlite has been removed")
.hasMessageContaining("identity.store=mysql"));
} }
} }