Compare commits

...

14 Commits
2.4.2 ... 2.4.3

Author SHA1 Message Date
Eleftheria Stein
b9618fe6b3 Release 2.4.3 2021-04-13 13:21:46 +02:00
Eleftheria Stein
625833f1fe Upgrade test dependencies 2021-04-13 13:20:28 +02:00
Eleftheria Stein
f1eee1e7a4 Upgrade Spring Security to 5.4.6
Closes gh-1828
2021-04-13 13:19:39 +02:00
Eleftheria Stein
a2ee77c62e Upgrade Spring Data to 2020.0.7
Closes gh-1827
2021-04-13 13:18:11 +02:00
Eleftheria Stein
3c77d76cee Upgrade Spring Framework to 5.3.5
Closes gh-1826
2021-04-13 13:16:24 +02:00
Eleftheria Stein
6a8d2f4d88 Upgrade Reactor to 2020.0.6
Closes gh-1825
2021-04-13 13:15:39 +02:00
Eleftheria Stein
4c63faece1 Upgrade Hazelcast to 3.12.12
Closes gh-1824
2021-04-13 13:14:36 +02:00
Eleftheria Stein
e2a7e71ae3 Upgrade samples to Spring Boot 2.4.4
Closes gh-1823
2021-04-13 13:13:53 +02:00
Eleftheria Stein
66f81daa20 Throw exception if session created after response
Closes gh-1798
2021-03-25 12:01:53 +02:00
Eleftheria Stein
829b62bd19 Differentiate 2.4.x CI from master CI
- rename CI workflow file
- rename CI workflow identifier
- change daily build time
- ensure checkout is always run on 2.4.x

Issue: gh-1794
2021-02-22 11:19:13 +01:00
Eleftheria Stein
b7209f8330 Make Hazelcast tests independent of ordering
Closes gh-1787
2021-02-02 15:58:02 +01:00
Eleftheria Stein
645e525b84 Upgrade samples to Spring Boot 2.4.2
Closes gh-1782
2021-01-29 17:26:15 +01:00
Eleftheria Stein
ba4bb6fcf6 Use spring-build-conventions:0.0.37 2021-01-27 12:27:27 +01:00
Eleftheria Stein
f224d571f0 Next development version 2021-01-19 18:33:23 +01:00
10 changed files with 56 additions and 29 deletions

View File

@@ -1,11 +1,11 @@
name: CI
name: 2.4.x CI
on:
push:
branches:
- 2.4.x
schedule:
- cron: '0 10 * * *' # Once per day at 10am UTC
- cron: '4 10 * * *' # Once per day at 10:04am UTC
workflow_dispatch: # Manual trigger
env:
@@ -25,6 +25,8 @@ jobs:
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
ref: '2.4.x'
- name: Set up JDK ${{ matrix.jdk }}
uses: actions/setup-java@v1
with:
@@ -47,6 +49,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: '2.4.x'
- name: Set up JDK
uses: actions/setup-java@v1
with:
@@ -74,6 +78,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: '2.4.x'
- name: Set up JDK
uses: actions/setup-java@v1
with:

View File

@@ -4,7 +4,7 @@ buildscript {
snapshotBuild = version.endsWith('SNAPSHOT')
milestoneBuild = !(releaseBuild || snapshotBuild)
springBootVersion = '2.4.0-M4'
springBootVersion = '2.4.4'
}
repositories {
@@ -14,7 +14,7 @@ buildscript {
}
dependencies {
classpath 'io.spring.gradle:spring-build-conventions:0.0.35.RELEASE'
classpath 'io.spring.gradle:spring-build-conventions:0.0.37'
classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion"
}
}

View File

@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
version=2.4.2
version=2.4.3

View File

@@ -1,15 +1,15 @@
dependencyManagement {
imports {
mavenBom 'io.projectreactor:reactor-bom:2020.0.3'
mavenBom 'org.junit:junit-bom:5.7.0'
mavenBom 'org.springframework:spring-framework-bom:5.3.3'
mavenBom 'org.springframework.data:spring-data-bom:2020.0.3'
mavenBom 'org.springframework.security:spring-security-bom:5.4.2'
mavenBom 'org.testcontainers:testcontainers-bom:1.15.1'
mavenBom 'io.projectreactor:reactor-bom:2020.0.6'
mavenBom 'org.junit:junit-bom:5.7.1'
mavenBom 'org.springframework:spring-framework-bom:5.3.5'
mavenBom 'org.springframework.data:spring-data-bom:2020.0.7'
mavenBom 'org.springframework.security:spring-security-bom:5.4.6'
mavenBom 'org.testcontainers:testcontainers-bom:1.15.2'
}
dependencies {
dependencySet(group: 'com.hazelcast', version: '3.12.11') {
dependencySet(group: 'com.hazelcast', version: '3.12.12') {
entry 'hazelcast'
entry 'hazelcast-client'
}
@@ -21,15 +21,15 @@ dependencyManagement {
dependency 'com.oracle.database.jdbc:ojdbc8:19.8.0.0'
dependency 'com.zaxxer:HikariCP:3.4.5'
dependency 'edu.umd.cs.mtc:multithreadedtc:1.01'
dependency 'io.lettuce:lettuce-core:6.0.2.RELEASE'
dependency 'io.lettuce:lettuce-core:6.0.3.RELEASE'
dependency 'javax.annotation:javax.annotation-api:1.3.2'
dependency 'javax.servlet:javax.servlet-api:4.0.1'
dependency 'junit:junit:4.13.1'
dependency 'mysql:mysql-connector-java:8.0.22'
dependency 'junit:junit:4.13.2'
dependency 'mysql:mysql-connector-java:8.0.23'
dependency 'org.apache.derby:derby:10.14.2.0'
dependency 'org.assertj:assertj-core:3.18.0'
dependency 'org.hsqldb:hsqldb:2.5.1'
dependency 'org.mariadb.jdbc:mariadb-java-client:2.7.0'
dependency 'org.mariadb.jdbc:mariadb-java-client:2.7.2'
dependency 'org.mockito:mockito-core:3.5.15'
dependency 'org.postgresql:postgresql:42.2.18'
}

View File

@@ -309,6 +309,10 @@ public class SessionRepositoryFilter<S extends Session> extends OncePerRequestFi
if (!create) {
return null;
}
if (SessionRepositoryFilter.this.httpSessionIdResolver instanceof CookieHttpSessionIdResolver
&& this.response.isCommitted()) {
throw new IllegalStateException("Cannot create a session after the response has been committed");
}
if (SESSION_LOGGER.isDebugEnabled()) {
SESSION_LOGGER.debug(
"A new session was created. To help you troubleshoot where the session was created we provided a StackTrace (this is not an error). You can prevent this from appearing by disabling DEBUG logging for "

View File

@@ -62,6 +62,7 @@ import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
import static org.assertj.core.api.Assertions.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
@@ -423,6 +424,18 @@ class SessionRepositoryFilterTests {
assertThat(this.response.getCookie("SESSION")).isNotNull();
}
@Test
void doFilterGetSessionNewWhenResponseCommittedThenException() {
assertThatIllegalStateException().isThrownBy(() -> doFilter(new DoInFilter() {
@Override
public void doFilter(HttpServletRequest wrappedRequest, HttpServletResponse wrappedResponse)
throws IOException {
wrappedResponse.getWriter().flush();
wrappedRequest.getSession();
}
}));
}
@Test
void doFilterGetSessionNew() throws Exception {
doFilter(new DoInFilter() {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2014-2020 the original author or authors.
* Copyright 2014-2021 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.
@@ -54,16 +54,13 @@ abstract class AbstractHazelcast4IndexedSessionRepositoryITests {
IMap<String, MapSession> hazelcastMap = this.hazelcastInstance
.getMap(Hazelcast4IndexedSessionRepository.DEFAULT_SESSION_MAP_NAME);
assertThat(hazelcastMap.size()).isEqualTo(0);
this.repository.save(sessionToSave);
assertThat(hazelcastMap.size()).isEqualTo(1);
assertThat(hazelcastMap.get(sessionId)).isEqualTo(sessionToSave);
this.repository.deleteById(sessionId);
assertThat(hazelcastMap.size()).isEqualTo(0);
assertThat(hazelcastMap.get(sessionId)).isNull();
}
@Test
@@ -179,6 +176,8 @@ abstract class AbstractHazelcast4IndexedSessionRepositoryITests {
this.repository.save(session);
assertThat(this.repository.findById(sessionId)).isNotNull();
this.repository.deleteById(sessionId);
}
@Test
@@ -195,6 +194,8 @@ abstract class AbstractHazelcast4IndexedSessionRepositoryITests {
this.repository.save(session);
assertThat(this.repository.findById(sessionId)).isNotNull();
this.repository.deleteById(sessionId);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2014-2019 the original author or authors.
* Copyright 2014-2021 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.
@@ -58,16 +58,13 @@ abstract class AbstractHazelcastIndexedSessionRepositoryITests {
IMap<String, MapSession> hazelcastMap = this.hazelcastInstance
.getMap(HazelcastIndexedSessionRepository.DEFAULT_SESSION_MAP_NAME);
assertThat(hazelcastMap.size()).isEqualTo(0);
this.repository.save(sessionToSave);
assertThat(hazelcastMap.size()).isEqualTo(1);
assertThat(hazelcastMap.get(sessionId)).isEqualTo(sessionToSave);
this.repository.deleteById(sessionId);
assertThat(hazelcastMap.size()).isEqualTo(0);
assertThat(hazelcastMap.get(sessionId)).isNull();
}
@Test
@@ -183,6 +180,8 @@ abstract class AbstractHazelcastIndexedSessionRepositoryITests {
this.repository.save(session);
assertThat(this.repository.findById(sessionId)).isNotNull();
this.repository.deleteById(sessionId);
}
@Test
@@ -199,6 +198,8 @@ abstract class AbstractHazelcastIndexedSessionRepositoryITests {
this.repository.save(session);
assertThat(this.repository.findById(sessionId)).isNotNull();
this.repository.deleteById(sessionId);
}
@Test
@@ -220,6 +221,8 @@ abstract class AbstractHazelcastIndexedSessionRepositoryITests {
assertThat(this.repository
.findByIndexNameAndIndexValue(FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, username))
.hasSize(1);
this.repository.deleteById(session.getId());
}
}

View File

@@ -46,7 +46,7 @@ import org.springframework.test.context.web.WebAppConfiguration;
@WebAppConfiguration
class ClientServerHazelcastIndexedSessionRepositoryITests extends AbstractHazelcastIndexedSessionRepositoryITests {
private static GenericContainer container = new GenericContainer<>("hazelcast/hazelcast:3.12.11")
private static GenericContainer container = new GenericContainer<>("hazelcast/hazelcast:3.12.12")
.withExposedPorts(5701).withCopyFileToContainer(MountableFile.forClasspathResource("/hazelcast-server.xml"),
"/opt/hazelcast/hazelcast.xml");

View File

@@ -1,6 +1,6 @@
dependencyManagement {
imports {
mavenBom 'com.fasterxml.jackson:jackson-bom:2.11.3'
mavenBom 'com.fasterxml.jackson:jackson-bom:2.11.4'
}
dependencies {
@@ -17,7 +17,7 @@ dependencyManagement {
dependency 'org.webjars:jquery:1.12.4'
dependency 'org.webjars:knockout:2.3.0'
dependency 'org.webjars:sockjs-client:0.3.4'
dependency 'org.webjars:stomp-websocket:2.3.3'
dependency 'org.webjars:stomp-websocket:2.3.4'
dependency 'org.webjars:webjars-taglib:0.3'
}
}