Replace JSR-250 annotations with standard Spring lifecycle callbacks
This commit is contained in:
@@ -22,7 +22,6 @@ dependencyManagement {
|
|||||||
dependency 'com.zaxxer:HikariCP:5.0.1'
|
dependency 'com.zaxxer:HikariCP:5.0.1'
|
||||||
dependency 'edu.umd.cs.mtc:multithreadedtc:1.01'
|
dependency 'edu.umd.cs.mtc:multithreadedtc:1.01'
|
||||||
dependency 'io.lettuce:lettuce-core:6.2.0.RELEASE'
|
dependency 'io.lettuce:lettuce-core:6.2.0.RELEASE'
|
||||||
dependency 'jakarta.annotation:jakarta.annotation-api:2.0.0'
|
|
||||||
dependency 'jakarta.servlet:jakarta.servlet-api:5.0.0'
|
dependency 'jakarta.servlet:jakarta.servlet-api:5.0.0'
|
||||||
dependency 'mysql:mysql-connector-java:8.0.30'
|
dependency 'mysql:mysql-connector-java:8.0.30'
|
||||||
dependency 'org.apache.derby:derby:10.14.2.0'
|
dependency 'org.apache.derby:derby:10.14.2.0'
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ dependencies {
|
|||||||
api "org.springframework:spring-jcl"
|
api "org.springframework:spring-jcl"
|
||||||
|
|
||||||
optional "io.projectreactor:reactor-core"
|
optional "io.projectreactor:reactor-core"
|
||||||
optional "jakarta.annotation:jakarta.annotation-api"
|
|
||||||
optional "jakarta.servlet:jakarta.servlet-api"
|
optional "jakarta.servlet:jakarta.servlet-api"
|
||||||
optional "org.springframework:spring-context"
|
optional "org.springframework:spring-context"
|
||||||
optional "org.springframework:spring-jdbc"
|
optional "org.springframework:spring-jdbc"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2014-2019 the original author or authors.
|
* Copyright 2014-2022 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,7 +19,6 @@ package org.springframework.session.config.annotation.web.http;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
|
||||||
import jakarta.servlet.ServletContext;
|
import jakarta.servlet.ServletContext;
|
||||||
import jakarta.servlet.SessionCookieConfig;
|
import jakarta.servlet.SessionCookieConfig;
|
||||||
import jakarta.servlet.http.HttpSessionListener;
|
import jakarta.servlet.http.HttpSessionListener;
|
||||||
@@ -28,6 +27,7 @@ import org.apache.commons.logging.Log;
|
|||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.ApplicationContextAware;
|
import org.springframework.context.ApplicationContextAware;
|
||||||
@@ -91,7 +91,7 @@ import org.springframework.util.ObjectUtils;
|
|||||||
* @see EnableSpringHttpSession
|
* @see EnableSpringHttpSession
|
||||||
*/
|
*/
|
||||||
@Configuration(proxyBeanMethods = false)
|
@Configuration(proxyBeanMethods = false)
|
||||||
public class SpringHttpSessionConfiguration implements ApplicationContextAware {
|
public class SpringHttpSessionConfiguration implements InitializingBean, ApplicationContextAware {
|
||||||
|
|
||||||
private final Log logger = LogFactory.getLog(getClass());
|
private final Log logger = LogFactory.getLog(getClass());
|
||||||
|
|
||||||
@@ -107,8 +107,8 @@ public class SpringHttpSessionConfiguration implements ApplicationContextAware {
|
|||||||
|
|
||||||
private List<HttpSessionListener> httpSessionListeners = new ArrayList<>();
|
private List<HttpSessionListener> httpSessionListeners = new ArrayList<>();
|
||||||
|
|
||||||
@PostConstruct
|
@Override
|
||||||
public void init() {
|
public void afterPropertiesSet() {
|
||||||
CookieSerializer cookieSerializer = (this.cookieSerializer != null) ? this.cookieSerializer
|
CookieSerializer cookieSerializer = (this.cookieSerializer != null) ? this.cookieSerializer
|
||||||
: createDefaultCookieSerializer();
|
: createDefaultCookieSerializer();
|
||||||
this.defaultHttpSessionIdResolver.setCookieSerializer(cookieSerializer);
|
this.defaultHttpSessionIdResolver.setCookieSerializer(cookieSerializer);
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ dependencies {
|
|||||||
testImplementation 'org.assertj:assertj-core'
|
testImplementation 'org.assertj:assertj-core'
|
||||||
testImplementation 'com.hazelcast:hazelcast'
|
testImplementation 'com.hazelcast:hazelcast'
|
||||||
testImplementation 'io.lettuce:lettuce-core'
|
testImplementation 'io.lettuce:lettuce-core'
|
||||||
testImplementation 'jakarta.annotation:jakarta.annotation-api'
|
|
||||||
testImplementation 'jakarta.servlet:jakarta.servlet-api'
|
testImplementation 'jakarta.servlet:jakarta.servlet-api'
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-api'
|
testImplementation 'org.junit.jupiter:junit-jupiter-api'
|
||||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ apply plugin: 'io.spring.convention.spring-module'
|
|||||||
dependencies {
|
dependencies {
|
||||||
api project(':spring-session-core')
|
api project(':spring-session-core')
|
||||||
api "com.hazelcast:hazelcast"
|
api "com.hazelcast:hazelcast"
|
||||||
api "jakarta.annotation:jakarta.annotation-api"
|
|
||||||
api "org.springframework:spring-context"
|
api "org.springframework:spring-context"
|
||||||
|
|
||||||
testImplementation "jakarta.servlet:jakarta.servlet-api"
|
testImplementation "jakarta.servlet:jakarta.servlet-api"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2014-2021 the original author or authors.
|
* Copyright 2014-2022 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -26,9 +26,6 @@ import java.util.Set;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
|
||||||
import jakarta.annotation.PreDestroy;
|
|
||||||
|
|
||||||
import com.hazelcast.core.EntryEvent;
|
import com.hazelcast.core.EntryEvent;
|
||||||
import com.hazelcast.core.HazelcastInstance;
|
import com.hazelcast.core.HazelcastInstance;
|
||||||
import com.hazelcast.map.IMap;
|
import com.hazelcast.map.IMap;
|
||||||
@@ -40,6 +37,8 @@ import com.hazelcast.query.Predicates;
|
|||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.context.ApplicationEventPublisher;
|
import org.springframework.context.ApplicationEventPublisher;
|
||||||
import org.springframework.session.DelegatingIndexResolver;
|
import org.springframework.session.DelegatingIndexResolver;
|
||||||
import org.springframework.session.FindByIndexNameSessionRepository;
|
import org.springframework.session.FindByIndexNameSessionRepository;
|
||||||
@@ -116,7 +115,8 @@ import org.springframework.util.Assert;
|
|||||||
public class HazelcastIndexedSessionRepository
|
public class HazelcastIndexedSessionRepository
|
||||||
implements FindByIndexNameSessionRepository<HazelcastIndexedSessionRepository.HazelcastSession>,
|
implements FindByIndexNameSessionRepository<HazelcastIndexedSessionRepository.HazelcastSession>,
|
||||||
EntryAddedListener<String, MapSession>, EntryEvictedListener<String, MapSession>,
|
EntryAddedListener<String, MapSession>, EntryEvictedListener<String, MapSession>,
|
||||||
EntryRemovedListener<String, MapSession>, EntryExpiredListener<String, MapSession> {
|
EntryRemovedListener<String, MapSession>, EntryExpiredListener<String, MapSession>, InitializingBean,
|
||||||
|
DisposableBean {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The default name of map used by Spring Session to store sessions.
|
* The default name of map used by Spring Session to store sessions.
|
||||||
@@ -164,14 +164,14 @@ public class HazelcastIndexedSessionRepository
|
|||||||
this.hazelcastInstance = hazelcastInstance;
|
this.hazelcastInstance = hazelcastInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@Override
|
||||||
public void init() {
|
public void afterPropertiesSet() {
|
||||||
this.sessions = this.hazelcastInstance.getMap(this.sessionMapName);
|
this.sessions = this.hazelcastInstance.getMap(this.sessionMapName);
|
||||||
this.sessionListenerId = this.sessions.addEntryListener(this, true);
|
this.sessionListenerId = this.sessions.addEntryListener(this, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreDestroy
|
@Override
|
||||||
public void close() {
|
public void destroy() {
|
||||||
this.sessions.removeEntryListener(this.sessionListenerId);
|
this.sessions.removeEntryListener(this.sessionListenerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2014-2021 the original author or authors.
|
* Copyright 2014-2022 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -76,7 +76,7 @@ class HazelcastIndexedSessionRepositoryTests {
|
|||||||
void setUp() {
|
void setUp() {
|
||||||
given(this.hazelcastInstance.<String, MapSession>getMap(anyString())).willReturn(this.sessions);
|
given(this.hazelcastInstance.<String, MapSession>getMap(anyString())).willReturn(this.sessions);
|
||||||
this.repository = new HazelcastIndexedSessionRepository(this.hazelcastInstance);
|
this.repository = new HazelcastIndexedSessionRepository(this.hazelcastInstance);
|
||||||
this.repository.init();
|
this.repository.afterPropertiesSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user