Polishing
This commit is contained in:
parent
dc080cb1be
commit
2f9ed5917b
|
@ -71,7 +71,7 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar
|
|||
server.registerMBean(new LiveBeansView(),
|
||||
new ObjectName(mbeanDomain, MBEAN_APPLICATION_KEY, applicationName));
|
||||
}
|
||||
catch (Exception ex) {
|
||||
catch (Throwable ex) {
|
||||
throw new ApplicationContextException("Failed to register LiveBeansView MBean", ex);
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar
|
|||
String mbeanDomain = applicationContext.getEnvironment().getProperty(MBEAN_DOMAIN_PROPERTY_NAME);
|
||||
server.unregisterMBean(new ObjectName(mbeanDomain, MBEAN_APPLICATION_KEY, applicationName));
|
||||
}
|
||||
catch (Exception ex) {
|
||||
catch (Throwable ex) {
|
||||
throw new ApplicationContextException("Failed to unregister LiveBeansView MBean", ex);
|
||||
} finally {
|
||||
applicationName = null;
|
||||
|
|
|
@ -82,6 +82,7 @@ public class CustomNamespaceHandlerTests {
|
|||
|
||||
private GenericApplicationContext beanFactory;
|
||||
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
NamespaceHandlerResolver resolver = new DefaultNamespaceHandlerResolver(CLASS.getClassLoader(), NS_PROPS);
|
||||
|
@ -148,30 +149,21 @@ public class CustomNamespaceHandlerTests {
|
|||
assertEquals("foo", beanDefinition.getAttribute("objectName"));
|
||||
}
|
||||
|
||||
/**
|
||||
* http://opensource.atlassian.com/projects/spring/browse/SPR-2728
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2728
|
||||
public void testCustomElementNestedWithinUtilList() throws Exception {
|
||||
List<?> things = (List<?>) this.beanFactory.getBean("list.of.things");
|
||||
assertNotNull(things);
|
||||
assertEquals(2, things.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* http://opensource.atlassian.com/projects/spring/browse/SPR-2728
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2728
|
||||
public void testCustomElementNestedWithinUtilSet() throws Exception {
|
||||
Set<?> things = (Set<?>) this.beanFactory.getBean("set.of.things");
|
||||
assertNotNull(things);
|
||||
assertEquals(2, things.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* http://opensource.atlassian.com/projects/spring/browse/SPR-2728
|
||||
*/
|
||||
@Test
|
||||
@Test // SPR-2728
|
||||
public void testCustomElementNestedWithinUtilMap() throws Exception {
|
||||
Map<?, ?> things = (Map<?, ?>) this.beanFactory.getBean("map.of.things");
|
||||
assertNotNull(things);
|
||||
|
@ -229,6 +221,7 @@ final class TestNamespaceHandler extends NamespaceHandlerSupport {
|
|||
registerBeanDefinitionDecoratorForAttribute("object-name", new ObjectNameBeanDefinitionDecorator());
|
||||
}
|
||||
|
||||
|
||||
private static class TestBeanDefinitionParser implements BeanDefinitionParser {
|
||||
|
||||
@Override
|
||||
|
@ -247,6 +240,7 @@ final class TestNamespaceHandler extends NamespaceHandlerSupport {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private static final class PersonDefinitionParser extends AbstractSingleBeanDefinitionParser {
|
||||
|
||||
@Override
|
||||
|
@ -261,6 +255,7 @@ final class TestNamespaceHandler extends NamespaceHandlerSupport {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private static class PropertyModifyingBeanDefinitionDecorator implements BeanDefinitionDecorator {
|
||||
|
||||
@Override
|
||||
|
@ -277,6 +272,7 @@ final class TestNamespaceHandler extends NamespaceHandlerSupport {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private static class DebugBeanDefinitionDecorator extends AbstractInterceptorDrivenBeanDefinitionDecorator {
|
||||
|
||||
@Override
|
||||
|
@ -285,6 +281,7 @@ final class TestNamespaceHandler extends NamespaceHandlerSupport {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private static class NopInterceptorBeanDefinitionDecorator extends AbstractInterceptorDrivenBeanDefinitionDecorator {
|
||||
|
||||
@Override
|
||||
|
@ -293,6 +290,7 @@ final class TestNamespaceHandler extends NamespaceHandlerSupport {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private static class ObjectNameBeanDefinitionDecorator implements BeanDefinitionDecorator {
|
||||
|
||||
@Override
|
||||
|
@ -302,5 +300,5 @@ final class TestNamespaceHandler extends NamespaceHandlerSupport {
|
|||
return definition;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -485,7 +485,8 @@ public abstract class AnnotationUtils {
|
|||
* @since 4.2
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <A extends Annotation> A findAnnotation(AnnotatedElement annotatedElement, Class<A> annotationType, Set<Annotation> visited) {
|
||||
private static <A extends Annotation> A findAnnotation(
|
||||
AnnotatedElement annotatedElement, Class<A> annotationType, Set<Annotation> visited) {
|
||||
try {
|
||||
Annotation[] anns = annotatedElement.getDeclaredAnnotations();
|
||||
for (Annotation ann : anns) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import org.springframework.util.ObjectUtils;
|
|||
* @author Juergen Hoeller
|
||||
* @author Sam Brannen
|
||||
* @since 1.2.6
|
||||
* @see Resource#getInputStream()
|
||||
* @see java.io.Reader
|
||||
* @see java.nio.charset.Charset
|
||||
*/
|
||||
|
@ -142,8 +143,8 @@ public class EncodedResource implements InputStreamSource {
|
|||
}
|
||||
|
||||
/**
|
||||
* Open a {@code java.io.InputStream} for the specified resource, ignoring any
|
||||
* specified {@link #getCharset() Charset} or {@linkplain #getEncoding() encoding}.
|
||||
* Open an {@code InputStream} for the specified resource, ignoring any specified
|
||||
* {@link #getCharset() Charset} or {@linkplain #getEncoding() encoding}.
|
||||
* @throws IOException if opening the InputStream failed
|
||||
* @see #requiresReader()
|
||||
* @see #getReader()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
* Copyright 2002-2016 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.
|
||||
|
@ -18,29 +18,22 @@ package org.springframework.tests;
|
|||
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import static java.lang.String.*;
|
||||
|
||||
/**
|
||||
* Convenience utilities for common operations with test resources.
|
||||
*
|
||||
* @author Chris Beams
|
||||
*/
|
||||
public class TestResourceUtils {
|
||||
public abstract class TestResourceUtils {
|
||||
|
||||
/**
|
||||
* Loads a {@link ClassPathResource} qualified by the simple name of clazz,
|
||||
* Load a {@link ClassPathResource} qualified by the simple name of clazz,
|
||||
* and relative to the package for clazz.
|
||||
*
|
||||
* <p>Example: given a clazz 'com.foo.BarTests' and a resourceSuffix of 'context.xml',
|
||||
* this method will return a ClassPathResource representing com/foo/BarTests-context.xml
|
||||
*
|
||||
* <p>Intended for use loading context configuration XML files within JUnit tests.
|
||||
*
|
||||
* @param clazz
|
||||
* @param resourceSuffix
|
||||
*/
|
||||
public static ClassPathResource qualifiedResource(Class<?> clazz, String resourceSuffix) {
|
||||
return new ClassPathResource(format("%s-%s", clazz.getSimpleName(), resourceSuffix), clazz);
|
||||
return new ClassPathResource(String.format("%s-%s", clazz.getSimpleName(), resourceSuffix), clazz);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
* Copyright 2002-2016 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,8 +40,8 @@ public abstract class DatabasePopulatorUtils {
|
|||
* @throws DataAccessException if an error occurs, specifically a {@link ScriptException}
|
||||
*/
|
||||
public static void execute(DatabasePopulator populator, DataSource dataSource) throws DataAccessException {
|
||||
Assert.notNull(populator, "DatabasePopulator must be provided");
|
||||
Assert.notNull(dataSource, "DataSource must be provided");
|
||||
Assert.notNull(populator, "DatabasePopulator must not be null");
|
||||
Assert.notNull(dataSource, "DataSource must not be null");
|
||||
try {
|
||||
Connection connection = DataSourceUtils.getConnection(dataSource);
|
||||
try {
|
||||
|
@ -53,11 +53,10 @@ public abstract class DatabasePopulatorUtils {
|
|||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex) {
|
||||
catch (Throwable ex) {
|
||||
if (ex instanceof ScriptException) {
|
||||
throw (ScriptException) ex;
|
||||
}
|
||||
|
||||
throw new UncategorizedScriptException("Failed to execute database script", ex);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ import org.springframework.util.StringUtils;
|
|||
*/
|
||||
public class ResourceDatabasePopulator implements DatabasePopulator {
|
||||
|
||||
private List<Resource> scripts = new ArrayList<>();
|
||||
List<Resource> scripts = new ArrayList<>();
|
||||
|
||||
private String sqlScriptEncoding;
|
||||
|
||||
|
@ -117,7 +117,7 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
|
|||
*/
|
||||
public void addScript(Resource script) {
|
||||
Assert.notNull(script, "Script must not be null");
|
||||
getScripts().add(script);
|
||||
this.scripts.add(script);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -126,7 +126,7 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
|
|||
*/
|
||||
public void addScripts(Resource... scripts) {
|
||||
assertContentsOfScriptArray(scripts);
|
||||
getScripts().addAll(Arrays.asList(scripts));
|
||||
this.scripts.addAll(Arrays.asList(scripts));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -140,6 +140,11 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
|
|||
this.scripts = new ArrayList<>(Arrays.asList(scripts));
|
||||
}
|
||||
|
||||
private void assertContentsOfScriptArray(Resource... scripts) {
|
||||
Assert.notNull(scripts, "Scripts array must not be null");
|
||||
Assert.noNullElements(scripts, "Scripts array must not contain null elements");
|
||||
}
|
||||
|
||||
/**
|
||||
* Specify the encoding for the configured SQL scripts, if different from the
|
||||
* platform encoding.
|
||||
|
@ -220,6 +225,7 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
|
|||
this.ignoreFailedDrops = ignoreFailedDrops;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* @see #execute(DataSource)
|
||||
|
@ -227,10 +233,10 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
|
|||
@Override
|
||||
public void populate(Connection connection) throws ScriptException {
|
||||
Assert.notNull(connection, "Connection must not be null");
|
||||
for (Resource script : getScripts()) {
|
||||
ScriptUtils.executeSqlScript(connection, encodeScript(script), this.continueOnError,
|
||||
this.ignoreFailedDrops, this.commentPrefix, this.separator, this.blockCommentStartDelimiter,
|
||||
this.blockCommentEndDelimiter);
|
||||
for (Resource script : this.scripts) {
|
||||
EncodedResource encodedScript = new EncodedResource(script, this.sqlScriptEncoding);
|
||||
ScriptUtils.executeSqlScript(connection, encodedScript, this.continueOnError, this.ignoreFailedDrops,
|
||||
this.commentPrefix, this.separator, this.blockCommentStartDelimiter, this.blockCommentEndDelimiter);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -244,28 +250,7 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
|
|||
* @see #populate(Connection)
|
||||
*/
|
||||
public void execute(DataSource dataSource) throws ScriptException {
|
||||
Assert.notNull(dataSource, "DataSource must not be null");
|
||||
DatabasePopulatorUtils.execute(this, dataSource);
|
||||
}
|
||||
|
||||
final List<Resource> getScripts() {
|
||||
return this.scripts;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link EncodedResource} is not a sub-type of {@link Resource}. Thus we
|
||||
* always need to wrap each script resource in an {@code EncodedResource}
|
||||
* using the configured {@linkplain #setSqlScriptEncoding encoding}.
|
||||
* @param script the script to wrap (never {@code null})
|
||||
*/
|
||||
private EncodedResource encodeScript(Resource script) {
|
||||
Assert.notNull(script, "Script must not be null");
|
||||
return new EncodedResource(script, this.sqlScriptEncoding);
|
||||
}
|
||||
|
||||
private void assertContentsOfScriptArray(Resource... scripts) {
|
||||
Assert.notNull(scripts, "Scripts must not be null");
|
||||
Assert.noNullElements(scripts, "Scripts array must not contain null elements");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
* Copyright 2002-2016 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.
|
||||
|
@ -50,22 +50,22 @@ public class ResourceDatabasePopulatorTests {
|
|||
@Test
|
||||
public void constructWithResource() {
|
||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(script1);
|
||||
assertEquals(1, databasePopulator.getScripts().size());
|
||||
assertEquals(1, databasePopulator.scripts.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void constructWithMultipleResources() {
|
||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(script1, script2);
|
||||
assertEquals(2, databasePopulator.getScripts().size());
|
||||
assertEquals(2, databasePopulator.scripts.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void constructWithMultipleResourcesAndThenAddScript() {
|
||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(script1, script2);
|
||||
assertEquals(2, databasePopulator.getScripts().size());
|
||||
assertEquals(2, databasePopulator.scripts.size());
|
||||
|
||||
databasePopulator.addScript(script3);
|
||||
assertEquals(3, databasePopulator.getScripts().size());
|
||||
assertEquals(3, databasePopulator.scripts.size());
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
|
@ -95,13 +95,13 @@ public class ResourceDatabasePopulatorTests {
|
|||
@Test
|
||||
public void setScriptsAndThenAddScript() {
|
||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
|
||||
assertEquals(0, databasePopulator.getScripts().size());
|
||||
assertEquals(0, databasePopulator.scripts.size());
|
||||
|
||||
databasePopulator.setScripts(script1, script2);
|
||||
assertEquals(2, databasePopulator.getScripts().size());
|
||||
assertEquals(2, databasePopulator.scripts.size());
|
||||
|
||||
databasePopulator.addScript(script3);
|
||||
assertEquals(3, databasePopulator.getScripts().size());
|
||||
assertEquals(3, databasePopulator.scripts.size());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue