Auto-reconfiguration functionality for the Java Buildpack
Java Shell Batchfile

README.md

Java Buildpack Auto-Reconfiguration

This repository contains the auto-reconfiguration functionality for Spring auto-reconfiguration.

Job Status
unit-test-2.x-Athens-RELEASE unit-test-master
unit-test-2.x-Athens-SR1 unit-test-master
unit-test-2.x-Athens-SR2 unit-test-master
unit-test-2.x-Athens-SR3 unit-test-master
unit-test-2.x-Athens-SR4 unit-test-master
unit-test-2.x-Athens-SR5 unit-test-master
unit-test-2.x-Athens-SR6 unit-test-master
unit-test-2.x-Brussels-RELEASE unit-test-master
unit-test-2.x-Brussels-SR1 unit-test-master
unit-test-2.x-Brussels-SR1 unit-test-master
unit-test-2.x-Brussels-SR1 unit-test-master
unit-test-2.x-Brussels-SR1 unit-test-master
unit-test-2.x-Brussels-SR1 unit-test-master
unit-test-2.x-Cairo-BUILD-SNAPSHOT unit-test-master
deploy-2.x deploy-master

What is Auto-Reconfiguration?

Auto-reconfiguration consists of three parts.

  1. it adds the cloud profile to Spring's list of active profiles
  2. it exposes all of the properties contributed by Cloud Foundry as a PropertySource in the ApplicationContext
  3. it re-writes the bean definitions of various types to connect automatically with services bound to the application.

The types that are rewritten are as follows:

Bean Type Service Type
com.datastax.driver.core.Cluster Cassandra Service
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.mail.javamail.JavaMailSender SMTP Service

Dependencies

Most projects will receive this project via Java Buildpack injection. If you need to download it for diagnsotic purposes, the dependency can be defined like this:

<dependencies>
    <dependency>
        <groupId>org.cloudfoundry</groupId>
        <artifactId>java-buildpack-auto-reconfiguration</artifactId>
        <version>2.0.0.RELEASE</version>
    </dependency>
    ...
</dependencies>

Release artifacts can be found in the Spring release repository:

<repositories>
    <repository>
        <id>spring-releases</id>
        <name>Spring Releases</name>
        <url>http://repo.spring.io/release</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    ...
</repositories>

Snapshot artifacts can be found in the Spring snapshot repository:

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>http://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    ...
</repositories>

For Gradle, the dependencies would be defined like this:

dependencies {
    compile 'org.cloudfoundry:java-buildpack-auto-reconfiguration:2.0.0.RELEASE'
    ...
}

Snapshot artifacts can be found in the Spring release repository:

repositories {
    maven { url 'http://repo.spring.io/release' }
    ...
}

Snapshot artifacts can be found in the Spring snapshot repository:

repositories {
    maven { url 'http://repo.spring.io/snapshot' }
    ...
}

Contributing

Pull requests are welcome; see the contributor guidelines for details.

License

This buildpack is released under version 2.0 of the Apache License.