Commit Graph

129 Commits

Author SHA1 Message Date
Chris Beams 480aa5d993 Document createEnvironment() methods
in AbstractApplicationContext and SpringContextResourceAdapter

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3866 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 22:25:42 +00:00
Chris Beams 835a3f8d64 Refactor Environment and PropertySource
* Environment now extends PropertyResolver
* Environment no longer exposes resolver and sources
* PropertySource is String,Object instead of String,String
* PropertySource no longer assumes enumerability of property names
* Introduced EnumerablePropertySource for those that do have enumerable property names

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3862 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 22:24:14 +00:00
Chris Beams d00b49dca5 Introduce "Aware" superinterface
All existing *Aware interfaces have been refactored to extend this
new marker interface, serving two purposes:

    * Easy access to a type hierarchy that can answer the question
      "What *Aware interfaces are available?", without requiring
      text-based searches. Also clearly excludes false positives like
      TargetClassAware and ParamAware, which while similarly named,
      are not semantically similar to traditional *Aware interfaces
      in Spring.

    * Minor potential performance improvements in
      AbstractAutowireCapableBeanFactory and
      ApplicationContextAwareProcessor. Both have blocks of sequential
      instanceof checks in order to invoke any *Aware interface callback
      methods. For a bean that implements none of these interfaces,
      the whole sequence can be avoided by guarding first with
          if (bean instanceof Aware) {
              ...
          }

