Rackspace Module Documentation

Module Installation

The Broadleaf Rackspace module requires configuration and third-party property configuration

Dependency Notes

The Rackspace module has a hard dependency on Google Guava because of JClouds. JClouds is extremely sensitive to the version of Guava as it uses it extensively. For this reason, Maven's dependency conflict resolution cannot be trusted to always pick the appropriate Guava version.

Let us know on GitHub if you run into any problems with the hard Guava dependency. This should not have much, if any, impact on your project.

Configuration Changes

Step 0 Add the Broadleaf snapshots repository to your parent pom.xml if not already there:

    <id>public snapshots</id>
    <name>public snapshots</name>

Step 1. Add the dependency management section to your parent pom.xml:


Step 2. Add the dependency into your core/pom.xml:


Step 3. Include the necessary patchConfigLocation files in your admin/web.xml:


Note: This line should go before the classpath:/applicationContext.xml line

Step 4. Include the necessary patchConfigLocation files in your site/web.xml:


Note: This line should go before the classpath:/applicationContext.xml line

Third Party Property Configuration

This module requires you to configure properties specific to your Cloud Files account.


Broadleaf requires access to your Rackspace Cloud Files account via their cloud API. See Generating Your API Key for more information on these two properties.

Once you generate your API key, you will need to copy the values and add the following properties to your common-shared.properties file located in your core project.

# The username that you use to log in to the My Cloud Control Panel
# The API key that you generated for your username
# The authentication endpoint. This defaults to the value below which corresponds to the US data centers. If you are using the London data center, you must use https://lon.identity.api.rackspacecloud.com

Storage Location Information

Broadleaf also needs to know where to upload your files within your Rackspace Cloud Files account. The properties below indicate which container the files should be stored in.

# The name of the container to upload files to
# Subdirectory within the container that the files should be accessible from

If the referenced container does not already exist in your Cloud Files account, the container is automatically created for you


Cloud Files has additional functionality to CDN-enable your container with Akamai. Broadleaf can use this to rewrite asset URLs with the CDN url. This is as simple as viewing your containers, selecting the gear icon next to your container and hitting the 'Make Public' link:

Enable CDN

After you confirm, click the gear icon again and select 'View All Links':

Enable CDN

Using these URLs, within common-shared.properties populate the asset.server.url.prefix and asset.server.url.prefix.secure. For instance:


If you use Rackspace Akamai CDN in this fashion you will not be able to use the file operations from the asset server. A way around this would be to use something Cloud Front or a separate Akamai account that allows you to set your Broadleaf server as the origin server. If you decide to do this then there is no reason to enable the Cloud Files CDN on your container.