This project automates the building and publication of Java Buildpack dependency artifacts.
To run the builder, issue the following commands from the root directory of a clone of this repository:
bundle install
bundle exec bin/build [DEPENDENCY] [OPTIONS]
In order to build OpenJDK for the linuxes you will need Vagrant and VirtualBox. Follow the default installation instructions for these applications.
In order to build OpenJDK for OS X you will need Mercurial and XQuartz. Mercurial can be installed with homebrew, XQuartz should be installed by following the default installation instructions.
Pivotal employees should contact Ben Hale for AWS and AppDynamics credentials if they have not already been issued.
The list of available versions for each dependency can be found at the following locations.
Dependency | Location |
---|---|
App Dynamics | universal |
Auto Reconfiguration | universal |
Groovy | universal |
MariaDB JDBC | universal |
OpenJDK | centos6 , lucid , mountainlion , precise |
New Relic | universal |
Play JPA Plugin | universal |
PostgreSQL JDBC | universal |
Spring Boot CLI | universal |
tc Server | universal |
Tomcat | universal |
Note that the following additional dependency is built and published using the Java Buildpack Support repository.
Dependency | Location |
---|---|
Tomcat Buildpack Support | http://download.pivotal.io.s3.amazonaws.com/tomcat-buildpack-support/index.yml |
To run the tests, issue the following commands from the root directory of a clone of this repository:
bundle install
bundle exec rake
To host the Java Buildpack dependency artifacts on your own server, first download the artifacts and index.yml
files as described below, make them available at suitable locations on a web server, and then fork the
Java buildpack and update its repository configuration to point at the web server.
All the artifacts and index.yml
files may be downloaded using the replicate
script.
To use the script, issue the following commands from the root directory of a clone of this repository:
bundle install
bundle exec bin/replicate --access-key <access key> --secret-access-key <secret access key> --host-name <new hostname> --output <directory path>
where:
<access key>
and<secret access key>
are any valid Amazon S3 credentials.<new hostname>
is the hostname which will serve the rehosted artifacts. The script will replace the host in each downloaded index file.<directory path>
is the path to a directory for the downloaded artifacts andindex.yml
files.
When DEAs are provisioned, everything in the buildpack_cache
directory will be available via the $BUILDPACK_CACHE
environment variable. To populate the buildpack_cache
directory, follow these steps:
-
Clone
https://github.com/cloudfoundry/cf-release.git
and update its submodules (which takes a few minutes). -
Change directory into the clone.
-
Create
config/private.yml
with contents in the following format containing the appropriate S3 keys (see blobstore information for more information):--- blobstore: s3: secret_access_key: secretaccesskey access_key_id: accesskeyid
-
Issue
mkdir -p blobs/buildpack_cache/java-buildpack
. -
Go through the list of Java buildpack dependency repositories (in the Available Artifacts section above) and for each one:
5.1 Run the populate-buildpack-stash.rb script as follows:
`~/populate-buildpack-stash.rb /clone/blobs/buildpack_cache/java-buildpack <repository index.yml URL>`
5.2 Edit the downloaded file to exclude any versions not required in the buildpack cache - typically all except the latest version.
Refer to /clone/config/blobs.yml
to see what is already in the buildpack cache (take care to look in the entries containing buildpack_cache/java-buildpack
).
If there are no items in the edited index.yml
which are not already in the buildpack cache, delete the downloaded index.yml
file and skip the next step.
5.3 For each item in the above edited index.yml
which is not already in the buildpack cache, issue:
`~/populate-buildpack-stash.rb /clone/blobs/buildpack_cache/java-buildpack <URL from index.yml>`
-
Run
bosh upload blobs
from the clone directory. -
Commit the change to
config/blobs.yml
or, if you don't have commit rights, create a pull request.
Once the change to config/blobs.yml
has been committed or the pull request merged, you can expect the uploaded files to become available on tabasco within a few hours.
More information is available in blobstore information.
Pull requests are welcome; see the contributor guidelines for details.
The Builder is released under version 2.0 of the Apache License.
This table shows locations to check for new releases of cached dependencies. It is used primarily by Pivotal employees to keep the caches up to date.
Dependency | Location |
---|---|
App Dynamics | release |
Auto Reconfiguration | release |
Groovy | release |
MariaDB JDBC | release |
OpenJDK | jdk8 , jdk7u , jdk6 |
New Relic | release |
Play JPA Plugin | release |
PostgreSQL JDBC | release |
Spring Boot CLI | release , milestone , snapshot |
tc Server | release |
Tomcat | 8.x , 7.x , 6.x |
This table shows the mappings between versions, build numbers, and repository tags for OpenJDK releases. It is used primarily by Pivotal employees to keep track of exactly what was built.
JDK Version | Build Number | Tag |
---|---|---|
1.6.0_21 |
b21 |
jdk6-b21 |
1.6.0_22 |
b22 |
jdk6-b22 |
1.6.0_23 |
b23 |
jdk6-b23 |
1.6.0_24 |
b24 |
jdk6-b24 |
1.6.0_25 |
b25 |
jdk6-b25 |
1.6.0_26 |
b26 |
jdk6-b26 |
1.6.0_27 |
b27 |
jdk6-b27 |
1.7.0_01 |
b08 |
jdk7u1-b08 |
1.7.0_02 |
b21 |
jdk7u2-b21 |
1.7.0_03 |
b04 |
jdk7u3-b04 |
1.7.0_04 |
b31 |
jdk7u4-b31 |
1.7.0_05 |
b30 |
jdk7u5-b30 |
1.7.0_06 |
b31 |
jdk7u6-b31 |
1.7.0_07 |
b31 |
jdk7u7-b31 |
1.7.0_08 |
b05 |
jdk7u8-b05 |
1.7.0_09 |
b32 |
jdk7u9-b32 |
1.7.0_10 |
b31 |
jdk7u10-b31 |
1.7.0_11 |
b33 |
jdk7u11-b33 |
1.7.0_12 |
b09 |
jdk7u12-b09 |
1.7.0_13 |
b30 |
jdk7u13-b30 |
1.7.0_14 |
b22 |
jdk7u14-b22 |
1.7.0_15 |
b33 |
jdk7u15-b33 |
1.7.0_17 |
b31 |
jdk7u17-b31 |
1.7.0_21 |
b30 |
jdk7u21-b30 |
1.7.0_25 |
b11 |
jdk7u25-b11 |
1.7.0_40 |
b43 |
jdk7u40-b43 |
1.7.0_45 |
b31 |
jdk7u45-b31 |
1.8.0_M6 |
b75 |
jdk8-b75 |
1.8.0_M7 |
b91 |
jdk8-b91 |
1.8.0_M8 |
b106 |
jdk8-b106 |