Commit Graph

7475 Commits (9b121dcbaa0e5df77477390240143bee0769f548)
 

Author SHA1 Message Date
Phillip Webb 46099c753b Add @PropertyMapping support
Add @PropertyMapping annotation which can be used to mark annotation
attributes that should contribute Environment properties.

Provides a quick way for tests to change auto-configuration behavior in
a structured way.

Fixes gh-4901
9 years ago
Phillip Webb e5f224118b Print AutoConfigureReport on test failures
Add a TestExecutionListener to print the auto-configuration report
when a test cannot load.

See gh-4901
9 years ago
Phillip Webb 6d934bb270 Add spring-boot-test-autoconfigure module
Add a new test module to deal with auto-configuration in tests.

See gh-4901
9 years ago
Phillip Webb fb70a56c79 Support override enable auto-configuration
Provide a way for full auto-configuration to be disabled
programmatically. Primarily added to allow special test annotations to
take over partial auto-configuration but still load
@SpringBootApplication classes.

See gh-4901
9 years ago
Phillip Webb 47f801d535 Make @ImportAutoConfiguration a meta-annotation
Update `@ImportAutoConfiguration` so that it can be used as a
meta-annotation. Also relocate it from the `test` package.

Fixes gh-5473
9 years ago
Phillip Webb ae1d352d34 Allow @Import to be used directly on test classes
Remove the need for a nested @Configuration class when writing a test
that need to @Import configuration.

Primarily added to allow @ImportAutoConfiguration to be used directly
on test classes.

Fixes gh-5473
9 years ago
Phillip Webb ab7b48de84 Provide TestRestTemplate for @WebIntegrationTests
Add a ContextCustomizerFactory to provide TestRestTemplate as a bean for
tests annotated with WebIntegrationTests. Additionally provide support
for automatically expanding URLs of the form `/example` to
`http://localhost:${local.server.port}/example`.

Fixes gh-5227
9 years ago
Phillip Webb cbea16ec01 Support HtmlUnit and Selenium localhost resolution
Provide variants of `WebClient` and `WebConnectionHtmlUnitDriver` that
automatically resolve relative URLs to "localhost:${local.server.port}".

Fixes gh-5472
9 years ago
Phillip Webb 24ab2bd891 Add utilities to help with JSON testing
Add Jackson, Gson and Basic String helper classes that allow AssertJ
assertions to be used to test JSON.

Fixes gh-5471
9 years ago
Phillip Webb 45c4f5f3f1 Add @MockBean support
Add a `@MockBean` annotation which can be used to setup and inject mocks
into an application context. The annotation can be used on test classes,
test fields, configuration classes or configuration fields. When used on
a field the annotation also acts as an injection point.

Fixes gh-5042
9 years ago
Phillip Webb 0829a1bde8 Drop superfluous annotations
Update internal tests to drop annotations that can now
be inferred.

Fixes gh-5470
9 years ago
Phillip Webb 7dffb702b5 Unify use of @BootStrapWith
Update @IntegrationTest to use @BootstrapWith rather than an explicitly
defined set of test execution listeners.

Also introduce a new @SpringApplicationTest annotation that is similar
to  @SpringApplicationConfiguration but a bootstrapper.

Fixes gh-5230
9 years ago
Phillip Webb 90950cfb1c Automatically find test configurations
Allow detection of `@SpringBootConfiguration` classes for both standard
spring tests and bootstrap (@IntegrationTest @WebIntegrationTest) based
tests.

Closes gh-5295
9 years ago
Phillip Webb 600a06af83 Auto-exclude test components from scanning
Add TestTypeExcludeFilter which will automatically attempt to exclude
test only configurations. All `@Configuration` annotated inner-classes
of tests are automatically excluded. The `@TestConfiguration` annotation
can be used to explicitly if a configuration needs explicit exclusion.

See gh-5295
See gh-4901
9 years ago
Phillip Webb 513dec718f Add TestExcludeFilter for component scanning
Add a new TypeFilter specifically for excluding candidate components.
The filter is applied to `@SpringBootApplication` and allows tests to
dynamically contribute exclude filters so that specific classes of
component can be excluded.

