Auto-reconfiguration functionality for the Java Buildpack
Clone or download
nebhale Maven Upgrade
Signed-off-by: Ben Hale <bhale@pivotal.io>
Latest commit ea168af Nov 6, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Dependency Updates Dec 11, 2017
.mvn/wrapper Maven Upgrade Nov 5, 2018
ci Auto-Reconfiguration 2.x Nov 3, 2017
src Relax logging level Mar 26, 2018
.gitignore Auto-Reconfiguration 2.x Nov 3, 2017
CONTRIBUTING.md Cleaned up references in README May 3, 2016
LICENSE Rethinking Auto-reconfiguration Apr 2, 2014
NOTICE NOTICE file update Jan 26, 2017
README.md New CI Build Jan 3, 2018
java-buildpack-auto-reconfiguration.iml Polishing Sep 18, 2018
mvnw Maven Update Aug 10, 2018
mvnw.cmd Maven Update Aug 10, 2018
pom.xml v2.6.0.BUILD-SNAPSHOT Development Sep 18, 2018
shade-service-relocation.xml Copyright Updates Jan 17, 2018

README.md

Java Buildpack Auto-Reconfiguration

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

Job Status
unit-test-Athens-RELEASE unit-test-master
unit-test-Athens-SR1 unit-test-master
unit-test-Athens-SR2 unit-test-master
unit-test-Athens-SR3 unit-test-master
unit-test-Athens-SR4 unit-test-master
unit-test-Athens-SR5 unit-test-master
unit-test-Athens-SR6 unit-test-master
unit-test-Brussels-RELEASE unit-test-master
unit-test-Brussels-SR1 unit-test-master
unit-test-Brussels-SR2 unit-test-master
unit-test-Brussels-SR3 unit-test-master
unit-test-Brussels-SR4 unit-test-master
unit-test-Brussels-SR5 unit-test-master
unit-test-Brussels-SR6 unit-test-master
unit-test-Cairo-BUILD-SNAPSHOT unit-test-master
deploy 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.