Commit Graph

1441 Commits (791c50d1e7d44ebe1f506cb4a6a1b5d05eb69dba)

Author SHA1 Message Date
Dave Syer 4a60e3ccf6 Unignore condition tests 11 years ago
Dave Syer a4cb09c4eb Unignore some tests 11 years ago
Dave Syer 259e6a6ec1 RedisProperties prefix -> spring.redis 11 years ago
Dave Syer 16222270b8 Improve reporting of SpEL condition matching 11 years ago
Dave Syer 20bede21ad Add support for parent hierarchy in AUtoConfigurationReport 11 years ago
Dave Syer d1dcb015b6 Ensure only supported listeners are instantiated
Previously all EventListeners were eagerly instantiated
but that can cause problems because it happens quite early
in the lifecycle. Better to be explicit about the
supported types.
11 years ago
Dave Syer 7ef9688d99 Javadocs clarification of role of DispatcherServlet 11 years ago
Dave Syer 94e2f90793 Ensure endpoints.jolokia.enabled=false switches off jolokia 11 years ago
Phillip Webb f4f668a52b Polish 11 years ago
Dave Syer a9e4400f82 Add test for PropertyPlaceholderAutoConfiguration 11 years ago
Dave Syer 8efa2fc569 Use server.port=0 for scanning
This leverages existing capabilities of teh JDK and the OS
to grab a port at random and not have it stolen by another
process. It's very hard to avoid that race condition in
pure Java code, so why bother?

