Commit Graph

315 Commits

Author SHA1 Message Date
Madhura Bhave 660d284f45 Document when and how to use brackets when binding to maps
Closes gh-13506
2018-07-19 16:31:59 -07:00
Stephane Nicoll 1c0eb8de36 Merge branch '2.0.x' 2018-07-19 16:42:51 +02:00
Stephane Nicoll a1ef3f070a Improve documentation for using a mock environment with @SpringBootTest
Closes gh-13827
2018-07-19 16:40:24 +02:00
Madhura Bhave ceaac98847 Update docs with OIDC provider configuration
See gh-13210
2018-07-18 12:27:13 -07:00
Madhura Bhave ddce819e6f Merge branch '2.0.x' 2018-07-17 16:44:23 -07:00
Madhura Bhave c36804908c Merge branch '1.5.x' into 2.0.x 2018-07-17 16:43:02 -07:00
Stephane Nicoll c0b9c72d74 Merge branch '2.0.x' 2018-07-17 14:07:34 +02:00
Stephane Nicoll e679690a74 Clarify the WebTestClient requires WebFlux on the classpath
Closes gh-13469
2018-07-17 14:06:41 +02:00
Stephane Nicoll ada699a9f6 Allow to customize the RabbitMQ RetryTemplate
This commit adds the ability to customize the RetryTemplate used in the
RabbitMQ infrastructure. The customizer is slightly unusual and offer
a `Target` enum that define the component that will use the retry
template: `SENDER` for the auto-configured `RabbitTemplate` and
`LISTENER` for a listener container created by a
`RabbitListenerContainerFactoryConfigurer`.

Closes gh-13793
2018-07-17 11:31:20 +02:00
Stephane Nicoll fd6023fe49 Polish contribution
Closes gh-13790
2018-07-17 10:25:55 +02:00
Johnny Lim 58df752af4 Polish
See gh-13790
2018-07-17 10:25:38 +02:00
Stephane Nicoll 3c67edafcd Expose more Quartz properties
Closes gh-13782
2018-07-16 14:07:10 +02:00
Stephane Nicoll 66cb4ce3c7 Polish "Allow to configure Quartz's "overwriteExistingJobs" property"
Closes gh-13582
2018-07-16 14:06:13 +02:00
Taras Danylchuk 910e6dc4cc Allow to configure Quartz's "overwriteExistingJobs" property
See gh-13582
2018-07-16 14:06:13 +02:00
Johnny Lim 1ae420670a Polish
Closes gh-13776
2018-07-16 10:38:40 +02:00
Madhura Bhave c0574c8437 Update docs to reflect new health & info security
See gh-13722
2018-07-13 13:40:01 -07:00
Stephane Nicoll 04bca3f37f Merge branch '2.0.x' 2018-07-12 16:58:16 +02:00
Stephane Nicoll 19709f7dea Polish 2018-07-12 16:57:52 +02:00
Andy Wilkinson 6a48a440b2 Annotate our test annotations with @ExtendWith(SpringExtension.class)
Closes gh-13739
2018-07-11 17:25:21 +01:00
Madhura Bhave 149c7a85c3 Merge branch '2.0.x' 2018-07-02 13:18:45 -07:00
Madhura Bhave 673a08d228 Support microseconds in Duration conversions
Closes gh-13624
2018-07-02 13:18:09 -07:00
Andy Wilkinson 45fdf2ffa4 Support Tomcat 9 and Undertow 2
Closes gh-11749
Closes gh-12243
2018-06-28 11:33:30 +01:00
Andy Wilkinson 8dbeb68afa Merge branch '2.0.x' 2018-06-25 13:13:42 +01:00
Andy Wilkinson 04119585e8 Merge branch '1.5.x' into 2.0.x 2018-06-25 13:13:34 +01:00
Stephane Nicoll d4d169277d Merge branch '2.0.x' 2018-06-21 09:23:43 +02:00
Johnny Lim b9ea0fd5a7 Polish
See gh-13534
2018-06-21 09:20:50 +02:00
Stephane Nicoll 8365d53554 Add support for JMS session caching
This commit adds support for CachingConnectionFactory for both Artemis
and ActiveMQ. If connection pooling is not enabled explicitly, sessions,
producers and consumers are cached. The factory can be further
customized, including reverting to the raw ConnectionFactory, using the
`spring.jms.*` namespace.

