Polishing

This commit is contained in:
Juergen Hoeller 2016-07-19 20:09:00 +02:00
parent fd4b5ac892
commit a4743c07d4
14 changed files with 42 additions and 56 deletions

View File

@ -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"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -37,7 +37,7 @@ import static org.junit.Assert.*;
* @author Juergen Hoeller * @author Juergen Hoeller
* @author Chris Beams * @author Chris Beams
*/ */
public final class ArgumentBindingTests { public class ArgumentBindingTests {
@Test(expected=IllegalArgumentException.class) @Test(expected=IllegalArgumentException.class)
public void testBindingInPointcutUsedByAdvice() { public void testBindingInPointcutUsedByAdvice() {
@ -45,8 +45,8 @@ public final class ArgumentBindingTests {
AspectJProxyFactory proxyFactory = new AspectJProxyFactory(tb); AspectJProxyFactory proxyFactory = new AspectJProxyFactory(tb);
proxyFactory.addAspect(NamedPointcutWithArgs.class); proxyFactory.addAspect(NamedPointcutWithArgs.class);
ITestBean proxiedTestBean = (ITestBean) proxyFactory.getProxy(); ITestBean proxiedTestBean = proxyFactory.getProxy();
proxiedTestBean.setName("Supercalifragalisticexpialidocious"); // should throw proxiedTestBean.setName("Supercalifragalisticexpialidocious");
} }
@Test(expected=IllegalStateException.class) @Test(expected=IllegalStateException.class)
@ -55,8 +55,8 @@ public final class ArgumentBindingTests {
AspectJProxyFactory proxyFactory = new AspectJProxyFactory(tb); AspectJProxyFactory proxyFactory = new AspectJProxyFactory(tb);
proxyFactory.addAspect(PointcutWithAnnotationArgument.class); proxyFactory.addAspect(PointcutWithAnnotationArgument.class);
ITransactionalBean proxiedTestBean = (ITransactionalBean) proxyFactory.getProxy(); ITransactionalBean proxiedTestBean = proxyFactory.getProxy();
proxiedTestBean.doInTransaction(); // should throw proxiedTestBean.doInTransaction();
} }
@Test @Test
@ -71,6 +71,7 @@ public final class ArgumentBindingTests {
assertEquals("formal", pnames[0]); assertEquals("formal", pnames[0]);
} }
public void methodWithOneParam(String aParam) { public void methodWithOneParam(String aParam) {
} }
@ -100,9 +101,6 @@ public final class ArgumentBindingTests {
} }
/**
* @author Juergen Hoeller
*/
@Aspect @Aspect
class PointcutWithAnnotationArgument { class PointcutWithAnnotationArgument {
@ -115,9 +113,6 @@ class PointcutWithAnnotationArgument {
} }
/**
* @author Adrian Colyer
*/
@Aspect @Aspect
class NamedPointcutWithArgs { class NamedPointcutWithArgs {

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans> <beans>

View File

@ -72,7 +72,7 @@ public class MethodNameBasedMBeanInfoAssembler extends AbstractConfigurableMBean
* @param methodNames an array of method names indicating the methods to use * @param methodNames an array of method names indicating the methods to use
* @see #setMethodMappings * @see #setMethodMappings
*/ */
public void setManagedMethods(String[] methodNames) { public void setManagedMethods(String... methodNames) {
this.managedMethods = new HashSet<>(Arrays.asList(methodNames)); this.managedMethods = new HashSet<>(Arrays.asList(methodNames));
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -27,18 +27,19 @@ import static org.junit.Assert.*;
* @author Adrian Colyer * @author Adrian Colyer
* @author Chris Beams * @author Chris Beams
*/ */
public final class AnnotationBindingTests { public class AnnotationBindingTests {
private AnnotatedTestBean testBean; private AnnotatedTestBean testBean;
@Before @Before
public void setUp() { public void setUp() {
ClassPathXmlApplicationContext ctx = ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-context.xml", getClass()); new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-context.xml", getClass());
testBean = (AnnotatedTestBean) ctx.getBean("testBean"); testBean = (AnnotatedTestBean) ctx.getBean("testBean");
} }
@Test @Test
public void testAnnotationBindingInAroundAdvice() { public void testAnnotationBindingInAroundAdvice() {
assertEquals("this value", testBean.doThis()); assertEquals("this value", testBean.doThis());

View File

@ -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"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -182,19 +182,19 @@ public class LocalStatelessSessionProxyFactoryBeanTests {
} }
public static interface MyHome extends EJBLocalHome { public interface MyHome extends EJBLocalHome {
MyBusinessMethods create() throws CreateException; MyBusinessMethods create() throws CreateException;
} }
public static interface MyBusinessMethods { public interface MyBusinessMethods {
int getValue(); int getValue();
} }
public static interface MyEjb extends EJBLocalObject, MyBusinessMethods { public interface MyEjb extends EJBLocalObject, MyBusinessMethods {
} }
} }

View File

@ -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"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -279,26 +279,25 @@ public class SimpleRemoteStatelessSessionProxyFactoryBeanTests extends SimpleRem
} }
protected static interface MyHome extends EJBHome { protected interface MyHome extends EJBHome {
MyBusinessMethods create() throws CreateException, RemoteException; MyBusinessMethods create() throws CreateException, RemoteException;
} }
protected static interface MyBusinessMethods { protected interface MyBusinessMethods {
int getValue() throws RemoteException; int getValue() throws RemoteException;
} }
protected static interface MyLocalBusinessMethods { protected interface MyLocalBusinessMethods {
int getValue(); int getValue();
} }
protected static interface MyEjb extends EJBObject, MyBusinessMethods { protected interface MyEjb extends EJBObject, MyBusinessMethods {
} }
} }

