Skip to content

Commit

Permalink
Polishing
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrannen committed May 12, 2020
1 parent 14e249a commit a07dc80
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 63 deletions.
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -16,7 +16,6 @@

package org.springframework.aop.framework.autoproxy;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import test.mixin.Lockable;
import test.mixin.LockedException;
Expand All @@ -40,42 +39,36 @@
* @author Rob Harrop
* @author Chris Beams
*/
public class BeanNameAutoProxyCreatorTests {
class BeanNameAutoProxyCreatorTests {

private BeanFactory beanFactory;


@BeforeEach
public void setup() {
// Note that we need an ApplicationContext, not just a BeanFactory,
// for post-processing and hence auto-proxying to work.
beanFactory = new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-context.xml", getClass());
}
// Note that we need an ApplicationContext, not just a BeanFactory,
// for post-processing and hence auto-proxying to work.
private final BeanFactory beanFactory = new ClassPathXmlApplicationContext(getClass().getSimpleName() + "-context.xml", getClass());


@Test
public void testNoProxy() {
void noProxy() {
TestBean tb = (TestBean) beanFactory.getBean("noproxy");
assertThat(AopUtils.isAopProxy(tb)).isFalse();
assertThat(tb.getName()).isEqualTo("noproxy");
}

@Test
public void testJdkProxyWithExactNameMatch() {
void proxyWithExactNameMatch() {
ITestBean tb = (ITestBean) beanFactory.getBean("onlyJdk");
jdkAssertions(tb, 1);
assertThat(tb.getName()).isEqualTo("onlyJdk");
}

@Test
public void testJdkProxyWithDoubleProxying() {
void proxyWithDoubleProxying() {
ITestBean tb = (ITestBean) beanFactory.getBean("doubleJdk");
jdkAssertions(tb, 2);
assertThat(tb.getName()).isEqualTo("doubleJdk");
}

@Test
public void testJdkIntroduction() {
void jdkIntroduction() {
ITestBean tb = (ITestBean) beanFactory.getBean("introductionUsingJdk");
NopInterceptor nop = (NopInterceptor) beanFactory.getBean("introductionNopInterceptor");
assertThat(nop.getCount()).isEqualTo(0);
Expand Down Expand Up @@ -110,16 +103,15 @@ public void testJdkIntroduction() {
}

@Test
public void testJdkIntroductionAppliesToCreatedObjectsNotFactoryBean() {
void jdkIntroductionAppliesToCreatedObjectsNotFactoryBean() {
ITestBean tb = (ITestBean) beanFactory.getBean("factory-introductionUsingJdk");
NopInterceptor nop = (NopInterceptor) beanFactory.getBean("introductionNopInterceptor");
assertThat(nop.getCount()).as("NOP should not have done any work yet").isEqualTo(0);
assertThat(AopUtils.isJdkDynamicProxy(tb)).isTrue();
int age = 5;
tb.setAge(age);
assertThat(tb.getAge()).isEqualTo(age);
boolean condition = tb instanceof TimeStamped;
assertThat(condition).as("Introduction was made").isTrue();
assertThat(tb).as("Introduction was made").isInstanceOf(TimeStamped.class);
assertThat(((TimeStamped) tb).getTimeStamp()).isEqualTo(0);
assertThat(nop.getCount()).isEqualTo(3);

Expand All @@ -144,21 +136,21 @@ public void testJdkIntroductionAppliesToCreatedObjectsNotFactoryBean() {
}

@Test
public void testJdkProxyWithWildcardMatch() {
void proxyWithWildcardMatch() {
ITestBean tb = (ITestBean) beanFactory.getBean("jdk1");
jdkAssertions(tb, 1);
assertThat(tb.getName()).isEqualTo("jdk1");
}

@Test
public void testCglibProxyWithWildcardMatch() {
void cglibProxyWithWildcardMatch() {
TestBean tb = (TestBean) beanFactory.getBean("cglib1");
cglibAssertions(tb);
assertThat(tb.getName()).isEqualTo("cglib1");
}

@Test
public void testWithFrozenProxy() {
void withFrozenProxy() {
ITestBean testBean = (ITestBean) beanFactory.getBean("frozenBean");
assertThat(((Advised)testBean).isFrozen()).isTrue();
}
Expand Down Expand Up @@ -195,25 +187,16 @@ private void cglibAssertions(TestBean tb) {

class CreatesTestBean implements FactoryBean<Object> {

/**
* @see org.springframework.beans.factory.FactoryBean#getObject()
*/
@Override
public Object getObject() throws Exception {
return new TestBean();
}

/**
* @see org.springframework.beans.factory.FactoryBean#getObjectType()
*/
@Override
public Class<?> getObjectType() {
return TestBean.class;
}

/**
* @see org.springframework.beans.factory.FactoryBean#isSingleton()
*/
@Override
public boolean isSingleton() {
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,28 @@
<beans>

<bean id="frozenProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames" value="frozenBean"/>
<property name="frozen" value="true"/>
<property name="interceptorNames" value="nopInterceptor"/>
<property name="beanNames" value="frozenBean" />
<property name="frozen" value="true" />
<property name="interceptorNames" value="nopInterceptor" />
</bean>

<bean id="_jdkBeanNameProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<description>
Automatically proxies using JDK dynamic proxies
</description>
<property name="beanNames"><value>jdk*,onlyJdk,doubleJdk</value></property>
<property name="interceptorNames">
<list>
<value>nopInterceptor</value>
</list>
</property>
<description>Automatically proxies using JDK dynamic proxies</description>
<property name="beanNames" value="jdk*,onlyJdk,doubleJdk" />
<property name="interceptorNames" value="nopInterceptor" />
</bean>

<bean id="doubleJdkBeanNameProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames" value="doubleJdk"/>
<property name="interceptorNames" value="nopInterceptor"/>
<property name="beanNames" value="doubleJdk" />
<property name="interceptorNames" value="nopInterceptor" />
</bean>

<bean id="_cglibBeanNameProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>
cglib*
</value>
<property name="beanNames" value="cglib*" />
<property name="proxyTargetClass">
<description>Use the inherited ProxyConfig property to force CGLIB proxying</description>
<value>true</value>
</property>
<property name="proxyTargetClass">
<description>Use the inherited ProxyConfig property to force CGLIB proxying</description>
<value>true</value>
</property>
<property name="interceptorNames">
<description>Interceptors and Advisors to apply automatically</description>
<list>
Expand All @@ -49,14 +39,14 @@
<description>
Illustrates a JDK introduction
</description>
<property name="beanNames"><value>*introductionUsingJdk</value></property>
<property name="interceptorNames">
<property name="beanNames" value="*introductionUsingJdk" />
<property name="interceptorNames">
<list>
<value>introductionNopInterceptor</value>
<value>timestampIntroduction</value>
<value>lockableAdvisor</value>
</list>
</property>
</property>
</bean>

<bean id="timestampIntroduction" class="org.springframework.aop.testfixture.advice.TimestampIntroductionAdvisor"/>
Expand All @@ -74,11 +64,11 @@
<bean id="introductionNopInterceptor" class="org.springframework.aop.testfixture.interceptor.NopInterceptor"/>

<bean id="introductionUsingJdk" class="org.springframework.beans.testfixture.beans.TestBean">
<property name="name"><value>introductionUsingJdk</value></property>
<property name="name" value="introductionUsingJdk" />
</bean>

<bean id="second-introductionUsingJdk" class="org.springframework.beans.testfixture.beans.TestBean">
<property name="name"><value>second-introductionUsingJdk</value></property>
<property name="name" value="second-introductionUsingJdk" />
</bean>

<!--
Expand All @@ -89,7 +79,7 @@
</bean>

<bean id="jdk1" class="org.springframework.beans.testfixture.beans.TestBean">
<property name="name"><value>jdk1</value></property>
<property name="name" value="jdk1" />
</bean>

<bean id="frozen" class="org.springframework.beans.testfixture.beans.TestBean">
Expand All @@ -99,19 +89,19 @@
<alias name="frozen" alias="frozenBean"/>

<bean id="cglib1" class="org.springframework.beans.testfixture.beans.TestBean">
<property name="name"><value>cglib1</value></property>
<property name="name" value="cglib1" />
</bean>

<bean id="onlyJdk" class="org.springframework.beans.testfixture.beans.TestBean">
<property name="name"><value>onlyJdk</value></property>
<property name="name" value="onlyJdk" />
</bean>

<bean id="doubleJdk" class="org.springframework.beans.testfixture.beans.TestBean">
<property name="name"><value>doubleJdk</value></property>
<property name="name" value="doubleJdk" />
</bean>

<bean id="noproxy" class="org.springframework.beans.testfixture.beans.TestBean">
<property name="name"><value>noproxy</value></property>
<property name="name" value="noproxy" />
</bean>

</beans>

0 comments on commit a07dc80

Please sign in to comment.