Skip to content

Commit 22d47e7

Browse files
committed
Use Java text blocks for scripts in code
* Fix `WebServiceInboundGatewayParserTests` for reply timeout for replies which never come accoridn the test logic
1 parent 775e6fd commit 22d47e7

File tree

6 files changed

+253
-138
lines changed

6 files changed

+253
-138
lines changed

spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/DefaultLockRepository.java

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2022 the original author or authors.
2+
* Copyright 2016-2023 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -78,22 +78,43 @@ public class DefaultLockRepository
7878

7979
private String region = "DEFAULT";
8080

81-
private String deleteQuery = "DELETE FROM %sLOCK WHERE REGION=? AND LOCK_KEY=? AND CLIENT_ID=?";
82-
83-
private String deleteExpiredQuery = "DELETE FROM %sLOCK WHERE REGION=? AND CREATED_DATE<?";
84-
85-
private String deleteAllQuery = "DELETE FROM %sLOCK WHERE REGION=? AND CLIENT_ID=?";
86-
87-
private String updateQuery =
88-
"UPDATE %sLOCK SET CLIENT_ID=?, CREATED_DATE=? WHERE REGION=? AND LOCK_KEY=? " +
89-
"AND (CLIENT_ID=? OR CREATED_DATE<?)";
90-
91-
private String insertQuery = "INSERT INTO %sLOCK (REGION, LOCK_KEY, CLIENT_ID, CREATED_DATE) VALUES (?, ?, ?, ?)";
92-
93-
private String countQuery =
94-
"SELECT COUNT(REGION) FROM %sLOCK WHERE REGION=? AND LOCK_KEY=? AND CLIENT_ID=? AND CREATED_DATE>=?";
95-
96-
private String renewQuery = "UPDATE %sLOCK SET CREATED_DATE=? WHERE REGION=? AND LOCK_KEY=? AND CLIENT_ID=?";
81+
private String deleteQuery = """
82+
DELETE FROM %sLOCK
83+
WHERE REGION=? AND LOCK_KEY=? AND CLIENT_ID=?
84+
""";
85+
86+
private String deleteExpiredQuery = """
87+
DELETE FROM %sLOCK
88+
WHERE REGION=? AND CREATED_DATE<?
89+
""";
90+
91+
private String deleteAllQuery = """
92+
DELETE FROM %sLOCK
93+
WHERE REGION=? AND CLIENT_ID=?
94+
""";
95+
96+
private String updateQuery = """
97+
UPDATE %sLOCK
98+
SET CLIENT_ID=?, CREATED_DATE=?
99+
WHERE REGION=? AND LOCK_KEY=? AND (CLIENT_ID=? OR CREATED_DATE<?)
100+
""";
101+
102+
private String insertQuery = """
103+
INSERT INTO %sLOCK (REGION, LOCK_KEY, CLIENT_ID, CREATED_DATE)
104+
VALUES (?, ?, ?, ?)
105+
""";
106+
107+
private String countQuery = """
108+
SELECT COUNT(REGION)
109+
FROM %sLOCK
110+
WHERE REGION=? AND LOCK_KEY=? AND CLIENT_ID=? AND CREATED_DATE>=?
111+
""";
112+
113+
private String renewQuery = """
114+
UPDATE %sLOCK
115+
SET CREATED_DATE=?
116+
WHERE REGION=? AND LOCK_KEY=? AND CLIENT_ID=?
117+
""";
97118

98119
private ApplicationContext applicationContext;
99120

spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/metadata/JdbcMetadataStore.java

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2017-2019 the original author or authors.
2+
* Copyright 2017-2023 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -58,22 +58,40 @@ public class JdbcMetadataStore implements ConcurrentMetadataStore, InitializingB
5858

5959
private String lockHint = "FOR UPDATE";
6060

61-
private String getValueQuery = "SELECT METADATA_VALUE FROM %sMETADATA_STORE WHERE METADATA_KEY=? AND REGION=?";
61+
private String getValueQuery = """
62+
SELECT METADATA_VALUE FROM %sMETADATA_STORE
63+
WHERE METADATA_KEY=? AND REGION=?
64+
""";
6265

