anchor.diff:  </tr>
   </table>
   
  +<p class="tip"><strong>Sample App Step</strong><br />You can skip this step. The <code>pong_matcher_spring/pom.xml</code> file contains the dependencies for the <code>pong_matcher_spring</code> sample app, as the example below shows.
  +</p>
  +
  +<%= yield_for_code_snippet from: 'camelpunch/pong_matcher_spring', at: 'gsg-spring-s3' %>
  +
   ### Step 5: Allocate Sufficient Memory ###
   
   If you do not allocate sufficient memory to a Java application when you deploy it, it may fail to start, or <%=vars.product_short%> may terminate it. You must allocate enough memory to allow for the following:
  
positive.code: 
  If at any time you experience a problem following the steps below, try checking the <%=vars.known_issues%> topic, or refer to the [Troubleshooting Application Deployment and Health](./../../devguide/deploy-apps/troubleshoot-app-health.html) topic for more tips.
  
  ## <a id='deploy-sample'></a>Deploy a Spring Sample Application ##
  
  This section describes how to deploy a Spring sample application to <%=vars.product_short%>.
  
  To learn how to deploy your own Spring app, see [Deploy Your Spring Application](#deploy-yourapp).
  
  ### Prerequisites ###
  
  * [Git](http://git-scm.com) configured on your workstation and a [GitHub](https://github.com) account
  * Basic Spring knowledge
  
  ### Step 1: Get a Sample Spring App from GitHub ###
  
  Run `git clone https://github.com/scottfrederick/spring-music.git` to clone the `spring_music` app from GitHub.
  
  ### Step 2: Log in and Target the API Endpoint   ###
  Run `cf login -a [API_ENDPOINT]`, enter your login credentials, and select a space and org. The API endpoint is <%=vars.api_endpoint%>.
  
  ### Step 3: Deploy the Sample App ###
  
  1. `cd` to the cloned app directory.
  1. Run `./gradlew assemble`.
  1. Run `cf push spring-music -n [HOST_NAME]`.
  
  Example: `cf push spring-music -n jc0830-spring`
  
    `cf push [APP_NAME]` pushes the specified app from the current directory to <%=vars.product_short%>. Use the `-n` or `--random-route` flag to create a unique URL for the app to avoid URL collisions with other apps.
  
    `cf push` automatically searches for an [application manifest YAML file](./../../devguide/deploy-apps/manifest.html) and also determines the appropriate [buildpack](./index.html) for the app. A manifest specifies what `cf push` should do with the app and the buildpack provides framework and runtime support for your app.
  
    The example shows the terminal output of deploying the `spring-music` app. `cf push` uses the instructions in the manifest file to create the app, create and bind and the route, and upload the app to <%=vars.product_short%>. It then follows the instructions in the manifest to start one instance of the app with 512M. After the app starts, the output displays the health and status of the app.
  
  <pre class="terminal">
  
  $ cf push spring-music -n jc0830-spring
  Using manifest file /Users/pivotal/workspace/spring-music/manifest.yml
  
  Updating app spring-music in org Cloud-Apps / space development as clouduser@example.com...
  OK
  
  Creating route jc0830-spring.<%=vars.app_domain%>...
  OK
  
  Binding jc0830-spring.<%=vars.app_domain%> to spring-music...
  OK
  
  Uploading spring-music...
  Uploading app files from: /Users/pivotal/workspace/spring-music/build/libs/spring-music.war
  Uploading 569.6K, 90 files
  OK
  
  Stopping app spring-music in org Cloud-Apps / space development as clouduser@example.com..
  OK
  
  Starting app spring-music in org Cloud-Apps / space development as clouduser@example.com...
  OK
  -----> Downloaded app package (21M)
  -----> Downloaded app buildpack cache (40M)
  ...
  -----> Uploading droplet (60M)
  
  0 of 1 instances running, 1 starting
  1 of 1 instances running
  
  App started
  
  Showing health and status for app spring-music in org Cloud-Apps / space development as clouduser@example.com...
  OK
  
  requested state: started
  instances: 1/1
  usage: 512M x 1 instances
  urls: jc0830-spring.<%=vars.app_domain%>
  
       state     since                    cpu    memory           disk
  #0   running   2014-08-28 06:31:37 PM   0.0%   277.8M of 512M   137.9M of 1G
  
  </pre>
  
  ### Step 4: Test the Sample App ###
  
  You’ve deployed your first app to <%=vars.product_short%>! Now let’s access your app online using its URL.
  In the terminal output, the `urls` field of the `App started` block contains the app URL. This is the `HOST_NAME` you specified with the `-n` flag plus the domain `<%=vars.app_domain%>`. The image shows the resulting webpage for the `spring-music` app.
  
  <%= image_tag("../images/spring-music-app.png") %>
  
  You can now use the `cf` <%=vars.dev_console_2%> to review information and administer your app and your <%=vars.product_short%> account. For example, you could:
  
  * Increase the number of app instances from 1 to 3, and redeploy the app with a new app name and host name.
  * Create and bind a database service to the app and restart the app to detect the new service. For more information, refer to the [Creating and binding services](https://github.com/scottfrederick/spring-music) section of the `spring-music` GitHub README.
  
  See the [Manage Your Application with the cf CLI](#cli-manage) section for more information. <%=vars.dev_console_4%>
  
  ## <a id='deploy-yourapp'></a>Deploy Your Spring Application ##
  
  This section describes how to deploy your Spring application to <%=vars.product_short%>.
  
  ### Prerequisites ###
  
  * A Spring app that runs locally on your workstation
  * (**Optional**) [Git](http://git-scm.com) configured on your workstation and a [GitHub](https://github.com) account
  * Intermediate to advanced Spring knowledge
  * JDK 1.6, 1.7, or 1.8 for Java 6, 7, or 8 configured on your workstation
  
  <p class="note"><strong>Note</strong>: The Cloud Foundry Java buildpack uses JDK 1.8, but you can modify the buildpack and the manifest for your app to compile to an earlier version. For more information, refer to the <a href="../custom.html">Custom Buildpacks</a> topic.</p>
  
negative.code: 
  * `-n` to assign a different HOST name for the app.
  * `--random-route` to create a URL that includes the app name and random words. Using this option might create a long URL, depending on the number of words that the app name includes.
  