- 03 3月, 2012 1 次提交
-
-
由 Stevo Slavic 提交于
Before this fix MultipartResolver javadoc mentioned that there is only one concrete implementation included in Spring. This was true as of Spring 2.5 but Spring 3.1 added another one, Servlet 3.0 Part API based implementation. This fix changes MultipartResolver javadoc so that the other one, StandardServletMultipartResolver implementation, gets also listed. Changed javadoc mentions also as of which version does Spring bundle two MultipartResolver implementations. Issue: SPR-5984
-
- 02 3月, 2012 1 次提交
-
-
由 Chris Beams 提交于
* patch-1: Fix typo in Eclipse import instructions
-
- 01 3月, 2012 6 次提交
-
-
由 Mike Krumlauf 提交于
-
由 Chris Beams 提交于
* SPR-7940: Remove note on singleton-scoped proxy raising BCE
-
由 Stevo Slavic 提交于
Before this change bean scopes chapter in Spring reference documentation had a note which mentioned that creating a scoped proxy for singleton- or prototype-scoped beans will throw BeanCreationException. This is no longer the case and this change removes the mentioned note. Issue: SPR-7940
-
由 Chris Beams 提交于
* pkan/master: Fix typo in spring:eval taglib reference doc Fix typo in ApplicationContext reference doc
-
由 Phani Kandula 提交于
- Replace 'javascriptEncoding' with 'javaScriptEscape' Issue: SPR-9188
-
由 Phani Kandula 提交于
- Add missing '=' sign in sample code for section 4.2.3 Issue: SPR-8856
-
- 29 2月, 2012 1 次提交
-
-
由 Chris Beams 提交于
Prior to this commit, MutablePropertySources#get(String) would throw IndexArrayOutOfBoundsException if the named property source does not actually exist. This is a violation of the PropertySource#get contract as described in its Javadoc. The implementation now correctly checks for the existence of the named property source, returning null if non-existent and otherwise returning the associated PropertySource. Other changes - Rename PropertySourcesTests => MutablePropertySourcesTests - Polish MutablePropertySourcesTests for style, formatting - Refactor MutablePropertySources for consistency Issue: SPR-9179
-
- 28 2月, 2012 1 次提交
-
-
由 Arjen Poutsma 提交于
Jaxb2Marshaller#supports now supports classes found via package scanning. Issue: SPR-9152
-
- 27 2月, 2012 1 次提交
-
-
由 Arjen Poutsma 提交于
JDK7 changed its reflections API in order to resolve http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041784 In short, JDK 5 and 6 (wrongly) return GenericArrayTypes in certain reflection scenarios, whereas JDK 7 changed this to return a normal array type. For Jaxb2Marshaller, this meant that marshaling byte arrays was not supported under JDK 7. This change fixes that, so that Jaxb2Marhsaller supports marshalling byte arrays again (under JDK 5, 6 or 7).
-
- 24 2月, 2012 1 次提交
-
-
由 Chris Beams 提交于
Due to changes made in commit 2fa87a71 for SPR-9118, AbstractResource#contentLength would fall into an infinite loop unless the method were overridden by a subclass (which it is in the majority of use cases). This commit: - fixes the infinite recursion by refactoring to a while loop - asserts that the value returned from #getInputStream is not null in order to avoid NullPointerException - tests both of the above - adds Javadoc to the Resource interface to clearly document that the contract for any implementation is that #getInputStream must not return null Issue: SPR-9161
-
- 23 2月, 2012 2 次提交
-
-
由 Chris Beams 提交于
- Rename customized .wrapper to default gradle/wrapper directory for out of the box compatibility with STS Gradle tooling - Add .settings/gradle directory to capture defaults when using STS Gradle tooling to import projects
-
由 Chris Beams 提交于
-
- 22 2月, 2012 2 次提交
-
-
由 Chris Beams 提交于
* SPR-7843: Predict specific object type in EhCacheFactoryBean
-
由 Stevo Slavic 提交于
Prior to this change, before a bean is created by EhCacheFactoryBean, its #getObjectType would return only an Ehcache interface. This caused unwanted wiring issues as described in the related JIRA issue. This fix makes use of EhCacheFactoryBean's configuration to determine the specific Ehcache object type even before it's created, such that the container is provided with as much information as possible when resolving dependencies. Nevertheless, users are advised to code to the Ehcache interface. Issue: SPR-7843
-
- 21 2月, 2012 1 次提交
-
-
由 Chris Beams 提交于
ORA-00054 is already mapped to CannotAcquireLockException and is described as "resource busy and acquire with NOWAIT specified" As pointed out in the associated JIRA issue, ORA-30006 is quite similar being described as "resource busy; acquire with WAIT timeout expired" This commit maps ORA-30006 to CannotAcquireLockException as well. Issue: SPR-9141
-
- 20 2月, 2012 2 次提交
-
-
由 Chris Beams 提交于
Changes in commit 41ade68b introduced a regression causing all but the first location in the @PropertySource#value array to be ignored during ${...} placeholder resolution. This change ensures that all locations are processed and replaced as expected. Issue: SPR-9133, SPR-9127
-
由 Chris Beams 提交于
* 3.1.x: Warn re Environment construction and instance vars Disallow empty @PropertySource(value = {}) Fix @PropertySource bug with multiple values final preparations for 3.1.1 release added "receive-timeout" attribute to "jms:listener-container" element
-
- 17 2月, 2012 4 次提交
-
-
由 Chris Beams 提交于
- Add warning regarding access to default instance variable values during AbstractEnvironment#customizePropertySources callback - Polish AbstractEnvironment Javadoc and formatting Issue: SPR-9013
-
由 Chris Beams 提交于
Previously, a user could specify an empty array of resource locations to the @PropertySource annotation, which amounts to a meaningless no-op. ConfigurationClassParser now throws IllegalArgumentException upon encountering any such misconfiguration.
-
由 Chris Beams 提交于
Prior to this commit, specifying a named @PropertySource with multiple values would not work as expected. e.g.: @PropertySource( name = "ps", value = { "classpath:a.properties", "classpath:b.properties" }) In this scenario, the implementation would register a.properties with the name "ps", and subsequently register b.properties with the name "ps", overwriting the entry for a.properties. To fix this behavior, a CompositePropertySource type has been introduced which accepts a single name and a set of PropertySource objects to iterate over. ConfigurationClassParser's @PropertySource parsing routine has been updated to use this composite approach when necessary, i.e. when both an explicit name and more than one location have been specified. Note that if no explicit name is specified, the generated property source names are enough to distinguish the instances and avoid overwriting each other; this is why the composite wrapper is not used in these cases. Issue: SPR-9127
-
由 Juergen Hoeller 提交于
-
- 16 2月, 2012 5 次提交
-
-
由 Chris Beams 提交于
-
由 Chris Beams 提交于
* 3.1.x: Demonstrate use of @Configuration as meta-annotation Prune dead code from JmsTransactionManager#doBegin Apply @Configuration BeanNameGenerator consistently Improve @Configuration bean name discovery Fix infinite recursion bug in nested @Configuration Polish static imports Minor fix in ServletResponseMethodArgumentResolver extracted ResourceUtils.useCachesIfNecessary(URLConnection) method (SP prepared for 3.1.1 release CustomSQLExceptionTranslatorRegistry/Registrar etc revised CustomSQLExceptionTranslatorRegistry/Registrar method naming use custom InputStream traversal instead of a full byte array (SPR-911 PathMatchingResourcePatternResolver preserves caching for JNLP jar con Resource "contentLength()" implementations work with OSGi bundle resou fixed MethodInvokingJobDetailFactoryBean for compatibility with Quartz fixed MethodInvokingJobDetailFactoryBean for compatibility with Quartz
-
由 Juergen Hoeller 提交于
-
由 Chris Beams 提交于
Issue: SPR-9090
-
由 Chris Beams 提交于
-
- 15 2月, 2012 11 次提交
-
-
由 Chris Beams 提交于
Since the introduction of the AnnotationConfig(Web)ApplicationContext types in Spring 3.0, it has been possible to specify a custom bean name generation strategy via the #setBeanNameGenerator methods available on each of these classes. If specified, that BeanNameGenerator was delegated to the underlying AnnotatedBeanDefinitionReader and ClassPathBeanDefinitionScanner. This meant that any @Configuration classes registered or scanned directly from the application context, e.g. via #register or #scan methods would respect the custom name generation strategy as intended. However, for @Configuration classes picked up via @Import or implicitly registered due to being nested classes would not be aware of this strategy, and would rather fall back to a hard-coded default AnnotationBeanNameGenerator. This change ensures consistent application of custom BeanNameGenerator strategies in the following ways: - Introduction of AnnotationConfigUtils#CONFIGURATION_BEAN_NAME_GENERATOR singleton If a custom BeanNameGenerator is specified via #setBeanNameGenerator the AnnotationConfig* application contexts will, in addition to delegating this object to the underlying reader and scanner, register it as a singleton bean within the enclosing bean factory having the constant name mentioned above. ConfigurationClassPostProcessor now checks for the presence of this singleton, falling back to a default AnnotationBeanNameGenerator if not present. This singleton-based approach is necessary because it is otherwise impossible to parameterize CCPP, given that it is registered as a BeanDefinitionRegistryPostProcessor bean definition in AnnotationConfigUtils#registerAnnotationConfigProcessors - Introduction of ConfigurationClassPostProcessor#setBeanNameGenerator As detailed in the Javadoc for this new method, this allows for customizing the BeanNameGenerator via XML by dropping down to direct registration of CCPP as a <bean> instead of using <context:annotation-config> to enable @Configuration class processing. - Smarter defaulting for @ComponentScan#beanNameGenerator Previously, @ComponentScan's #beanNameGenerator attribute had a default value of AnnotationBeanNameGenerator. The value is now the BeanNameGenerator interface itself, indicating that the scanner dedicated to processing each @ComponentScan should fall back to an inherited generator, i.e. the one originally specified against the application context, or the original default provided by ConfigurationClassPostProcessor. This means that name generation strategies will be consistent with a single point of configuration, but that individual @ComponentScan declarations may still customize the strategy for the beans that are picked up by that particular scanning. Issue: SPR-9124
-
由 Chris Beams 提交于
Prior to this commit, and based on earlier changes supporting SPR-9023, ConfigurationClassBeanDefinitionReader employed a simplistic strategy for extracting the 'value' attribute (if any) from @Configuration in order to determine the bean name for imported and nested configuration classes. An example case follows: @Configuration("myConfig") public class AppConfig { ... } This approach is too simplistic however, given that it is possible in 'configuration lite' mode to specify a @Component-annotated class with @Bean methods, e.g. @Component("myConfig") public class AppConfig { @Bean public Foo foo() { ... } } In this case, it's the 'value' attribute of @Component, not @Configuration, that should be consulted for the bean name. Or indeed if it were any other stereotype annotation meta-annotated with @Component, the value attribute should respected. This kind of sophisticated discovery is exactly what AnnotationBeanNameGenerator was designed to do, and ConfigurationClassBeanDefinitionReader now uses it in favor of the custom approach described above. To enable this refactoring, nested and imported configuration classes are no longer registered as GenericBeanDefinition, but rather as AnnotatedGenericBeanDefinition given that AnnotationBeanNameGenerator falls back to a generic strategy unless the bean definition in question is assignable to AnnotatedBeanDefinition. A new constructor accepting AnnotationMetadata has been added to AnnotatedGenericBeanDefinition in order to support the ASM-based approach in use by configuration class processing. Javadoc has been updated for both AnnotatedGenericBeanDefinition and its now very similar cousin ScannedGenericBeanDefinition to make clear the semantics and intention of these two variants. Issue: SPR-9023
-
由 Chris Beams 提交于
Prior to this commit, an infinite recursion would occur if a @Configuration class were nested within its superclass, e.g. abstract class Parent { @Configuration static class Child extends Parent { ... } } This is because the processing of the nested class automatically checks the superclass hierarchy for certain reasons, and each superclass is in turn checked for nested @Configuration classes. The ConfigurationClassParser implementation now prevents this by keeping track of known superclasses, i.e. once a superclass has been processed, it is never again checked for nested classes, etc. Issue: SPR-8955
-
由 Chris Beams 提交于
-
由 Rossen Stoyanchev 提交于
Issues: SPR-8983
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
- 14 2月, 2012 1 次提交
-
-
由 Juergen Hoeller 提交于
Resource "contentLength()" implementations work with OSGi bundle resources and JBoss VFS resources (SPR-9118)
-