Commit Graph
30 Commits
Author SHA1 Message Date
Chris Beams c4d13f6db9 Fix context:property-placeholder XSD type hierarchy
context:property-placeholder extends 'propertyPlaceholder' type
defintion once again.  This relationship was inadvertently removed in
3.1 M1, and the effect was that XML tooling would raise errors on
use of attributes like 'location'.

The updated schema has also been published to

    http://www.springframework.org/schema/context/spring-context-3.1.xsd

Issue: SPR-8037

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4088 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-13 19:12:50 +00:00
Chris Beams adc9400905 Include license.txt and notice.txt in module JARs
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3967 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-09 06:56:40 +00:00
Chris Beams dc22760978 Introduce FeatureSpecification support
Introduce FeatureSpecification interface and implementations

    FeatureSpecification objects decouple the configuration of
    spring container features from the concern of parsing XML
    namespaces, allowing for reuse in code-based configuration
    (see @Feature* annotations below).

    * ComponentScanSpec
    * TxAnnotationDriven
    * MvcAnnotationDriven
    * MvcDefaultServletHandler
    * MvcResources
    * MvcViewControllers

Refactor associated BeanDefinitionParsers to delegate to new impls above

    The following BeanDefinitionParser implementations now deal only
    with the concern of XML parsing.  Validation is handled by their
    corresponding FeatureSpecification object.  Bean definition creation
    and registration is handled by their corresponding
    FeatureSpecificationExecutor type.

    * ComponentScanBeanDefinitionParser
    * AnnotationDrivenBeanDefinitionParser (tx)
    * AnnotationDrivenBeanDefinitionParser (mvc)
    * DefaultServletHandlerBeanDefinitionParser
    * ResourcesBeanDefinitionParser
    * ViewControllerBeanDefinitionParser

Update AopNamespaceUtils to decouple from XML (DOM API)

    Methods necessary for executing TxAnnotationDriven specification
    (and eventually, the AspectJAutoProxy specification) have been
    added that accept boolean arguments for whether to proxy
    target classes and whether to expose the proxy via threadlocal.

    Methods that accepted and introspected DOM Element objects still
    exist but have been deprecated.

Introduce @FeatureConfiguration classes and @Feature methods

    Allow for creation and configuration of FeatureSpecification objects
    at the user level.  A companion for @Configuration classes allowing
    for completely code-driven configuration of the Spring container.

    See changes in ConfigurationClassPostProcessor for implementation
    details.

    See Feature*Tests for usage examples.

    FeatureTestSuite in .integration-tests is a JUnit test suite designed
    to aggregate all BDP and Feature* related tests for a convenient way
    to confirm that Feature-related changes don't break anything.
    Uncomment this test and execute from Eclipse / IDEA. Due to classpath
    issues, this cannot be compiled by Ant/Ivy at the command line.

Introduce @FeatureAnnotation meta-annotation and @ComponentScan impl

    @FeatureAnnotation provides an alternate mechanism for creating
    and executing FeatureSpecification objects.  See @ComponentScan
    and its corresponding ComponentScanAnnotationParser implementation
    for details.  See ComponentScanAnnotationIntegrationTests for usage
    examples

Introduce Default[Formatting]ConversionService implementations

    Allows for convenient instantiation of ConversionService objects
    containing defaults appropriate for most environments.  Replaces
    similar support originally in ConversionServiceFactory (which is now
    deprecated). This change was justified by the need to avoid use
    of FactoryBeans in @Configuration classes (such as
    FormattingConversionServiceFactoryBean). It is strongly preferred
    that users simply instantiate and configure the objects that underlie
    our FactoryBeans. In the case of the ConversionService types, the
    easiest way to do this is to create Default* subtypes. This also
    follows convention with the rest of the framework.

Minor updates to util classes

    All in service of changes above. See diffs for self-explanatory
    details.

    * BeanUtils
    * ObjectUtils
    * ReflectionUtils

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3954 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-08 14:42:33 +00:00
Costin Leau 1f92a12c1e moved cache abstraction from context.support to context
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3947 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-07 17:41:25 +00:00
Chris Beams 1ac7b56caf M1 cut of environment, profiles and property work (SPR-7508)
Decomposed Environment interface into PropertySources, PropertyResolver
objects

    Environment interface and implementations are still present, but
    simpler.

    PropertySources container aggregates PropertySource objects;
    PropertyResolver provides search, conversion, placeholder
    replacement. Single implementation for now is
    PropertySourcesPlaceholderResolver

