refactor: remove implicit memory session store
This commit is contained in:
@@ -6,6 +6,7 @@ import com.lingniu.ingest.identity.config.VehicleIdentityAutoConfiguration;
|
|||||||
import com.lingniu.ingest.protocol.gb32960.codec.Gb32960MessageDecoder;
|
import com.lingniu.ingest.protocol.gb32960.codec.Gb32960MessageDecoder;
|
||||||
import com.lingniu.ingest.protocol.gb32960.config.Gb32960AutoConfiguration;
|
import com.lingniu.ingest.protocol.gb32960.config.Gb32960AutoConfiguration;
|
||||||
import com.lingniu.ingest.protocol.gb32960.inbound.Gb32960NettyServer;
|
import com.lingniu.ingest.protocol.gb32960.inbound.Gb32960NettyServer;
|
||||||
|
import com.lingniu.ingest.session.InMemorySessionStore;
|
||||||
import com.lingniu.ingest.session.config.SessionCoreAutoConfiguration;
|
import com.lingniu.ingest.session.config.SessionCoreAutoConfiguration;
|
||||||
import com.lingniu.ingest.sink.archive.ArchiveStore;
|
import com.lingniu.ingest.sink.archive.ArchiveStore;
|
||||||
import com.lingniu.ingest.sink.archive.RawArchiveEventSink;
|
import com.lingniu.ingest.sink.archive.RawArchiveEventSink;
|
||||||
@@ -35,13 +36,13 @@ class Gb32960IngestAppCompositionTest {
|
|||||||
Gb32960AutoConfiguration.class))
|
Gb32960AutoConfiguration.class))
|
||||||
.withAllowBeanDefinitionOverriding(true)
|
.withAllowBeanDefinitionOverriding(true)
|
||||||
.withBean("kafkaProducer", KafkaProducer.class, Gb32960IngestAppCompositionTest::kafkaProducer)
|
.withBean("kafkaProducer", KafkaProducer.class, Gb32960IngestAppCompositionTest::kafkaProducer)
|
||||||
|
.withBean(InMemorySessionStore.class, InMemorySessionStore::new)
|
||||||
.withPropertyValues(
|
.withPropertyValues(
|
||||||
"lingniu.ingest.gb32960.enabled=true",
|
"lingniu.ingest.gb32960.enabled=true",
|
||||||
"lingniu.ingest.gb32960.server.enabled=true",
|
"lingniu.ingest.gb32960.server.enabled=true",
|
||||||
"lingniu.ingest.gb32960.port=0",
|
"lingniu.ingest.gb32960.port=0",
|
||||||
"lingniu.ingest.identity.store=mysql",
|
"lingniu.ingest.identity.store=mysql",
|
||||||
"lingniu.ingest.identity.mysql.initialize-schema=false",
|
"lingniu.ingest.identity.mysql.initialize-schema=false",
|
||||||
"lingniu.ingest.session.store=memory",
|
|
||||||
"lingniu.ingest.sink.mq.enabled=true",
|
"lingniu.ingest.sink.mq.enabled=true",
|
||||||
"lingniu.ingest.sink.mq.type=kafka",
|
"lingniu.ingest.sink.mq.type=kafka",
|
||||||
"lingniu.ingest.sink.mq.bootstrap-servers=localhost:9092",
|
"lingniu.ingest.sink.mq.bootstrap-servers=localhost:9092",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.lingniu.ingest.identity.config.VehicleIdentityAutoConfiguration;
|
|||||||
import com.lingniu.ingest.protocol.jt808.codec.Jt808MessageDecoder;
|
import com.lingniu.ingest.protocol.jt808.codec.Jt808MessageDecoder;
|
||||||
import com.lingniu.ingest.protocol.jt808.config.Jt808AutoConfiguration;
|
import com.lingniu.ingest.protocol.jt808.config.Jt808AutoConfiguration;
|
||||||
import com.lingniu.ingest.protocol.jt808.inbound.Jt808NettyServer;
|
import com.lingniu.ingest.protocol.jt808.inbound.Jt808NettyServer;
|
||||||
|
import com.lingniu.ingest.session.InMemorySessionStore;
|
||||||
import com.lingniu.ingest.session.config.SessionCoreAutoConfiguration;
|
import com.lingniu.ingest.session.config.SessionCoreAutoConfiguration;
|
||||||
import com.lingniu.ingest.sink.archive.ArchiveStore;
|
import com.lingniu.ingest.sink.archive.ArchiveStore;
|
||||||
import com.lingniu.ingest.sink.archive.RawArchiveEventSink;
|
import com.lingniu.ingest.sink.archive.RawArchiveEventSink;
|
||||||
@@ -35,12 +36,12 @@ class Jt808IngestAppCompositionTest {
|
|||||||
Jt808AutoConfiguration.class))
|
Jt808AutoConfiguration.class))
|
||||||
.withAllowBeanDefinitionOverriding(true)
|
.withAllowBeanDefinitionOverriding(true)
|
||||||
.withBean("kafkaProducer", KafkaProducer.class, Jt808IngestAppCompositionTest::kafkaProducer)
|
.withBean("kafkaProducer", KafkaProducer.class, Jt808IngestAppCompositionTest::kafkaProducer)
|
||||||
|
.withBean(InMemorySessionStore.class, InMemorySessionStore::new)
|
||||||
.withPropertyValues(
|
.withPropertyValues(
|
||||||
"lingniu.ingest.jt808.enabled=true",
|
"lingniu.ingest.jt808.enabled=true",
|
||||||
"lingniu.ingest.jt808.port=0",
|
"lingniu.ingest.jt808.port=0",
|
||||||
"lingniu.ingest.identity.store=mysql",
|
"lingniu.ingest.identity.store=mysql",
|
||||||
"lingniu.ingest.identity.mysql.initialize-schema=false",
|
"lingniu.ingest.identity.mysql.initialize-schema=false",
|
||||||
"lingniu.ingest.session.store=memory",
|
|
||||||
"lingniu.ingest.sink.mq.enabled=true",
|
"lingniu.ingest.sink.mq.enabled=true",
|
||||||
"lingniu.ingest.sink.mq.type=kafka",
|
"lingniu.ingest.sink.mq.type=kafka",
|
||||||
"lingniu.ingest.sink.mq.bootstrap-servers=localhost:9092",
|
"lingniu.ingest.sink.mq.bootstrap-servers=localhost:9092",
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.lingniu.ingest.session.config;
|
package com.lingniu.ingest.session.config;
|
||||||
|
|
||||||
import com.lingniu.ingest.session.CommandDispatcher;
|
import com.lingniu.ingest.session.CommandDispatcher;
|
||||||
import com.lingniu.ingest.session.InMemorySessionStore;
|
|
||||||
import com.lingniu.ingest.session.NoopCommandDispatcher;
|
import com.lingniu.ingest.session.NoopCommandDispatcher;
|
||||||
import com.lingniu.ingest.session.RedisSessionStore;
|
import com.lingniu.ingest.session.RedisSessionStore;
|
||||||
import com.lingniu.ingest.session.SessionProperties;
|
import com.lingniu.ingest.session.SessionProperties;
|
||||||
@@ -18,6 +17,12 @@ import org.springframework.data.redis.core.StringRedisTemplate;
|
|||||||
@EnableConfigurationProperties(SessionProperties.class)
|
@EnableConfigurationProperties(SessionProperties.class)
|
||||||
public class SessionCoreAutoConfiguration {
|
public class SessionCoreAutoConfiguration {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnProperty(prefix = "lingniu.ingest.session", name = "store", havingValue = "memory")
|
||||||
|
public Object rejectedLegacyMemorySessionStore() {
|
||||||
|
throw new IllegalStateException("session.store=memory has been removed; configure session.store=redis");
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean(StringRedisTemplate.class)
|
@ConditionalOnBean(StringRedisTemplate.class)
|
||||||
@ConditionalOnProperty(prefix = "lingniu.ingest.session", name = "store", havingValue = "redis")
|
@ConditionalOnProperty(prefix = "lingniu.ingest.session", name = "store", havingValue = "redis")
|
||||||
@@ -27,12 +32,6 @@ public class SessionCoreAutoConfiguration {
|
|||||||
return new RedisSessionStore(redis, properties.getTtl());
|
return new RedisSessionStore(redis, properties.getTtl());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
@ConditionalOnMissingBean
|
|
||||||
public SessionStore sessionStore() {
|
|
||||||
return new InMemorySessionStore();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public CommandDispatcher commandDispatcher() {
|
public CommandDispatcher commandDispatcher() {
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ class SessionCoreAutoConfigurationTest {
|
|||||||
.withConfiguration(AutoConfigurations.of(SessionCoreAutoConfiguration.class));
|
.withConfiguration(AutoConfigurations.of(SessionCoreAutoConfiguration.class));
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void usesInMemorySessionStoreByDefault() {
|
void doesNotCreateImplicitInMemorySessionStoreByDefault() {
|
||||||
contextRunner.run(context -> {
|
contextRunner.run(context -> {
|
||||||
assertThat(context).hasSingleBean(SessionStore.class);
|
assertThat(context).doesNotHaveBean(SessionStore.class);
|
||||||
assertThat(context).hasSingleBean(InMemorySessionStore.class);
|
assertThat(context).doesNotHaveBean(InMemorySessionStore.class);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,4 +36,14 @@ class SessionCoreAutoConfigurationTest {
|
|||||||
assertThat(context).hasSingleBean(RedisSessionStore.class);
|
assertThat(context).hasSingleBean(RedisSessionStore.class);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void rejectsLegacyMemorySessionStoreMode() {
|
||||||
|
contextRunner
|
||||||
|
.withPropertyValues("lingniu.ingest.session.store=memory")
|
||||||
|
.run(context -> assertThat(context.getStartupFailure())
|
||||||
|
.hasRootCauseInstanceOf(IllegalStateException.class)
|
||||||
|
.hasMessageContaining("session.store=memory has been removed")
|
||||||
|
.hasMessageContaining("session.store=redis"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user