Commit Graph

853 Commits

Author SHA1 Message Date
Chris Beams 2a4e1c98da Eliminate reserved 'default' profile (SPR-7778)
There is no longer a reserved default profile named 'default'. Rather,
users must explicitly specify a default profile or profiles via

    ConfigurableEnvironment.setDefaultProfiles(String...)
        - or -
    spring.profile.default="pD1,pD2"

Per above, the setDefaultProfile(String) method now accepts a variable
number of profile names (one or more).  This is symmetrical with the
existing setActiveProfiles(String...) method.

A typical scenario might involve setting both a default profile as a
servlet context property in web.xml and then setting an active profile
when deploying to production.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3809 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-08 07:59:25 +00:00
Chris Beams d469bf1387 Polish JavaDoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3808 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-08 07:58:47 +00:00
Chris Beams 7daf7da08b Add Hamcrest 1.1 as test-time dependency for .context
Provides a richer set of Matcher implementations than JUnit's hamcrest
package.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3807 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-07 06:56:55 +00:00
Chris Beams c2996bebcd Use dot notation rather than camel case for profile props (SPR-7508)
Before this change, the following properties could be used to manipulate
Spring profile behavior:

    -DspringProfiles=p1,p2
    -DdefaultSpringProfile=pD

These properties have been renamed to follow usual Java conventions for
property naming:

    -Dspring.profile.active=p1,p2
    -Dspring.profile.default=pD



git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3806 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-05 20:14:26 +00:00
Chris Beams f455b1e89a Support default profile (SPR-7508, SPR-7778)
'default' is now a reserved profile name, indicating
that any beans defined within that profile will be registered
unless another profile or profiles have been activated.

Examples below are expressed in XML, but apply equally when
using the @Profile annotation.

EXAMPLE 1:

        <beans>
            <beans profile="default">
                <bean id="foo" class="com.acme.EmbeddedFooImpl"/>
            </beans>
            <beans profile="production">
                <bean id="foo" class="com.acme.ProdFooImpl"/>
            </beans>
        </beans>

    In the case above, the EmbeddedFooImpl 'foo' bean will be
    registered if:
        a) no profile is active
        b) the 'default' profile has explicitly been made active

    The ProdFooImpl 'foo' bean will be registered if the 'production'
    profile is active.

EXAMPLE 2:

        <beans profile="default,xyz">
            <bean id="foo" class="java.lang.String"/>
        </beans>

    Bean 'foo' will be registered if any of the following are true:
        a) no profile is active
        b) 'xyz' profile is active
        c) 'default' profile has explicitly been made active
        d) both (b) and (c) are true

Note that the default profile is not to be confused with specifying no
profile at all.  When the default profile is specified, beans are
registered only if no other profiles are active; whereas when no profile
is specified, bean definitions are always registered regardless of which
profiles are active.

The default profile may be configured programmatically:

    environmnent.setDefaultProfile("embedded");

or declaratively through any registered PropertySource, e.g. system properties:

    -DdefaultSpringProfile=embedded

Assuming either of the above, example 1 could be rewritten as follows:

        <beans>
            <beans profile="embedded">
                <bean id="foo" class="com.acme.EmbeddedFooImpl"/>
            </beans>
            <beans profile="production">
                <bean id="foo" class="com.acme.ProdFooImpl"/>
            </beans>
        </beans>

It is unlikely that use of the default profile will make sense in
conjunction with a statically specified 'springProfiles' property.
For example, if 'springProfiles' is specified as a web.xml context
param, that profile will always be active for that application,
negating the possibility of default profile bean definitions ever
being registered.

The default profile is most useful for ensuring that a valid set of
bean definitions will always be registered without forcing users
to explictly specify active profiles.  In the embedded vs. production
examples above, it is assumed that the application JVM will be started
with -DspringProfiles=production when the application is in fact in
a production environment.  Otherwise, the embedded/default profile bean
definitions will always be registered.


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3804 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-01 09:01:58 +00:00
Chris Beams e5fb701466 Remove obsolete ConfigurationClassPostProcessor.getOrder()
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3802 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-01 08:36:12 +00:00
Chris Beams 6e9e1f0946 Minor post-merge cleanup
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3783 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-25 19:54:01 +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 e91ae9573e polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3780 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-20 21:15:22 +00:00
Ramnivas Laddad 0856315864 Fixed configuration of AnnotationAsyncExecutionAspect (was incorrectly under the same name as that for transaction management aspect)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3773 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-17 22:33:30 +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 d0846425f5 fixed @Value injection to correctly cache temporary null results for non-singleton beans (SPR-7614)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3762 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-14 19:49:29 +00:00
Juergen Hoeller a52450e21a fixed @Value injection to correctly cache temporary null results for non-singleton beans (SPR-7614)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3760 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-14 19:40:36 +00:00
Juergen Hoeller 1a3d05d990 fixed JodaTimeContextHolder to use a non-inheritable ThreadLocal and expose a reset method (SPR-7441); use of remove() even when being called with a null argument
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3736 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-11 18:55:21 +00:00
Juergen Hoeller 8e823bcf78 SpEL MapAccessor consistently rejects "target.key" style access to Maps if no such key is found (SPR-7614)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3729 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-10 20:22:15 +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 2062b44c16 optimized @Bean error messages (SPR-7628, SPR-7629)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3724 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-10 18:31:03 +00:00
Juergen Hoeller f3e7fd9bc9 fixed ApplicationContext event processing for repeated invocations to non-singleton listener beans (SPR-7563)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3705 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-01 22:16:21 +00:00
Juergen Hoeller 6d8f287810 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3669 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-09 09:04:40 +00:00
Chris Beams 6cb152cc09 Allow class-relative resource loading in GenericXmlApplicationContext (SPR-7530)
Before:

    - new GenericXmlApplicationContext("com/acme/path/to/resource.xml");

    - GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
      ctx.load("com/acme/path/to/resource.xml");
      ctx.refresh();

After:

    - The above remain supported, as well as new class-relative variants

    - import com.acme.path.to.Foo;
      new GenericXmlApplicationContext(Foo.class, "resource.xml");

    - import com.acme.path.to.Foo;
      GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
      ctx.load(Foo.class, "resource.xml");
      ctx.refresh();

These changes are generally aligned with signatures long available in
ClassPathXmlApplicationContext. As GenericXmlApplicationContext is
intended to be a more flexible successor to CPXAC (and FSXAC), it's
important that all the same conveniences are available.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3660 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-08 15:30:48 +00:00
Juergen Hoeller 0a295603db added bean type to post-processing log statement (SPR-7524)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3642 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-06 20:06:48 +00:00
Juergen Hoeller 68597b9359 avoid failures in case of manually registered null instance (SPR-7523)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3641 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-06 19:47:16 +00:00
Juergen Hoeller c2a1d571d8 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3629 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-01 18:41:10 +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
Chris Beams 9b68accbce Fix memory leak in serializable bean factory management (SPR-7502)
GenericApplicationContext and AbstractRefreshableApplicationContext
implementations now call DefaultListableBeanFactory.setSerializationId()
only upon successful refresh() instead of on instantiation of the
context, as was previously the case with GAC.

DLBF.setSerializationId() adds the beanFactory to the *static*
DLBF.serializableFactories map, and while calling close() on the
application context removes entries from that map, it does so only if
the context is currently active (i.e. refresh() has been called).

Also, cancelRefresh() has been overridden in GAC just as it has been
in ARAC to accomodate the possibility of a BeansException being thrown.
In this case, the beanFactory serializationId will be nulled out and
the beanFactory removed from the serializableFactories map.

The SerializableBeanFactoryMemoryLeakTests test case provides full
coverage of these scenarios.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3615 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-27 10:53:20 +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 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 d2a5c927ce lazy creation of MessageFormats
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3593 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-15 23:04:02 +00:00
David Syer 122d313f9c SPR-7463: switched to instance variable
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3576 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-14 11:09:42 +00:00
Juergen Hoeller 4e33c7d442 Spring's constructor resolution consistently finds non-public multi-arg constructors (SPR-7453)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3565 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-11 19:24:30 +00:00
Juergen Hoeller 74ac938aac AutodetectCapableMBeanInfoAssembler signature consistently refers to Class<?> (SPR-7405)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3514 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-29 20:29:32 +00:00
Juergen Hoeller 250c3546b9 TaskExecutorFactoryBean (as used by task:executor) exposes full ThreadPoolTaskExecutor type (SPR-7403)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3511 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-28 17:39:03 +00:00
Juergen Hoeller 085449cf1e fixed @PathVariable regression in combination with ConversionService usage on DataBinder
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3504 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-26 20:14:57 +00:00
Juergen Hoeller 63bfe5e8e4 Spring field error arguments include actually declared annotation attributes in alphabetical order (SPR-6730)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3496 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-21 14:24:10 +00:00
Chris Beams 3f51f1dc14 Fix dependency issues in .context pom and .classpath
Hibernate validator had been updated to 4.1.0 in the ivy metadata, but
not yet reflected in the .classpath file.  The pom.xml had been updated
but there was a typo - scope read 'coompile', instead of 'compile'.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3495 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-21 12:04:06 +00:00
Juergen Hoeller 038ee9ff86 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3492 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 20:02:43 +00:00
Juergen Hoeller 424e10e173 JSR-303 Pattern message resolvable through Spring MessageSource (despite special characters; SPR-7329)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3491 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 20:02:23 +00:00
David Syer 5252d9c1ec Fix hibernate-validatin version
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3490 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 15:41:41 +00:00
David Syer b1c2d1ea2c SPR-7384: switch to using 1-12 for month numbers
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3489 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 15:25:00 +00:00
Juergen Hoeller 3d06c7229c BeanWrapper preserves annotation information for individual array/list/map elements (SPR-7348)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3482 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-12 20:56:22 +00:00
Juergen Hoeller 6b55137d3e JSP EvalTag resolves "@myBeanName" references in expressions against the WebApplicationContext (SPR-7312); for consistency, expressions in an ApplicationContext support the same syntax against the local BeanFactory
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3479 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-12 19:36:26 +00:00
Chris Beams 49ae2e809d attempted to repro SPR-7318 to no avail
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3467 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-28 22:57:26 +00:00
Juergen Hoeller 0d6536ca53 added "validationMessageSource" property to LocalValidatorFactoryBean, for Spring-based messages (SPR-7307)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3466 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-28 22:08:31 +00:00
Juergen Hoeller 9fb510c139 turned formatter implementations non-final
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3451 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-23 19:34:29 +00:00
Juergen Hoeller 391ecafe55 fixed order
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3435 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-20 19:11:51 +00:00
Juergen Hoeller 9e57fc0ff9 added test for invalid binding to ClassLoader
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3434 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-20 19:11:36 +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 d693442474 smarter guessing of the element type (SPR-7283)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3420 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-14 23:26:44 +00:00
Juergen Hoeller 979517d182 added EmbeddedValueResolver support to FormattingConversionServiceFactoryBean (SPR-7087)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3404 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-08 20:40:54 +00:00