Skip to content

cloudfoundry/java-buildpack-auto-reconfiguration

Repository files navigation

Java Buildpack Auto-Reconfiguration

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

NOTE: This project has been deprecated and is in maintenance mode. We will continue to release security-related updates but will not address enhancement requests. It will be archived after Dec 2022. Refer to this issue to log comments.

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 diagnostic 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>https://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>https://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.