diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index db7d15e8d..45184c5bc 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -22,7 +22,6 @@ dependencyManagement { dependency 'com.zaxxer:HikariCP:5.0.1' dependency 'edu.umd.cs.mtc:multithreadedtc:1.01' 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 'mysql:mysql-connector-java:8.0.30' dependency 'org.apache.derby:derby:10.14.2.0' diff --git a/spring-session-core/spring-session-core.gradle b/spring-session-core/spring-session-core.gradle index afe33d59a..d3b11a2bf 100644 --- a/spring-session-core/spring-session-core.gradle +++ b/spring-session-core/spring-session-core.gradle @@ -6,7 +6,6 @@ dependencies { api "org.springframework:spring-jcl" optional "io.projectreactor:reactor-core" - optional "jakarta.annotation:jakarta.annotation-api" optional "jakarta.servlet:jakarta.servlet-api" optional "org.springframework:spring-context" optional "org.springframework:spring-jdbc" diff --git a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java index 997f1769e..74456681a 100644 --- a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java +++ b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java @@ -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"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ import java.util.ArrayList; import java.util.List; -import jakarta.annotation.PostConstruct; import jakarta.servlet.ServletContext; import jakarta.servlet.SessionCookieConfig; import jakarta.servlet.http.HttpSessionListener; @@ -28,6 +27,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeansException; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -91,7 +91,7 @@ * @see EnableSpringHttpSession */ @Configuration(proxyBeanMethods = false) -public class SpringHttpSessionConfiguration implements ApplicationContextAware { +public class SpringHttpSessionConfiguration implements InitializingBean, ApplicationContextAware { private final Log logger = LogFactory.getLog(getClass()); @@ -107,8 +107,8 @@ public class SpringHttpSessionConfiguration implements ApplicationContextAware { private List httpSessionListeners = new ArrayList<>(); - @PostConstruct - public void init() { + @Override + public void afterPropertiesSet() { CookieSerializer cookieSerializer = (this.cookieSerializer != null) ? this.cookieSerializer : createDefaultCookieSerializer(); this.defaultHttpSessionIdResolver.setCookieSerializer(cookieSerializer); diff --git a/spring-session-docs/spring-session-docs.gradle b/spring-session-docs/spring-session-docs.gradle index 967833383..fff6512c2 100644 --- a/spring-session-docs/spring-session-docs.gradle +++ b/spring-session-docs/spring-session-docs.gradle @@ -23,7 +23,6 @@ dependencies { testImplementation 'org.assertj:assertj-core' testImplementation 'com.hazelcast:hazelcast' testImplementation 'io.lettuce:lettuce-core' - testImplementation 'jakarta.annotation:jakarta.annotation-api' testImplementation 'jakarta.servlet:jakarta.servlet-api' testImplementation 'org.junit.jupiter:junit-jupiter-api' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' diff --git a/spring-session-hazelcast/spring-session-hazelcast.gradle b/spring-session-hazelcast/spring-session-hazelcast.gradle index 0c3f4df82..f0d615d1e 100644 --- a/spring-session-hazelcast/spring-session-hazelcast.gradle +++ b/spring-session-hazelcast/spring-session-hazelcast.gradle @@ -3,7 +3,6 @@ apply plugin: 'io.spring.convention.spring-module' dependencies { api project(':spring-session-core') api "com.hazelcast:hazelcast" - api "jakarta.annotation:jakarta.annotation-api" api "org.springframework:spring-context" testImplementation "jakarta.servlet:jakarta.servlet-api" diff --git a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java index 7024bc31c..f120eb41f 100644 --- a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java +++ b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java @@ -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"); * you may not use this file except in compliance with the License. @@ -26,9 +26,6 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; -import jakarta.annotation.PostConstruct; -import jakarta.annotation.PreDestroy; - import com.hazelcast.core.EntryEvent; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.map.IMap; @@ -40,6 +37,8 @@ import org.apache.commons.logging.Log; 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.session.DelegatingIndexResolver; import org.springframework.session.FindByIndexNameSessionRepository; @@ -116,7 +115,8 @@ public class HazelcastIndexedSessionRepository implements FindByIndexNameSessionRepository, EntryAddedListener, EntryEvictedListener, - EntryRemovedListener, EntryExpiredListener { + EntryRemovedListener, EntryExpiredListener, InitializingBean, + DisposableBean { /** * The default name of map used by Spring Session to store sessions. @@ -164,14 +164,14 @@ public HazelcastIndexedSessionRepository(HazelcastInstance hazelcastInstance) { this.hazelcastInstance = hazelcastInstance; } - @PostConstruct - public void init() { + @Override + public void afterPropertiesSet() { this.sessions = this.hazelcastInstance.getMap(this.sessionMapName); this.sessionListenerId = this.sessions.addEntryListener(this, true); } - @PreDestroy - public void close() { + @Override + public void destroy() { this.sessions.removeEntryListener(this.sessionListenerId); } diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java index c8ef7006f..4c71046ab 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java @@ -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"); * you may not use this file except in compliance with the License. @@ -76,7 +76,7 @@ class HazelcastIndexedSessionRepositoryTests { void setUp() { given(this.hazelcastInstance.getMap(anyString())).willReturn(this.sessions); this.repository = new HazelcastIndexedSessionRepository(this.hazelcastInstance); - this.repository.init(); + this.repository.afterPropertiesSet(); } @Test