- 13 2月, 2015 2 次提交
-
-
由 Sam Brannen 提交于
This commit introduces further regression tests to ensure proper parsing of inlined properties configured via @TestPropertySource. Specifically, these additional tests ensure that we do not introduce a bug like the one raised in Spring Boot issue #1110 [0]. [0] https://github.com/spring-projects/spring-boot/issues/1110 Issue: SPR-12710
-
由 Sam Brannen 提交于
-
- 12 2月, 2015 7 次提交
-
-
由 Stephane Nicoll 提交于
Previously, the exception-handler attribute was not taken care of when task:annotation-driven is used in AspectJ mode. This commit provides the expected behavior. Issue: SPR-12619
-
由 Stephane Nicoll 提交于
Issue: SPR-11803
-
由 Stephane Nicoll 提交于
* patch-3: fix javadoc typo
-
由 John Tims 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-12594 Issue: SPR-12634
-
由 Andy Wilkinson 提交于
Jasper Reports’ transitive dependency on spring-context (via castor-xml which is a new dependency in 6.0.3) was being mapped by Gradle to a dependency on the spring-context project. For reasons that I do not fully understand this was causing -source and -javadoc jars to be added to the project's compile classpath which is used by the Animal Sniffer Ant task. When the task runs these jars do not exist which causes it to fail. This commit fixes the problem by adding an exclusion of org.springframework:spring-context to the Jasper Reports dependencies in spring-context-support and spring-webmvc.
-
- 11 2月, 2015 8 次提交
-
-
由 Stephane Nicoll 提交于
Previously, only indexed access for collections were supported. When attempting to access the element of an array that had not the requested size, the call would fail with an IndexOutOfBoundException This commit harmonize the binding support so that the array is updated according to the requested index if necessary. Issue: SPR-12706
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-12655
-
由 Juergen Hoeller 提交于
Issue: SPR-12694
-
由 Juergen Hoeller 提交于
Issue: SPR-12688
-
- 10 2月, 2015 8 次提交
-
-
由 Stephane Nicoll 提交于
* SPR-12653: Synchronize clear on TransactionAwareCacheDecorator
-
由 Stas Volsky 提交于
Previously, a cache decorated with TransactionAwareCacheDecorator would clear the cache immediately, even when a transaction is running. This commit updates the decorator to synchronize to the afterCommit phase for the clear operation as well. Issue: SPR-12653
-
由 Stephane Nicoll 提交于
Issue: SPR-12691
-
由 Stephane Nicoll 提交于
-
由 Stephane Nicoll 提交于
Update the application event listener infrastructure to support events that are processed according to a transactional phase. Introduce EventListenerFactory that can be implemented to provide support for additional event listener types. TransactionalEventListener is a new annotation that can be used in lieu of the regular EventListener. Its related factory implementation is registered in the context automatically via @EnableTransactionManagement or <tx:annotation-driven/> By default, a TransactionalEventListener is invoked when the transaction has completed successfully (i.e. AFTER_COMMIT). Additional phases are provided to handle BEFORE_COMMIT and AFTER_ROLLBACK events. If no transaction is running, such listener is not invoked at all unless the `fallbackExecution` flag has been explicitly set. Issue: SPR-12080
-
由 Stephane Nicoll 提交于
Add support for annotation-based event listeners. Enabled automatically when using Java configuration or can be enabled explicitly via the regular <context:annotation-driven/> XML element. Detect methods of managed beans annotated with @EventListener, either directly or through a meta-annotation. Annotated methods must define the event type they listen to as a single parameter argument. Events are automatically filtered out according to the method signature. When additional runtime filtering is required, one can specify the `condition` attribute of the annotation that defines a SpEL expression that should match to actually invoke the method for a particular event. The root context exposes the actual `event` (`#root.event`) and method arguments (`#root.args`). Individual method arguments are also exposed via either the `a` or `p` alias (`#a0` refers to the first method argument). Finally, methods arguments are exposed via their names if that information can be discovered. Events can be either an ApplicationEvent or any arbitrary payload. Such payload is wrapped automatically in a PayloadApplicationEvent and managed explicitly internally. As a result, users can now publish and listen for arbitrary objects. If an annotated method has a return value, an non null result is actually published as a new event, something like: @EventListener public FooEvent handle(BarEvent event) { ... } Events can be handled in an aynchronous manner by adding `@Async` to the event method declaration and enabling such infrastructure. Events can also be ordered by adding an `@order` annotation to the event method. Issue: SPR-11622
-
由 Stephane Nicoll 提交于
Update the event publishing infrastructure to support generics-based events, that is support ApplicationListener implementations that define a generic event, something like: public class MyListener implements ApplicationListener<GenericEvent<String>> { ... } This listener should only receive events that are matching the generic signature, for instance: public class StringEvent extends GenericEvent<String> { ... } Note that because of type erasure, publishing an event that defines the generic type at the instance level will not work. In other words, publishing "new GenericEvent<String>" will not work as expected as type erasure will define it as GenericEvent<?>. To support this feature, use the new GenericApplicationListener that supersedes SmartApplicationListener to handle generics-based even types via `supportsEventType` that takes a ResolvableType instance instead of the simple Class of the event. ApplicationEventMulticaster has an additional method to multicast an event based on the event and its ResolvableType. Issue: SPR-8201
-
由 Rossen Stoyanchev 提交于
Before this change, detection of X-Forwarded-* headers was only built into ServletUriComponentsBuilder. This change adds a new method for creating a UriComponentsBuilder from an existing HttpRequest. This is equivalent to the fromUri method + X-Forwarded-* header values.
-
- 09 2月, 2015 3 次提交
-
-
由 Sebastien Deleuze 提交于
This commit introduces the following changes: - Requests without Origin header are not rejected anymore - Disable Iframe when allowedOrigins is not empty and not equals to * - The Iframe is not cached anymore in order to have a reliable origin check - allowedOrigins must not be null or empty - allowedOrigins format is now validated (should be * or start by http(s)://) Issue: SPR-12660
-
由 Stephane Nicoll 提交于
Update documentation to explicitly mention that the cache interceptor must be fully initialized to provide the expected behavior and therefore initialization code should not rely on this feature, i;e. typically in PostConstruct callback. Since the Transactional infrastructure has the exact same infrastructure, update that section of the doc as well. Issue: SPR-12700
-
由 Stephane Nicoll 提交于
Previously, one could only set the list of bean names to exclude from auto-detection and there was no way to add additional bean names. MBeanExporter now exposes a addExcludedBean method that can be invoked during the initialization phase to add bean names to ignore. Issue: SPR-12686
-
- 06 2月, 2015 1 次提交
-
-
由 Rossen Stoyanchev 提交于
Issue: SPR-12693
-
- 04 2月, 2015 1 次提交
-
-
由 Brian Clozel 提交于
Prior to this change, the `ResourceUrlProvider.getForLookupPath` method would try to match handlers using the keySet order in the handlerMappings Map. In case of several matches, the handler used for the return value could vary, since the registration order in the handlerMappings can't be guaranteed in the configuration. This commit now collects all matching handlers and sort them using a `PatternComparator`, in order to try each handler from the most specific mapping to the least. Issue: SPR-12647
-
- 03 2月, 2015 5 次提交
-
-
由 Ralph Schaer 提交于
-
由 Sebastien Deleuze 提交于
This commit also adds a modules(Module...) method in addition to modules(List<Module> modules) in order to be consistent with other parts of the API. Issue: SPR-12634
-
由 Rossen Stoyanchev 提交于
Issue: SPR-12650
-
由 Rossen Stoyanchev 提交于
Before this change, the maxRequestSize property was used (incorrectly) to limit both the size of the request and response. The change: - removes maxRequestSize and therefore no longer places limits on the size of the request thus matching to AbstractBufferingClientHttpRequest which is the base class for other buffering client implementations. - adds maxResponseSize property required to create Netty's HttpObjectAggregator for aggregating responses. Issue: SPR-12623
-
由 Rossen Stoyanchev 提交于
Prior to this change when adding subscriptions DefaultSubscriptionRegistry (incorrectly) made a copy of the given map for its "access" cache rather than for its "update" cache. Issue: SPR-12665
-
- 02 2月, 2015 1 次提交
-
-
由 Stephane Nicoll 提交于
Provide an additional hook-point for YamlProcessor subclasses willing to change how the Yaml instance is configured. Also expose the default StrictMapAppenderConstructor so that they can compose a custom instance with it. Issue: SPR-12671
-
- 30 1月, 2015 1 次提交
-
-
由 Rossen Stoyanchev 提交于
This commit adds ResponseBodyEmitter and SseEmitter (and also ResponseEntity<ResponseBodyEmitter> and ResponseEntity<SseEmitter>) as new return value types supported on @RequestMapping controller methods. See Javadoc on respective types for more details. Issue: SPR-12212
-
- 26 1月, 2015 3 次提交
-
-
由 Sebastien Deleuze 提交于
Issue: SPR-12634
-
由 Stephane Nicoll 提交于
Move MethodCacheKey and related classes to the expression package so that other parts of the framework can benefit ot it. CacheExpressionEvaluator is a base class that can be used to cache SpEL expressions based on its annotation source (i.e. method). Sub-classing that base class provides a simple to use API to retrieve Expression instances efficiently. Issue: SPR-12622
-
由 Brian Clozel 提交于
Prior to this commit, the `ContentCachingRequestWrapper` class would cache the response content only if the reponse would be consumed using its InputStream. In case of a Form request, Spring MVC consumes the response using the `getParameter*` Servlet API methods. This causes the cached content to never be written. This commit makes the `ContentCachingResponseWrapper` write the request body to the cache buffer by using the `getParameter*` API, thus avoiding those issues. Issue: SPR-7913
-