Polishing

This commit is contained in:
Juergen Hoeller
2014-02-07 17:42:37 +01:00
parent 99f9dce14a
commit 749b65b0b2
5 changed files with 28 additions and 40 deletions

View File

@@ -33,12 +33,12 @@ import org.springframework.core.NamedThreadLocal;
* <p><strong>Note</strong> that the {@code SimpleThreadScope} <em>does not clean
* up any objects</em> associated with it. As such, it's typically preferable to
* use the {@link org.springframework.web.context.request.RequestScope RequestScope}
* in Web environments.
* in web environments.
*
* <p>For an implementation of a thread-based {@code Scope} with support for
* destruction callbacks, refer to the <a
* href="http://www.springbyexample.org/examples/custom-thread-scope-module.html">Spring
* by Example Custom Thread Scope Module</a>.
* destruction callbacks, refer to the
* <a href="http://www.springbyexample.org/examples/custom-thread-scope-module.html">
* Spring by Example Custom Thread Scope Module</a>.
*
* <p>Thanks to Eugene Kuleshov for submitting the original prototype for a thread scope!
*
@@ -59,9 +59,10 @@ public class SimpleThreadScope implements Scope {
}
};
@Override
public Object get(String name, ObjectFactory<?> objectFactory) {
Map<String, Object> scope = threadScope.get();
Map<String, Object> scope = this.threadScope.get();
Object object = scope.get(name);
if (object == null) {
object = objectFactory.getObject();
@@ -72,14 +73,14 @@ public class SimpleThreadScope implements Scope {
@Override
public Object remove(String name) {
Map<String, Object> scope = threadScope.get();
Map<String, Object> scope = this.threadScope.get();
return scope.remove(name);
}
@Override
public void registerDestructionCallback(String name, Runnable callback) {
logger.warn("SimpleThreadScope does not support destruction callbacks. " +
"Consider using a RequestScope in a Web environment.");
"Consider using RequestScope in a web environment.");
}
@Override

View File

@@ -40,7 +40,7 @@ import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
/**
* Additional and overridden tests for the CGLIB proxy.
* Additional and overridden tests for CGLIB proxies.
*
* @author Rod Johnson
* @author Juergen Hoeller
@@ -51,7 +51,8 @@ import static org.junit.Assert.*;
@SuppressWarnings("serial")
public final class CglibProxyTests extends AbstractAopProxyTests implements Serializable {
private static final String DEPENDENCY_CHECK_CONTEXT = CglibProxyTests.class.getSimpleName() + "-with-dependency-checking.xml";
private static final String DEPENDENCY_CHECK_CONTEXT =
CglibProxyTests.class.getSimpleName() + "-with-dependency-checking.xml";
@Override
@@ -317,15 +318,13 @@ public final class CglibProxyTests extends AbstractAopProxyTests implements Seri
@Test
@SuppressWarnings("resource")
public void testWithDependencyChecking() {
ApplicationContext ctx =
new ClassPathXmlApplicationContext(DEPENDENCY_CHECK_CONTEXT, getClass());
ApplicationContext ctx = new ClassPathXmlApplicationContext(DEPENDENCY_CHECK_CONTEXT, getClass());
ctx.getBean("testBean");
}
@Test
public void testAddAdviceAtRuntime() {
TestBean bean = new TestBean();
CountingBeforeAdvice cba = new CountingBeforeAdvice();
ProxyFactory pf = new ProxyFactory();
@@ -335,17 +334,13 @@ public final class CglibProxyTests extends AbstractAopProxyTests implements Seri
pf.setProxyTargetClass(true);
TestBean proxy = (TestBean) pf.getProxy();
assertTrue(AopUtils.isCglibProxy(proxy));
proxy.getAge();
assertEquals(0, cba.getCalls());
((Advised) proxy).addAdvice(cba);
proxy.getAge();
assertEquals(1, cba.getCalls());
}
@@ -357,7 +352,6 @@ public final class CglibProxyTests extends AbstractAopProxyTests implements Seri
proxyFactory.setProxyTargetClass(true);
MyBean proxy = (MyBean) proxyFactory.getProxy();
assertEquals(4, proxy.add(1, 3));
assertEquals(1, advice.getCalls("add"));
}
@@ -415,7 +409,6 @@ public final class CglibProxyTests extends AbstractAopProxyTests implements Seri
public final void foo() {
}
}
}
@@ -452,7 +445,6 @@ class NoArgCtorTestBean {
public void reset() {
called = false;
}
}
@@ -461,15 +453,11 @@ class ProtectedMethodTestBean {
protected String getString() {
return "foo";
}
}
class UnsupportedInterceptor implements MethodInterceptor {
/**
* @see org.aopalliance.intercept.MethodInterceptor#invoke(org.aopalliance.intercept.MethodInvocation)
*/
@Override
public Object invoke(MethodInvocation mi) throws Throwable {
throw new UnsupportedOperationException(mi.getMethod().getName());