User can set port<0 to disable autoStart of connectors (e.g.
to start a web application context but not have it listen on
any port). In that case the actual socket port will be set to
0 (and therefore if it ever starts up the local port will
be random).
11 years ago
Dave Syer 59f07d37ab Scan for port near default 11 years ago
Dave Syer 61dd7d1dbb Add port scan to ServerProperties (server.scan=true)
Also moved ServerProperties to autoconfigure project.
11 years ago
Dave Syer bd26b28aa5 Extract actuator security into separate classes
So spring-security + a web app is secure by default
(you don't need the actuator).
11 years ago
Dave Syer 285dd5b270 ApplicationContextInitializers now listen for ContextRefreshedEvent
The AutoConfigurationReportLoggingInitializer wasn't working in
non-GenericApplicationContext becasue teh BeanFatcory wasn't available
for registering its listener during initialization. Instead of
relying on that rather fragile state I decided to give any
ApplicationContextInitializer that was itself an ApplicationListener
an explicit callback with a ContextRefreshedEvent, and move that
interface up a level in the logging initializer. Works much better.
11 years ago
Dave Syer 06c16ae452 Only check for singleton in AutoConfigurationReportLoggingInitializer
Using containsBean() involves looking in the parent bean factory
if there is one, and that would mean that the same report woykd be used
for multiple contexts, which wouldn't make sense.
11 years ago
Dave Syer faf02a21ab Prevent @Bean method from being called during @PreDestroy 11 years ago
Dave Syer fce48c00c7 Really fix it 11 years ago
Dave Syer 71cd1926b9 Fix test on command line 11 years ago
Dave Syer 156ef3f1a0 Weird build problem? 11 years ago
Dave Syer ded9020916 Allow Batch datbase initializer to be disabled 11 years ago
Dave Syer 60f3dd9386 Be defensive about adding autoconfig report bean 11 years ago
Dave Syer 640b9d2680 Add RedisAutoConfiguration 11 years ago
Dave Syer 2f7214002d Update Spring to catch SPR-11069 11 years ago
Phillip Webb 64f32893bb Source format and clean-up 11 years ago
Phillip Webb 883fd9162f Polish 11 years ago
Dave Syer 11149443e3 Make sure Batch autoconfig only gets inlcuded once 11 years ago
Phillip Webb dafeddca09 Rework auto-configure report
Update the auto-configuration report to improve log formatting and to
separate the internal report data-structure from the JSON friendly
endpoint data-structure.
11 years ago
Phillip Webb 04fd7fdbbe Improve message used on match
Update OnBeanCondition and OnClassCondition to improve the message used
on a successful match.
11 years ago
Phillip Webb ab249b034d Rename Outcome -> ConditionOutcome 11 years ago
Phillip Webb a9a6077fdb Polish SpringApplicationErrorHandler 11 years ago
Phillip Webb 68e07eba5c Minor formatting polish 11 years ago
Dave Syer 51f240c1d5 Jpa auto configuration updates for new Spring Data release
User now gets @EnableSpringDataWebSupport for free in any
autoconfigured JPA webapp.

[Fixes #53028329] [bs-216]
11 years ago
Phillip Webb 4c75700164 Detect Tomcat start failures
Detect if the tomcat container fails to start and propagate an
exception to the caller.
11 years ago
Dave Syer fa998287ab Only log report if INFO enabled 11 years ago
Dave Syer 5ab2b472a8 Be more lax with --debug parsing 11 years ago
Dave Syer c6efac87f5 Shorten field names a bit 11 years ago
Phillip Webb d784cb6a88 Apply eclipse-formatter conventions 11 years ago
Dave Syer 0def447750 More care required getting beans early in lifecycle 11 years ago
Dave Syer 0c79c8913f Ensure AutoConfigurationReport is always present 11 years ago
Greg Turnquist b63016d8fc Create a report based on Boot's autoconfiguration decisions
- Gather autoconfiguration conditional decisiions (true and false)
- Provide an actuator endpoint as one means to read the report
- Define @EnableAutConfigurationReport annotation to turn this feature on
- Tidy up autoconfig report a bit and log it if --debug=true
11 years ago
Christian Dupuis 368f279788 Fix failing database test on 1.7 11 years ago
Christian Dupuis 90a2bf38da Ignore DataSourceAutoConfigurationTests.testExplicitDriverClassClearsUserName() as it fails without running mysql instance 11 years ago
Dave Syer 09de86fde8 Fix test broken by MySQL dependency 11 years ago
Dave Syer 97e6d77711 Do not default username/password for DataSource unless embedded
To use a DataSource pool (Tomcat or DBCP) the user must supply a valid
driver class name *and* database URL. If both are supplied and the
driver class is not one of the embedded ones, then no default username
or password is provided.

Fixes gh-94
11 years ago
Dave Syer 894940d7aa Add test for dispatcher registration 11 years ago
Dave Syer 9f48376cbc Remove unused argument (causes autowiring issues) 11 years ago
Phillip Webb a9c9c383f4 Polish pom.xml
Aplly consistent formatting, drop JDK 8 support and cleanup repo
locations to use spring.io.
11 years ago
Dave Syer a4c0733d4a Revert aspectj to default version 11 years ago
Dave Syer 18ee229748 Add support for annotation scan in @ConditionalOn*Bean 11 years ago
Dave Syer 86a369b955 Add renamed Rabbit config to factories 11 years ago
Dave Syer 276f9b784c Add virtual host to Rabbit config 11 years ago
Dave Syer 0498617411 Disable whitelabel view if Thymeleaf error.html detected 11 years ago
Dave Syer e789840b3c Adjust db type if postgres 11 years ago
Andy Wilkinson e5e511fd43 Reinstate use of hasMappingForPattern
Use of hasMappingForPattern was commented out during work on the
Aether-based Grape implementation as it was temporarily removed in 
Spring 4's snapshots. It's since been reinstated in the snapshots, so
its use should have been reinstated prior to merging Aether work into
master.
11 years ago
Andy Wilkinson 39e8e46e2a Provide an Aether-based Grape Engine
Previously, @Grab annotations would use Ivy to download the
dependencies with some of Ivy's known limitations being worked around
by GrapeEngineCustomizer.

This commit adds a GrapeEngine implementation that uses Aether,
the dependency resolution 'engine' used by Maven and Grails. To ensure
consistent behaviour with a Maven build, the Aether-powered dependency
resolution uses the dependency management configuration from the
spring-boot-starter-parent pom file.
11 years ago
Andy Wilkinson a28947f276 Move database files into target directory 11 years ago
Dave Syer 43f8a71af4 Ensure JdbcTemplate and DB initializer still work when user supplies DataSource 11 years ago
Dave Syer 837070d6e9 Tidy up log message (add space) 11 years ago
Dave Syer acf458b462 Standardize on spring.datasource.* for database config
[Fixes #58921238] [bs-333] spring.database.* and
spring.datasource.* used to configure database
11 years ago
Dave Syer b7ed5bbc76 Revert "Temporary fix for Spring snapshot changes"
This reverts commit 8a804f6185.
11 years ago
Dave Syer 8a804f6185 Temporary fix for Spring snapshot changes 11 years ago
Dave Syer 0ec2d19e38 Add spring.thymeleaf.encoding to ThymeleafAutoConfiguration
Both the template resolver and the view resolver now have their
encoding set explicitly (defaulting to UTF-8).

Fixes gh-79
11 years ago
Dave Syer 2c60828cf2 Ensure ServerProperties default values does not override
Since ServerProperties had primitive properties for port (in
particular) it was not possible to check when applying those
properties if the user had actually changed the value. This
in turn meant that a custom EmbeddedServletContainerFactory
could not set the default values.

Fixed by making int properties of ServerProperties into
Integer and checking for null before setting on the
container factory.

Fixes gh-84
11 years ago
Dave Syer 64d9f4f18d Allow user to override static resource handler mappings
A new API in Spring allows us to check for existing mappings in the
resource handler registry
11 years ago
Phillip Webb af0d08c998 Polish 11 years ago
Phillip Webb b772f7c2e4 Polish
Minor formatting and consistent copyright header.
11 years ago
Roy Clarkson 5cdaa43912 Add Spring Mobile Device Resolver autoconfiguration 11 years ago
Dave Syer 3b2abe9c17 Use create_drop JPA as default if in-memory
[Fixes #55277582] [bs-288]
11 years ago
Dave Syer bbec4f7cf5 Make default proxyTargetClass=false
If the default is true JPA repositories all have to have
default constructors etc.
11 years ago
Eberhard Wolff c6e0c76341 Added test for AOP auto configuration and dependency to AspectJ 11 years ago
Dave Syer dfb660aa87 Add schema.sql,data.sql to default SQL initializers
...for compatibility with Spring JDBC. Users can still
optionally specify spring.database.schema, but the default
location is schema-${spring.database.platform}.sql, schema.sql,
data.sql.

[Fixes #58332710]
11 years ago
Dave Syer 5fe9ef69c7 Add SpringApplicationContextLoader 11 years ago
Dave Syer 345c0fc5a4 Add SpringApplicationBuilder
Builder for SpringApplication and ApplicationContext instances with
convenient fluent API and context hierarchy support. Simple example
of a context hierarchy:

   new SpringApplicationBuilder(ParentConfig.class)
               .child(ChildConfig.class).run(args);

Another common use case is setting default arguments, e.g.
active Spring profiles, to set up the environment for an application:

     new SpringApplicationBuilder(Application.class).profiles("server")
 		.defaultArgs("--transport=local").run(args);

If your needs are simpler, consider using the static convenience
methods in SpringApplication instead.

[#49703716] [bs-116] Parent context for some beans maybe?
11 years ago
Dave Syer 3879afccfb Important: restrict PPC scanning to current context 11 years ago
Dave Syer 0df4156b57 Lazy initialization of management server properties 11 years ago
Dave Syer 5b1503d07d Extract DispatcherServletAutoConfiguration so it can be used independently 11 years ago
Dave Syer 52e0193d95 Refactor Rabbit and JMS to avoid bean name clash 11 years ago
Dave Syer 923f286ae2 Add spring.view.{prefix,suffix} properties
Fixes #62
11 years ago
Dave Syer 9bb6e0f497 Fix test 11 years ago
Greg Turnquist 941d163709 Add support for Spring Rabbit (via Spring AMQP) to Boot
- If RabbitTemplate is on the classpath, turn on autodetection.
- Create a RabbitTemplate, a Rabbit ConnectionFactory, and a RabbitAdmin is spring.rabbitmq.dynamic:true
- Enable some **spring.rabbitmq** properties like host, port, username, password, and dynamic
- Add tests to verify functionality
- Add Groovy CLI functionality. Base it on @EnableRabbitMessaging. Add spring-amqp to the path.
- Create rabbit.groovy test to prove it all works.
- Make Queue and TopicExchange top-level Spring beans in rabbit.groovy test script
11 years ago
Greg Turnquist fa6e6fde6c Add JMS autoconfig support
* application.properties support for spring.jms and spring.activemq

* more tests to verify ActiveMQConnectionFactory pooling

* Groovy support and simple sample with activemq

* Groovy detection mechanism is @EnableJmsMessaging annotation
11 years ago
Phillip Webb 26303a9767 Ensure DataSource can load database driver
Update DataSource conditional to ensure that the driver class
can actually be loaded by the DataSource. This fixes an issue when
deploying a classic WAR where `org.apache.tomcat.jdbc.pool.DataSource`
is found the parent classloader but the database driver cannot be loaded
because is included as a local `/lib` dependency.
11 years ago
Phillip Webb c544921eaa Polish whitespace 11 years ago
Oliver Gierke 604b9069b1 #58 - Upgraded Spring Data JPA dependencies to Babbage release train.
Adapted to changes in the API in Spring Data Commons which requires to pass in the current Environment into the AnnotationRepositoryConfigurationSource.
11 years ago
Phillip Webb fd9e258d12 Replace 'springsource.org' with 'spring.io'
Replace all references to 'springsource.org' with the new 'spring.io'
domain.
11 years ago
Dave Syer 5925e153b4 Make sure JMS is on classpath as well 11 years ago
Phillip Webb 9a529b41c1 Polish 11 years ago
Greg Turnquist 5801e422cf [BS-48] Add autoconfigured JMS support
* Add ability to detect spring-jms on the path and create a JmsTemplate with
  ActiveMQConnectionFactory
* Create tests showing autoconfigured JmsTemplate with ActiveMQ, but prove it
  backs off if a separate ConnectionFactory exists.
* Add support to spring-boot-cli to that it detects JmsTemplate, DefaultMessageListenerContainer,
  or SimpleMessageListenerContainer, and turns on autoconfiguration as well as
  add proper @Grab's and import statements.
* Write a jms.groovy test showing proper CLI support

Simplify ActiveMQ configuration

Update ActiveMQ to 5.7.0
11 years ago
Dave Syer 4bb99e80d0 Upgrade to reactor M3 11 years ago
Dave Syer e6c1586717 Fix off -by-one logic error 11 years ago
Dave Syer 191894a16a Add Mongo auto configuration
Spring Data Mongo is the only dependency so it doesn't
really need a new starter. Added a sample though.
11 years ago
Dave Syer d06d202fd0 Add AopAutoConfiguration (also starter and sample)
A side effect is that spring-boot-starter-data-jpa needs
to include an aspectjweaver depdendency. Hope that doesn't
hurt anything else.

[Fixes #56780004]
11 years ago
Dave Syer 759aa785a7 Fix bug in datasource autoconfiguration
The AbstractDataSourceConfiguration had path= in its
@ConfigurationProperties by mistake (should have been value)
11 years ago
Dave Syer 38e565e920 Back to SNAPSHOT for dev 11 years ago
Dave Syer b634b3bde6 Update to 0.5.0.M2 11 years ago
Dave Syer c4223d645d Updated WebSocketAutoConfiguration to use @EnableWebSocket 11 years ago
Dave Syer 5fa0166dea Upgrade to Reactor 1.0.0.M2 11 years ago
Phillip Webb 6a227a2298 Move non-inherited JPA @Condition annotations
Move JPA @Condition annotations from JpaBaseConfiguration to
HibernateJpaAutoConfiguration since they are not inherited.
11 years ago
Phillip Webb cb7cc3991b Make data-jpa conditional on DataSource bean 11 years ago
Phillip Webb 1c1f36c4ce Add support for web-jar resources
Include resource mapping for web-jar resources.

Issue: #55752928
11 years ago
Phillip Webb a95494fe61 Remove '/resources/**' mapping and default servlet
Remove '/resources/**' mapping since it can cause problems with the
'/**' when the developer defines their own 'resources' sub-folder.

Also remove default servlet config since the resources mapping renders
it redundant.

Issue: #55494446
11 years ago
Dave Syer 43fc107437 Fix security config
The management endpoints were still all mixed up
with the user endpoints. Fixed that and extracted
user endpoints in to conditional block so not
protected if path explicitly set to empty string.

[#53029715]
11 years ago
Phillip Webb 2b54b6286f Rework database auto-configure
Rework several aspects of database auto-configuration:

- Use RelaxedPropertyResolver to obtain property values
- Extract EmbeddedDatabaseConnection from EmbeddedDatabaseConfiguration
- Rename several configuration classes for consistency

Issue: #53028397
11 years ago
Phillip Webb 2041a79970 Use RelaxedPropertyResolver in auto-configuration
Update several existing auto-configuration classes to use the new
RelaxedPropertyResolver.

This commit also rename the spring.template property to spring.thymeleaf
in case we wish to support more templating engines in the future.
11 years ago
Phillip Webb d64a44547c Fix DataSourceConfiguration isTestOnReturn()
Fix setTestOnReturn to use isTestOnReturn.
11 years ago
Dave Syer 767aa43e31 Add WebSocketAutoConfiguration
Opinionated defaults for WebSockets:

* If spring-websocket is on the classpath and so is
the Tomcat WSci initializer then it is added to the context
* A DefaultSockJsService is added if none is present
* User has only to define @Beans of type WebSocketHandler with
name starting "/"
* Each one is converted to a SockJsHttpRequestHandler and
mapped to "/<beanName>/**"
11 years ago
Phillip Webb 94b182cc81 Allow hibernate naming strategy to be specified
Issue: #53028397
11 years ago
Phillip Webb 71946f9d83 Update WebMvcAutoConfiguration conditional bean
Change WebMvcAutoConfiguration to use WebMvcConfigurationSupport instead
of HanderAdapter as the @ConditionalOnMissingBean. This allows MVC to
be auto-configured even if you define additional HanderAdapters.

Issue: #55493342
11 years ago
Phillip Webb d4fe320254 Update trace logging to include Hibernate SQL 11 years ago
Phillip Webb 6858c3987e Use Hibernate ImprovedNamingStrategy by default
Update HibernateJpaAutoConfiguration to use the ImprovedNamingStrategy
for better table and column names.

Issue: #55261888
11 years ago
Phillip Webb 7e3cb50a22 Polish 11 years ago
Phillip Webb 021fe45d83 Exclude spring-data-rest package from being stored
Update AutoConfigurationUtils to specifically exclude spring-data-rest
packages from being stored. This prevent missing class errors caused
when Spring Boot attempts to use @ComponentScan packages as the source
for JPA entities and reads annotations that are not on the classpath.

Issue: #55489346
11 years ago
Phillip Webb fc841e0269 Move inner class to end of file for consistency 11 years ago
Dave Syer d205d9404a Add additional ViewResolver configuration
The DispatcherServlet adds a default InternalViewResolver
which was used by some apps, but when the actuator was
available it added an "/error" bean and effectively
switched off the default view resolver. The net fix was
to add an InternalViewResolver at the same time as
adding any other ViewResolvers.

[Fixes #55357516] [bs-290] Actuator UI app cannot serve static index.html
11 years ago
Phillip Webb 3fc8752a37 Update autoconfigure README.md with `--debug` info 11 years ago
Phillip Webb 840fdeb50f Create common SpringBootCondition base class
Create a new SpringBootCondition that will log why a condition has
or has not been applied. The removes the need for ConditionLogUtils
and simplifies many of the existing condition implementations.

Issue: #55203236
11 years ago
Phillip Webb 4e83826b41 Polish 11 years ago
Phillip Webb 82ed7a676d Readme for auto-configuration 11 years ago
Phillip Webb 1ff76459db Polish ConditionalOn annotations
Update ConditionalOn annotations :
- Use consistent attribute names for OnClass and OnMissingClass
- Update javadoc
- Rename tests to reflect the annotation rather than the interface
11 years ago
Dave Syer 0d583deb27 Add CLASSPATH elements back to spring CLI script
Also add @WebConfiguration as a shortcut for groovy
scripts to get MVC behaviour (without a @Controller)

[#54926366]
11 years ago
Dave Syer 68e84f7d02 Add pool parameters to AbstractDataSourceConfiguration
* Exposed common pool properties in the base class for data source configuration
* Made it @ConfigurationProperties so it binds in strongly typed sense

[Fixes #53028455] [bs-214] Add pool parameters to AbstractDataSourceConfiguration
11 years ago
Dave Syer 56f5b3ad0f Add logging to dispatcher servlet condition 11 years ago
Dave Syer 0af9d2022a Allow user to supply servlets and filters and still get default DispatcherServlet
Instead of not installing one at all if there is any ServletContextInitializer,
Spring Boot will now install a DispatcherServlet if context does not contain one
already with the magic name "dispatcherServlet".

[Fixes #54674870] [bs-277]
11 years ago
Phillip Webb 00fc04c01e Simplify OnBeanCondition
Merge OnMissingBeanCondition into OnBeanCondition and simplify code.
Polish on bean conditions
11 years ago
Phillip Webb 82320b3525 Simplify OnWebApplicationCondition
Merge OnNotWebApplicationCondition into OnWebApplicationCondition and
simplify code.
11 years ago
Phillip Webb 7525eb31f1 Simplify OnClassCondition
Merge OnMissingClassCondition into OnClassCondition and simplify code.
11 years ago
Phillip Webb cf655945aa Polish 11 years ago
Phillip Webb 8a33c39f0b Polish AutoConfigurationSorter 11 years ago
Dave Syer 33658c2933 Add @AutoConfigureBefore and simple implementation
[#54597932] [bs-273] Circular view reference for /error
11 years ago
Phillip Webb 4e11ae1671 Documentation
Various updates to README.md files.
11 years ago
Phillip Webb 1db22aca5c Rework POM structure
Rework main build POM to be an aggregator pom that does not inherit
from any parent. Introduce new spring-boot-dependencies module to
act as a parent for both spring-boot-starter-parent and
spring-boot-parent.
11 years ago
Dave Syer 4bb5de02e7 Switch back to SNAPSHOT for dev 11 years ago
Dave Syer 68e5a7e887 Bump version to 0.5.0.M1 11 years ago
Phillip Webb e1c6860a41 Documentation 11 years ago
Phillip Webb c83400d265 Move conditions from boot to autoconfigure
Issue: #54393078
11 years ago
Phillip Webb 36c3ceab97 Include servlet support for index.html resources
Issue: #54228642
11 years ago
Phillip Webb 772cc851a0 Polish WebMvcAutoConfiguration resource locations 11 years ago
Dave Syer 4c359e1a4d Two choices are available to users for welcome page
* For a jar deployment add classpath:static/index.html
(works via Spring MVC mapping)
* For a war the same thing works, but so does adding
index.html to src/main/webapp (works via container
default servlet)

[Fixes #54092261] [bs-252]
11 years ago
Phillip Webb b665a2bb1d Renamed packages
Issue: #54095231
11 years ago
Phillip Webb 3f2bb03fb8 Renamed some projects and polish POMs
Issue: #54095231
11 years ago