Renamed EnvironmentAwarePropertyPlaceholderConfigurer to
PropertySourcesPlaceholderConfigurer

    <context:property-placeholder/> now registers PSPC by default, else
    PPC if systemPropertiesMode* settings are involved

Refined configuration and behavior of default profiles

    See Environment interface Javadoc for details

Added Portlet implementations of relevant interfaces:

    * DefaultPortletEnvironment
    * PortletConfigPropertySource, PortletContextPropertySource
    * Integrated each appropriately throughout Portlet app contexts

Added protected 'createEnvironment()' method to AbstractApplicationContext

    Subclasses can override at will to supply a custom Environment
    implementation.  In practice throughout the framework, this is how
    Web- and Portlet-related ApplicationContexts override use of the
    DefaultEnvironment and swap in DefaultWebEnvironment or
    DefaultPortletEnvironment as appropriate.

Introduced "stub-and-replace" behavior for Servlet- and Portlet-based
PropertySource implementations

    Allows for early registration and ordering of the stub, then
    replacement with actual backing object at refresh() time.

    Added AbstractApplicationContext.initPropertySources() method to
    support stub-and-replace behavior. Called from within existing
    prepareRefresh() method so as to avoid impact with
    ApplicationContext implementations that copy and modify AAC's
    refresh() method (e.g.: Spring DM).

    Added methods to WebApplicationContextUtils and
    PortletApplicationContextUtils to support stub-and-replace behavior

Added comprehensive Javadoc for all new or modified types and members

Added XSD documentation for all new or modified elements and attributes

    Including nested <beans>, <beans profile="..."/>, and changes for
    certain attributes type from xsd:IDREF to xsd:string

Improved fix for detecting non-file based Resources in
PropertiesLoaderSupport (SPR-7547, SPR-7552)

    Technically unrelated to environment work, but grouped in with
    this changeset for convenience.

Deprecated (removed) context:property-placeholder
'system-properties-mode' attribute from spring-context-3.1.xsd

    Functionality is preserved for those using schemas up to and including
    spring-context-3.0.  For 3.1, system-properties-mode is no longer
    supported as it conflicts with the idea of managing a set of property
    sources within the context's Environment object. See Javadoc in
    PropertyPlaceholderConfigurer, AbstractPropertyPlaceholderConfigurer
    and PropertySourcesPlaceholderConfigurer for details.

Introduced CollectionUtils.toArray(Enumeration<E>, A[])

Work items remaining for 3.1 M2:

    Consider repackaging PropertySource* types; eliminate internal use
    of SystemPropertyUtils and deprecate

    Further work on composition of Environment interface; consider
    repurposing existing PlaceholderResolver interface to obviate need
    for resolve[Required]Placeholder() methods currently in Environment.

    Ensure configurability of placeholder prefix, suffix, and value
    separator when working against an AbstractPropertyResolver

    Add JNDI-based Environment / PropertySource implementatinos

    Consider support for @Profile at the @Bean level

    Provide consistent logging for the entire property resolution
    lifecycle; consider issuing all such messages against a dedicated
    logger with a single category.

    Add reference documentation to cover the featureset.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3839 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-03 09:04:34 +00:00
Chris Beams 45e5b46fc2 Merge 3.1.0 development branch into trunk
Branch in question is 'env' branch from git://git.springsource.org/sandbox/cbeams.git; merged into
git-svn repository with:

    git merge -s recursive -Xtheirs --no-commit env

No merge conflicts, but did need to

    git rm spring-build

prior to committing.

