提交 a0cad5c4 编写于 作者: S Sam Brannen

Use streams and lambdas in spring-test where feasible

Issue: SPR-13188
上级 8fff1c2a
...@@ -40,10 +40,8 @@ import org.springframework.test.context.transaction.TestContextTransactionUtils; ...@@ -40,10 +40,8 @@ import org.springframework.test.context.transaction.TestContextTransactionUtils;
import org.springframework.test.context.util.TestContextResourceUtils; import org.springframework.test.context.util.TestContextResourceUtils;
import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.interceptor.DefaultTransactionAttribute; import org.springframework.transaction.interceptor.DefaultTransactionAttribute;
import org.springframework.transaction.interceptor.TransactionAttribute; import org.springframework.transaction.interceptor.TransactionAttribute;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
...@@ -244,12 +242,9 @@ public class SqlScriptsTestExecutionListener extends AbstractTestExecutionListen ...@@ -244,12 +242,9 @@ public class SqlScriptsTestExecutionListener extends AbstractTestExecutionListen
TransactionAttribute transactionAttribute = TestContextTransactionUtils.createDelegatingTransactionAttribute( TransactionAttribute transactionAttribute = TestContextTransactionUtils.createDelegatingTransactionAttribute(
testContext, new DefaultTransactionAttribute(propagation)); testContext, new DefaultTransactionAttribute(propagation));
new TransactionTemplate(transactionManager, transactionAttribute).execute(new TransactionCallbackWithoutResult() { new TransactionTemplate(transactionManager, transactionAttribute).execute(status -> {
populator.execute(finalDataSource);
@Override return null;
public void doInTransactionWithoutResult(TransactionStatus status) {
populator.execute(finalDataSource);
}
}); });
} }
} }
......
...@@ -19,9 +19,10 @@ package org.springframework.test.context.transaction; ...@@ -19,9 +19,10 @@ package org.springframework.test.context.transaction;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
...@@ -442,13 +443,9 @@ public class TransactionalTestExecutionListener extends AbstractTestExecutionLis ...@@ -442,13 +443,9 @@ public class TransactionalTestExecutionListener extends AbstractTestExecutionLis
* as well as annotated interface default methods * as well as annotated interface default methods
*/ */
private List<Method> getAnnotatedMethods(Class<?> clazz, Class<? extends Annotation> annotationType) { private List<Method> getAnnotatedMethods(Class<?> clazz, Class<? extends Annotation> annotationType) {
List<Method> methods = new ArrayList<>(4); return Arrays.stream(ReflectionUtils.getUniqueDeclaredMethods(clazz))
for (Method method : ReflectionUtils.getUniqueDeclaredMethods(clazz)) { .filter(method -> AnnotatedElementUtils.hasAnnotation(method, annotationType))
if (AnnotationUtils.getAnnotation(method, annotationType) != null) { .collect(Collectors.toList());
methods.add(method);
}
}
return methods;
} }
/** /**
......
...@@ -16,8 +16,10 @@ ...@@ -16,8 +16,10 @@
package org.springframework.test.context.util; package org.springframework.test.context.util;
import java.util.ArrayList; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.ResourceLoader;
...@@ -98,8 +100,7 @@ public abstract class TestContextResourceUtils { ...@@ -98,8 +100,7 @@ public abstract class TestContextResourceUtils {
* @see #convertToClasspathResourcePaths * @see #convertToClasspathResourcePaths
*/ */
public static Resource[] convertToResources(ResourceLoader resourceLoader, String... paths) { public static Resource[] convertToResources(ResourceLoader resourceLoader, String... paths) {
List<Resource> list = convertToResourceList(resourceLoader, paths); return stream(resourceLoader, paths).toArray(Resource[]::new);
return list.toArray(new Resource[list.size()]);
} }
/** /**
...@@ -114,11 +115,11 @@ public abstract class TestContextResourceUtils { ...@@ -114,11 +115,11 @@ public abstract class TestContextResourceUtils {
* @see #convertToClasspathResourcePaths * @see #convertToClasspathResourcePaths
*/ */
public static List<Resource> convertToResourceList(ResourceLoader resourceLoader, String... paths) { public static List<Resource> convertToResourceList(ResourceLoader resourceLoader, String... paths) {
List<Resource> list = new ArrayList<>(); return stream(resourceLoader, paths).collect(Collectors.toList());
for (String path : paths) { }
list.add(resourceLoader.getResource(path));
} private static Stream<Resource> stream(ResourceLoader resourceLoader, String... paths) {
return list; return Arrays.stream(paths).map(resourceLoader::getResource);
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册