Closes gh-12161
2018-06-19 15:17:00 +02:00
Stephane Nicoll 0ef54a79b1 Add support for connection pooling with Artemis
This commit expands ActiveMQ's connection pooling to artemis. The same
pooling features are now shared by the two brokers and a
PooledConnectionFactory can be auto-configured when the necessary jar is
present.

Closes gh-13523
2018-06-19 15:05:32 +02:00
Stephane Nicoll b4584e6a28 Support profile expression in Logback's <springProfile>
Closes gh-13496
2018-06-18 13:23:58 +02:00
Stephane Nicoll a89b2ae46e Support profile expression in yml profile matching
Closes gh-12469
2018-06-18 13:05:52 +02:00
Andy Wilkinson db7789ad87 Merge branch '2.0.x' 2018-06-08 15:47:55 +01:00
Andy Wilkinson 7b3be82cfa Merge branch '1.5.x' into 2.0.x 2018-06-08 15:47:50 +01:00
Stephane Nicoll a9e56aa089 Merge branch '2.0.x' 2018-06-07 10:46:20 +02:00
Stephane Nicoll 5c96943e59 Merge branch '1.5.x' into 2.0.x 2018-06-07 10:45:59 +02:00
Stephane Nicoll 42c2059dd8 Merge branch '2.0.x' 2018-06-06 11:00:25 +02:00
Stephane Nicoll f6c99361a4 Merge branch '1.5.x' into 2.0.x 2018-06-06 11:00:02 +02:00
Madhura Bhave 26b826e017 Merge branch '2.0.x' 2018-06-05 13:49:42 -07:00
Madhura Bhave d0a2a8e929 Document ConfigurableServletWebServerFactory variants
Closes gh-13083
2018-06-05 13:48:43 -07:00
Stephane Nicoll 93396aef51 Polish 2018-06-04 17:50:29 +02:00
Stephane Nicoll ee158df993 Merge branch '2.0.x' 2018-06-04 17:36:01 +02:00
Dmytro Nosan 20003489be Auto-configure jOOQ with TransactionListenerProvider
Closes gh-13331
2018-06-04 17:35:40 +02:00
Stephane Nicoll 8bcea0d8cc Polish "Add auto-configuration for WebServiceTemplate"
Closes gh-1270
2018-06-04 12:27:29 +02:00
dnosan c9df1c551a Add auto-configuration for WebServiceTemplate
See gh-12707
2018-06-04 11:12:02 +02:00
Stephane Nicoll bc47bf44a9 Merge branch '2.0.x' 2018-06-01 09:26:29 +02:00
Johnny Lim 6b0ce46491 Polish
Closes gh-13320
2018-06-01 09:22:20 +02:00
Stephane Nicoll 74379da726 Merge branch '2.0.x' 2018-05-31 16:39:11 +02:00
Stephane Nicoll 32aa5b9bae Merge branch '1.5.x' into 2.0.x 2018-05-31 16:38:23 +02:00
Madhura Bhave 9f4a5c13a5 Add auto-config for WebFlux OAuth2 Login
Closes gh-13142
2018-05-30 18:53:11 -07:00
Stephane Nicoll ec65cb1753 Merge branch '2.0.x' 2018-05-28 10:52:42 +02:00
Stephane Nicoll 15ba50ab3e Merge branch '1.5.x' into 2.0.x 2018-05-28 10:52:21 +02:00
Stephane Nicoll 699b6ce6dc Remove reference to Jersey 1
Closes gh-12582
2018-05-22 10:50:27 +02:00
Stephane Nicoll beafba4487 Merge branch '2.0.x' 2018-05-17 09:35:29 +02:00
Stephane Nicoll 1d2edc1d37 Fix wrong reference to WebApplicationType
Closes gh-13195
2018-05-17 09:35:07 +02:00
Stephane Nicoll b839c98de9 Merge branch '2.0.x' 2018-05-14 16:04:30 +02:00
Sebastien Deleuze d747d43b23 Update Kotlin refdoc with the new tutorial
Closes gh-13161
2018-05-14 16:03:46 +02:00
Stephane Nicoll 8e9a873787 Polish "Improve LDAP auto-configuration conditions"
Closes gh-13143
2018-05-11 17:59:21 +02:00
Brian Clozel 84c9a65e9d Auto-configure Elasticsearch REST clients
This commit adds auto-configuration support for both `RestClient` and
`RestHighLevelClient` which are provided by `elasticsearch-rest-client`
and `elasticsearch-rest-high-level-client` dependencies respectively.