With this change, Spring 3.1.0 development is now happening on SVN
trunk. Further commits to the 3.0.x line will happen in an as-yet
uncreated SVN branch.  3.1.0 snapshots will be available
per the usual nightly CI build from trunk.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3782 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-25 19:48:20 +00:00
Juergen Hoeller 708f816053 added mode="proxy"/"aspectj" and proxy-target-class options to task namespace; switched to concise names for async aspects
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3770 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-15 20:50:23 +00:00
Juergen Hoeller 89f3436596 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3725 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-10 18:31:43 +00:00
Juergen Hoeller 56f7b00dff polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3594 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-15 23:04:19 +00:00
Juergen Hoeller 6dd447bdbc clarified double role of id property
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2524 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-27 01:45:53 +00:00
David Syer f8fcb83af5 RESOLVED - issue SPR-6398: Document attributes in @Scheduled and friends
http://jira.springframework.org/browse/SPR-6398

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2469 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-20 12:36:02 +00:00
David Syer b396d4b212 RESOLVED - issue SPR-4783: Add name attribute to all namespaces that use AbstractBeanDefinitionParser and declare name= attribute (includes <lang:groovy.../>).
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2197 50f2f4bb-b051-0410-bef5-90022cba6387
2009-10-27 15:22:36 +00:00
David Syer 835dfa1d2b RESOLVED - issue SPR-4661: Improve context-property-placeholder configurability
Added new features to property override and placeholders (order, locations, system-properties-mode, ignore-*)

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2193 50f2f4bb-b051-0410-bef5-90022cba6387
2009-10-27 13:38:29 +00:00
Mark Fisher 49ed02282c Renamed the 'size' attribute to 'pool-size' for the <executor/> and <scheduler/> elements in the task namespace.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2017 50f2f4bb-b051-0410-bef5-90022cba6387
2009-09-25 14:19:42 +00:00
Christian Dupuis e81fd7b5d3 xsds now use schemaLocation attribute on xsd:import elements to specify the concrete schema version to import
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1589 50f2f4bb-b051-0410-bef5-90022cba6387
2009-07-22 14:06:44 +00:00
Mark Fisher 12b2418623 The 'task' sub-element of the 'scheduled-tasks' element is now 'scheduled' to be consistent with the @Scheduled annotation (and to avoid task:task).
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1394 50f2f4bb-b051-0410-bef5-90022cba6387
2009-06-17 19:39:51 +00:00
Mark Fisher c069d45b3d The <task:annotation-driven/> element now registers the post-processor for @Scheduled in addition to the already existing @Async support. Both "scheduler" and "executor" attributes are available.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1317 50f2f4bb-b051-0410-bef5-90022cba6387
2009-06-06 02:11:39 +00:00
Mark Fisher 39a3dead76 Added support for the 'executor' element within the 'task' namespace for creating a ThreadPoolTaskExecutor instance.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1310 50f2f4bb-b051-0410-bef5-90022cba6387
2009-06-05 01:18:53 +00:00
Juergen Hoeller 661c96a5ca prepared 3.0 versions of the remaining namespaces
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1306 50f2f4bb-b051-0410-bef5-90022cba6387
2009-06-03 10:29:17 +00:00
Mark Fisher 7c9b459aa5 Added support for the 'annotation-driven' element within the 'task' namespace to enable detection of the @Async annotation on Spring-managed objects.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1301 50f2f4bb-b051-0410-bef5-90022cba6387
2009-06-02 16:58:43 +00:00
Christian Dupuis fc602eb256 added spring.tooling descriptor and images for all namespaces
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1252 50f2f4bb-b051-0410-bef5-90022cba6387
2009-05-26 11:58:09 +00:00
Mark Fisher ce0017a838 SPR-4359 renamed 'concurrent' namespace to 'task'
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1229 50f2f4bb-b051-0410-bef5-90022cba6387
2009-05-22 03:12:43 +00:00
Mark Fisher 716070be36 SPR-4359 the 'scheduling' namespace is now 'concurrent'
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1226 50f2f4bb-b051-0410-bef5-90022cba6387
2009-05-21 18:41:13 +00:00
Christian Dupuis 1f065e9daa some minor tweaks to the scheduling namespace parser to make it more tooling friendly; applied new tools:annotation to method attribute in scheduling xsd
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1183 50f2f4bb-b051-0410-bef5-90022cba6387
2009-05-15 13:24:28 +00:00
Mark Fisher 035c489129 SPR-4359 Added support for a 'task-scheduler' element.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1132 50f2f4bb-b051-0410-bef5-90022cba6387
2009-05-08 20:32:11 +00:00
Mark Fisher 55320b2c11 SPR-4359 Initial commit of scheduling namespace support.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1129 50f2f4bb-b051-0410-bef5-90022cba6387
2009-05-08 18:32:07 +00:00
Juergen Hoeller f7642c4e30 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1092 50f2f4bb-b051-0410-bef5-90022cba6387
2009-05-05 09:36:53 +00:00
Juergen Hoeller b9f25bc30b polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@643 50f2f4bb-b051-0410-bef5-90022cba6387
2009-02-16 01:43:49 +00:00
Juergen Hoeller 45632781a2 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@616 50f2f4bb-b051-0410-bef5-90022cba6387
2009-02-12 17:41:46 +00:00
Arjen Poutsma 70caa15c13 Added XSDs and namespace handler files.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@172 50f2f4bb-b051-0410-bef5-90022cba6387
2008-10-29 00:44:36 +00:00