63-
private String getValueForUpdateQuery =
64-
"SELECT METADATA_VALUE FROM %sMETADATA_STORE WHERE METADATA_KEY=? AND REGION=? %s";
66+
private String getValueForUpdateQuery = """
67+
SELECT METADATA_VALUE FROM %sMETADATA_STORE
68+
WHERE METADATA_KEY=? AND REGION=? %s
69+
""";
6570

66-
private String replaceValueQuery =
67-
"UPDATE %sMETADATA_STORE SET METADATA_VALUE=? WHERE METADATA_KEY=? AND METADATA_VALUE=? AND REGION=?";
71+
private String replaceValueQuery = """
72+
UPDATE %sMETADATA_STORE
73+
SET METADATA_VALUE=?
74+
WHERE METADATA_KEY=? AND METADATA_VALUE=? AND REGION=?
75+
""";
6876

69-
private String replaceValueByKeyQuery =
70-
"UPDATE %sMETADATA_STORE SET METADATA_VALUE=? WHERE METADATA_KEY=? AND REGION=?";
77+
private String replaceValueByKeyQuery = """
78+
UPDATE %sMETADATA_STORE
79+
SET METADATA_VALUE=?
80+
WHERE METADATA_KEY=? AND REGION=?
81+
""";
7182

72-
private String removeValueQuery = "DELETE FROM %sMETADATA_STORE WHERE METADATA_KEY=? AND REGION=?";
83+
private String removeValueQuery = """
84+
DELETE FROM %sMETADATA_STORE
85+
WHERE METADATA_KEY=? AND REGION=?
86+
""";
7387

74-
private String putIfAbsentValueQuery =
75-
"INSERT INTO %sMETADATA_STORE(METADATA_KEY, METADATA_VALUE, REGION) "
76-
+ "SELECT ?, ?, ? FROM %sMETADATA_STORE WHERE METADATA_KEY=? AND REGION=? HAVING COUNT(*)=0";
88+
private String putIfAbsentValueQuery = """
89+
INSERT INTO %sMETADATA_STORE(METADATA_KEY, METADATA_VALUE, REGION)
90+
SELECT ?, ?, ?
91+
FROM %sMETADATA_STORE
92+
WHERE METADATA_KEY=? AND REGION=?
93+
HAVING COUNT(*)=0
94+
""";
7795