`RestClient` is associated with configuration properties in the
`spring.elasticsearch.rest.*` namespace, since this is the component
taking care of HTTP communication with the actual Elasticsearch node.

`RestHighLevelClient` wraps the first one and naturally inherits that
configuration.

Closes gh-12600
2018-05-07 17:57:09 +02:00
Stephane Nicoll 9dccf5b895 Polish
See gh-13078
2018-05-07 14:48:56 +02:00
Stephane Nicoll 126f928f36 Polish "Improve Spring Session docs"
Closes gh-13061
2018-05-04 14:26:51 +02:00
Vedran Pavic 370160720d Improve Spring Session docs
See gh-13061
2018-05-04 14:26:39 +02:00
Stephane Nicoll b3ad902902 Merge branch '1.5.x' into 2.0.x 2018-05-03 11:14:42 +02:00
Madhura Bhave d268b2102f Fix typo 2018-05-01 11:33:47 -07:00
Stephane Nicoll 9f7be62687 Backport polish commit "22b99a90" 2018-05-01 11:33:26 -07:00
Madhura Bhave 0385bd4131 Use spring.session.timeout for Spring Session timeout
Fallback to server.servlet.session.timeout for backwards compatibility.

Fixes gh-12906
2018-04-27 13:16:17 -07:00
Johnny Lim b941c5f1a6 Polish
Closes gh-12981
2018-04-27 09:29:16 +02:00
Madhura Bhave 24ce3ecb43 Fix typo in docs 2018-04-26 13:43:51 -07:00
Madhura Bhave 228c85fe67 Improve List and Map binding documentation
Closes gh-12444
2018-04-26 12:18:49 -07:00
Stephane Nicoll 9cf8080a17 Polish "Document Kotlin custom metadata generation"
Closes gh-12960
2018-04-25 17:19:55 +02:00
sdeleuze c24e7a5930 Document Kotlin custom metadata generation
See gh-12960
2018-04-25 17:19:38 +02:00
Stephane Nicoll f58f23c5b8 Document that binder doesn't handle static properties
Closes gh-12912
2018-04-22 11:11:56 +02:00
Stephane Nicoll 026d8bed5f Fix additional missing semicolon on sample code
Closes gh-12895
2018-04-18 09:49:15 +02:00
Stephane Nicoll 38bd4bd58c Stop associating an Executor bean to Quartz
This commits make sure that the Quartz auto-configuration no longer
associates an `Executor` bean if present in the context as Quartz offers
properties to tune it, which would mutate and lead to unexpected
results.

Closes gh-12823
2018-04-12 15:48:20 +02:00
DK Lee 1f91ae541f Fix WebClient example constructor name
Closes gh-12842
2018-04-12 09:44:03 +02:00
Ken Kwon 16ad34aa19 Fix typo
Closes gh-12825
2018-04-11 10:51:20 +02:00
Stephane Nicoll ad6a888e47 Polish 2018-04-04 11:29:37 +02:00
Stephane Nicoll f99752283f Fix relaxed binding examples
Closes gh-12750
2018-04-04 11:29:18 +02:00
Rui Figueira 958aa5db55 Remove outdated reference to `EnvironmentTestUtils`
Documentation still refers to the now deprecated `EnvironmentTestUtils`
class instead of `TestPropertyValues` for setting environment values in
tests.

This commit replaces it with `TestPropertyValues` and provides an
equivalent code example.

Closes gh-12711
2018-04-03 14:10:35 +02:00
Stephane Nicoll b6f9b46be8 Only create a WebTestClient with WebFlux
This commit updates WebTestClientAutoConfiguration to only create a
WebTestClient when running a WebFlux-based application as mocking the
context only works with that mode at the moment.