View File

@ -47,7 +47,7 @@ public class MethodNameBasedMBeanInfoAssemblerMappedTests extends AbstractJmxAss
public void testWithFallThrough() throws Exception { public void testWithFallThrough() throws Exception {
MethodNameBasedMBeanInfoAssembler assembler = MethodNameBasedMBeanInfoAssembler assembler =
getWithMapping("foobar", "add,myOperation,getName,setName,getAge"); getWithMapping("foobar", "add,myOperation,getName,setName,getAge");
assembler.setManagedMethods(new String[]{"getNickName", "setNickName"}); assembler.setManagedMethods("getNickName", "setNickName");
ModelMBeanInfo inf = assembler.getMBeanInfo(getBean(), getObjectName()); ModelMBeanInfo inf = assembler.getMBeanInfo(getBean(), getObjectName());
MBeanAttributeInfo attr = inf.getAttribute("NickName"); MBeanAttributeInfo attr = inf.getAttribute("NickName");

View File

@ -52,7 +52,7 @@ public class MethodNameBasedMBeanInfoAssemblerTests extends AbstractJmxAssembler
@Override @Override
protected MBeanInfoAssembler getAssembler() { protected MBeanInfoAssembler getAssembler() {
MethodNameBasedMBeanInfoAssembler assembler = new MethodNameBasedMBeanInfoAssembler(); MethodNameBasedMBeanInfoAssembler assembler = new MethodNameBasedMBeanInfoAssembler();
assembler.setManagedMethods(new String[] {"add", "myOperation", "getName", "setName", "getAge"}); assembler.setManagedMethods("add", "myOperation", "getName", "setName", "getAge");
return assembler; return assembler;
} }

View File

@ -28,7 +28,6 @@ import org.springframework.aop.support.AopUtils;
import org.springframework.aop.target.dynamic.Refreshable; import org.springframework.aop.target.dynamic.Refreshable;
import org.springframework.beans.factory.BeanCreationException; import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.UnsatisfiedDependencyException;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
@ -268,7 +267,7 @@ public class GroovyScriptFactoryTests {
@Test @Test
public void testScriptedClassThatDoesNotHaveANoArgCtor() throws Exception { public void testScriptedClassThatDoesNotHaveANoArgCtor() throws Exception {
ScriptSource script = mock(ScriptSource.class); ScriptSource script = mock(ScriptSource.class);
final String badScript = "class Foo { public Foo(String foo) {}}"; String badScript = "class Foo { public Foo(String foo) {}}";
given(script.getScriptAsString()).willReturn(badScript); given(script.getScriptAsString()).willReturn(badScript);
given(script.suggestedClassName()).willReturn("someName"); given(script.suggestedClassName()).willReturn("someName");
GroovyScriptFactory factory = new GroovyScriptFactory(ScriptFactoryPostProcessor.INLINE_SCRIPT_PREFIX GroovyScriptFactory factory = new GroovyScriptFactory(ScriptFactoryPostProcessor.INLINE_SCRIPT_PREFIX
@ -278,25 +277,18 @@ public class GroovyScriptFactoryTests {
fail("Must have thrown a ScriptCompilationException (no public no-arg ctor in scripted class)."); fail("Must have thrown a ScriptCompilationException (no public no-arg ctor in scripted class).");
} }
catch (ScriptCompilationException expected) { catch (ScriptCompilationException expected) {
assertTrue(expected.contains(InstantiationException.class)); assertTrue(expected.contains(NoSuchMethodException.class));
} }
} }
@Test @Test
public void testScriptedClassThatHasNoPublicNoArgCtor() throws Exception { public void testScriptedClassThatHasNoPublicNoArgCtor() throws Exception {
ScriptSource script = mock(ScriptSource.class); ScriptSource script = mock(ScriptSource.class);
final String badScript = "class Foo { protected Foo() {}}"; String badScript = "class Foo { protected Foo() {} \n String toString() { 'X' }}";
given(script.getScriptAsString()).willReturn(badScript); given(script.getScriptAsString()).willReturn(badScript);
given(script.suggestedClassName()).willReturn("someName"); given(script.suggestedClassName()).willReturn("someName");
GroovyScriptFactory factory = new GroovyScriptFactory(ScriptFactoryPostProcessor.INLINE_SCRIPT_PREFIX GroovyScriptFactory factory = new GroovyScriptFactory(ScriptFactoryPostProcessor.INLINE_SCRIPT_PREFIX + badScript);
+ badScript); assertEquals("X", factory.getScriptedObject(script).toString());
try {
factory.getScriptedObject(script);
fail("Must have thrown a ScriptCompilationException (no oublic no-arg ctor in scripted class).");
}
catch (ScriptCompilationException expected) {
assertTrue(expected.contains(IllegalAccessException.class));
}
} }
@Test @Test
@ -553,7 +545,7 @@ public class GroovyScriptFactoryTests {
testMetaClass("org/springframework/scripting/groovy/calculators-with-xsd.xml"); testMetaClass("org/springframework/scripting/groovy/calculators-with-xsd.xml");
} }
private void testMetaClass(final String xmlFile) { private void testMetaClass(String xmlFile) {
// expect the exception we threw in the custom metaclass to show it got invoked // expect the exception we threw in the custom metaclass to show it got invoked
try { try {
ApplicationContext ctx = new ClassPathXmlApplicationContext(xmlFile); ApplicationContext ctx = new ClassPathXmlApplicationContext(xmlFile);

View File

@ -350,7 +350,8 @@ public class AnnotationAttributes extends LinkedHashMap<String, Object> {
} }
private void assertAttributePresence(String attributeName, Object attributeValue) { private void assertAttributePresence(String attributeName, Object attributeValue) {
Assert.notNull(attributeValue, () -> String.format("Attribute '%s' not found in attributes for annotation [%s]", Assert.notNull(attributeValue, () -> String.format(
"Attribute '%s' not found in attributes for annotation [%s]",
attributeName, this.displayName)); attributeName, this.displayName));
} }

View File

@ -80,7 +80,7 @@ public class SerializableTypeWrapperTests {
} }
@Test @Test
public void forTypeParamters() throws Exception { public void forTypeParameters() throws Exception {
Type type = SerializableTypeWrapper.forTypeParameters(List.class)[0]; Type type = SerializableTypeWrapper.forTypeParameters(List.class)[0];
assertThat(type.toString(), equalTo("E")); assertThat(type.toString(), equalTo("E"));
assertSerializable(type); assertSerializable(type);

View File

@ -107,7 +107,7 @@ import org.springframework.util.StringUtils;
* </pre> * </pre>
* *
* <p>Note that the above examples aim to demonstrate the general idea of using * <p>Note that the above examples aim to demonstrate the general idea of using
* header accessors. The most likely usage however is through sub-classes. * header accessors. The most likely usage however is through subclasses.
* *
* @author Rossen Stoyanchev * @author Rossen Stoyanchev
* @author Juergen Hoeller * @author Juergen Hoeller

View File

@ -1,10 +1,8 @@
<!-- File containing all charcter entity references definied <!-- File containing all character entity references defined
by the HTML 4.0 standard. --> by the HTML 4.0 standard. -->
<!-- Valuable informations and a complete description of the <!-- Valuable information and a complete description of the
HTML 4.0 character set can be found at HTML 4.0 character set can be found at
http://www.w3.org/TR/html4/charset.html. http://www.w3.org/TR/html4/charset.html. -->
-->
<!-- Portions © International Organization for Standardization 1986 <!-- Portions © International Organization for Standardization 1986
Permission to copy in any form is granted for use with Permission to copy in any form is granted for use with