7896
/**
7997
* Instantiate a {@link JdbcMetadataStore} using provided dataSource {@link DataSource}.

spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/store/JdbcMessageStore.java

Lines changed: 132 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2023 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -85,72 +85,137 @@ public class JdbcMessageStore extends AbstractMessageGroupStore implements Messa
8585
public static final String DEFAULT_TABLE_PREFIX = "INT_";
8686

8787
private enum Query {
88-
CREATE_MESSAGE_GROUP("INSERT into %PREFIX%MESSAGE_GROUP" +
89-
"(GROUP_KEY, REGION, COMPLETE, LAST_RELEASED_SEQUENCE, CREATED_DATE, UPDATED_DATE)"
90-
+ " values (?, ?, 0, 0, ?, ?)"),
91-
92-
UPDATE_MESSAGE_GROUP("UPDATE %PREFIX%MESSAGE_GROUP set UPDATED_DATE=?, GROUP_CONDITION=? " +
93-
"where GROUP_KEY=? and REGION=?"),
94-
95-
REMOVE_MESSAGE_FROM_GROUP("DELETE from %PREFIX%GROUP_TO_MESSAGE where GROUP_KEY=? and MESSAGE_ID=? and " +
96-
"REGION=?"),
97-
98-
REMOVE_GROUP_TO_MESSAGE_JOIN("DELETE from %PREFIX%GROUP_TO_MESSAGE where GROUP_KEY=? and REGION=?"),
99-
100-
COUNT_ALL_MESSAGES_IN_GROUPS("SELECT COUNT(MESSAGE_ID) from %PREFIX%GROUP_TO_MESSAGE where REGION=?"),
101-
102-
COUNT_ALL_MESSAGES_IN_GROUP("SELECT COUNT(MESSAGE_ID) from %PREFIX%GROUP_TO_MESSAGE where GROUP_KEY=? and " +
103-
"REGION=?"),
104-
105-
LIST_MESSAGES_BY_GROUP_KEY("SELECT MESSAGE_ID, MESSAGE_BYTES, CREATED_DATE " +
106-
"from %PREFIX%MESSAGE where MESSAGE_ID in " +
107-
"(SELECT MESSAGE_ID from %PREFIX%GROUP_TO_MESSAGE where GROUP_KEY = ? and REGION = ?) and REGION = ? " +
108-
"ORDER BY CREATED_DATE"),
109-
110-
POLL_FROM_GROUP("SELECT %PREFIX%MESSAGE.MESSAGE_ID, %PREFIX%MESSAGE.MESSAGE_BYTES from %PREFIX%MESSAGE " +
111-
"where %PREFIX%MESSAGE.MESSAGE_ID = " +
112-
"(SELECT min(m.MESSAGE_ID) from %PREFIX%MESSAGE m " +
113-
"join %PREFIX%GROUP_TO_MESSAGE on m.MESSAGE_ID = %PREFIX%GROUP_TO_MESSAGE.MESSAGE_ID " +
114-
"where CREATED_DATE = " +
115-
"(SELECT min(CREATED_DATE) from %PREFIX%MESSAGE, %PREFIX%GROUP_TO_MESSAGE " +
116-
"where %PREFIX%MESSAGE.MESSAGE_ID = %PREFIX%GROUP_TO_MESSAGE.MESSAGE_ID " +
117-
"and %PREFIX%GROUP_TO_MESSAGE.GROUP_KEY = ? " +
118-
"and %PREFIX%MESSAGE.REGION = ?) " +
119-
"and %PREFIX%GROUP_TO_MESSAGE.GROUP_KEY = ? " +
120-
"and m.REGION = ?)"),
121-
122-
GET_GROUP_INFO("SELECT COMPLETE, LAST_RELEASED_SEQUENCE, CREATED_DATE, UPDATED_DATE, GROUP_CONDITION" +
123-
" from %PREFIX%MESSAGE_GROUP where GROUP_KEY=? and REGION=?"),
124-
125-
GET_MESSAGE("SELECT MESSAGE_ID, CREATED_DATE, MESSAGE_BYTES from %PREFIX%MESSAGE where MESSAGE_ID=? and " +
126-
"REGION=?"),
127-
128-
GET_MESSAGE_COUNT("SELECT COUNT(MESSAGE_ID) from %PREFIX%MESSAGE where REGION=?"),
129-
130-
DELETE_MESSAGE("DELETE from %PREFIX%MESSAGE where MESSAGE_ID=? and REGION=?"),
131-
132-
CREATE_MESSAGE("INSERT into %PREFIX%MESSAGE(MESSAGE_ID, REGION, CREATED_DATE, MESSAGE_BYTES)"
133-
+ " values (?, ?, ?, ?)"),
134-
135-
COUNT_ALL_GROUPS("SELECT COUNT(GROUP_KEY) from %PREFIX%MESSAGE_GROUP where REGION=?"),
136-
137-
COMPLETE_GROUP("UPDATE %PREFIX%MESSAGE_GROUP set UPDATED_DATE=?, COMPLETE=1 where GROUP_KEY=? and REGION=?"),
138-
139-
UPDATE_LAST_RELEASED_SEQUENCE("UPDATE %PREFIX%MESSAGE_GROUP set UPDATED_DATE=?, LAST_RELEASED_SEQUENCE=? where " +
140-
"GROUP_KEY=? and REGION=?"),
141-
142-
DELETE_MESSAGES_FROM_GROUP("DELETE from %PREFIX%MESSAGE where MESSAGE_ID in " +
143-
"(SELECT MESSAGE_ID from %PREFIX%GROUP_TO_MESSAGE where GROUP_KEY = ? and REGION = ?) and REGION = ?"),
144-
145-
DELETE_MESSAGE_GROUP("DELETE from %PREFIX%MESSAGE_GROUP where GROUP_KEY=? and REGION=?"),
146-
147-
CREATE_GROUP_TO_MESSAGE("INSERT into %PREFIX%GROUP_TO_MESSAGE" +
148-
"(GROUP_KEY, MESSAGE_ID, REGION)"
149-
+ " values (?, ?, ?)"),
150-
151-
UPDATE_GROUP("UPDATE %PREFIX%MESSAGE_GROUP set UPDATED_DATE=? where GROUP_KEY=? and REGION=?"),
152-
153-
LIST_GROUP_KEYS("SELECT distinct GROUP_KEY as CREATED from %PREFIX%MESSAGE_GROUP where REGION=?");
88+
CREATE_MESSAGE_GROUP("""
89+
INSERT into %PREFIX%MESSAGE_GROUP(
90+
GROUP_KEY, REGION, COMPLETE, LAST_RELEASED_SEQUENCE, CREATED_DATE, UPDATED_DATE)
91+
values (?, ?, 0, 0, ?, ?)
92+
"""),
93+
94+
UPDATE_MESSAGE_GROUP("""
95+
UPDATE %PREFIX%MESSAGE_GROUP
96+
set UPDATED_DATE=?, GROUP_CONDITION=?
97+
where GROUP_KEY=? and REGION=?
98+
"""),
99+
100+
REMOVE_MESSAGE_FROM_GROUP("""
101+
DELETE from %PREFIX%GROUP_TO_MESSAGE
102+
where GROUP_KEY=? and MESSAGE_ID=? and REGION=?
103+
"""),
104+
105+
REMOVE_GROUP_TO_MESSAGE_JOIN("""
106+
DELETE from %PREFIX%GROUP_TO_MESSAGE
107+
where GROUP_KEY=? and REGION=?
108+
"""),
109+
110+
COUNT_ALL_MESSAGES_IN_GROUPS("""
111+
SELECT COUNT(MESSAGE_ID)
112+
from %PREFIX%GROUP_TO_MESSAGE
113+
where REGION=?
114+
"""),
115+
116+
COUNT_ALL_MESSAGES_IN_GROUP("""
117+
SELECT COUNT(MESSAGE_ID)
118+
from %PREFIX%GROUP_TO_MESSAGE
119+
where GROUP_KEY=? and REGION=?
120+
"""),
121+
122+
LIST_MESSAGES_BY_GROUP_KEY("""
123+
SELECT MESSAGE_ID, MESSAGE_BYTES, CREATED_DATE
124+
from %PREFIX%MESSAGE
125+
where MESSAGE_ID in (SELECT MESSAGE_ID from %PREFIX%GROUP_TO_MESSAGE where GROUP_KEY = ? and REGION = ?)
126+
and REGION = ?
127+
ORDER BY CREATED_DATE
128+
"""),
129+
130+
POLL_FROM_GROUP("""
131+
SELECT %PREFIX%MESSAGE.MESSAGE_ID, %PREFIX%MESSAGE.MESSAGE_BYTES
132+
from %PREFIX%MESSAGE
133+
where %PREFIX%MESSAGE.MESSAGE_ID = (
134+
SELECT min(m.MESSAGE_ID)
135+
from %PREFIX%MESSAGE m
136+
join %PREFIX%GROUP_TO_MESSAGE
137+
on m.MESSAGE_ID = %PREFIX%GROUP_TO_MESSAGE.MESSAGE_ID
138+
where CREATED_DATE = (
139+
SELECT min(CREATED_DATE)
140+
from %PREFIX%MESSAGE, %PREFIX%GROUP_TO_MESSAGE
141+
where %PREFIX%MESSAGE.MESSAGE_ID = %PREFIX%GROUP_TO_MESSAGE.MESSAGE_ID
142+
and %PREFIX%GROUP_TO_MESSAGE.GROUP_KEY = ? and %PREFIX%MESSAGE.REGION = ?)
143+
and %PREFIX%GROUP_TO_MESSAGE.GROUP_KEY = ? and m.REGION = ?)
144+
"""),
145+
146+
GET_GROUP_INFO("""
147+
SELECT COMPLETE, LAST_RELEASED_SEQUENCE, CREATED_DATE, UPDATED_DATE, GROUP_CONDITION
148+
from %PREFIX%MESSAGE_GROUP
149+
where GROUP_KEY=? and REGION=?
150+
"""),
151+
152+
GET_MESSAGE("""
153+
SELECT MESSAGE_ID, CREATED_DATE, MESSAGE_BYTES
154+
from %PREFIX%MESSAGE
155+
where MESSAGE_ID=? and REGION=?
156+
"""),
157+
158+
GET_MESSAGE_COUNT("""
159+
SELECT COUNT(MESSAGE_ID)
160+
from %PREFIX%MESSAGE
161+
where REGION=?
162+
"""),
163+
164+
DELETE_MESSAGE("""
165+
DELETE from %PREFIX%MESSAGE
166+
where MESSAGE_ID=? and REGION=?
167+
"""),
168+
169+
CREATE_MESSAGE("""
170+
INSERT into %PREFIX%MESSAGE(MESSAGE_ID, REGION, CREATED_DATE, MESSAGE_BYTES)
171+
values (?, ?, ?, ?)
172+
"""),
173+
174+
COUNT_ALL_GROUPS("""
175+
SELECT COUNT(GROUP_KEY)
176+
from %PREFIX%MESSAGE_GROUP
177+
where REGION=?
178+
"""),
179+
180+
COMPLETE_GROUP("""
181+
UPDATE %PREFIX%MESSAGE_GROUP
182+
set UPDATED_DATE=?, COMPLETE=1
183+
where GROUP_KEY=? and REGION=?
184+
"""),
185+
186+
UPDATE_LAST_RELEASED_SEQUENCE("""
187+
UPDATE %PREFIX%MESSAGE_GROUP
188+
set UPDATED_DATE=?, LAST_RELEASED_SEQUENCE=?
189+
where GROUP_KEY=? and REGION=?
190+
"""),
191+
192+
DELETE_MESSAGES_FROM_GROUP("""
193+
DELETE from %PREFIX%MESSAGE
194+
where MESSAGE_ID in (SELECT MESSAGE_ID from %PREFIX%GROUP_TO_MESSAGE where GROUP_KEY = ? and REGION = ?)
195+
and REGION = ?
196+
"""),
197+
198+
DELETE_MESSAGE_GROUP("""
199+
DELETE from %PREFIX%MESSAGE_GROUP
200+
where GROUP_KEY=? and REGION=?
201+
"""),
202+
203+
CREATE_GROUP_TO_MESSAGE("""
204+
INSERT into %PREFIX%GROUP_TO_MESSAGE (GROUP_KEY, MESSAGE_ID, REGION)
205+
values (?, ?, ?)
206+
"""),
207+
208+
UPDATE_GROUP("""
209+
UPDATE %PREFIX%MESSAGE_GROUP
210+
set UPDATED_DATE=?
211+
where GROUP_KEY=? and REGION=?
212+
"""),
213+
214+
LIST_GROUP_KEYS("""
215+
SELECT distinct GROUP_KEY as CREATED
216+
from %PREFIX%MESSAGE_GROUP
217+
where REGION=?
218+
""");
154219

155220
private final String sql;
156221

spring-integration-redis/src/main/java/org/springframework/integration/redis/util/RedisLockRegistry.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -287,16 +287,17 @@ private Function<String, RedisLock> getRedisLockConstructor(RedisLockType redisL
287287

288288
private abstract class RedisLock implements Lock {
289289

290-
private static final String OBTAIN_LOCK_SCRIPT =
291-
"local lockClientId = redis.call('GET', KEYS[1]) " +
292-
"if lockClientId == ARGV[1] then " +
293-
" redis.call('PEXPIRE', KEYS[1], ARGV[2]) " +
294-
" return true " +
295-
"elseif not lockClientId then " +
296-
" redis.call('SET', KEYS[1], ARGV[1], 'PX', ARGV[2]) " +
297-
" return true " +
298-
"end " +
299-
"return false";
290+
private static final String OBTAIN_LOCK_SCRIPT = """
291+
local lockClientId = redis.call('GET', KEYS[1])
292+
if lockClientId == ARGV[1] then
293+
redis.call('PEXPIRE', KEYS[1], ARGV[2])
294+
return true
295+
elseif not lockClientId then
296+
redis.call('SET', KEYS[1], ARGV[1], 'PX', ARGV[2])
297+
return true
298+
end
299+
return false
300+
""";
300301

301302
protected static final RedisScript<Boolean>
302303
OBTAIN_LOCK_REDIS_SCRIPT = new DefaultRedisScript<>(OBTAIN_LOCK_SCRIPT, Boolean.class);

0 commit comments

Comments
 (0)