Skip to content

Commit f154088

Browse files
committed
Rework most of JMS tests to JUnit 5
* Optimize some resources usage relying on a shared object * Remove some redundant `ActiveMqTestUtils`
1 parent 9761c7f commit f154088

File tree

44 files changed

+738
-1018
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+738
-1018
lines changed

spring-integration-jms/src/test/java/org/springframework/integration/jms/ActiveMQMultiContextTests.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2020 the original author or authors.
2+
* Copyright 2002-2021 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.
@@ -18,8 +18,8 @@
1818

1919
import org.apache.activemq.ActiveMQConnectionFactory;
2020
import org.apache.activemq.transport.vm.VMTransport;
21-
import org.junit.AfterClass;
22-
import org.junit.BeforeClass;
21+
import org.junit.jupiter.api.AfterAll;
22+
import org.junit.jupiter.api.BeforeAll;
2323

2424
import org.springframework.jms.connection.CachingConnectionFactory;
2525

@@ -29,26 +29,25 @@
2929
* connection is closed).
3030
*
3131
* @author Gary Russell
32+
* @author Artem Bilan
3233
*
3334
* @since 3.0
34-
*
3535
*/
3636
public abstract class ActiveMQMultiContextTests {
3737

3838
public static final ActiveMQConnectionFactory amqFactory =
3939
new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
4040

41-
public static final CachingConnectionFactory connectionFactory =
42-
new CachingConnectionFactory(amqFactory);
41+
public static final CachingConnectionFactory connectionFactory = new CachingConnectionFactory(amqFactory);
4342

44-
@BeforeClass
43+
@BeforeAll
4544
public static void startUp() throws Exception {
4645
amqFactory.setTrustAllPackages(true);
4746
connectionFactory.setCacheConsumers(false);
4847
connectionFactory.createConnection().close();
4948
}
5049

51-
@AfterClass
50+
@AfterAll
5251
public static void shutDown() {
5352
connectionFactory.resetConnection();
5453
}

spring-integration-jms/src/test/java/org/springframework/integration/jms/JmsInboundChannelAdapterTests-context.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@
1313

1414
<context:property-placeholder properties-ref="props"/>
1515

16+
<util:constant id="jmsConnectionFactory"
17+
static-field="org.springframework.integration.jms.ActiveMQMultiContextTests.amqFactory"/>
18+
1619
<util:properties id="props">
1720
<prop key="jmsAcknowledgeModeTransacted">transacted</prop>
1821
</util:properties>
1922

2023
<int-jms:inbound-channel-adapter channel="out" session-transacted="true"
21-
connection-factory="jmsConnectionFactory" destination-name="incatQ"
24+
destination-name="incatQ"
2225
receive-timeout="500" acknowledge="${jmsAcknowledgeModeTransacted}">
2326
<int:poller fixed-delay="500"/>
2427
</int-jms:inbound-channel-adapter>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2019 the original author or authors.
2+
* Copyright 2014-2021 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.
@@ -18,29 +18,22 @@
1818

1919
import static org.assertj.core.api.Assertions.assertThat;
2020

21-
import javax.jms.ConnectionFactory;
22-
23-
import org.junit.Test;
24-
import org.junit.runner.RunWith;
21+
import org.junit.jupiter.api.Test;
2522

2623
import org.springframework.beans.factory.annotation.Autowired;
27-
import org.springframework.context.annotation.Bean;
28-
import org.springframework.context.annotation.Configuration;
29-
import org.springframework.context.annotation.ImportResource;
30-
import org.springframework.integration.jms.JmsInboundChannelAdapterTests.CFConfig;
3124
import org.springframework.jms.core.JmsTemplate;
3225
import org.springframework.messaging.PollableChannel;
3326
import org.springframework.test.annotation.DirtiesContext;
34-
import org.springframework.test.context.ContextConfiguration;
35-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
27+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3628

3729
/**
3830
* @author Gary Russell
31+
* @author Artem Bilan
32+
*
3933
* @since 4.0
4034
*
4135
*/
42-
@ContextConfiguration(classes = CFConfig.class)
43-
@RunWith(SpringJUnit4ClassRunner.class)
36+
@SpringJUnitConfig
4437
@DirtiesContext
4538
public class JmsInboundChannelAdapterTests extends ActiveMQMultiContextTests {
4639

@@ -58,14 +51,4 @@ public void testTransactionalReceive() {
5851
*/
5952
}
6053

61-
@Configuration
62-
@ImportResource("org/springframework/integration/jms/JmsInboundChannelAdapterTests-context.xml")
63-
public static class CFConfig {
64-
65-
@Bean
66-
public ConnectionFactory jmsConnectionFactory() {
67-
return amqFactory;
68-
}
69-
}
70-
7154
}
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<beans xmlns="http://www.springframework.org/schema/beans"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
xmlns:int="http://www.springframework.org/schema/integration"
5-
xmlns:int-jms="http://www.springframework.org/schema/integration/jms"
6-
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:int="http://www.springframework.org/schema/integration"
5+
xmlns:int-jms="http://www.springframework.org/schema/integration/jms"
6+
xmlns:util="http://www.springframework.org/schema/util"
7+
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
78
http://www.springframework.org/schema/integration https://www.springframework.org/schema/integration/spring-integration.xsd
8-
http://www.springframework.org/schema/integration/jms https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd">
9+
http://www.springframework.org/schema/integration/jms https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
10+
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
11+
12+
<util:constant id="jmsConnectionFactory"
13+
static-field="org.springframework.integration.jms.ActiveMQMultiContextTests.amqFactory"/>
914

1015
<int-jms:message-driven-channel-adapter channel="toOut"
11-
connection-factory="jmsConnectionFactory"
12-
acknowledge="transacted"
13-
destination-name="outcatQ1"/>
16+
connection-factory="jmsConnectionFactory"
17+
acknowledge="transacted"
18+
destination-name="outcatQ1"/>
1419

15-
<int:publish-subscribe-channel id="toOut" />
20+
<int:publish-subscribe-channel id="toOut"/>
1621

1722
<int-jms:outbound-channel-adapter channel="toOut" order="1"
18-
connection-factory="jmsConnectionFactory"
19-
destination-name="outcatQ2"
20-
session-transacted="true" />
23+
connection-factory="jmsConnectionFactory"
24+
destination-name="outcatQ2"
25+
session-transacted="true"/>
2126

2227
<int:service-activator input-channel="toOut" order="2" ref="aborter"/>
2328

24-
<bean id="aborter" class="org.springframework.integration.jms.JmsOutboundChannelAdapterTests$Aborter" />
29+
<bean id="aborter" class="org.springframework.integration.jms.JmsOutboundChannelAdapterTests$Aborter"/>
2530

2631
</beans>

spring-integration-jms/src/test/java/org/springframework/integration/jms/JmsOutboundChannelAdapterTests.java

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2019 the original author or authors.
2+
* Copyright 2014-2021 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.
@@ -18,28 +18,21 @@
1818

1919
import static org.assertj.core.api.Assertions.assertThat;
2020

21-
import javax.jms.ConnectionFactory;
22-
23-
import org.junit.Test;
24-
import org.junit.runner.RunWith;
21+
import org.junit.jupiter.api.Test;
2522

2623
import org.springframework.beans.factory.annotation.Autowired;
27-
import org.springframework.context.annotation.Bean;
28-
import org.springframework.context.annotation.Configuration;
29-
import org.springframework.context.annotation.ImportResource;
30-
import org.springframework.integration.jms.JmsOutboundChannelAdapterTests.CFConfig;
3124
import org.springframework.jms.core.JmsTemplate;
3225
import org.springframework.test.annotation.DirtiesContext;
33-
import org.springframework.test.context.ContextConfiguration;
34-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
26+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3527

3628
/**
3729
* @author Gary Russell
30+
* @author Artem Bilan
31+
*
3832
* @since 4.0
3933
*
4034
*/
41-
@ContextConfiguration(classes = CFConfig.class)
42-
@RunWith(SpringJUnit4ClassRunner.class)
35+
@SpringJUnitConfig
4336
@DirtiesContext
4437
public class JmsOutboundChannelAdapterTests extends ActiveMQMultiContextTests {
4538

@@ -63,16 +56,6 @@ public void testTransactionalSend() {
6356
endpoint.stop();
6457
}
6558

66-
@Configuration
67-
@ImportResource("org/springframework/integration/jms/JmsOutboundChannelAdapterTests-context.xml")
68-
public static class CFConfig {
69-
70-
@Bean
71-
public ConnectionFactory jmsConnectionFactory() {
72-
return connectionFactory;
73-
}
74-
}
75-
7659
public static class Aborter {
7760

7861
private volatile boolean abort;
@@ -82,6 +65,7 @@ public void foo() {
8265
throw new RuntimeException("intentional");
8366
}
8467
}
68+
8569
}
8670

8771
}

