Commit Graph

512 Commits

Author SHA1 Message Date
Phillip Webb
5e1552b718 Retain default order in HttpMessageConverters
The original fix for gh-1293 (commit 05e6af23) caused test failures due
to the fact that Spring Boot's MappingJackson2HttpMessageConverter was
added before Spring's default StringHttpMessageConverter.

This commit changes the HttpMessageConverters logic so that additional
converts are added just before any default converter of the same type.
This allows additional converters to be added whilst still retaining
the sensible ordering of the default converters.

Fixes gh-1293
2014-07-28 15:40:33 -07:00
Dave Syer
05e6af23cf Prepend without replacing in HttpMessageConverters
It was incorrect to simply replace existing instances because you can't
tell from the instance which media types and java types it supports. This
fix just prepends the custom converters so they get higher priority.

Fixes gh-1293
2014-07-28 09:32:15 -07:00
Dave Syer
ac2ab39a54 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.
2014-07-21 22:25:47 +01:00
Dave Syer
0c52817c88 Ensure order is preserved in Rabbit addresses
Using StringUtils.commaDelimitedListToSet() does not preserve order (why?),
so we have to use commaDelimitedListToStringArray().

Fixes gh-1262
2014-07-17 12:31:37 +01:00
Dave Syer
ede385d1b6 Modify @Condition for detecting existing message bundle resource
The problem with the old code is that it worces a ResourceBundle to
initialize with the default encoding (and that is then cached in the
JDK) during @Condition evaluation (so before the encoding is known).

Includes test for swedish messages

Fixes gh-1228
2014-07-10 12:42:02 +01:00
Gary Russell
ce0cbe05bf Restore AMQP vHost leading / support
Update RabbitProperties since vHosts have no restrictions requiring a
leading slash and can have any number of leading slashes.

