From 13d11e5035a02ec4942759df6200327fa52ac581 Mon Sep 17 00:00:00 2001
From: Artem Bilan
Date: Thu, 7 Apr 2016 10:26:55 -0400
Subject: [PATCH] Upgrade to SD-Hopper and other fixes
Fixes https://build.spring.io/browse/INT-MJATS41-593
* Fix `LoggingHandler` JavaDoc
* Fix `JdbcOutboundGatewayParserTests` timing and race condition issues
* Add `mock(BeanFactory.class)` to the `JpaOutboundChannelAdapterTests` for `JpaExecutor`
* Fix `JpaOutboundChannelAdapterTests` for the incorrect transaction usage
---
build.gradle | 26 ++---
.../integration/handler/LoggingHandler.java | 6 +-
.../JdbcOutboundGatewayParserTests.java | 98 +++++++++----------
...cOutboundGatewayWithPollerTest-context.xml | 36 +++----
...cOutboundGatewayWithSelectTest-context.xml | 34 ++++---
.../JpaOutboundChannelAdapterTests.java | 77 ++++++++-------
6 files changed, 143 insertions(+), 134 deletions(-)
diff --git a/build.gradle b/build.gradle
index 3b1ecda9ff..7773c48380 100644
--- a/build.gradle
+++ b/build.gradle
@@ -97,7 +97,7 @@ subprojects { subproject ->
ext {
activeMqVersion = '5.12.2'
- aspectjVersion = '1.8.7'
+ aspectjVersion = '1.8.9'
apacheSshdVersion = '0.14.0'
boonVersion = '0.33'
chronicleVersion = '3.5.3'
@@ -106,30 +106,30 @@ subprojects { subproject ->
commonsNetVersion = '3.4'
curatorVersion = '2.8.0'
derbyVersion = '10.11.1.1'
- eclipseLinkVersion = '2.4.2'
+ eclipseLinkVersion = '2.5.2'
ftpServerVersion = '1.0.6'
groovyVersion = '2.4.5'
guavaVersion = '19.0'
hamcrestVersion = '1.3'
- hazelcastVersion = '3.5.1'
- hibernateVersion = '4.3.10.Final'
+ hazelcastVersion = '3.6.1'
+ hibernateVersion = '5.1.0.Final'
hsqldbVersion = '2.3.3'
h2Version = '1.4.180'
- jackson2Version = '2.5.4'
+ jackson2Version = '2.7.3'
javaxActivationVersion = '1.1.1'
javaxMailVersion = '1.5.5'
jedisVersion = '2.7.3'
jmsApiVersion = '1.1-rev-1'
jpa21ApiVersion = '1.0.0.Final'
- jpaApiVersion = '2.0.0'
+ jpaApiVersion = '2.1.1'
jrubyVersion = '1.7.23'
jschVersion = '0.1.52'
- jsonpathVersion = '2.1.0'
+ jsonpathVersion = '2.2.0'
junitVersion = '4.12'
jythonVersion = '2.5.3'
kryoShadedVersion = '3.0.3'
log4jVersion = '1.2.17'
- mockitoVersion = '1.9.5'
+ mockitoVersion = '1.10.19'
mysqlVersion = '5.1.34'
nettyVersion = '4.0.27.Final'
openJpaVersion = '2.4.0'
@@ -140,16 +140,16 @@ subprojects { subproject ->
saajApiVersion = '1.3.5'
saajImplVersion = '1.3.23'
servletApiVersion = '3.1.0'
- slf4jVersion = "1.7.13"
+ slf4jVersion = "1.7.21"
tomcatVersion = "8.0.30"
smack3Version = '3.2.1'
smackVersion = '4.1.6'
springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '1.6.0.BUILD-SNAPSHOT'
// springCloudClusterVersion = '1.0.0.BUILD-SNAPSHOT'
- springDataJpaVersion = '1.10.0.M1'
- springDataMongoVersion = '1.9.0.M1'
- springDataRedisVersion = '1.7.0.M1'
- springGemfireVersion = '1.8.0.M1'
+ springDataJpaVersion = '1.10.1.RELEASE'
+ springDataMongoVersion = '1.9.1.RELEASE'
+ springDataRedisVersion = '1.7.1.RELEASE'
+ springGemfireVersion = '1.8.1.RELEASE'
springSecurityVersion = project.hasProperty('springSecurityVersion') ? project.springSecurityVersion : '4.0.3.RELEASE'
springSocialTwitterVersion = '1.1.1.RELEASE'
springRetryVersion = '1.1.2.RELEASE'
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/handler/LoggingHandler.java b/spring-integration-core/src/main/java/org/springframework/integration/handler/LoggingHandler.java
index 36b5b76995..c687f961d9 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/handler/LoggingHandler.java
+++ b/spring-integration-core/src/main/java/org/springframework/integration/handler/LoggingHandler.java
@@ -24,7 +24,6 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
-import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.integration.dispatcher.AggregateMessageDeliveryException;
import org.springframework.integration.expression.ExpressionUtils;
import org.springframework.messaging.Message;
@@ -47,9 +46,6 @@ public class LoggingHandler extends AbstractMessageHandler {
FATAL, ERROR, WARN, INFO, DEBUG, TRACE
}
- private static final SpelExpressionParser EXPRESSION_PARSER = new SpelExpressionParser();
-
-
private volatile Expression expression;
private volatile boolean expressionSet;
@@ -69,7 +65,7 @@ public class LoggingHandler extends AbstractMessageHandler {
* The valid levels are: FATAL, ERROR, WARN, INFO, DEBUG, or TRACE
*
* @param level The level.
- * @see LoggingHandler(Level)
+ * @see #LoggingHandler(Level)
*/
public LoggingHandler(String level) {
Assert.hasText(level, "'level' cannot be empty");
diff --git a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java
index 850ea1bb5d..cd501cf23b 100644
--- a/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java
+++ b/spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/config/JdbcOutboundGatewayParserTests.java
@@ -33,7 +33,6 @@ import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.DirectFieldAccessor;
-import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.core.MessagingTemplate;
@@ -73,21 +72,23 @@ public class JdbcOutboundGatewayParserTests {
@Test
public void testMapPayloadMapReply() {
setUp("handlingMapPayloadJdbcOutboundGatewayTest.xml", getClass());
- assertTrue(context.containsBean("jdbcGateway"));
+ assertTrue(this.context.containsBean("jdbcGateway"));
Message> message = MessageBuilder.withPayload(Collections.singletonMap("foo", "bar")).build();
- channel.send(message);
- Map map = this.jdbcTemplate.queryForMap("SELECT * from FOOS");
- assertEquals("Wrong id", message.getHeaders().getId().toString(), map.get("ID"));
- assertEquals("Wrong name", "bar", map.get("name"));
- Message> reply = messagingTemplate.receive();
+ this.channel.send(message);
+
+ Message> reply = this.messagingTemplate.receive();
assertNotNull(reply);
@SuppressWarnings("unchecked")
Map payload = (Map) reply.getPayload();
assertEquals("bar", payload.get("name"));
+
+ Map map = this.jdbcTemplate.queryForMap("SELECT * from FOOS");
+ assertEquals("Wrong id", message.getHeaders().getId().toString(), map.get("ID"));
+ assertEquals("Wrong name", "bar", map.get("name"));
+
JdbcOutboundGateway gateway = context.getBean("jdbcGateway.handler", JdbcOutboundGateway.class);
assertEquals(23, TestUtils.getPropertyValue(gateway, "order"));
Assert.assertTrue(TestUtils.getPropertyValue(gateway, "requiresReply", Boolean.class));
- Object gw = context.getBean("jdbcGateway");
assertEquals(1, adviceCalled);
}
@@ -96,12 +97,16 @@ public class JdbcOutboundGatewayParserTests {
public void testKeyGeneration() {
setUp("handlingKeyGenerationJdbcOutboundGatewayTest.xml", getClass());
Message> message = MessageBuilder.withPayload(Collections.singletonMap("foo", "bar")).build();
- channel.send(message);
- Message> reply = messagingTemplate.receive();
+
+ this.channel.send(message);
+
+ Message> reply = this.messagingTemplate.receive();
assertNotNull(reply);
+
Map payload = (Map) reply.getPayload();
Object id = payload.get("SCOPE_IDENTITY()");
assertNotNull(id);
+
Map map = this.jdbcTemplate.queryForMap("SELECT * from BARS");
assertEquals("Wrong id", id, map.get("ID"));
assertEquals("Wrong name", "bar", map.get("name"));
@@ -110,7 +115,7 @@ public class JdbcOutboundGatewayParserTests {
MessageChannel setterRequest = this.context.getBean("setterRequest", MessageChannel.class);
setterRequest.send(new GenericMessage("bar2"));
- reply = messagingTemplate.receive();
+ reply = this.messagingTemplate.receive();
assertNotNull(reply);
payload = (Map) reply.getPayload();
@@ -125,8 +130,10 @@ public class JdbcOutboundGatewayParserTests {
public void testCountUpdates() {
setUp("handlingCountUpdatesJdbcOutboundGatewayTest.xml", getClass());
Message> message = MessageBuilder.withPayload(Collections.singletonMap("foo", "bar")).build();
- channel.send(message);
- Message> reply = messagingTemplate.receive();
+
+ this.channel.send(message);
+
+ Message> reply = this.messagingTemplate.receive();
assertNotNull(reply);
@SuppressWarnings("unchecked")
Map payload = (Map) reply.getPayload();
@@ -137,37 +144,33 @@ public class JdbcOutboundGatewayParserTests {
public void testWithPoller() throws Exception {
setUp("JdbcOutboundGatewayWithPollerTest-context.xml", this.getClass());
Message> message = MessageBuilder.withPayload(Collections.singletonMap("foo", "bar")).build();
- MessageChannel target = context.getBean("target", MessageChannel.class);
- PollableChannel output = context.getBean("output", PollableChannel.class);
- target.send(message);
- Thread.sleep(1000);
- Map map = (context.getBean("jdbcTemplate", JdbcTemplate.class)).queryForMap("SELECT * from BAZZ");
- assertEquals("Wrong id", message.getHeaders().getId().toString(), map.get("ID"));
- assertEquals("Wrong name", "bar", map.get("name"));
- Message> reply = output.receive(1000);
+
+ this.channel.send(message);
+
+ Message> reply = this.messagingTemplate.receive();
assertNotNull(reply);
@SuppressWarnings("unchecked")
Map payload = (Map) reply.getPayload();
assertEquals("bar", payload.get("name"));
+
+ Map map = this.jdbcTemplate.queryForMap("SELECT * from BAZZ");
+ assertEquals("Wrong id", message.getHeaders().getId().toString(), map.get("ID"));
+ assertEquals("Wrong name", "bar", map.get("name"));
}
@Test
public void testWithSelectQueryOnly() throws Exception {
- this.context = new ClassPathXmlApplicationContext("JdbcOutboundGatewayWithSelectTest-context.xml", this.getClass());
- Message> message = MessageBuilder.withPayload(Integer.valueOf(100)).build();
- MessageChannel requestChannel = context.getBean("request", MessageChannel.class);
- PollableChannel replyChannel = context.getBean("reply", PollableChannel.class);
+ setUp("JdbcOutboundGatewayWithSelectTest-context.xml", getClass());
+ Message> message = MessageBuilder.withPayload(100).build();
- requestChannel.send(message);
- Thread.sleep(1000);
+ this.channel.send(message);
@SuppressWarnings("unchecked")
- Message