See gh-5295
See gh-4901
9 years ago
Phillip Webb 965dd33ec8 Introduce @SpringBootConfiguration annotation
Add a new @SpringBootConfiguration annotation that can be used to
indicate the primary application configuration. The new annotation is
primarily indented to allow test automatically code to find the main
configuration class.

See gh-5295
9 years ago
Phillip Webb 40c2e24a58 Fix SpringApplicationContextLoader customizers
Update SpringApplicationContextLoader to call ContextCustomizers in the
same way as other classes in `spring-test`.

Fixes gh-5294
9 years ago
Phillip Webb c28f552883 Migrate SpringJUnit4ClassRunner to SpringRunner
Replace all existing SpringJUnit4ClassRunner references with the new
SpringRunner alias.

Fixes gh-5292
9 years ago
Phillip Webb 2f815a907a Migrate existing tests from deprecated package
Update the existing tests to use the relocated `spring-boot-test`
classes. Restructuring was achieved using the following command:

find . -type f -name '*.java' -exec sed -i '' \
-e s/org.springframework.boot.test.ConfigFileApplicationContextInitializer/\
org.springframework.boot.test.context.ConfigFileApplicationContextInitializer/g \
-e s/org.springframework.boot.test.EnvironmentTestUtils/\
org.springframework.boot.test.util.EnvironmentTestUtils/g \
-e s/org.springframework.boot.test.IntegrationTest/\
org.springframework.boot.test.context.IntegrationTest/g \
-e s/org.springframework.boot.test.IntegrationTestPropertiesListener/\
org.springframework.boot.test.context.IntegrationTestPropertiesListener/g \
-e s/org.springframework.boot.test.OutputCapture/\
org.springframework.boot.test.rule.OutputCapture/g \
-e s/org.springframework.boot.test.SpringApplicationConfiguration/\
org.springframework.boot.test.context.SpringApplicationConfiguration/g \
-e s/org.springframework.boot.test.SpringApplicationContextLoader/\
org.springframework.boot.test.context.SpringApplicationContextLoader/g \
-e s/org.springframework.boot.test.SpringBootMockServletContext/\
org.springframework.boot.test.mock.web.SpringBootMockServletContext/g \
-e s/org.springframework.boot.test.TestRestTemplate/\
org.springframework.boot.test.web.client.TestRestTemplate/g \
-e s/org.springframework.boot.test.WebIntegrationTest/\
org.springframework.boot.test.context.web.WebIntegrationTest/g {} \;

See gh-5293
9 years ago
Phillip Webb aef7f4bcb1 Restructure spring-boot-test packages
Create a new package structure for `spring-boot-test` and deprecate
existing classes.

Fixes gh-5293
9 years ago
Phillip Webb da1e49703b Add JSONassert and JsonPath to the test starter
Update spring-boot-starter-test to include JSONassert and JsonPath.
Both are generally useful libraries when writing MVC tests.

Fixes gh-5469
9 years ago
Phillip Webb 47fb614bde Set "proxy target class" for transaction managers
Update `@EnableTransactionManagement` so that `proxyTargetClass` is
set to true. This ensures that @Transactional beans that aren't
interface based can still be proxied.

Fixes gh-5423
9 years ago
Phillip Webb 4352707eb3 Call afterProperties set in LogFileMvcEndpoint
Call afterPropertiesSet on the delegate `ResourceHttpRequestHandler`
to prevent an NPE. This change is required following SPR-13834.
9 years ago
Phillip Webb 1b6c2a3e5e Polish 9 years ago
Stephane Nicoll caa14e6be5 Polish 9 years ago
Andy Wilkinson 19d8c5e6f6 Complete the move to constructor injection in configuration classes
This is a follow-on from the work done in 5009933. Now that SPR-14015
has been fixed, constructor injection can also be used for parameterised
dependencies, including optional dependencies that are injected via
an ObjectProvider.

Closes gh-5306
9 years ago
Stephane Nicoll cb2ad7fb87 Prevent Thymeleaf to be configured with Thymeleaf 3
Spring Boot does not support Thymeleaf 3 yet. This commit prevents the
auto-configuration to activate if Thymeleaf 3 is available on the
classpath.