Implementors of custom *Aware-style interfaces (and presumably
the BeanPostProcessors that handle them), are encouraged to refactor to
extending this interface for consistency with the framework as well as
the points above.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3840 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-03 10:13:57 +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
Sam Brannen 924b8e11ea [SPR-7850][SPR-7851] Upgraded to JUnit 4.8.1 and TestNG 5.12.1; added changelog entries for 3.1.0.M1.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3838 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-30 08:00:58 +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 da758771fa consistent use of JDK 1.5's ThreadLocal.remove() over ThreadLocal.set(null), preventing leaks (SPR-7441)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3627 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-01 17:17:25 +00:00
Ben Hale 82e5f5f5d6 Publishing license and notice files
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3612 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-23 13:17:31 +00:00
Arjen Poutsma 750dc01862 Prepping for 3.0.5
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3611 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-19 11:04:04 +00:00
Juergen Hoeller d5149d86f4 use generic Class<?> in TransactionAttributeSource signature
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3581 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-15 21:19:52 +00:00
Juergen Hoeller 544208bc46 introspect superclass when given a CGLIB proxy as target class (SPR-7448); use generic Class<?> in TransactionAttributeSource signature
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3566 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-11 21:47:50 +00:00
Juergen Hoeller 188efe752e transaction names based on method id from most specific method (target class instead of interface; SPR-7317)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3465 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-28 19:47:13 +00:00
Juergen Hoeller 7be1856e9f Spring's MessageEndpointFactory classes are now JCA 1.6 compliant as well
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3444 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-23 17:23:11 +00:00
Arjen Poutsma 7f54fe732f Upgrading version to 3.0.4
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3428 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-15 14:18:29 +00:00
Juergen Hoeller 509930ab35 @Transactional qualifier value matches against @Qualifier annotations on @Bean methods as well (SPR-7232)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3368 50f2f4bb-b051-0410-bef5-90022cba6387
2010-05-26 09:46:03 +00:00
Juergen Hoeller b15ec21c0e only retrieve transaction manager bean if necessary (SPR-7153)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3308 50f2f4bb-b051-0410-bef5-90022cba6387
2010-05-03 12:51:54 +00:00
David Syer faa0f29f0f Update version in POMs to 3.0.3
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3246 50f2f4bb-b051-0410-bef5-90022cba6387
2010-04-15 10:26:14 +00:00
Juergen Hoeller 7ae7f47951 added javadoc references to semantic definition of transaction attributes (SPR-7029)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3165 50f2f4bb-b051-0410-bef5-90022cba6387
2010-03-24 23:22:52 +00:00
Juergen Hoeller c140717a84 JCA listener containers delegate to wrapped Transaction handle (for Geronimo compatibility; SPR-6991)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3146 50f2f4bb-b051-0410-bef5-90022cba6387
2010-03-23 16:27:34 +00:00
Chris Beams 0041848f1b SPR-7009: TransactionInterceptor now extracts ultimate target class before evaluating @Transactional metadata to accommodate double-proxying cases
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3144 50f2f4bb-b051-0410-bef5-90022cba6387
2010-03-23 12:06:30 +00:00
Juergen Hoeller d609376c10 AopUtils.getTargetClass(...) never returns null (SPR-7011)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3136 50f2f4bb-b051-0410-bef5-90022cba6387
2010-03-22 18:31:13 +00:00
Juergen Hoeller 5a41fc20eb avoid Synchronization List preparations upfront if possible (SPR-6999)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3131 50f2f4bb-b051-0410-bef5-90022cba6387
2010-03-22 14:31:58 +00:00
Juergen Hoeller b6a298d8b3 avoid Synchronization List preparations upfront if possible (SPR-6999)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3128 50f2f4bb-b051-0410-bef5-90022cba6387
2010-03-22 14:23:02 +00:00
Juergen Hoeller 630ecacac9 @Transactional qualifiers work in unit tests as well (SPR-6892)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3100 50f2f4bb-b051-0410-bef5-90022cba6387
2010-03-12 20:44:41 +00:00
David Syer 25ef81476d Update Central POMs to 3.0.2
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3022 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-21 15:32:18 +00:00
Costin Leau 4be6044db9 + make use or property placeholders inside template.mf
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3014 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-19 09:43:22 +00:00
Juergen Hoeller c6f1d755b5 included qualifier value in debug log for each transaction (SPR-6811)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2937 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-09 14:57:17 +00:00
Juergen Hoeller 229c393702 non-matching @Transactional qualifier value will lead to IllegalStateException (SPR-6810)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2933 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-08 18:32:38 +00:00
Chris Beams f86e3bcfd2 Updated Eclipse .classpath to aspectj 1.6.8
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2920 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-04 13:45:14 +00:00
Costin Leau 5e677feda0 + upgrade to AspectJ 1.6.8
+ externalize some of the jar versions
+ align the versions of some dependencies between pom.xml and ivy.xml

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2918 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-04 11:46:21 +00:00
Juergen Hoeller 30dfba110d fixed WebSphereUowTransactionManager regression: correctly roll back in case of exception (SPR-6695)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2907 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-03 19:41:14 +00:00
Juergen Hoeller 9991a013fd TransactionInterceptor is able to serialize "transactionManagerBeanName" as well (SPR-6680)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2889 50f2f4bb-b051-0410-bef5-90022cba6387
2010-02-01 14:45:11 +00:00
David Syer e6d2f9428c SPR-6678: fix poms for 3.0.1
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2809 50f2f4bb-b051-0410-bef5-90022cba6387
2010-01-13 11:07:08 +00:00
Juergen Hoeller 0cac1c6dfc added "alwaysTranslate" flag (SPR-6630)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2804 50f2f4bb-b051-0410-bef5-90022cba6387
2010-01-12 13:26:22 +00:00
Juergen Hoeller dc82280545 added assertion
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2791 50f2f4bb-b051-0410-bef5-90022cba6387
2010-01-07 23:28:25 +00:00
Juergen Hoeller 09e967e61d allow for identifying a specific JBossWorkManagerMBean (SPR-6648)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2778 50f2f4bb-b051-0410-bef5-90022cba6387
2010-01-06 22:15:58 +00:00
Juergen Hoeller c67cca48a6 fixed scoped proxy unwrapping (SPR-6625)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2749 50f2f4bb-b051-0410-bef5-90022cba6387
2010-01-05 12:52:28 +00:00
Juergen Hoeller 5b59b9a0dc avoid hard-coded AOP dependency for ScopedObject check
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2687 50f2f4bb-b051-0410-bef5-90022cba6387
2009-12-15 21:20:51 +00:00
Juergen Hoeller b6d0e19958 extended registerAfterCompletionWithExistingTransaction's exception handling to detect JBoss RollbackException as well (SPR-6450)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2598 50f2f4bb-b051-0410-bef5-90022cba6387
2009-12-07 20:53:21 +00:00
Juergen Hoeller 3a683ea0ac newTransactionStatus reverted to its original role, just without preparing synchronization (SPR-6521)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2591 50f2f4bb-b051-0410-bef5-90022cba6387
2009-12-07 14:27:27 +00:00
David Syer 2bad74c238 SPR-5327: tweak the ivy.xml so that commons-logging is a separate configuration. It already comes out as optional in the generated poms (including core), which isn't great, but I can't see what is causing that
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2579 50f2f4bb-b051-0410-bef5-90022cba6387
2009-12-04 18:25:31 +00:00
Juergen Hoeller ea9f18b8fd initialize synchronization after begin while instantiating TransactionStatus as early as possible (SPR-6409)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2554 50f2f4bb-b051-0410-bef5-90022cba6387
2009-12-01 01:32:51 +00:00
Mark Fisher 8e92336f2b SPR-5507 The 'shutdownOrder' property of SmartLifecycle has been renamed 'phase'. The order no longer applies to shutdown only; now startup order is determined by the phase value as well. Components start in ascending order and stop in descending order.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2501 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-24 16:07:23 +00:00
Juergen Hoeller 39bf8dc02e added chaining-capable "add" method to MutablePropertyValues
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2462 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-19 22:30:35 +00:00
Juergen Hoeller 0da90e38cf TransactionTemplate catches undeclared checked exception and rethrows it as UndeclaredThrowableException (SPR-6361)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2455 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-19 16:36:15 +00:00
Mark Fisher 5c1a7cc953 SPR-5507 Added support for shutdown order on SmartLifecycle. DefaultLifecycleProcessor now manages the shutdown in phases depending on that order (with a timeout value per group).
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2368 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-12 02:09:44 +00:00
Thomas Risberg 777c40f667 added unwrapping of scoped proxy tp unwrapResourceIfNecessary() (SPR-5671)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2336 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-11 18:16:41 +00:00
Mark Fisher 00fafe3f5e SPR-5507 GenericMessageEndpointManager now implements SmartLifecycle instead of ApplicationListener.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2311 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-10 12:59:50 +00:00
Juergen Hoeller df0b4d3854 WebSphereUowTransactionManager suspends synchronizations even without existing transaction (SPR-6167)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2302 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-09 19:59:27 +00:00
Mark Fisher b47eebe3c5 SPR-4716 GenericMessageEndpointManager now "auto-starts" upon receiving a ContextRefreshedEvent rather than within afterPropertiesSet().
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2276 50f2f4bb-b051-0410-bef5-90022cba6387
2009-11-06 15:24:12 +00:00