Update of /cvsroot/springframework/spring/tiger/test/org/springframework/context/annotation In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv425/tiger/test/org/springframework/context/annotation Added Files: defaultAutowireByNameTests.xml defaultDependencyCheckAllTests.xml defaultLazyInitFalseTests.xml defaultAutowireByTypeTests.xml defaultInitAndDestroyMethodsTests.xml defaultDependencyCheckObjectsWithAutowireByNameTests.xml ComponentScanParserBeanDefinitionDefaultsTests.java defaultAutowireConstructorTests.xml defaultWithNoOverridesTests.xml defaultAutowireNoTests.xml defaultLazyInitTrueTests.xml Log Message: Scanned components now comply with all defaults as defined in the top-level 'beans' tag of the configuration file where the 'component-scan' element itself is defined (SPR-3823). --- NEW FILE: defaultDependencyCheckObjectsWithAutowireByNameTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-dependency-check="objects" default-autowire="byName"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> <bean id="propertyDependency1" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd1"/> </bean> <bean id="propertyDependency2" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd2"/> </bean> </beans> --- NEW FILE: defaultAutowireConstructorTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-autowire="constructor"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$ConstructorDependencyTestBean"> <constructor-arg value="cd"/> </bean> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd1"/> </bean> <bean id="propertyDependency2" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd2"/> </bean> </beans> --- NEW FILE: defaultAutowireByNameTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-autowire="byName"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$ConstructorDependencyTestBean"> <constructor-arg value="cd"/> </bean> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd1"/> </bean> <bean id="propertyDependency2" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd2"/> </bean> </beans> --- NEW FILE: defaultLazyInitTrueTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-lazy-init="true"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> </beans> --- NEW FILE: defaultAutowireByTypeTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-autowire="byType"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$ConstructorDependencyTestBean"> <constructor-arg value="cd"/> </bean> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd1"/> </bean> <bean id="propertyDependency2" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd2"/> </bean> </beans> --- NEW FILE: ComponentScanParserBeanDefinitionDefaultsTests.java --- /* * Copyright 2002-2007 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. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.context.annotation; import junit.framework.TestCase; import org.springframework.beans.factory.UnsatisfiedDependencyException; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.context.support.GenericApplicationContext; /** * @author Mark Fisher */ public class ComponentScanParserBeanDefinitionDefaultsTests extends TestCase { private static final String TEST_BEAN_NAME = "componentScanParserBeanDefinitionDefaultsTests.DefaultsTestBean"; private static final String LOCATION_PREFIX = "org/springframework/context/annotation/"; public void setUp() { DefaultsTestBean.INIT_COUNT = 0; } public void testDefaultLazyInit() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultWithNoOverridesTests.xml"); assertFalse("lazy-init should be false", context.getBeanDefinition(TEST_BEAN_NAME).isLazyInit()); assertEquals("initCount should be 0", 0, DefaultsTestBean.INIT_COUNT); context.refresh(); assertEquals("bean should have been instantiated", 1, DefaultsTestBean.INIT_COUNT); } public void testLazyInitTrue() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultLazyInitTrueTests.xml"); assertTrue("lazy-init should be true", context.getBeanDefinition(TEST_BEAN_NAME).isLazyInit()); assertEquals("initCount should be 0", 0, DefaultsTestBean.INIT_COUNT); context.refresh(); assertEquals("bean should not have been instantiated yet", 0, DefaultsTestBean.INIT_COUNT); context.getBean(TEST_BEAN_NAME); assertEquals("bean should have been instantiated", 1, DefaultsTestBean.INIT_COUNT); } public void testLazyInitFalse() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultLazyInitFalseTests.xml"); assertFalse("lazy-init should be false", context.getBeanDefinition(TEST_BEAN_NAME).isLazyInit()); assertEquals("initCount should be 0", 0, DefaultsTestBean.INIT_COUNT); context.refresh(); assertEquals("bean should have been instantiated", 1, DefaultsTestBean.INIT_COUNT); } public void testDefaultAutowire() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultWithNoOverridesTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertNull("no dependencies should have been autowired", bean.getConstructorDependency()); assertNull("no dependencies should have been autowired", bean.getPropertyDependency1()); assertNull("no dependencies should have been autowired", bean.getPropertyDependency2()); } public void testAutowireNo() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultAutowireNoTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertNull("no dependencies should have been autowired", bean.getConstructorDependency()); assertNull("no dependencies should have been autowired", bean.getPropertyDependency1()); assertNull("no dependencies should have been autowired", bean.getPropertyDependency2()); } public void testAutowireConstructor() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultAutowireConstructorTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertNotNull("constructor dependency should have been autowired", bean.getConstructorDependency()); assertEquals("cd", bean.getConstructorDependency().getName()); assertNull("property dependencies should not have been autowired", bean.getPropertyDependency1()); assertNull("property dependencies should not have been autowired", bean.getPropertyDependency2()); } public void testAutowireByType() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultAutowireByTypeTests.xml"); try { context.refresh(); fail("expected exception due to multiple matches for byType autowiring"); } catch (UnsatisfiedDependencyException e) { // expected } } public void testAutowireByName() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultAutowireByNameTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertNull("constructor dependency should not have been autowired", bean.getConstructorDependency()); assertNull("propertyDependency1 should not have been autowired", bean.getPropertyDependency1()); assertNotNull("propertyDependency2 should have been autowired", bean.getPropertyDependency2()); assertEquals("pd2", bean.getPropertyDependency2().getName()); } public void testDefaultDependencyCheck() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultWithNoOverridesTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertNull("constructor dependency should not have been autowired", bean.getConstructorDependency()); assertNull("property dependencies should not have been autowired", bean.getPropertyDependency1()); assertNull("property dependencies should not have been autowired", bean.getPropertyDependency2()); } public void testDependencyCheckAll() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultDependencyCheckAllTests.xml"); try { context.refresh(); fail("expected exception due to dependency check"); } catch (UnsatisfiedDependencyException e) { // expected } } public void testDependencyCheckObjectsWithAutowireByName() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultDependencyCheckObjectsWithAutowireByNameTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertNull("constructor dependency should not have been autowired", bean.getConstructorDependency()); assertNotNull("property dependencies should have been autowired", bean.getPropertyDependency1()); assertNotNull("property dependencies should have been autowired", bean.getPropertyDependency2()); } public void testDefaultInitAndDestroyMethodsNotDefined() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultWithNoOverridesTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertFalse("bean should not have been initialized", bean.isInitialized()); context.close(); assertFalse("bean should not have been destroyed", bean.isDestroyed()); } public void testDefaultInitAndDestroyMethodsDefined() { GenericApplicationContext context = new GenericApplicationContext(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context); reader.loadBeanDefinitions(LOCATION_PREFIX + "defaultInitAndDestroyMethodsTests.xml"); context.refresh(); DefaultsTestBean bean = (DefaultsTestBean) context.getBean(TEST_BEAN_NAME); assertTrue("bean should have been initialized", bean.isInitialized()); context.close(); assertTrue("bean should have been destroyed", bean.isDestroyed()); } private static class DefaultsTestBean { static int INIT_COUNT; private ConstructorDependencyTestBean constructorDependency; private PropertyDependencyTestBean propertyDependency1; private PropertyDependencyTestBean propertyDependency2; private boolean initialized; private boolean destroyed; public DefaultsTestBean() { INIT_COUNT++; } public DefaultsTestBean(ConstructorDependencyTestBean cdtb) { this(); this.constructorDependency = cdtb; } public void init() { this.initialized = true; } public boolean isInitialized() { return this.initialized; } public void destroy() { this.destroyed = true; } public boolean isDestroyed() { return this.destroyed; } public void setPropertyDependency1(PropertyDependencyTestBean pdtb) { this.propertyDependency1 = pdtb; } public void setPropertyDependency2(PropertyDependencyTestBean pdtb) { this.propertyDependency2 = pdtb; } public ConstructorDependencyTestBean getConstructorDependency() { return this.constructorDependency; } public PropertyDependencyTestBean getPropertyDependency1() { return this.propertyDependency1; } public PropertyDependencyTestBean getPropertyDependency2() { return this.propertyDependency2; } } private static class PropertyDependencyTestBean { private String name; public PropertyDependencyTestBean(String name) { this.name = name; } public String getName() { return this.name; } } private static class ConstructorDependencyTestBean { private String name; public ConstructorDependencyTestBean(String name) { this.name = name; } public String getName() { return this.name; } } } --- NEW FILE: defaultAutowireNoTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-autowire="no"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$ConstructorDependencyTestBean"> <constructor-arg value="cd"/> </bean> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd1"/> </bean> <bean id="propertyDependency2" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd2"/> </bean> </beans> --- NEW FILE: defaultDependencyCheckAllTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-dependency-check="all"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$ConstructorDependencyTestBean"> <constructor-arg value="cd"/> </bean> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd1"/> </bean> <bean id="propertyDependency2" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd2"/> </bean> </beans> --- NEW FILE: defaultWithNoOverridesTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$ConstructorDependencyTestBean"> <constructor-arg value="cd"/> </bean> <bean class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd1"/> </bean> <bean id="propertyDependency2" class="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$PropertyDependencyTestBean"> <constructor-arg value="pd2"/> </bean> </beans> --- NEW FILE: defaultInitAndDestroyMethodsTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-init-method="init" default-destroy-method="destroy"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> </beans> --- NEW FILE: defaultLazyInitFalseTests.xml --- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.1.xsd" default-lazy-init="false"> <context:component-scan base-package="org.springframework.context.annotation" use-default-filters="false" annotation-config="false"> <context:include-filter type="assignable" expression="org.springframework.context.annotation.ComponentScanParserBeanDefinitionDefaultsTests$DefaultsTestBean"/> </context:component-scan> </beans> |