Fixes gh-1206
2014-07-08 01:33:47 -07:00
Phillip Webb
4ede9cd1be Support websockets with Tomcat 8.0.8
Fixes gh-1210
2014-07-08 00:59:34 -07:00
Andy Wilkinson
6a0eb90007 Upgrade to Spring Batch 3.0.1
Due to a mistake in Spring Batch 3.0.0 it has been necessary to
introduce a breaking API change (the addition of
BatchConfigurer.getJobExplorer()) in the 3.0.1 release. This commit
updates Boot to use 3.0.1 and modifies the Batch auto-configuration
and associated tests to implement the new method.
2014-07-08 00:03:30 -07:00
Dave Syer
aa38d33404 Support for setting credentials and vhost in rabbit addresses
User can now add credentials, vhost and protocol prefix (amqp://)
to any or all of the addresses, extending the format beyond that accepted
bu the rabbitmq client, but making it cloud friendly. Only one of
the addresses needs those properties and all are optional. Port
also defaults to 5672 in an address.
2014-07-07 19:56:50 +01:00
Phillip Webb
fa88c481a5 Remote trailing whitespace 2014-07-02 15:17:14 -07:00
Toshiaki Maki
e306cff4ff Fix typo in FlywayAutoConfiguration's javadoc
Closes #1183
2014-07-01 09:44:22 +01:00
Toshiaki Maki
9febd4a4cb Support sqlScriptEncoding in schema.sql
Fixes gh-1165, fixes gh-1164
2014-06-27 12:55:12 +01:00
Phillip Webb
9632abf825 Formatting and cleanup 2014-06-26 09:41:15 -07:00
Dave Syer
c0305ecbbb Take care registering DataSourceInitializer
The DataSourceInitializer is instantiated early by the
DataSourceInitializerPostProcessor, so it has to live in
isolation (in its own @Configuration) to prevent early
instantiation of the DataSourceAutoConfiguration.

Fixes gh-1166
2014-06-26 09:49:44 +01:00
Dave Syer
b2db3790de Improve test for JobLauncherCommandLineRunner (see gh-1125) 2014-06-24 10:39:28 +01:00
Phillip Webb
c713c8091d Polish 2014-06-23 19:41:22 -07:00
Jonas Bergvall
078db8cb74 Separate the configuration/creation of the default ObjectMapper
bean from the registration of Jackson modules to avoid circular creation
of the default ObjectMapper bean (and thus failing to obtain the ObjectMapper
and registering the module(s)).

Fixes gh-1132
2014-06-22 09:57:53 +01:00
Phillip Webb
bfe4240ed2 Polish 2014-06-20 10:29:04 -07:00
Phillip Webb
445589a5d2 Polish RabbitMQ Changes
Fix the formatting which was messed up in commit ad1636fd. Also
simplify the RabbitProperties.setVirtualHost logic a little

See gh-1128
2014-06-20 10:29:04 -07:00
Phillip Wirth
ad1636fd34 RabbitMQ virtual hosts can how start with a slash
The autoconfig strips out slashes where necessary to make a valid
hostname

Fixes gh-1128
2014-06-20 17:46:54 +01:00
Dave Syer
1e5882b19c Make copy of job parameters before weeding out non-identifying ones
Fixes gh-1125
2014-06-19 18:15:44 +01:00
Dave Syer
c6175073ae Be slightly more defensive in DataSource initialization
Adding an Order to the BeanPostProcessor and catching an exception
are enough to get a simple web app with @EnableGlobalMethodSecurity
and JDBC user details running. It actually doesn't solve an underlying
problem in Spring Security, but I'll deal with that separately.

See gh-1115
2014-06-19 14:26:22 +01:00
Phillip Webb
34a32991fa Be defensive about solr classes required
Update SolrAutoConfiguration to specifically require HttpSolrServer
and CloudSolrServer classes rather than the generic SolrServer.

This prevents the rather cryptic "@ConditionalOnMissingBean annotations
must specify at least one bean" error that can occur if an earlier
version of solr happens to be on the classpath (as is the case when
hibernate-search is used).

Fixes gh-1098
2014-06-18 16:30:39 -07:00
Phillip Webb
46c46dbd0c Refine Spring Social auto-configuration
Refine auto-configuration for Spring Social to:

- Only auto-configure FB/Twitter/LinkedIn if the `app-id` property is
  set.
- Only configure ConnectController and ProviderSignInController if
  there is a ConnectionFactoryLocator.
- Auto-configure Spring Social's SpringSocialDialect for Thymeleaf if
  Thymeleaf is present.
- Added several tests around Spring Social auto-configuration.

Fixes gh-1118
2014-06-18 13:46:19 -07:00
Phillip Webb
179e1558f6 Polish 2014-06-18 12:48:42 -07:00
Dave Syer
f8e847a6fc Change ordering of DataSourceInitializer a bit
It needs to run as soon as the DataSource is available really otherwise
anything else that depends on the DataSource (like Security JDBC
initializers) might fail when it tries to use it.

One change from 1.1.1 is that if you have a schema.sql you had better
make sure your data.sql talks to the same tables. In 1.1.1 you could
sometimes get away with letting Hibernate initialize the tables for
your data.sql and *also* have a schema.sql. This was fragile and doomed
to fail eventually if the DataSourceInitializer somehow got
initialized earlier (e.g. through a @DependsOn), so in the spririt
of honesty being the best policy we explicitly disallow it now.

Fixes gh-1115
2014-06-18 15:19:53 +01:00
Phillip Webb
25eb6fb81a Polish 2014-06-17 12:14:24 -07:00
Stephane Nicoll
2bff12a7b5 Better support for HornetQ embedded broker
Prior to this commit it was not safe to start several contexts
using the HornetQAutoConfiguration in the same VM. Each context
was trying to start their own HornetQ embedded broker by default but
only the first was really starting. Worse, the various InVM connection
factories were all silently connecting to the first broker.

This commit introduces a new "serverId" property that is an auto-
incremented integer by default. This identifies the server to connect
to and allows each context to start its own embedded broker in total
isolation of other contexts.

This commits makes it possible for a context to disable its own
embedded broker and connect to an existing one, potentially started
by another context.

Fixes gh-1063
2014-06-17 15:02:46 +02:00
Dave Syer
13076b8792 Order logger output by short classname
Fixes gh-1067
2014-06-17 12:28:28 +01:00
Stephane Nicoll
b646231327 Properly close context hierarchy in tests
Prior to this commit, some tests were creating a parent/child
relationship but were only closing the child context. This could
be an issue with the autoconfig module as a lot of auto-config
kicks in by default.

This commit adds a new test utility designed to properly handle
those situations. Updated tests that were creating a context
hierarchy to benefit from that.

Fixes gh-1034
2014-06-17 10:58:33 +01:00
Dave Syer
571a82fe90 Add @EnableEntityLinks to hypermedia support 2014-06-16 18:19:51 +01:00
Dave Syer
2ddf322a65 Add @Conditional to prevent HATEOAS blowing up
Spring Plugin is required when using @EnableHypermediaSupport
2014-06-16 17:29:03 +01:00
Phillip Webb
eddc6b31f1 Improve error message on condition exceptions
Catch exceptions thrown from SpringBootCondition and re-throw with
more context.

See gh-1098
2014-06-15 09:24:14 -07:00
Phillip Webb
a374929c90 Polish 2014-06-15 09:09:06 -07:00
Dave Syer
1bf256dd58 Ensure Weblogic and Websphere JMX are covered
To ensure an MBeanServer is available when needed you have to
look in JNDI before resorting to the JDK platform factory.

I had to copy some private code from Spring, but it seems
worth it.

Fixes gh-1092
2014-06-13 11:27:41 +01:00
Dave Syer
d36f9ce8e0 Add tests for switching message sources in tests
See gh-1075
2014-06-11 17:21:05 +01:00
Dave Syer
8d6f003e9a Defensive null check in case Hibernate autoconfig is off
If the Hibernate autoconfig is not used to create an EntityManager
then I suppose it's possible that the JpaProperties might be null
when everything else is ready for the event to be published.

There's no test case because I think it's a corner case.

Fxies gh-1075
2014-06-11 16:54:11 +01:00
Dave Syer
32a220da8f Test for message properties 2014-06-11 16:39:56 +01:00
Phillip Webb
3341a5db2b Deprecate @ConditionalOnMissingClass.value
Fixes gh-1069
2014-06-10 10:20:50 -07:00
Dave Syer
e8fcb0c875 Use classname instead of value in @ConditionalOnMissingClass
See gh-1065
2014-06-10 17:38:15 +01:00
Dave Syer
36130b27e1 Support for Jmx (and Integration) autoconfig in parent contexts
When there are parent contexts we already had a strategy for registering
the actuator endpoints, but not the regular JMX or Integration MBeans.
This chnage makes the autoconfigs for JMX aware of the parent context.

Also adds a sample with a parent context.

See gh-847
2014-06-10 15:12:30 +01:00
Phillip Webb
b5d267ca89 Polish 2014-06-09 12:33:49 -07:00
Phillip Webb
2ad4c47d18 Polish 2014-06-09 11:33:17 -07:00
Dave Syer
dcb17a7cb5 Enhance @Conditionals for JMX autconfig
Fixes gh-1059
2014-06-09 17:47:24 +01:00
Roy Clarkson
1a32a6a06b Fix issues with DeviceDelegatingViewResolverAutoConfiguration
- Log to the correct class
- Set Auto-configure after Thymeleaf hint on main class instead of
  internal static class
- Use 'thymeleafViewResolver' bean name instead of class for
  conditional bean checks
- Fix class name in properties documentation

Fixes gh-1052
2014-06-09 14:05:46 +01:00
Dave Syer
aa30fdba18 Add MBeanServer @Bean in case it is needed
Anywhere that an MBeanServer is needed it should be
created @Conditionally, so that user can exclude the
JmxAutoConfiguration and still get the other JMX
behaviours automatically.
2014-06-09 10:21:49 +01:00
Dave Syer
1a5c4f88b4 Fix compilation error 2014-06-09 10:10:34 +01:00
Dave Syer
39a94428d3 Add @Conditionals to permit JPA/Mongo mixed usage
I decided to go with both approaches (make the autoconfig for
repositories @ConditionalOnMissingBean(RepositoryFactoryBeanSupport),
so the first one wins; and also make them conditional on
spring.data.*.repositories.enabled=true. The ordering problem
is still there really (it's not defined which repositories will
be created by the autoconfig), so if a user is going to have
2 repository implementations on the classpath, he is going to
have to either choose one to disable, or manualy @Enable* the
other one.

Fixes gh-1042
2014-06-09 09:48:40 +01:00
Phillip Webb
2852f7422e Polish Spring Mobile Auto-configuration
Update Spring Mobile support with the following changes:
- Apply source formatting
- User lowercase property prefixes
- Use dashed notation when accessing properties
- Inline some constants

See gh-1049
2014-06-08 23:57:55 -07:00
Dave Syer
6902f2ac97 Revert on bean condition for mongo repositories 2014-06-07 14:30:33 +01:00