Closes gh-12318
2018-04-03 11:31:37 +02:00
Attila Pápai 95385cecba Add space between right parentheses and next word
Closes gh-12722
2018-04-03 10:05:32 +02:00
Stephane Nicoll c90806477c Fix outdated reference to DurationUnit
Closes gh-12708
2018-04-02 16:06:03 +02:00
Kazuki YAMAMOTO aac716cb8c Fix typo
Closes gh-12666
2018-03-29 08:56:55 +02:00
Stephane Nicoll ccbfcbedf0 Add support for org.jooq.RecordUnmapperProvider
Closes gh-12560
2018-03-28 13:42:54 +02:00
Stephane Nicoll 404f22e5f9 Polish "Document @WebFluxTest limitation with RouterFunction"
See gh-10683
2018-03-28 09:51:54 +02:00
Madhura Bhave db7d47704a Document @WebFluxTest limitation with RouterFunction
Fixes gh-10683
2018-03-27 13:27:01 -07:00
Madhura Bhave a6a523bc51 Fix typos 2018-03-27 13:27:01 -07:00
Madhura Bhave fa6ee8e34d Clarify h2-console requires a servlet-based web app
Fixes gh-12603
2018-03-26 10:29:00 -07:00
Stephane Nicoll 64a4f70564 Avoid use of `foo` and `bar` in doc 2018-03-26 12:58:30 +02:00
sdeleuze 561c24b328 Fix Kotlin @ConfigurationProperties example
Closes gh-12633
2018-03-26 12:45:24 +02:00
Denis Washington a09ee17cbf Add OAuth2 server implementation section to docs
As auto-configuration for Spring Security OAuth has been removed
from Spring Boot 2.0 and Spring Security 5 doesn't have OAuth
2.0 Authorization / Resource Server support yet, it has not
been obvious at all how to implement an OAUth 2.0 server with
Spring Boot 2.0.

For that reason, this new section briefly explains the current
temporary situation and points to the spring-security-oauth2-autoconfigure
module that restores the auto-configuration support for OAuth
2.0 Authorization and Resource Servers.

Closes gh-12491
2018-03-19 12:27:58 -04:00
Stephane Nicoll 5320081d0b Revert "Only create a WebTestClient with WebFlux"
This reverts commit 282bd9f
2018-03-14 08:34:48 -04:00
Stephane Nicoll 282bd9f0db Only create a WebTestClient with WebFlux
This commit updates WebTestClientAutoConfiguration to only create a
WebTestClient when running a WebFlux-based application as mocking the
context only works with that mode at the moment.

Closes gh-12318
2018-03-14 05:12:45 -04:00
Stephane Nicoll 42629cb8ae Add support for ConnectionNameStrategy
This commit detects if a `ConnectionNameStrategy` bean exists in the
context and associates it with the auto-configured RabbitMQ's
`ConnectionFactory` when that is the case.

Closes gh-12367
2018-03-07 11:15:50 +01:00
Madhura Bhave 4ca1e6ae4e Polish "Fix typo in TestDatabaseAutoConfiguration"
Closes gh-12350
2018-03-05 13:13:07 -08:00
Madhura Bhave b6e09e8311 Merge branch '1.5.x' 2018-03-05 12:54:01 -08:00
Cristian Greco b552842b9d Fix link to Spring Data JPA in docs
Closes gh-12342
2018-03-05 12:33:26 +00:00
Stephane Nicoll 6533278191 Update reference guide to stop mentioning setWebEnvironment
Closes gh-12330
2018-03-04 09:50:40 +01:00
Stephane Nicoll 7f5b7a6b47 Polish contribution
Closes gh-12326
2018-03-03 12:26:14 +01:00
Johnny Lim 751c444166 Polish
See gh-12326
2018-03-03 12:25:41 +01:00
Phillip Webb 9bee9e9cf9 Polish 2018-02-28 13:50:43 -08:00
Stephane Nicoll 9ce96fbd89 Document support for java.util.Duration
Closes gh-12244
2018-02-27 18:00:36 +01:00
Stephane Nicoll b4c901cab6 Merge branch '1.5.x' 2018-02-27 10:31:05 +01:00
Johnny Lim d441a8a89a Polish
Closes gh-12205
2018-02-24 11:53:25 +01:00
Andy Wilkinson 782ab2803e Polish documentation regarding target class proxying
Closes gh-12196
2018-02-23 14:52:43 +00:00
Johnny Lim 50c07d0772 Polish
Closes gh-12156
2018-02-21 17:46:57 +01:00
Johnny Lim 1bd94b3499 Remove an obsolete warning in doc
Closes gh-12150
2018-02-21 09:27:14 +01:00
Stephane Nicoll 6f59dd6b17 Polish "Update documentation to reference webjars-locator-core"
Closes gh-12135
2018-02-20 16:37:34 +01:00
Nikola Kološnjaji 4da4a4d385 Update documentation to reference webjars-locator-core
See gh-12135
2018-02-20 16:33:19 +01:00
Phillip Webb 1d83e87bcd Validate @ConfigurationProperties on @Bean methods
Refactor `ConfigurationPropertiesBindingPostProcessor` to allow JSR-303
validation on `@ConfigurationProperties` defined at the `@Bean` method
level.

JSR-303 validation is now applied when a JSR-303 implementation is
available and `@Validated` is present on either the configuration
properties class itself or the `@Bean` method that creates it.

Standard Spring validation is also supported using a validator bean
named `configurationPropertiesValidator`, or by having the configuration
properties implement `Validator`.

The commit also consolidates tests into a single location.

Fixes gh-10803
2018-02-16 18:11:54 -08:00
Phillip Webb 9e75680e6f Polish 2018-02-16 18:11:54 -08:00
Madhura Bhave 51de220b55 Enable CSRF protection by default
Fixes gh-11758
2018-02-16 13:31:51 -08:00
Andy Wilkinson d96c570664 Polish "Add Kotlin support reference documentation"
Closes gh-12073
2018-02-15 15:55:48 +00:00
sdeleuze 889a06b65b Add Kotlin support reference documentation
See gh-12073
2018-02-15 15:55:42 +00:00
Brian Clozel 1f8d489e5a Improve reference doc for WebTestClient
Closes gh-11203
2018-02-14 15:39:48 +01:00
Phillip Webb 3bec55e16c Formatting 2018-02-12 17:49:53 -08:00
Madhura Bhave 3880bdb908 Add example for customizing webflux security
Closes gh-11928
2018-02-12 16:26:30 -08:00
Phillip Webb f34aa6f4d8 Migrate to Spring Integration Micrometer support
Remove custom `SpringIntegrationMetrics` and instead provide
auto-configuration to the direct Micrometer support added in Spring
Integration 5.0.2.

Closes gh-11985
2018-02-12 13:24:29 -08:00
Phillip Webb 0348889fd7 Polish 2018-02-12 10:03:06 -08:00
Stephane Nicoll eec3eed5f5 Mention how to configure the web application type in tests
Closes gh-11025
2018-02-12 14:32:46 +01:00
Stephane Nicoll 7473642f58 Harmonize endpoints exclude property
Closes gh-11914
2018-02-12 14:00:40 +01:00
Phillip Webb 5de46c3186 Polish 2018-02-08 16:35:10 -08:00
Stephane Nicoll 0f6a13c9b3 Warn users about the caching implications of @MockBean and @SpyBean
Closes gh-10182
2018-02-08 15:03:23 +01:00
Stephane Nicoll 509b068338 Clarify logging level documentation
Closes gh-11949
2018-02-08 13:46:52 +01:00
Andy Wilkinson 9a456924e4 Remove - from path-match and content-negotiation properties
Closes gh-11913
2018-02-07 15:09:32 +00:00
Phillip Webb eab0b84a80 Polish 'Add support for multi baseDn;
Update multi baseDn support to use the recently introduced
`@Delimter` annotation

Closes gh-11764
2018-02-04 10:43:26 -08:00
Eddú Meléndez 270dc2cd72 Add support for multi baseDn
Update LDAP properties and auto-configuration to support multiple
base DN values.