Closes gh-5371
9 years ago
Stephane Nicoll 93f392134a Polish 9 years ago
Phillip Webb 8d08e816a7 Fix tests that fail when Redis is unavailable 9 years ago
Phillip Webb 7942d9f787 Polish 9 years ago
Stephane Nicoll 2ae1435916 Polish 9 years ago
Stephane Nicoll 24f09e28c4 Prevent Redis to be initiated
This commit excludes the Redis auto-configuration that would attempt
to connect to a redis instance running at localhost otherwise.
9 years ago
Stephane Nicoll d8c972c27e Merge branch '1.3.x' 9 years ago
Stephane Nicoll b1b84a358d Fix Artemis embedded mode condition
This commit prevents the Artemis embedded mode to kick-in if the
`EmbeddedJMS` class it not in the classpath. The previous condition would
match if only `artemis-server` was on the classpath while
`artemis-jms-server` is actually required.

Closes gh-5452
9 years ago
Stephane Nicoll a243b3e177 Merge pull request #5455 from eddumelendez/gh-5448
* pr/5455:
  Polish contribution
  Auto-configure Redis repositories
9 years ago
Stephane Nicoll 96b7419916 Polish contribution
Closes gh-5455
9 years ago
Eddú Meléndez 2fc2ec457b Auto-configure Redis repositories
Closes gh-5448
9 years ago
Stephane Nicoll b8bc4f66e5 Align dependencies for Spring Data Hopper RC1
Align dependencies upgrade of the Hopper release.

Closes gh-5150
See gh-5443
9 years ago
Stephane Nicoll 29b4e381fa Upgrade to Spring Data Hopper RC1
Closes gh-5150
9 years ago
Stephane Nicoll 3109fd5034 Merge pull request #5417 from mdeinum/gh-5416
* pr/5417:
  Polish contribution
  Support setting webAllowOthers for the H2 Web Console
9 years ago
Stephane Nicoll bca83bde5b Polish contribution
Closes gh-5417
9 years ago
Marten Deinum ec8b94f13c Support setting webAllowOthers for the H2 Web Console
This commit adds a configuration option for the webAllowOthers option
for the H2 WebServlet. It will only be added it the
spring.h2.console.webAllowOthers is set to true, else it will be
ignored.

Closes gh-5416
9 years ago
Stephane Nicoll 52461b42ae Merge pull request #5372 from herau/fix/1598
* pr/5372:
  Polish contribution
  Improve ActiveMQ connection pool configuration
9 years ago
Stephane Nicoll 3d4a9d9c84 Polish contribution
The properties exposed by the ActiveMQ pooled connection factory are
quite specific and I felt it was arbitrary to expose some and not others.

However, the number of connections and the timeouts seem the most useful
so they have been kept and a `configuration` nested namespace can be
used to configure any additional settings.

The core properties have been renamed to be less "raw" and more compliant
with the structure of other properties. The documentation on fields has
also been aligned.

Closes gh-5372
9 years ago
n27 e41d42171b Improve ActiveMQ connection pool configuration
Closes gh-1598
9 years ago
Stephane Nicoll fa84b179a8 Allow to customize the Couchbase environment
Closes gh-5403
9 years ago
Stephane Nicoll caf11e4445 Add Couchbase cache support
This commit updates the cache auto-configuration to provide a
`CouchbaseCacheManager` if a `Bucket` has been configured.

The global customizer infrastructure allows to further tune the cache
manager if necessary.

Closes gh-5176
9 years ago
Stephane Nicoll 10012cfddc Rename Maven plugin mojo
Rename the goal from `generate-build-info` to `build-info` for consistency.

See gh-2559
9 years ago
Stephane Nicoll 9c733128ac Use ConditionalOnSingleCandidate when appropriate
This commit updates various auto-configuration to use
`@ConditionalOnSingleCandidate` rather than assuming that at most one
bean of a given type will be available.

Closes gh-2784
9 years ago
Stephane Nicoll 4ebba984f0 Merge pull request #5341 from garyrussell/GH-5340
* pr/5341:
  Polish contribution
  Add Retry Config: Template and Listener
9 years ago