spring-integration-jms/src/test/java/org/springframework/integration/jms/JmsOutboundGatewayTests.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2021 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.
@@ -42,14 +42,12 @@
4242
import org.apache.activemq.ActiveMQConnectionFactory;
4343
import org.apache.commons.logging.Log;
4444
import org.apache.commons.logging.LogFactory;
45-
import org.junit.Rule;
46-
import org.junit.Test;
45+
import org.junit.jupiter.api.Test;
4746

4847
import org.springframework.beans.factory.BeanFactory;
4948
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
5049
import org.springframework.integration.channel.QueueChannel;
5150
import org.springframework.integration.jms.JmsOutboundGateway.ReplyContainerProperties;
52-
import org.springframework.integration.test.rule.Log4j2LevelAdjuster;
5351
import org.springframework.integration.test.util.TestUtils;
5452
import org.springframework.integration.util.ErrorHandlingTaskExecutor;
5553
import org.springframework.jms.JmsException;
@@ -70,11 +68,6 @@ public class JmsOutboundGatewayTests extends ActiveMQMultiContextTests {
7068

7169
private final Log logger = LogFactory.getLog(this.getClass());
7270

73-
@Rule
74-
public Log4j2LevelAdjuster adjuster =
75-
Log4j2LevelAdjuster.trace()
76-
.categories(true, "org.springframework.jms", "org.apache");
77-
7871
@Test
7972
public void testContainerBeanNameWhenNoGatewayBeanName() {
8073
JmsOutboundGateway gateway = new JmsOutboundGateway();
@@ -98,7 +91,7 @@ public void testReplyContainerRecovery() throws Exception {
9891
gateway.setRequestDestinationName("foo");
9992
gateway.setUseReplyContainer(true);
10093
ReplyContainerProperties replyContainerProperties = new ReplyContainerProperties();
101-
final List<Throwable> errors = new ArrayList<Throwable>();
94+
final List<Throwable> errors = new ArrayList<>();
10295
ExecutorService exec = Executors.newFixedThreadPool(10);
10396
ErrorHandlingTaskExecutor errorHandlingTaskExecutor =
10497
new ErrorHandlingTaskExecutor(exec, t -> {
@@ -162,7 +155,7 @@ public void testReplyContainerRecovery() throws Exception {
162155
}
163156

164157
@Test
165-
public void testConnectionBreakOnReplyMessageIdCorrelation() throws Exception {
158+
public void testConnectionBreakOnReplyMessageIdCorrelation() {
166159
CachingConnectionFactory connectionFactory1 = new CachingConnectionFactory(
167160
new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"));
168161
connectionFactory1.setCacheConsumers(false);
@@ -179,7 +172,7 @@ public void testConnectionBreakOnReplyMessageIdCorrelation() throws Exception {
179172
gateway.afterPropertiesSet();
180173
gateway.start();
181174
ExecutorService exec = Executors.newSingleThreadExecutor();
182-
exec.execute(() -> gateway.handleMessage(new GenericMessage<String>("foo")));
175+
exec.execute(() -> gateway.handleMessage(new GenericMessage<>("foo")));
183176
CachingConnectionFactory connectionFactory2 = new CachingConnectionFactory(
184177
new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"));
185178
connectionFactory2.setCacheConsumers(false);
@@ -205,7 +198,7 @@ public void testConnectionBreakOnReplyMessageIdCorrelation() throws Exception {
205198
}
206199

207200
@Test
208-
public void testConnectionBreakOnReplyCustomCorrelation() throws Exception {
201+
public void testConnectionBreakOnReplyCustomCorrelation() {
209202
CachingConnectionFactory connectionFactory1 = new CachingConnectionFactory(
210203
new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"));
211204
connectionFactory1.setCacheConsumers(false);
@@ -223,7 +216,7 @@ public void testConnectionBreakOnReplyCustomCorrelation() throws Exception {
223216
gateway.afterPropertiesSet();
224217
gateway.start();
225218
ExecutorService exec = Executors.newSingleThreadExecutor();
226-
exec.execute(() -> gateway.handleMessage(new GenericMessage<String>("foo")));
219+
exec.execute(() -> gateway.handleMessage(new GenericMessage<>("foo")));
227220
CachingConnectionFactory connectionFactory2 = new CachingConnectionFactory(
228221
new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"));
229222
connectionFactory2.setCacheConsumers(false);

spring-integration-jms/src/test/java/org/springframework/integration/jms/JmsOutboundInsideChainTests-context.xml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<beans xmlns="http://www.springframework.org/schema/beans"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
xmlns:int="http://www.springframework.org/schema/integration"
5-
xmlns:jms="http://www.springframework.org/schema/integration/jms"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:int="http://www.springframework.org/schema/integration"
5+
xmlns:jms="http://www.springframework.org/schema/integration/jms"
6+
xmlns:util="http://www.springframework.org/schema/util"
67
xsi:schemaLocation="http://www.springframework.org/schema/beans
78
https://www.springframework.org/schema/beans/spring-beans.xsd
89
http://www.springframework.org/schema/integration
910
https://www.springframework.org/schema/integration/spring-integration.xsd
10-
http://www.springframework.org/schema/integration/jms https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd">
11+
http://www.springframework.org/schema/integration/jms https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
12+
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
1113

1214
<int:channel id="receiveChannel">
1315
<int:queue/>
@@ -44,8 +46,7 @@
4446
<constructor-arg value="test.queue2"/>
4547
</bean>
4648

47-
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
48-
<property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
49-
</bean>
49+
<util:constant id="jmsConnectionFactory"
50+
static-field="org.springframework.integration.jms.ActiveMQMultiContextTests.amqFactory"/>
5051

5152
</beans>

spring-integration-jms/src/test/java/org/springframework/integration/jms/JmsOutboundInsideChainTests.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2021 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.
@@ -18,26 +18,21 @@
1818

1919
import static org.assertj.core.api.Assertions.assertThat;
2020

21-
import org.junit.Test;
22-
import org.junit.runner.RunWith;
21+
import org.junit.jupiter.api.Test;
2322

2423
import org.springframework.beans.factory.annotation.Autowired;
2524
import org.springframework.integration.support.MessageBuilder;
2625
import org.springframework.messaging.Message;
2726
import org.springframework.messaging.MessageChannel;
2827
import org.springframework.messaging.PollableChannel;
2928
import org.springframework.test.annotation.DirtiesContext;
30-
import org.springframework.test.context.ContextConfiguration;
31-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
29+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3230

3331
/**
34-
* //INT-2275
35-
*
3632
* @author Artem Bilan
3733
* @author Gary Russell
3834
*/
39-
@RunWith(SpringJUnit4ClassRunner.class)
40-
@ContextConfiguration
35+
@SpringJUnitConfig
4136
@DirtiesContext
4237
public class JmsOutboundInsideChainTests extends ActiveMQMultiContextTests {
4338

0 commit comments

Comments
 (0)