See gh-11764
2018-02-04 10:41:57 -08:00
dreis2211 81459efffa Use HTTPS URLs where applicable 2018-02-02 12:03:12 +00:00
Madhura Bhave 905666e797 Document usage of `AuthenticationEventPublisher`
Closes gh-11420
2018-01-31 18:41:08 -08:00
Madhura Bhave 134628a62d Add PathRequest to reactive security for parity 2018-01-29 18:34:46 -08:00
Madhura Bhave e80c22cbf8 Add RequestMatcher for H2 console
Fixes gh-11704
2018-01-29 18:34:46 -08:00
Stephane Nicoll ab02e48c44 Fix security section indents
Closes gh-11813
2018-01-28 09:40:40 +01:00
Andy Wilkinson 3565961d68 Rework HTTP exchange tracing and add support for WebFlux
Closes gh-9980
2018-01-25 13:27:07 +00:00
Andy Wilkinson 9cae416755 Explicitly configure and document WebFilter orderings
Closes gh-11756
2018-01-25 11:55:01 +00:00
Andy Wilkinson 9a22201dd3 Polish 2018-01-25 11:55:01 +00:00
Johnny Lim 768e7c07e6 Polish
Closes gh-11720
2018-01-22 16:06:45 -08:00
Phillip Webb 66f8279f65 Polish 2018-01-22 14:06:18 -08:00
Brian Clozel a8baf42f2f Ensure that CharacterEncodingFilter is ordered first
This commit makes sure that `CharacterEncodingFilter` is ordered with
the `Ordered.HIGHEST_PRECEDENCE` and that other filters, potentially
reading the request body, are ordered after.

In this particular case, both `WebMvcMetricsFilter` and
`ErrorPageFilter` are now ordered at `Ordered.HIGHEST_PRECEDENCE + 1` to
avoid cases where the request body is read before the encoding
configuration is taken into account.

Closes gh-11607
2018-01-22 21:08:21 +01:00
Madhura Bhave d9ff51ccd3 Add StaticResourceRequest for WebFlux Security
Closes gh-11040
2018-01-20 10:00:08 +05:30
Phillip Webb f3379668ac Polish 2018-01-18 23:21:51 -08:00
Johnny Lim e7185ea2b1 Polish
Closes gh-11655
2018-01-17 14:16:07 +01:00
Brian Clozel 1e648801bd Move spring.mvc.media-types to content-negotiation
This commit moves "spring.mvc.media-types" to the
"spring.mvc.content-negotiation.*" namespaces introduced in gh-11105.

Closes gh-11636
2018-01-16 11:35:49 +01:00
Gary Russell 0af67b86ed Polish Kafka documentation
Closes gh-11638
2018-01-16 08:48:34 +01:00
Brian Clozel 22c22a1ced Move server.session.* to server.servlet.session.*
Closes gh-11589
2018-01-15 17:50:32 +01:00
Brian Clozel 67e5897c40 Disable suffix pattern matching in Spring MVC
This commit disables by default suffix pattern matching in Spring MVC
applications. As described in the Spring MVC documentation (see
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-requestmapping-suffix-pattern-match),
this is considered as best practice.

This change also introduces new configuration properties to achieve
similar results in a safer way (using query parameters) or to rollback
to the former default.

Closes gh-11105
2018-01-15 11:58:26 +01:00
Johnny Lim 77150f8dc9 Polish
Closes gh-11630
2018-01-15 10:20:31 +01:00
Andy Wilkinson a051e30fe0 Publish an event after refresh but before runners are called
This commit partially reverts the changes made in ec470fbe. While
the started message continues to be logged before any application and
command line runners are called, the publishing of
ApplicationReadyEvent now happens after the runners have been called.
Additionally, a new event, named ApplicationStartedEvent, has been
introduced. This new event is published after the context has been
refreshed but before any application and command line runners are
called.

Closes gh-11484

The reworking of the events described above also means that either
an ApplicationReadyEvent or an ApplicationFailedEvent will be
published and the latter should never be published once the former
has been published.

Closes gh-11485
2018-01-11 11:26:53 +00:00
Stephane Nicoll 4a9123d6e3 Detect user-defined RedisCacheConfiguration
This commits improves the cache auto-configuration for Redis by looking
up a custom "RedisCacheConfiguration" bean that allows to take full
control over the `RedisCacheManager`.

Closes gh-11599
2018-01-11 11:52:08 +01:00
Stephane Nicoll 027e6baba5 Improve documentation for WebTestClient
Closes gh-11203
2018-01-10 16:15:15 +01:00
Madhura Bhave e57aafd63d Provide EndpointRequest for WebFlux-based Security
Closes gh-11022
2018-01-09 16:06:36 -08:00
Stephane Nicoll 1b1852d5c8 Polish WebFlux.fn documentation
Closes gh-11576
2018-01-09 09:58:27 +01:00
Stephane Nicoll b7f60c2ded Configure NettyStreamFactoryFactory by default if available
Closes gh-11526
Closes gh-10961
2018-01-08 10:46:51 +01:00