Use try-with-resources language construct where feasible
Closes gh-2063 Co-authored-by: igor-suhorukov <igor.suhorukov@gmail.com>
This commit is contained in:
parent
456d2c46e3
commit
8099fc8178
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -146,13 +146,9 @@ public class ConfigurableMimeFileTypeMap extends FileTypeMap implements Initiali
|
|||
protected FileTypeMap createFileTypeMap(@Nullable Resource mappingLocation, @Nullable String[] mappings) throws IOException {
|
||||
MimetypesFileTypeMap fileTypeMap = null;
|
||||
if (mappingLocation != null) {
|
||||
InputStream is = mappingLocation.getInputStream();
|
||||
try {
|
||||
try (InputStream is = mappingLocation.getInputStream()) {
|
||||
fileTypeMap = new MimetypesFileTypeMap(is);
|
||||
}
|
||||
finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
else {
|
||||
fileTypeMap = new MimetypesFileTypeMap();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -101,10 +101,7 @@ public class JCacheJavaConfigTests extends AbstractJCacheAnnotationTests {
|
|||
|
||||
@Test
|
||||
public void exceptionCacheResolverLazilyRequired() {
|
||||
ConfigurableApplicationContext context =
|
||||
new AnnotationConfigApplicationContext(NoExceptionCacheResolverConfig.class);
|
||||
|
||||
try {
|
||||
try (ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(NoExceptionCacheResolverConfig.class)) {
|
||||
DefaultJCacheOperationSource cos = context.getBean(DefaultJCacheOperationSource.class);
|
||||
assertThat(cos.getCacheResolver()).isSameAs(context.getBean("cacheResolver"));
|
||||
|
||||
|
|
@ -115,9 +112,6 @@ public class JCacheJavaConfigTests extends AbstractJCacheAnnotationTests {
|
|||
assertThatIllegalStateException().isThrownBy(() ->
|
||||
service.cacheWithException("test", false));
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -295,40 +295,31 @@ public class QuartzSupportTests {
|
|||
|
||||
@Test // SPR-772
|
||||
public void multipleSchedulers() throws Exception {
|
||||
ClassPathXmlApplicationContext ctx = context("multipleSchedulers.xml");
|
||||
try {
|
||||
try (ClassPathXmlApplicationContext ctx = context("multipleSchedulers.xml")) {
|
||||
Scheduler scheduler1 = (Scheduler) ctx.getBean("scheduler1");
|
||||
Scheduler scheduler2 = (Scheduler) ctx.getBean("scheduler2");
|
||||
assertThat(scheduler2).isNotSameAs(scheduler1);
|
||||
assertThat(scheduler1.getSchedulerName()).isEqualTo("quartz1");
|
||||
assertThat(scheduler2.getSchedulerName()).isEqualTo("quartz2");
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test // SPR-16884
|
||||
public void multipleSchedulersWithQuartzProperties() throws Exception {
|
||||
ClassPathXmlApplicationContext ctx = context("multipleSchedulersWithQuartzProperties.xml");
|
||||
try {
|
||||
try (ClassPathXmlApplicationContext ctx = context("multipleSchedulersWithQuartzProperties.xml")) {
|
||||
Scheduler scheduler1 = (Scheduler) ctx.getBean("scheduler1");
|
||||
Scheduler scheduler2 = (Scheduler) ctx.getBean("scheduler2");
|
||||
assertThat(scheduler2).isNotSameAs(scheduler1);
|
||||
assertThat(scheduler1.getSchedulerName()).isEqualTo("quartz1");
|
||||
assertThat(scheduler2.getSchedulerName()).isEqualTo("quartz2");
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnabledForTestGroups(PERFORMANCE)
|
||||
public void twoAnonymousMethodInvokingJobDetailFactoryBeans() throws Exception {
|
||||
ClassPathXmlApplicationContext ctx = context("multipleAnonymousMethodInvokingJobDetailFB.xml");
|
||||
Thread.sleep(3000);
|
||||
try {
|
||||
try (ClassPathXmlApplicationContext ctx = context("multipleAnonymousMethodInvokingJobDetailFB.xml")) {
|
||||
QuartzTestBean exportService = (QuartzTestBean) ctx.getBean("exportService");
|
||||
QuartzTestBean importService = (QuartzTestBean) ctx.getBean("importService");
|
||||
|
||||
|
|
@ -337,17 +328,13 @@ public class QuartzSupportTests {
|
|||
assertThat(importService.getImportCount()).as("doImport not called on importService").isEqualTo(2);
|
||||
assertThat(importService.getExportCount()).as("doExport called on importService").isEqualTo(0);
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnabledForTestGroups(PERFORMANCE)
|
||||
public void schedulerAccessorBean() throws Exception {
|
||||
ClassPathXmlApplicationContext ctx = context("schedulerAccessorBean.xml");
|
||||
Thread.sleep(3000);
|
||||
try {
|
||||
try (ClassPathXmlApplicationContext ctx = context("schedulerAccessorBean.xml")) {
|
||||
QuartzTestBean exportService = (QuartzTestBean) ctx.getBean("exportService");
|
||||
QuartzTestBean importService = (QuartzTestBean) ctx.getBean("importService");
|
||||
|
||||
|
|
@ -356,9 +343,6 @@ public class QuartzSupportTests {
|
|||
assertThat(importService.getImportCount()).as("doImport not called on importService").isEqualTo(2);
|
||||
assertThat(importService.getExportCount()).as("doExport called on importService").isEqualTo(0);
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -387,9 +371,9 @@ public class QuartzSupportTests {
|
|||
|
||||
@Test
|
||||
public void schedulerRepositoryExposure() throws Exception {
|
||||
ClassPathXmlApplicationContext ctx = context("schedulerRepositoryExposure.xml");
|
||||
assertThat(ctx.getBean("scheduler")).isSameAs(SchedulerRepository.getInstance().lookup("myScheduler"));
|
||||
ctx.close();
|
||||
try (ClassPathXmlApplicationContext ctx = context("schedulerRepositoryExposure.xml")) {
|
||||
assertThat(ctx.getBean("scheduler")).isSameAs(SchedulerRepository.getInstance().lookup("myScheduler"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -401,19 +385,15 @@ public class QuartzSupportTests {
|
|||
DummyJob.param = 0;
|
||||
DummyJob.count = 0;
|
||||
|
||||
ClassPathXmlApplicationContext ctx = context("databasePersistence.xml");
|
||||
JdbcTemplate jdbcTemplate = new JdbcTemplate(ctx.getBean(DataSource.class));
|
||||
assertThat(jdbcTemplate.queryForList("SELECT * FROM qrtz_triggers").isEmpty()).as("No triggers were persisted").isFalse();
|
||||
try (ClassPathXmlApplicationContext ctx = context("databasePersistence.xml")) {
|
||||
JdbcTemplate jdbcTemplate = new JdbcTemplate(ctx.getBean(DataSource.class));
|
||||
assertThat(jdbcTemplate.queryForList("SELECT * FROM qrtz_triggers").isEmpty()).as("No triggers were persisted").isFalse();
|
||||
|
||||
/*
|
||||
Thread.sleep(3000);
|
||||
try {
|
||||
assertTrue("DummyJob should have been executed at least once.", DummyJob.count > 0);
|
||||
/*
|
||||
Thread.sleep(3000);
|
||||
assertTrue("DummyJob should have been executed at least once.", DummyJob.count > 0);
|
||||
*/
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
private ClassPathXmlApplicationContext context(String path) {
|
||||
|
|
|
|||
|
|
@ -123,5 +123,4 @@ public abstract class AbstractValueAdaptingCache implements Cache {
|
|||
return (storeValue != null ? new SimpleValueWrapper(fromStoreValue(storeValue)) : null);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -173,13 +173,9 @@ class XmlBeanFactoryTests {
|
|||
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(xbf);
|
||||
|
||||
reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE);
|
||||
InputStream inputStream = getClass().getResourceAsStream(REFTYPES_CONTEXT.getPath());
|
||||
try {
|
||||
try (InputStream inputStream = getClass().getResourceAsStream(REFTYPES_CONTEXT.getPath())) {
|
||||
reader.loadBeanDefinitions(new InputSource(inputStream));
|
||||
}
|
||||
finally {
|
||||
inputStream.close();
|
||||
}
|
||||
|
||||
// Let's create the outer bean named "innerBean",
|
||||
// to check whether it doesn't create any conflicts
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -77,7 +77,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
|
||||
|
||||
@Test
|
||||
public void testRegisterNullNotificationListenerType() throws Exception {
|
||||
void testRegisterNullNotificationListenerType() throws Exception {
|
||||
Map<String, NotificationListener> listeners = new HashMap<>();
|
||||
// put null in as a value...
|
||||
listeners.put("*", null);
|
||||
|
|
@ -88,7 +88,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testRegisterNotificationListenerForNonExistentMBean() throws Exception {
|
||||
void testRegisterNotificationListenerForNonExistentMBean() throws Exception {
|
||||
Map<String, NotificationListener> listeners = new HashMap<>();
|
||||
NotificationListener dummyListener = new NotificationListener() {
|
||||
@Override
|
||||
|
|
@ -108,7 +108,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testWithSuppliedMBeanServer() throws Exception {
|
||||
void testWithSuppliedMBeanServer() throws Exception {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setBeans(getBeanMap());
|
||||
exporter.setServer(server);
|
||||
|
|
@ -123,7 +123,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testUserCreatedMBeanRegWithDynamicMBean() throws Exception {
|
||||
void testUserCreatedMBeanRegWithDynamicMBean() throws Exception {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("spring:name=dynBean", new TestDynamicMBean());
|
||||
|
||||
|
|
@ -146,9 +146,8 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testAutodetectMBeans() throws Exception {
|
||||
ConfigurableApplicationContext ctx = load("autodetectMBeans.xml");
|
||||
try {
|
||||
void testAutodetectMBeans() throws Exception {
|
||||
try (ConfigurableApplicationContext ctx = load("autodetectMBeans.xml")) {
|
||||
ctx.getBean("exporter");
|
||||
MBeanServer server = ctx.getBean("server", MBeanServer.class);
|
||||
ObjectInstance instance = server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean=true"));
|
||||
|
|
@ -158,15 +157,11 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
instance = server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean3=true"));
|
||||
assertThat(instance).isNotNull();
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAutodetectWithExclude() throws Exception {
|
||||
ConfigurableApplicationContext ctx = load("autodetectMBeans.xml");
|
||||
try {
|
||||
void testAutodetectWithExclude() throws Exception {
|
||||
try (ConfigurableApplicationContext ctx = load("autodetectMBeans.xml")) {
|
||||
ctx.getBean("exporter");
|
||||
MBeanServer server = ctx.getBean("server", MBeanServer.class);
|
||||
ObjectInstance instance = server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean=true"));
|
||||
|
|
@ -175,15 +170,11 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
assertThatExceptionOfType(InstanceNotFoundException.class).isThrownBy(() ->
|
||||
server.getObjectInstance(ObjectNameManager.getInstance("spring:mbean=false")));
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAutodetectLazyMBeans() throws Exception {
|
||||
ConfigurableApplicationContext ctx = load("autodetectLazyMBeans.xml");
|
||||
try {
|
||||
void testAutodetectLazyMBeans() throws Exception {
|
||||
try (ConfigurableApplicationContext ctx = load("autodetectLazyMBeans.xml")) {
|
||||
ctx.getBean("exporter");
|
||||
MBeanServer server = ctx.getBean("server", MBeanServer.class);
|
||||
|
||||
|
|
@ -197,24 +188,17 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
name = (String) server.getAttribute(oname, "Name");
|
||||
assertThat(name).as("Invalid name returned").isEqualTo("Juergen Hoeller");
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAutodetectNoMBeans() throws Exception {
|
||||
ConfigurableApplicationContext ctx = load("autodetectNoMBeans.xml");
|
||||
try {
|
||||
void testAutodetectNoMBeans() throws Exception {
|
||||
try (ConfigurableApplicationContext ctx = load("autodetectNoMBeans.xml")) {
|
||||
ctx.getBean("exporter");
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithMBeanExporterListeners() throws Exception {
|
||||
void testWithMBeanExporterListeners() throws Exception {
|
||||
MockMBeanExporterListener listener1 = new MockMBeanExporterListener();
|
||||
MockMBeanExporterListener listener2 = new MockMBeanExporterListener();
|
||||
|
||||
|
|
@ -230,7 +214,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testExportJdkProxy() throws Exception {
|
||||
void testExportJdkProxy() throws Exception {
|
||||
JmxTestBean bean = new JmxTestBean();
|
||||
bean.setName("Rob Harrop");
|
||||
|
||||
|
|
@ -256,7 +240,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testSelfNaming() throws Exception {
|
||||
void testSelfNaming() throws Exception {
|
||||
ObjectName objectName = ObjectNameManager.getInstance(OBJECT_NAME);
|
||||
SelfNamingTestBean testBean = new SelfNamingTestBean();
|
||||
testBean.setObjectName(objectName);
|
||||
|
|
@ -275,7 +259,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testRegisterIgnoreExisting() throws Exception {
|
||||
void testRegisterIgnoreExisting() throws Exception {
|
||||
ObjectName objectName = ObjectNameManager.getInstance(OBJECT_NAME);
|
||||
|
||||
Person preRegistered = new Person();
|
||||
|
|
@ -309,7 +293,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testRegisterReplaceExisting() throws Exception {
|
||||
void testRegisterReplaceExisting() throws Exception {
|
||||
ObjectName objectName = ObjectNameManager.getInstance(OBJECT_NAME);
|
||||
|
||||
Person preRegistered = new Person();
|
||||
|
|
@ -338,7 +322,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testWithExposeClassLoader() throws Exception {
|
||||
void testWithExposeClassLoader() throws Exception {
|
||||
String name = "Rob Harrop";
|
||||
String otherName = "Juergen Hoeller";
|
||||
|
||||
|
|
@ -368,7 +352,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testBonaFideMBeanIsNotExportedWhenAutodetectIsTotallyTurnedOff() throws Exception {
|
||||
void testBonaFideMBeanIsNotExportedWhenAutodetectIsTotallyTurnedOff() throws Exception {
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(Person.class);
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition("^&_invalidObjectName_(*", builder.getBeanDefinition());
|
||||
|
|
@ -388,7 +372,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testOnlyBonaFideMBeanIsExportedWhenAutodetectIsMBeanOnly() throws Exception {
|
||||
void testOnlyBonaFideMBeanIsExportedWhenAutodetectIsMBeanOnly() throws Exception {
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(Person.class);
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition(OBJECT_NAME, builder.getBeanDefinition());
|
||||
|
|
@ -409,7 +393,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testBonaFideMBeanAndRegularBeanExporterWithAutodetectAll() throws Exception {
|
||||
void testBonaFideMBeanAndRegularBeanExporterWithAutodetectAll() throws Exception {
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(Person.class);
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition(OBJECT_NAME, builder.getBeanDefinition());
|
||||
|
|
@ -433,7 +417,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testBonaFideMBeanIsNotExportedWithAutodetectAssembler() throws Exception {
|
||||
void testBonaFideMBeanIsNotExportedWithAutodetectAssembler() throws Exception {
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(Person.class);
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition(OBJECT_NAME, builder.getBeanDefinition());
|
||||
|
|
@ -456,7 +440,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
* Want to ensure that said MBean is not exported twice.
|
||||
*/
|
||||
@Test
|
||||
public void testBonaFideMBeanExplicitlyExportedAndAutodetectionIsOn() throws Exception {
|
||||
void testBonaFideMBeanExplicitlyExportedAndAutodetectionIsOn() throws Exception {
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(Person.class);
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition(OBJECT_NAME, builder.getBeanDefinition());
|
||||
|
|
@ -475,42 +459,42 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testSetAutodetectModeToOutOfRangeNegativeValue() {
|
||||
void testSetAutodetectModeToOutOfRangeNegativeValue() {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
assertThatIllegalArgumentException().isThrownBy(() ->
|
||||
exporter.setAutodetectMode(-1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAutodetectModeToOutOfRangePositiveValue() {
|
||||
void testSetAutodetectModeToOutOfRangePositiveValue() {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
assertThatIllegalArgumentException().isThrownBy(() ->
|
||||
exporter.setAutodetectMode(5));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAutodetectModeNameToAnEmptyString() {
|
||||
void testSetAutodetectModeNameToAnEmptyString() {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
assertThatIllegalArgumentException().isThrownBy(() ->
|
||||
exporter.setAutodetectModeName(""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAutodetectModeNameToAWhitespacedString() {
|
||||
void testSetAutodetectModeNameToAWhitespacedString() {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
assertThatIllegalArgumentException().isThrownBy(() ->
|
||||
exporter.setAutodetectModeName(" \t"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAutodetectModeNameToARubbishValue() {
|
||||
void testSetAutodetectModeNameToARubbishValue() {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
assertThatIllegalArgumentException().isThrownBy(() ->
|
||||
exporter.setAutodetectModeName("That Hansel is... *sssooo* hot right now!"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNotRunningInBeanFactoryAndPassedBeanNameToExport() throws Exception {
|
||||
void testNotRunningInBeanFactoryAndPassedBeanNameToExport() throws Exception {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
Map<String, Object> beans = new HashMap<>();
|
||||
beans.put(OBJECT_NAME, "beanName");
|
||||
|
|
@ -520,7 +504,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testNotRunningInBeanFactoryAndAutodetectionIsOn() throws Exception {
|
||||
void testNotRunningInBeanFactoryAndAutodetectionIsOn() throws Exception {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setAutodetectMode(MBeanExporter.AUTODETECT_ALL);
|
||||
assertThatExceptionOfType(MBeanExportException.class).isThrownBy(() ->
|
||||
|
|
@ -528,7 +512,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test // SPR-2158
|
||||
public void testMBeanIsNotUnregisteredSpuriouslyIfSomeExternalProcessHasUnregisteredMBean() throws Exception {
|
||||
void testMBeanIsNotUnregisteredSpuriouslyIfSomeExternalProcessHasUnregisteredMBean() throws Exception {
|
||||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setBeans(getBeanMap());
|
||||
exporter.setServer(this.server);
|
||||
|
|
@ -544,7 +528,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test // SPR-3302
|
||||
public void testBeanNameCanBeUsedInNotificationListenersMap() throws Exception {
|
||||
void testBeanNameCanBeUsedInNotificationListenersMap() throws Exception {
|
||||
String beanName = "charlesDexterWard";
|
||||
BeanDefinitionBuilder testBean = BeanDefinitionBuilder.rootBeanDefinition(JmxTestBean.class);
|
||||
|
||||
|
|
@ -566,7 +550,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testWildcardCanBeUsedInNotificationListenersMap() throws Exception {
|
||||
void testWildcardCanBeUsedInNotificationListenersMap() throws Exception {
|
||||
String beanName = "charlesDexterWard";
|
||||
BeanDefinitionBuilder testBean = BeanDefinitionBuilder.rootBeanDefinition(JmxTestBean.class);
|
||||
|
||||
|
|
@ -588,7 +572,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test // SPR-3625
|
||||
public void testMBeanIsUnregisteredForRuntimeExceptionDuringInitialization() throws Exception {
|
||||
void testMBeanIsUnregisteredForRuntimeExceptionDuringInitialization() throws Exception {
|
||||
BeanDefinitionBuilder builder1 = BeanDefinitionBuilder.rootBeanDefinition(Person.class);
|
||||
BeanDefinitionBuilder builder2 = BeanDefinitionBuilder
|
||||
.rootBeanDefinition(RuntimeExceptionThrowingConstructorBean.class);
|
||||
|
|
@ -618,7 +602,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testIgnoreBeanName() throws MalformedObjectNameException {
|
||||
void testIgnoreBeanName() throws MalformedObjectNameException {
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
String firstBeanName = "spring:type=TestBean";
|
||||
factory.registerSingleton(firstBeanName, new TestBean("test"));
|
||||
|
|
@ -640,7 +624,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testRegisterFactoryBean() throws MalformedObjectNameException {
|
||||
void testRegisterFactoryBean() throws MalformedObjectNameException {
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition("spring:type=FactoryBean", new RootBeanDefinition(ProperSomethingFactoryBean.class));
|
||||
|
||||
|
|
@ -655,7 +639,7 @@ public class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testIgnoreNullObjectFromFactoryBean() throws MalformedObjectNameException {
|
||||
void testIgnoreNullObjectFromFactoryBean() throws MalformedObjectNameException {
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
factory.registerBeanDefinition("spring:type=FactoryBean", new RootBeanDefinition(NullSomethingFactoryBean.class));
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -31,30 +31,23 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
* @author Rob Harrop
|
||||
* @author Juergen Hoeller
|
||||
*/
|
||||
public class AnnotationLazyInitMBeanTests {
|
||||
class AnnotationLazyInitMBeanTests {
|
||||
|
||||
@Test
|
||||
public void lazyNaming() throws Exception {
|
||||
ConfigurableApplicationContext ctx =
|
||||
new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/lazyNaming.xml");
|
||||
try {
|
||||
void lazyNaming() throws Exception {
|
||||
try (ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/lazyNaming.xml")) {
|
||||
MBeanServer server = (MBeanServer) ctx.getBean("server");
|
||||
ObjectName oname = ObjectNameManager.getInstance("bean:name=testBean4");
|
||||
assertThat(server.getObjectInstance(oname)).isNotNull();
|
||||
String name = (String) server.getAttribute(oname, "Name");
|
||||
assertThat(name).as("Invalid name returned").isEqualTo("TEST");
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lazyAssembling() throws Exception {
|
||||
void lazyAssembling() throws Exception {
|
||||
System.setProperty("domain", "bean");
|
||||
ConfigurableApplicationContext ctx =
|
||||
new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/lazyAssembling.xml");
|
||||
try {
|
||||
try (ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/lazyAssembling.xml")) {
|
||||
MBeanServer server = (MBeanServer) ctx.getBean("server");
|
||||
|
||||
ObjectName oname = ObjectNameManager.getInstance("bean:name=testBean4");
|
||||
|
|
@ -79,24 +72,18 @@ public class AnnotationLazyInitMBeanTests {
|
|||
}
|
||||
finally {
|
||||
System.clearProperty("domain");
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void componentScan() throws Exception {
|
||||
ConfigurableApplicationContext ctx =
|
||||
new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/componentScan.xml");
|
||||
try {
|
||||
void componentScan() throws Exception {
|
||||
try (ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("org/springframework/jmx/export/annotation/componentScan.xml")) {
|
||||
MBeanServer server = (MBeanServer) ctx.getBean("server");
|
||||
ObjectName oname = ObjectNameManager.getInstance("bean:name=testBean4");
|
||||
assertThat(server.getObjectInstance(oname)).isNotNull();
|
||||
String name = (String) server.getAttribute(oname, "Name");
|
||||
assertThat(name).isNull();
|
||||
}
|
||||
finally {
|
||||
ctx.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -62,13 +62,9 @@ public final class SpringProperties {
|
|||
ClassLoader.getSystemResource(PROPERTIES_RESOURCE_LOCATION));
|
||||
if (url != null) {
|
||||
logger.debug("Found 'spring.properties' file in local classpath");
|
||||
InputStream is = url.openStream();
|
||||
try {
|
||||
try (InputStream is = url.openStream()) {
|
||||
localProperties.load(is);
|
||||
}
|
||||
finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IOException ex) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -90,8 +90,7 @@ public class XmlValidationModeDetector {
|
|||
*/
|
||||
public int detectValidationMode(InputStream inputStream) throws IOException {
|
||||
// Peek into the file to look for DOCTYPE.
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
|
||||
try {
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
|
||||
boolean isDtdValidated = false;
|
||||
String content;
|
||||
while ((content = reader.readLine()) != null) {
|
||||
|
|
@ -115,9 +114,6 @@ public class XmlValidationModeDetector {
|
|||
// Leave the decision up to the caller.
|
||||
return VALIDATION_AUTO;
|
||||
}
|
||||
finally {
|
||||
reader.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -291,19 +291,12 @@ class PathResourceTests {
|
|||
@Test
|
||||
void getReadableByteChannel() throws IOException {
|
||||
PathResource resource = new PathResource(TEST_FILE);
|
||||
ReadableByteChannel channel = null;
|
||||
try {
|
||||
channel = resource.readableChannel();
|
||||
try (ReadableByteChannel channel = resource.readableChannel()) {
|
||||
ByteBuffer buffer = ByteBuffer.allocate((int) resource.contentLength());
|
||||
channel.read(buffer);
|
||||
buffer.rewind();
|
||||
assertThat(buffer.limit()).isGreaterThan(0);
|
||||
}
|
||||
finally {
|
||||
if (channel != null) {
|
||||
channel.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -330,16 +323,9 @@ class PathResourceTests {
|
|||
Files.createFile(testPath);
|
||||
PathResource resource = new PathResource(testPath);
|
||||
ByteBuffer buffer = ByteBuffer.wrap("test".getBytes(StandardCharsets.UTF_8));
|
||||
WritableByteChannel channel = null;
|
||||
try {
|
||||
channel = resource.writableChannel();
|
||||
try (WritableByteChannel channel = resource.writableChannel()) {
|
||||
channel.write(buffer);
|
||||
}
|
||||
finally {
|
||||
if (channel != null) {
|
||||
channel.close();
|
||||
}
|
||||
}
|
||||
assertThat(resource.contentLength()).isEqualTo(4L);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -298,19 +298,12 @@ class ResourceTests {
|
|||
@Test
|
||||
void readableChannel() throws IOException {
|
||||
Resource resource = new FileSystemResource(getClass().getResource("Resource.class").getFile());
|
||||
ReadableByteChannel channel = null;
|
||||
try {
|
||||
channel = resource.readableChannel();
|
||||
try (ReadableByteChannel channel = resource.readableChannel()) {
|
||||
ByteBuffer buffer = ByteBuffer.allocate((int) resource.contentLength());
|
||||
channel.read(buffer);
|
||||
buffer.rewind();
|
||||
assertThat(buffer.limit() > 0).isTrue();
|
||||
}
|
||||
finally {
|
||||
if (channel != null) {
|
||||
channel.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -346,17 +346,12 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
byte[] bytes = {'a', 'b', 'c'};
|
||||
buffer.write(bytes);
|
||||
|
||||
InputStream inputStream = buffer.asInputStream(true);
|
||||
|
||||
try {
|
||||
try (InputStream inputStream = buffer.asInputStream(true)) {
|
||||
byte[] result = new byte[3];
|
||||
int len = inputStream.read(result);
|
||||
assertThat(len).isEqualTo(3);
|
||||
assertThat(result).isEqualTo(bytes);
|
||||
}
|
||||
finally {
|
||||
inputStream.close();
|
||||
}
|
||||
|
||||
// AbstractDataBufferAllocatingTests.leakDetector will verify the buffer's release
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -75,19 +75,16 @@ class SocketUtilsTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("try")
|
||||
void findAvailableTcpPortWhenPortOnLoopbackInterfaceIsNotAvailable() throws Exception {
|
||||
int port = SocketUtils.findAvailableTcpPort();
|
||||
ServerSocket socket = ServerSocketFactory.getDefault().createServerSocket(port, 1, InetAddress.getByName("localhost"));
|
||||
try {
|
||||
try (ServerSocket socket = ServerSocketFactory.getDefault().createServerSocket(port, 1, InetAddress.getByName("localhost"))) {
|
||||
// will only look for the exact port
|
||||
assertThatIllegalStateException().isThrownBy(() ->
|
||||
SocketUtils.findAvailableTcpPort(port, port))
|
||||
.withMessageStartingWith("Could not find an available TCP port")
|
||||
.withMessageEndingWith("after 1 attempts");
|
||||
}
|
||||
finally {
|
||||
socket.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -152,19 +149,16 @@ class SocketUtilsTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("try")
|
||||
void findAvailableUdpPortWhenPortOnLoopbackInterfaceIsNotAvailable() throws Exception {
|
||||
int port = SocketUtils.findAvailableUdpPort();
|
||||
DatagramSocket socket = new DatagramSocket(port, InetAddress.getByName("localhost"));
|
||||
try {
|
||||
try (DatagramSocket socket = new DatagramSocket(port, InetAddress.getByName("localhost"))) {
|
||||
// will only look for the exact port
|
||||
assertThatIllegalStateException().isThrownBy(() ->
|
||||
SocketUtils.findAvailableUdpPort(port, port))
|
||||
.withMessageStartingWith("Could not find an available UDP port")
|
||||
.withMessageEndingWith("after 1 attempts");
|
||||
}
|
||||
finally {
|
||||
socket.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -70,14 +70,10 @@ public abstract class AbstractLobCreatingPreparedStatementCallback implements Pr
|
|||
|
||||
@Override
|
||||
public final Integer doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
|
||||
LobCreator lobCreator = this.lobHandler.getLobCreator();
|
||||
try {
|
||||
try (LobCreator lobCreator = this.lobHandler.getLobCreator()) {
|
||||
setValues(ps, lobCreator);
|
||||
return ps.executeUpdate();
|
||||
}
|
||||
finally {
|
||||
lobCreator.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -48,44 +48,44 @@ import static org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFacto
|
|||
* @author Sam Brannen
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
public class JdbcNamespaceIntegrationTests {
|
||||
class JdbcNamespaceIntegrationTests {
|
||||
|
||||
@Test
|
||||
@EnabledForTestGroups(LONG_RUNNING)
|
||||
public void createEmbeddedDatabase() throws Exception {
|
||||
void createEmbeddedDatabase() throws Exception {
|
||||
assertCorrectSetup("jdbc-config.xml", "dataSource", "h2DataSource", "derbyDataSource");
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnabledForTestGroups(LONG_RUNNING)
|
||||
public void createEmbeddedDatabaseAgain() throws Exception {
|
||||
void createEmbeddedDatabaseAgain() throws Exception {
|
||||
// If Derby isn't cleaned up properly this will fail...
|
||||
assertCorrectSetup("jdbc-config.xml", "derbyDataSource");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWithResourcePattern() throws Exception {
|
||||
void createWithResourcePattern() throws Exception {
|
||||
assertCorrectSetup("jdbc-config-pattern.xml", "dataSource");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWithAnonymousDataSourceAndDefaultDatabaseName() throws Exception {
|
||||
void createWithAnonymousDataSourceAndDefaultDatabaseName() throws Exception {
|
||||
assertCorrectSetupForSingleDataSource("jdbc-config-db-name-default-and-anonymous-datasource.xml",
|
||||
url -> url.endsWith(DEFAULT_DATABASE_NAME));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWithImplicitDatabaseName() throws Exception {
|
||||
void createWithImplicitDatabaseName() throws Exception {
|
||||
assertCorrectSetupForSingleDataSource("jdbc-config-db-name-implicit.xml", url -> url.endsWith("dataSource"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWithExplicitDatabaseName() throws Exception {
|
||||
void createWithExplicitDatabaseName() throws Exception {
|
||||
assertCorrectSetupForSingleDataSource("jdbc-config-db-name-explicit.xml", url -> url.endsWith("customDbName"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWithGeneratedDatabaseName() throws Exception {
|
||||
void createWithGeneratedDatabaseName() throws Exception {
|
||||
Predicate<String> urlPredicate = url -> url.startsWith("jdbc:hsqldb:mem:");
|
||||
urlPredicate.and(url -> !url.endsWith("dataSource"));
|
||||
urlPredicate.and(url -> !url.endsWith("shouldBeOverriddenByGeneratedName"));
|
||||
|
|
@ -93,19 +93,18 @@ public class JdbcNamespaceIntegrationTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void createWithEndings() throws Exception {
|
||||
void createWithEndings() throws Exception {
|
||||
assertCorrectSetupAndCloseContext("jdbc-initialize-endings-config.xml", 2, "dataSource");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWithEndingsNested() throws Exception {
|
||||
void createWithEndingsNested() throws Exception {
|
||||
assertCorrectSetupAndCloseContext("jdbc-initialize-endings-nested-config.xml", 2, "dataSource");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createAndDestroy() throws Exception {
|
||||
ClassPathXmlApplicationContext context = context("jdbc-destroy-config.xml");
|
||||
try {
|
||||
void createAndDestroy() throws Exception {
|
||||
try (ClassPathXmlApplicationContext context = context("jdbc-destroy-config.xml")) {
|
||||
DataSource dataSource = context.getBean(DataSource.class);
|
||||
JdbcTemplate template = new JdbcTemplate(dataSource);
|
||||
assertNumRowsInTestTable(template, 1);
|
||||
|
|
@ -114,15 +113,11 @@ public class JdbcNamespaceIntegrationTests {
|
|||
assertThatExceptionOfType(BadSqlGrammarException.class).isThrownBy(() ->
|
||||
assertNumRowsInTestTable(template, 1));
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createAndDestroyNestedWithHsql() throws Exception {
|
||||
ClassPathXmlApplicationContext context = context("jdbc-destroy-nested-config.xml");
|
||||
try {
|
||||
void createAndDestroyNestedWithHsql() throws Exception {
|
||||
try (ClassPathXmlApplicationContext context = context("jdbc-destroy-nested-config.xml")) {
|
||||
DataSource dataSource = context.getBean(DataSource.class);
|
||||
JdbcTemplate template = new JdbcTemplate(dataSource);
|
||||
assertNumRowsInTestTable(template, 1);
|
||||
|
|
@ -131,15 +126,11 @@ public class JdbcNamespaceIntegrationTests {
|
|||
assertThatExceptionOfType(BadSqlGrammarException.class).isThrownBy(() ->
|
||||
assertNumRowsInTestTable(template, 1));
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createAndDestroyNestedWithH2() throws Exception {
|
||||
ClassPathXmlApplicationContext context = context("jdbc-destroy-nested-config-h2.xml");
|
||||
try {
|
||||
void createAndDestroyNestedWithH2() throws Exception {
|
||||
try (ClassPathXmlApplicationContext context = context("jdbc-destroy-nested-config-h2.xml")) {
|
||||
DataSource dataSource = context.getBean(DataSource.class);
|
||||
JdbcTemplate template = new JdbcTemplate(dataSource);
|
||||
assertNumRowsInTestTable(template, 1);
|
||||
|
|
@ -148,13 +139,10 @@ public class JdbcNamespaceIntegrationTests {
|
|||
assertThatExceptionOfType(BadSqlGrammarException.class).isThrownBy(() ->
|
||||
assertNumRowsInTestTable(template, 1));
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void multipleDataSourcesHaveDifferentDatabaseNames() throws Exception {
|
||||
void multipleDataSourcesHaveDifferentDatabaseNames() throws Exception {
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
new XmlBeanDefinitionReader(factory).loadBeanDefinitions(new ClassPathResource(
|
||||
"jdbc-config-multiple-datasources.xml", getClass()));
|
||||
|
|
@ -163,12 +151,12 @@ public class JdbcNamespaceIntegrationTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void initializeWithCustomSeparator() throws Exception {
|
||||
void initializeWithCustomSeparator() throws Exception {
|
||||
assertCorrectSetupAndCloseContext("jdbc-initialize-custom-separator.xml", 2, "dataSource");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void embeddedWithCustomSeparator() throws Exception {
|
||||
void embeddedWithCustomSeparator() throws Exception {
|
||||
assertCorrectSetupAndCloseContext("jdbc-config-custom-separator.xml", 2, "dataSource");
|
||||
}
|
||||
|
||||
|
|
@ -192,8 +180,7 @@ public class JdbcNamespaceIntegrationTests {
|
|||
}
|
||||
|
||||
private void assertCorrectSetupAndCloseContext(String file, int count, String... dataSources) {
|
||||
ConfigurableApplicationContext context = context(file);
|
||||
try {
|
||||
try (ConfigurableApplicationContext context = context(file)) {
|
||||
for (String dataSourceName : dataSources) {
|
||||
DataSource dataSource = context.getBean(dataSourceName, DataSource.class);
|
||||
assertNumRowsInTestTable(new JdbcTemplate(dataSource), count);
|
||||
|
|
@ -202,23 +189,16 @@ public class JdbcNamespaceIntegrationTests {
|
|||
assertThat(adbDataSource.getUrl()).contains(dataSourceName);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
private void assertCorrectSetupForSingleDataSource(String file, Predicate<String> urlPredicate) {
|
||||
ConfigurableApplicationContext context = context(file);
|
||||
try {
|
||||
try (ConfigurableApplicationContext context = context(file)) {
|
||||
DataSource dataSource = context.getBean(DataSource.class);
|
||||
assertNumRowsInTestTable(new JdbcTemplate(dataSource), 1);
|
||||
assertThat(dataSource instanceof AbstractDriverBasedDataSource).isTrue();
|
||||
AbstractDriverBasedDataSource adbDataSource = (AbstractDriverBasedDataSource) dataSource;
|
||||
assertThat(urlPredicate.test(adbDataSource.getUrl())).isTrue();
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -53,10 +53,10 @@ import static org.mockito.Mockito.mock;
|
|||
* @author Stephane Nicoll
|
||||
* @author Juergen Hoeller
|
||||
*/
|
||||
public class JmsListenerAnnotationBeanPostProcessorTests {
|
||||
class JmsListenerAnnotationBeanPostProcessorTests {
|
||||
|
||||
@Test
|
||||
public void simpleMessageListener() throws Exception {
|
||||
void simpleMessageListener() throws Exception {
|
||||
ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(
|
||||
Config.class, SimpleMessageListenerTestBean.class);
|
||||
|
||||
|
|
@ -81,11 +81,8 @@ public class JmsListenerAnnotationBeanPostProcessorTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void metaAnnotationIsDiscovered() throws Exception {
|
||||
ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(
|
||||
Config.class, MetaAnnotationTestBean.class);
|
||||
|
||||
try {
|
||||
void metaAnnotationIsDiscovered() throws Exception {
|
||||
try (ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(Config.class, MetaAnnotationTestBean.class)) {
|
||||
JmsListenerContainerTestFactory factory = context.getBean(JmsListenerContainerTestFactory.class);
|
||||
assertThat(factory.getListenerContainers().size()).as("one container should have been registered").isEqualTo(1);
|
||||
|
||||
|
|
@ -97,16 +94,11 @@ public class JmsListenerAnnotationBeanPostProcessorTests {
|
|||
assertThat(methodEndpoint.getMostSpecificMethod()).isEqualTo(MetaAnnotationTestBean.class.getMethod("handleIt", String.class));
|
||||
assertThat(((AbstractJmsListenerEndpoint) endpoint).getDestination()).isEqualTo("metaTestQueue");
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendToAnnotationFoundOnInterfaceProxy() throws Exception {
|
||||
ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(
|
||||
Config.class, ProxyConfig.class, InterfaceProxyTestBean.class);
|
||||
try {
|
||||
void sendToAnnotationFoundOnInterfaceProxy() throws Exception {
|
||||
try (ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(Config.class, ProxyConfig.class, InterfaceProxyTestBean.class)) {
|
||||
JmsListenerContainerTestFactory factory = context.getBean(JmsListenerContainerTestFactory.class);
|
||||
assertThat(factory.getListenerContainers().size()).as("one container should have been registered").isEqualTo(1);
|
||||
|
||||
|
|
@ -124,16 +116,11 @@ public class JmsListenerAnnotationBeanPostProcessorTests {
|
|||
Object destination = ReflectionUtils.invokeMethod(method, endpoint);
|
||||
assertThat(destination).as("SendTo annotation not found on proxy").isEqualTo("foobar");
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendToAnnotationFoundOnCglibProxy() throws Exception {
|
||||
ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(
|
||||
Config.class, ProxyConfig.class, ClassProxyTestBean.class);
|
||||
try {
|
||||
void sendToAnnotationFoundOnCglibProxy() throws Exception {
|
||||
try (ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(Config.class, ProxyConfig.class, ClassProxyTestBean.class)) {
|
||||
JmsListenerContainerTestFactory factory = context.getBean(JmsListenerContainerTestFactory.class);
|
||||
assertThat(factory.getListenerContainers().size()).as("one container should have been registered").isEqualTo(1);
|
||||
|
||||
|
|
@ -151,14 +138,11 @@ public class JmsListenerAnnotationBeanPostProcessorTests {
|
|||
Object destination = ReflectionUtils.invokeMethod(method, endpoint);
|
||||
assertThat(destination).as("SendTo annotation not found on proxy").isEqualTo("foobar");
|
||||
}
|
||||
finally {
|
||||
context.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("resource")
|
||||
public void invalidProxy() {
|
||||
void invalidProxy() {
|
||||
assertThatExceptionOfType(BeanCreationException.class).isThrownBy(() ->
|
||||
new AnnotationConfigApplicationContext(Config.class, ProxyConfig.class, InvalidProxyTestBean.class))
|
||||
.withCauseInstanceOf(IllegalStateException.class)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -130,14 +130,10 @@ final class PersistenceUnitReader {
|
|||
Resource[] resources = this.resourcePatternResolver.getResources(location);
|
||||
for (Resource resource : resources) {
|
||||
resourceLocation = resource.toString();
|
||||
InputStream stream = resource.getInputStream();
|
||||
try {
|
||||
try (InputStream stream = resource.getInputStream()) {
|
||||
Document document = buildDocument(handler, stream);
|
||||
parseDocument(resource, document, infos);
|
||||
}
|
||||
finally {
|
||||
stream.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,13 +166,9 @@ public abstract class AbstractHttpInvokerRequestExecutor implements HttpInvokerR
|
|||
* @see #doWriteRemoteInvocation
|
||||
*/
|
||||
protected void writeRemoteInvocation(RemoteInvocation invocation, OutputStream os) throws IOException {
|
||||
ObjectOutputStream oos = new ObjectOutputStream(decorateOutputStream(os));
|
||||
try {
|
||||
try (ObjectOutputStream oos = new ObjectOutputStream(decorateOutputStream(os))) {
|
||||
doWriteRemoteInvocation(invocation, oos);
|
||||
}
|
||||
finally {
|
||||
oos.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -113,13 +113,9 @@ public class HttpInvokerServiceExporter extends RemoteInvocationSerializingExpor
|
|||
protected RemoteInvocation readRemoteInvocation(HttpServletRequest request, InputStream is)
|
||||
throws IOException, ClassNotFoundException {
|
||||
|
||||
ObjectInputStream ois = createObjectInputStream(decorateInputStream(request, is));
|
||||
try {
|
||||
try (ObjectInputStream ois = createObjectInputStream(decorateInputStream(request, is))) {
|
||||
return doReadRemoteInvocation(ois);
|
||||
}
|
||||
finally {
|
||||
ois.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -170,14 +166,10 @@ public class HttpInvokerServiceExporter extends RemoteInvocationSerializingExpor
|
|||
HttpServletRequest request, HttpServletResponse response, RemoteInvocationResult result, OutputStream os)
|
||||
throws IOException {
|
||||
|
||||
ObjectOutputStream oos =
|
||||
createObjectOutputStream(new FlushGuardedOutputStream(decorateOutputStream(request, response, os)));
|
||||
try {
|
||||
try (ObjectOutputStream oos =
|
||||
createObjectOutputStream(new FlushGuardedOutputStream(decorateOutputStream(request, response, os)))) {
|
||||
doWriteRemoteInvocationResult(result, oos);
|
||||
}
|
||||
finally {
|
||||
oos.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -71,13 +71,9 @@ public abstract class AbstractAsyncHttpRequestFactoryTests extends AbstractMockW
|
|||
assertThat(request.getMethod()).as("Invalid HTTP method").isEqualTo(HttpMethod.GET);
|
||||
assertThat(request.getURI()).as("Invalid HTTP URI").isEqualTo(uri);
|
||||
Future<ClientHttpResponse> futureResponse = request.executeAsync();
|
||||
ClientHttpResponse response = futureResponse.get();
|
||||
try {
|
||||
try (ClientHttpResponse response = futureResponse.get()) {
|
||||
assertThat(response.getStatusCode()).as("Invalid status code").isEqualTo(HttpStatus.NOT_FOUND);
|
||||
}
|
||||
finally {
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -102,13 +98,9 @@ public abstract class AbstractAsyncHttpRequestFactoryTests extends AbstractMockW
|
|||
throw new AssertionError(ex.getMessage(), ex);
|
||||
}
|
||||
});
|
||||
ClientHttpResponse response = listenableFuture.get();
|
||||
try {
|
||||
try (ClientHttpResponse response = listenableFuture.get()) {
|
||||
assertThat(response.getStatusCode()).as("Invalid status code").isEqualTo(HttpStatus.NOT_FOUND);
|
||||
}
|
||||
finally {
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -132,20 +124,17 @@ public abstract class AbstractAsyncHttpRequestFactoryTests extends AbstractMockW
|
|||
}
|
||||
|
||||
Future<ClientHttpResponse> futureResponse = request.executeAsync();
|
||||
ClientHttpResponse response = futureResponse.get();
|
||||
try {
|
||||
try ( ClientHttpResponse response = futureResponse.get()) {
|
||||
assertThat(response.getStatusCode()).as("Invalid status code").isEqualTo(HttpStatus.OK);
|
||||
assertThat(response.getHeaders().containsKey(headerName)).as("Header not found").isTrue();
|
||||
assertThat(response.getHeaders().get(headerName)).as("Header value not found").isEqualTo(Arrays.asList(headerValue1, headerValue2));
|
||||
byte[] result = FileCopyUtils.copyToByteArray(response.getBody());
|
||||
assertThat(Arrays.equals(body, result)).as("Invalid body").isTrue();
|
||||
}
|
||||
finally {
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("try")
|
||||
public void multipleWrites() throws Exception {
|
||||
AsyncClientHttpRequest request = this.factory.createAsyncRequest(new URI(baseUrl + "/echo"), HttpMethod.POST);
|
||||
final byte[] body = "Hello World".getBytes("UTF-8");
|
||||
|
|
@ -159,17 +148,13 @@ public abstract class AbstractAsyncHttpRequestFactoryTests extends AbstractMockW
|
|||
}
|
||||
|
||||
Future<ClientHttpResponse> futureResponse = request.executeAsync();
|
||||
ClientHttpResponse response = futureResponse.get();
|
||||
try {
|
||||
assertThatIllegalStateException().isThrownBy(() ->
|
||||
FileCopyUtils.copy(body, request.getBody()));
|
||||
}
|
||||
finally {
|
||||
response.close();
|
||||
try (ClientHttpResponse response = futureResponse.get()) {
|
||||
assertThatIllegalStateException().isThrownBy(() -> FileCopyUtils.copy(body, request.getBody()));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("try")
|
||||
public void headersAfterExecute() throws Exception {
|
||||
AsyncClientHttpRequest request = this.factory.createAsyncRequest(new URI(baseUrl + "/echo"), HttpMethod.POST);
|
||||
request.getHeaders().add("MyHeader", "value");
|
||||
|
|
@ -177,14 +162,10 @@ public abstract class AbstractAsyncHttpRequestFactoryTests extends AbstractMockW
|
|||
FileCopyUtils.copy(body, request.getBody());
|
||||
|
||||
Future<ClientHttpResponse> futureResponse = request.executeAsync();
|
||||
ClientHttpResponse response = futureResponse.get();
|
||||
try {
|
||||
try (ClientHttpResponse response = futureResponse.get()) {
|
||||
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() ->
|
||||
request.getHeaders().add("MyHeader", "value"));
|
||||
}
|
||||
finally {
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -198,23 +179,16 @@ public abstract class AbstractAsyncHttpRequestFactoryTests extends AbstractMockW
|
|||
}
|
||||
|
||||
protected void assertHttpMethod(String path, HttpMethod method) throws Exception {
|
||||
ClientHttpResponse response = null;
|
||||
try {
|
||||
AsyncClientHttpRequest request = this.factory.createAsyncRequest(new URI(baseUrl + "/methods/" + path), method);
|
||||
if (method == HttpMethod.POST || method == HttpMethod.PUT || method == HttpMethod.PATCH) {
|
||||
// requires a body
|
||||
request.getBody().write(32);
|
||||
}
|
||||
Future<ClientHttpResponse> futureResponse = request.executeAsync();
|
||||
response = futureResponse.get();
|
||||
AsyncClientHttpRequest request = this.factory.createAsyncRequest(new URI(baseUrl + "/methods/" + path), method);
|
||||
if (method == HttpMethod.POST || method == HttpMethod.PUT || method == HttpMethod.PATCH) {
|
||||
// requires a body
|
||||
request.getBody().write(32);
|
||||
}
|
||||
Future<ClientHttpResponse> futureResponse = request.executeAsync();
|
||||
try (ClientHttpResponse response = futureResponse.get()) {
|
||||
assertThat(response.getStatusCode()).as("Invalid response status").isEqualTo(HttpStatus.OK);
|
||||
assertThat(request.getMethod().name()).as("Invalid method").isEqualTo(path.toUpperCase(Locale.ENGLISH));
|
||||
}
|
||||
finally {
|
||||
if (response != null) {
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -226,5 +200,4 @@ public abstract class AbstractAsyncHttpRequestFactoryTests extends AbstractMockW
|
|||
assertThat(futureResponse.isCancelled()).isTrue();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -40,13 +40,13 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
|
|||
/**
|
||||
* @author Arjen Poutsma
|
||||
*/
|
||||
public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebServerTests {
|
||||
abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebServerTests {
|
||||
|
||||
protected ClientHttpRequestFactory factory;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public final void createFactory() throws Exception {
|
||||
final void createFactory() throws Exception {
|
||||
factory = createRequestFactory();
|
||||
if (factory instanceof InitializingBean) {
|
||||
((InitializingBean) factory).afterPropertiesSet();
|
||||
|
|
@ -54,7 +54,7 @@ public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebSer
|
|||
}
|
||||
|
||||
@AfterEach
|
||||
public final void destroyFactory() throws Exception {
|
||||
final void destroyFactory() throws Exception {
|
||||
if (factory instanceof DisposableBean) {
|
||||
((DisposableBean) factory).destroy();
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebSer
|
|||
|
||||
|
||||
@Test
|
||||
public void status() throws Exception {
|
||||
void status() throws Exception {
|
||||
URI uri = new URI(baseUrl + "/status/notfound");
|
||||
ClientHttpRequest request = factory.createRequest(uri, HttpMethod.GET);
|
||||
assertThat(request.getMethod()).as("Invalid HTTP method").isEqualTo(HttpMethod.GET);
|
||||
|
|
@ -77,7 +77,7 @@ public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebSer
|
|||
}
|
||||
|
||||
@Test
|
||||
public void echo() throws Exception {
|
||||
void echo() throws Exception {
|
||||
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.PUT);
|
||||
assertThat(request.getMethod()).as("Invalid HTTP method").isEqualTo(HttpMethod.PUT);
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebSer
|
|||
}
|
||||
|
||||
@Test
|
||||
public void multipleWrites() throws Exception {
|
||||
void multipleWrites() throws Exception {
|
||||
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.POST);
|
||||
|
||||
final byte[] body = "Hello World".getBytes(StandardCharsets.UTF_8);
|
||||
|
|
@ -130,7 +130,7 @@ public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebSer
|
|||
|
||||
@Test
|
||||
@SuppressWarnings("try")
|
||||
public void headersAfterExecute() throws Exception {
|
||||
void headersAfterExecute() throws Exception {
|
||||
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/status/ok"), HttpMethod.POST);
|
||||
|
||||
request.getHeaders().add("MyHeader", "value");
|
||||
|
|
@ -144,7 +144,7 @@ public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebSer
|
|||
}
|
||||
|
||||
@Test
|
||||
public void httpMethods() throws Exception {
|
||||
void httpMethods() throws Exception {
|
||||
assertHttpMethod("get", HttpMethod.GET);
|
||||
assertHttpMethod("head", HttpMethod.HEAD);
|
||||
assertHttpMethod("post", HttpMethod.POST);
|
||||
|
|
@ -154,31 +154,25 @@ public abstract class AbstractHttpRequestFactoryTests extends AbstractMockWebSer
|
|||
}
|
||||
|
||||
protected void assertHttpMethod(String path, HttpMethod method) throws Exception {
|
||||
ClientHttpResponse response = null;
|
||||
try {
|
||||
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/methods/" + path), method);
|
||||
if (method == HttpMethod.POST || method == HttpMethod.PUT || method == HttpMethod.PATCH) {
|
||||
// requires a body
|
||||
try {
|
||||
request.getBody().write(32);
|
||||
}
|
||||
catch (UnsupportedOperationException ex) {
|
||||
// probably a streaming request - let's simply ignore it
|
||||
}
|
||||
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/methods/" + path), method);
|
||||
if (method == HttpMethod.POST || method == HttpMethod.PUT || method == HttpMethod.PATCH) {
|
||||
// requires a body
|
||||
try {
|
||||
request.getBody().write(32);
|
||||
}
|
||||
response = request.execute();
|
||||
catch (UnsupportedOperationException ex) {
|
||||
// probably a streaming request - let's simply ignore it
|
||||
}
|
||||
}
|
||||
|
||||
try (ClientHttpResponse response = request.execute()) {
|
||||
assertThat(response.getStatusCode()).as("Invalid response status").isEqualTo(HttpStatus.OK);
|
||||
assertThat(request.getMethod().name()).as("Invalid method").isEqualTo(path.toUpperCase(Locale.ENGLISH));
|
||||
}
|
||||
finally {
|
||||
if (response != null) {
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryParameters() throws Exception {
|
||||
void queryParameters() throws Exception {
|
||||
URI uri = new URI(baseUrl + "/params?param1=value¶m2=value1¶m2=value2");
|
||||
ClientHttpRequest request = factory.createRequest(uri, HttpMethod.GET);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -27,7 +27,7 @@ import org.springframework.util.FileCopyUtils;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class BufferingClientHttpRequestFactoryTests extends AbstractHttpRequestFactoryTests {
|
||||
class BufferingClientHttpRequestFactoryTests extends AbstractHttpRequestFactoryTests {
|
||||
|
||||
@Override
|
||||
protected ClientHttpRequestFactory createRequestFactory() {
|
||||
|
|
@ -35,7 +35,7 @@ public class BufferingClientHttpRequestFactoryTests extends AbstractHttpRequestF
|
|||
}
|
||||
|
||||
@Test
|
||||
public void repeatableRead() throws Exception {
|
||||
void repeatableRead() throws Exception {
|
||||
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.PUT);
|
||||
assertThat(request.getMethod()).as("Invalid HTTP method").isEqualTo(HttpMethod.PUT);
|
||||
String headerName = "MyHeader";
|
||||
|
|
@ -46,8 +46,7 @@ public class BufferingClientHttpRequestFactoryTests extends AbstractHttpRequestF
|
|||
byte[] body = "Hello World".getBytes("UTF-8");
|
||||
request.getHeaders().setContentLength(body.length);
|
||||
FileCopyUtils.copy(body, request.getBody());
|
||||
ClientHttpResponse response = request.execute();
|
||||
try {
|
||||
try (ClientHttpResponse response = request.execute()) {
|
||||
assertThat(response.getStatusCode()).as("Invalid status code").isEqualTo(HttpStatus.OK);
|
||||
assertThat(response.getStatusCode()).as("Invalid status code").isEqualTo(HttpStatus.OK);
|
||||
|
||||
|
|
@ -62,9 +61,6 @@ public class BufferingClientHttpRequestFactoryTests extends AbstractHttpRequestF
|
|||
FileCopyUtils.copyToByteArray(response.getBody());
|
||||
assertThat(Arrays.equals(body, result)).as("Invalid body").isTrue();
|
||||
}
|
||||
finally {
|
||||
response.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -72,22 +72,20 @@ class StompWebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
|||
|
||||
|
||||
@ParameterizedWebSocketTest
|
||||
@SuppressWarnings("try")
|
||||
void sendMessageToController(WebSocketTestServer server, WebSocketClient webSocketClient, TestInfo testInfo) throws Exception {
|
||||
super.setup(server, webSocketClient, testInfo);
|
||||
|
||||
TextMessage message = create(StompCommand.SEND).headers("destination:/app/simple").build();
|
||||
WebSocketSession session = doHandshake(new TestClientWebSocketHandler(0, message), "/ws").get();
|
||||
|
||||
SimpleController controller = this.wac.getBean(SimpleController.class);
|
||||
try {
|
||||
try (@SuppressWarnings("unused")WebSocketSession session = doHandshake(new TestClientWebSocketHandler(0, message), "/ws").get()) {
|
||||
SimpleController controller = this.wac.getBean(SimpleController.class);
|
||||
assertThat(controller.latch.await(TIMEOUT, TimeUnit.SECONDS)).isTrue();
|
||||
}
|
||||
finally {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest
|
||||
@SuppressWarnings("try")
|
||||
void sendMessageToControllerAndReceiveReplyViaTopic(WebSocketTestServer server, WebSocketClient webSocketClient, TestInfo testInfo) throws Exception {
|
||||
super.setup(server, webSocketClient, testInfo);
|
||||
|
||||
|
|
@ -98,17 +96,14 @@ class StompWebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
|||
.headers("destination:/app/increment").body("5").build();
|
||||
|
||||
TestClientWebSocketHandler clientHandler = new TestClientWebSocketHandler(2, m0, m1, m2);
|
||||
WebSocketSession session = doHandshake(clientHandler, "/ws").get();
|
||||
|
||||
try {
|
||||
try (WebSocketSession session = doHandshake(clientHandler, "/ws").get()) {
|
||||
assertThat(clientHandler.latch.await(TIMEOUT, TimeUnit.SECONDS)).isTrue();
|
||||
}
|
||||
finally {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest // SPR-10930
|
||||
@SuppressWarnings("try")
|
||||
void sendMessageToBrokerAndReceiveReplyViaTopic(WebSocketTestServer server, WebSocketClient webSocketClient, TestInfo testInfo) throws Exception {
|
||||
super.setup(server, webSocketClient, testInfo);
|
||||
|
||||
|
|
@ -117,20 +112,17 @@ class StompWebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
|||
TextMessage m2 = create(StompCommand.SEND).headers("destination:/topic/foo").body("5").build();
|
||||
|
||||
TestClientWebSocketHandler clientHandler = new TestClientWebSocketHandler(2, m0, m1, m2);
|
||||
WebSocketSession session = doHandshake(clientHandler, "/ws").get();
|
||||
|
||||
try {
|
||||
try (WebSocketSession session = doHandshake(clientHandler, "/ws").get()) {
|
||||
assertThat(clientHandler.latch.await(TIMEOUT, TimeUnit.SECONDS)).isTrue();
|
||||
|
||||
String payload = clientHandler.actual.get(1).getPayload();
|
||||
assertThat(payload.startsWith("MESSAGE\n")).as("Expected STOMP MESSAGE, got " + payload).isTrue();
|
||||
}
|
||||
finally {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest // SPR-11648
|
||||
@SuppressWarnings("try")
|
||||
void sendSubscribeToControllerAndReceiveReply(WebSocketTestServer server, WebSocketClient webSocketClient, TestInfo testInfo) throws Exception {
|
||||
super.setup(server, webSocketClient, testInfo);
|
||||
|
||||
|
|
@ -139,20 +131,17 @@ class StompWebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
|||
TextMessage m1 = create(StompCommand.SUBSCRIBE).headers("id:subs1", destHeader).build();
|
||||
|
||||
TestClientWebSocketHandler clientHandler = new TestClientWebSocketHandler(2, m0, m1);
|
||||
WebSocketSession session = doHandshake(clientHandler, "/ws").get();
|
||||
|
||||
try {
|
||||
try (WebSocketSession session = doHandshake(clientHandler, "/ws").get()) {
|
||||
assertThat(clientHandler.latch.await(TIMEOUT, TimeUnit.SECONDS)).isTrue();
|
||||
String payload = clientHandler.actual.get(1).getPayload();
|
||||
assertThat(payload.contains(destHeader)).as("Expected STOMP destination=/app/number, got " + payload).isTrue();
|
||||
assertThat(payload.contains("42")).as("Expected STOMP Payload=42, got " + payload).isTrue();
|
||||
}
|
||||
finally {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest
|
||||
@SuppressWarnings("try")
|
||||
void handleExceptionAndSendToUser(WebSocketTestServer server, WebSocketClient webSocketClient, TestInfo testInfo) throws Exception {
|
||||
super.setup(server, webSocketClient, testInfo);
|
||||
|
||||
|
|
@ -162,21 +151,18 @@ class StompWebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
|||
TextMessage m2 = create(StompCommand.SEND).headers("destination:/app/exception").build();
|
||||
|
||||
TestClientWebSocketHandler clientHandler = new TestClientWebSocketHandler(2, m0, m1, m2);
|
||||
WebSocketSession session = doHandshake(clientHandler, "/ws").get();
|
||||
|
||||
try {
|
||||
try (WebSocketSession session = doHandshake(clientHandler, "/ws").get()) {
|
||||
assertThat(clientHandler.latch.await(TIMEOUT, TimeUnit.SECONDS)).isTrue();
|
||||
String payload = clientHandler.actual.get(1).getPayload();
|
||||
assertThat(payload.startsWith("MESSAGE\n")).isTrue();
|
||||
assertThat(payload.contains("destination:/user/queue/error\n")).isTrue();
|
||||
assertThat(payload.endsWith("Got error: Bad input\0")).isTrue();
|
||||
}
|
||||
finally {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest
|
||||
@SuppressWarnings("try")
|
||||
void webSocketScope(WebSocketTestServer server, WebSocketClient webSocketClient, TestInfo testInfo) throws Exception {
|
||||
super.setup(server, webSocketClient, testInfo);
|
||||
|
||||
|
|
@ -187,18 +173,14 @@ class StompWebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
|||
.headers("destination:/app/scopedBeanValue").build();
|
||||
|
||||
TestClientWebSocketHandler clientHandler = new TestClientWebSocketHandler(2, m0, m1, m2);
|
||||
WebSocketSession session = doHandshake(clientHandler, "/ws").get();
|
||||
|
||||
try {
|
||||
try (WebSocketSession session = doHandshake(clientHandler, "/ws").get()) {
|
||||
assertThat(clientHandler.latch.await(TIMEOUT, TimeUnit.SECONDS)).isTrue();
|
||||
String payload = clientHandler.actual.get(1).getPayload();
|
||||
assertThat(payload.startsWith("MESSAGE\n")).isTrue();
|
||||
assertThat(payload.contains("destination:/topic/scopedBeanValue\n")).isTrue();
|
||||
assertThat(payload.endsWith("55\0")).isTrue();
|
||||
}
|
||||
finally {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue