Commit Graph

1475 Commits

Author SHA1 Message Date
Andy Wilkinson
e8ce93715a Merge branch '1.1.x' 2014-09-16 17:20:35 +01:00
Andy Wilkinson
eed58eecb4 Improve error handling in EnableAutoConfigurationImportSelector
Previously, EnableAutoConfigurationImportSelector assumed that it
would always find auto-configuration attributes from an
@EnableAutoConfiguration annotation. This assumption does not hold
true in certain circumstances, although exactly what those
circumstances are is unclear. It could occur if the import selector
were used directly, but it's package-private making that unlikey. In
such circumstances a NullPointerException was being thrown.

This commit asserts that the attributes are non-null and, should the
assertion fail, produces an error that is more helpful than an NPE.

Closes gh-1512
2014-09-16 15:56:22 +01:00
Andy Wilkinson
284e7b2091 Merge branch '1.1.x' 2014-09-16 15:40:23 +01:00
Andy Wilkinson
468b6cb1f7 Add support for configuring RemoteIpValve’s internalProxies
Closes gh-1522
2014-09-16 15:40:18 +01:00
Andy Wilkinson
4b25b0e7a2 Allow Jackson features to be configured via the environment
Enhance JacksonAutoConfiguration to configure features on the
ObjectMapper it creates based on the following configuration
properties:

spring.jackson.deserialization.* = true|false
spring.jackson.generator.* = true|false
spring.jackson.mapper.* = true|false
spring.jackson.parser.* = true|false
spring.jackson.serialization.* = true|false

The final part of each property name maps onto an enum. The enums are:

deserialization: com.fasterxml.jackson.databind.DeserializationFeature
generator: com.fasterxml.jackson.core.JsonGenerator.Feature
mapper: com.fasterxml.jackson.databind.MapperFeature
parser: com.fasterxml.jackson.core.JsonParser.Feature
serialization: com.fasterxml.jackson.databind.SerializationFeature

Closes gh-1227
2014-09-16 09:59:59 +01:00
Phillip Webb
26ac68df05 Polish Redis sentinel support 2014-09-15 13:09:02 -07:00
Phillip Webb
b129bc261a Polish 2014-09-15 13:08:56 -07:00
Phillip Webb
565e449d89 Merge branch '1.1.x'
Conflicts:
	spring-boot-docs/src/main/asciidoc/howto.adoc
2014-09-15 11:37:50 -07:00
Phillip Webb
5ba86a103d Polish 2014-09-15 11:35:16 -07:00
Andy Wilkinson
c02804931f Merge branch '1.1.x' 2014-09-15 15:39:41 +01:00
Andy Wilkinson
6f9f335ea1 Add additional class conditions for JTA auto-configuration
Previously, JTA auto-configuration would fail with a variety of
ClassNotFoundExceptions and NoClassDefFoundErrors if it was used with
an “incomplete” classpath. This commit adds a number of classes to
@ConditionalOnClass annotations so that the auto-configuration backs
off gracefully in the absence of certain classes.

Specifically, the following now work as expected:

 - Deploying an app to a server with JTA available via JNDI when the
   app does not use transactions
 - Auto-configuration of Atomikos without JMS
 - Auto-configuration of Bitronix without JMS

Both XADataSourceAutoConfiguration and JndiDataSourceAutoConfiguration
have been updated to back off in the absence of spring-jdbc; a
dependency of DataSourceProperties which is used by both classes.

Error handling in AtomikosDependsOnBeanFactoryPostProcessor and
BitronixDependentBeanFactoryPostProcessor has been enhanced so that the
correct dependencies are established, even in the absence of JMS.

Fixes gh-1538
2014-09-15 15:03:11 +01:00
Dave Syer
6456f2a542 Add url,user,password to LiquibaseProperties
User can set those properties (optionally) to use a different
DataSource than the default.

Fixes gh-1558
2014-09-15 08:30:58 -05:00
Dave Syer
59ce634437 Use class name not value to support non-Hibernate JPA vendors
With this change I got a simple Eclipselink version of the data-jpa
sample working. I'll push that when I get time to research it a bit more
(I needed to set up a Java agent so either that might be a problem
for our integration tests if we can't work around it).

Fixes gh-1268. Cherry picked onto master after (apparently) a failed
merge of commit ac2ab39.
2014-09-15 10:51:14 +01:00
Dave Syer
049cd4b85b Merge branch '1.1.x' 2014-09-13 10:59:32 -05:00
Dave Syer
437fb75424 Add /error to ignored paths for security autoconfig
Protecting /error doesn't make a great deal of sense and if it is
protected you don't get the ErrorPageFilter for the attempt at loading
it, so Tomcat renders its own HTML error page (when deployed as WAR).

Fixes gh-1548
2014-09-13 10:55:39 -05:00
Dave Syer
389c4f3e0b Merge branch '1.1.x' 2014-09-13 06:44:03 -05:00
Dave Syer
9902f98a3d Ensure the AuthenticationManager is created when needed
There was too much state really in the old implementation of
AuthenticationManagerConfiguration, and it was leading occasionally
to null pointers when method A assumed that method B had already
been called and it hadn't. This change manages to concentrate all the
references to an AuthenticationManagerBuilder into a single method
call, removoing the need for storing it at all.

Fixes gh-1556
2014-09-13 06:42:46 -05:00
Dave Syer
0950072b5e Fix integration test (shared context by accident) 2014-09-12 16:03:22 -05:00
Christoph Strobl
c8a4891441 Add support for Redis Sentinel configuration
Spring Data Redis 1.4.0 introduced Redis Sentinel support. When
specified, RedisConnectionFactory uses the Sentinel configuration to
determine the current master.

Sentinel configuration can be specified using two new properties:
spring.redis.sentinel.master and spring.redis.sentinel.nodes.

For example:

spring.redis.sentinel.master=mymaster # name of redis server
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380

Alternatively, a bean of type RedisSentinelConfiguration can be declared
and it will be used to configure the connection factory.

Note: At this time, Sentinel support is only available for Jedis

Closes gh-1337
2014-09-07 17:00:38 -05:00
Andy Wilkinson
fbeb8c966c Upgrade to Spring Data Evans
The missing bean condition on the auto-configuration classes for
Elasticsearch, Jpa, Mongo and Solr repositories have been tightened to
look for ElasticsearchRepositoryFactoryBean, JapRepositoryFactoryBean,
MonoRepositoryFactoryBean, and SolrRepositoryFactoryBean respectively.

In Spring Data Evans, when there are multiple repository types on the
classpath, a strict mode is entered to prevent the different
repositories from trampling over each other. A side-effect of this is
that for the Mongo domain types in the tests to be discovered they
must be explicitly annotated with @Document.

Closes gh-1338
2014-09-07 16:04:04 -05:00
David Liu
8e9e502b6a Add support for auto-configuration of Commons DBCP2
Closes gh-1292
Closes gh-1477
2014-09-07 10:43:48 -05:00
Stephane Nicoll
02a8a9c07b Add auto configuration for Spring AMQP 1.4 features
This commit adds two additional auto-configuration items that are new
in Spring AMQP 1.4:

* A RabbitMessagingTemplate is automatically created if none is present
* A default RabbitListenerContainerFactory is automatically created if
none is present.

Besides @EnableRabbit is enabled automatically if the necessary classes
are present and a ConnectionFactory is available.

Fixes gh-1495
2014-09-05 17:52:07 +02:00
Phillip Webb
84249da941 Add @ConditionalOnBean to Thymeleaf dialect beans
Fixes gh-1507
2014-09-04 17:54:40 -07:00
Phillip Webb
4d27458fee Replace MongoProperties condition for spring-cloud
Replace @ConditionalOnBean(MongoProperties.class) on
MongoDataAutoConfiguration with @EnableConfigurationProperties since
MongoAutoConfiguration will not be applied in a cloud environment.

Fixes gh-1502
2014-09-04 10:41:32 -07:00
Phillip Webb
8bf1f9567a Apply eclipse formatting and cleanup rules 2014-09-04 09:49:13 -07:00
Andy Wilkinson
8399fc990c Verify that @EnableIntegrationMBeanExport can set custom JMX domain
Add a test to JmxAutoConfigurationTests which verifies that
@EnableIntegrationMBeanExport can be used on a @Configuration class
to customize the default domain used for MBeans created by Spring
Integration. See https://jira.spring.io/browse/SPR-12128.

Closes gh-1451
2014-09-04 16:48:52 +01:00
Phillip Webb
1697174cd8 Remove ExtendedPathMatchingResourcePatternResolver
Remove ExtendedPathMatchingResourcePatternResolver which is not required
with Spring 4.1

Fixes gh-1420
2014-09-03 18:44:02 -07:00
Phillip Webb
f7cffce695 Allow custom JNDI ConnectionFactory lookup
Add a `spring.jms.jndi-name` property to allow a JMS ConnectionFactory
to be obtained from a custom JNDI location.

Fixes gh-1471
2014-09-03 18:35:45 -07:00
Phillip Webb
0326abfe01 Support for composed "any" condition
Add `AnyNestedCondition` which can be used to create a logical 'or' of
other conditions contained on nested classes. For example:

	static class OnJndiOrProperty extends AnyNestedCondition {

		@ConditionalOnJndi()
		static class OnJndi {
		}

		@ConditionalOnProperty("something")
		static class OnProperty {
		}

	}

Fixes gh-1490
2014-09-03 17:58:03 -07:00
Phillip Webb
236026a43a Support mixed XA/non-XA ConnectionFactory beans
Update ActiveMQ and HornetQ XA configurations to also expose non-xa
ConnectionFactory variants.

Fixes gh-1461
2014-09-02 13:00:59 -07:00
Phillip Webb
ba5c3526da Merge branch '1.1.x' 2014-09-01 17:21:00 -07:00
Phillip Webb
34cbcf5e50 Support better HttpMessageConverters manipulation
Add additional constructor and a protected postProcessConverters method
to make it easier to manipulate the final converter list that will
be used.

Fixes gh-1482
2014-09-01 17:18:51 -07:00
Phillip Webb
5774e808c7 Fix HornetQ ClassNotFound issues when not embedded
Update HornetQConnectionFactoryConfiguration and
HornetQXAConnectionFactoryConfiguration so that they no longer depend
on the HornetQ EmbeddedJMS class. EmbeddedJMS beans are started
(when possible) from the HornetQConnectionFactoryFactory.

Fixes gh-1480
2014-09-01 14:08:52 -07:00
Phillip Webb
4c8d35db43 Rename CompositeDataSourcePoolMetadataProvider
Rename CompositeDataSourcePoolMetadataProvider to
DataSourcePoolMetadataProviders.
2014-09-01 12:38:30 -07:00
Phillip Webb
a512bcf766 Always auto-configure pool metadata providers
Import DataSourcePoolMetadataProvidersConfiguration from
DataSourceAutoConfiguration so that PoolMetadataProviders are configured
even if actuator is not used.
2014-09-01 12:38:26 -07:00
Phillip Webb
69107cb1df Create metadata sub-package
Create `org.springframework.boot.autoconfigure.jdbc.metadata` package
and move DataSourcePoolMetadata classes.
2014-09-01 12:29:04 -07:00
Phillip Webb
e56be6cf3d DataSourceMetadata -> DataSourcePoolMetadata
Rename DataSourceMetadata to DataSourcePoolMetadata
2014-09-01 12:29:01 -07:00
Phillip Webb
e17769fc2f Polish DataSourceMetrics code 2014-09-01 12:27:03 -07:00
Phillip Webb
adbded33ff Apply eclipse formatting rules to 3dc932db 2014-09-01 11:42:53 -07:00
Stephane Nicoll
53c4859a6a Reuse data source validation query in health endpoint
This commit improves DataSourceMetadata to expose the validation
query. This can be used by DataSourceHealthIndicator as the query
to use instead of "guessing" which query could be applied according
to the database type.

Fixes gh-1282
2014-08-29 14:58:01 +02:00
Stephane Nicoll
2694941b93 Fix DataSourceMetadata location
This commit complements 3dc932db8 and fix the package location of
DataSourceMetadata.

Fixes gh-1013
2014-08-29 14:35:20 +02:00
Phillip Webb
0143bec831 Polish 2014-08-28 16:58:37 -07:00
David Liu
b1ceb8a43b Add database property to RedisProperties
Add database property to RedisProperties and use it in
RedisAutoConfiguration.

Fixes gh-1379
2014-08-28 16:52:01 -07:00
Phillip Webb
f8a4df0838 Polish 2014-08-28 12:07:44 -07:00
Stephane Nicoll
a0c316d392 Improve RepositoryRestConfiguration customization
This commit binds RepositoryRestConfiguration to the spring.data.rest
prefix so that any of its property can be customized through the
environment.

If a RepositoryRestMvcConfiguration is defined in the context, those
customization do not apply, as it was the case before.

Fixes gh-1171
2014-08-28 16:45:32 +02:00
Phillip Webb
ff870de0f0 Fix a few JTA issues
- Search for ConnectionFactories in java:/JmsXA and
  java:/XAConnectionFactory
- Remove javax.transaction:jta managed dependency
- Removed unused JtaProperties argument

Fixes gh-947
2014-08-27 10:09:34 -07:00
Phillip Webb
1024d5d42a Polish 2014-08-27 10:09:34 -07:00
David Liu
f4ccaa874a Provide auto-configuration for Gson
Closes #1339
2014-08-27 16:57:21 +01:00
Phillip Webb
239d19d38c Support JNDI for JTA and JMS.
Update auto-configuration for JMS and JTA to support a ConnectionFactory
and TransactionManager exposed via JNDI.

JTA configuration now attempts a simple JtaTransactionManager before
attempting Bitronix or Atomikos configuration.

The JMS auto-configuration also now attempts to find a ConnectionFactory
from JNDI before falling back to the previous strategies. If JNDI is
present a JndiDestinationResolver is also configured instead of the
default DestinationResolver.

See gh-947
2014-08-26 22:34:10 -07:00
Phillip Webb
da88bb4791 Update JMS auto-configuration to support XA
Update JMS auto-configuration for ActiveMQ and HornetQ to support XA
transactions.

See gh-947
2014-08-26 22:33:58 -07:00