This repository contains the auto-reconfiguration functionality for Spring and Play Framework auto-reconfiguration. It also contains a replacement Play Framework JPA Plugin that can be properly auto-reconfigured.
Auto-reconfiguration consists of three parts. First, it adds the cloud
profile to Spring's list of active profiles. Second it exposes all of the properties contributed by Cloud Foundry as a PropertySource
in the ApplicationContext
. Finaly it re-writes the bean defintitions of various types to connect automatically with services bound to the application. The types that are rewritten are as follows:
Bean Type | Service Type |
---|---|
javax.sql.DataSource |
Relational Data Services (e.g. ClearDB, ElephantSQL) |
org.springframework.amqp.rabbit.connection.ConnectionFactory |
RabbitMQ Service (e.g. CloudAMQP) |
org.springframework.data.mongodb.MongoDbFactory |
Mongo Service (e.g. MongoLab) |
org.springframework.data.redis.connection.RedisConnectionFactory |
Redis Service (e.g. Redis Cloud) |
org.springframework.orm.hibernate3.AbstractSessionFactoryBean |
Relational Data Services (e.g. ClearDB, ElephantSQL) |
org.springframework.orm.hibernate4.LocalSessionFactoryBean |
Relational Data Services (e.g. ClearDB, ElephantSQL) |
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean |
Relational Data Services (e.g. ClearDB, ElephantSQL) |
More information about Spring on Cloud Foundry can be found here:
- Cloud Foundry Services With Spring, Part 1 : The Basics
- Cloud Foundry Services With Spring, Part 2 : Autoreconfiguration
- Cloud Foundry Services With Spring, Part 3 : The Cloud Namespace
- Cloud Foundry Services With Spring, Part 4 : Spring Profiles
This repository was previously home to the cloudfoundry-runtime
project. That project has been discontinued in favor of the spring-cloud
project. The last commit in this repository that includes the cloudfoundry-runtime
code has been tagged as cloudfoundry-runtime
.
Pull requests are welcome; see the contributor guidelines for details.
This buildpack is released under version 2.0 of the Apache License.