anchor.diff:  
   The Cloud Foundry Java Client Library enables you to query and manage app instances and account instance information of a <%=vars.product_short%> account instance. For more information on including the library with your Maven or Gradle project and the specific objects that you can query, refer to the [Cloud Foundry Java Client Library](./java-client.html) topic.
   
  -<p class="note"><strong>Note</strong>: Ensure that your Spring app runs locally before continuing with this procedure.</p>
  +<p class="tip"><strong>Sample App Step</strong><br />You can skip this step. The sample app does not include the Cloud Foundry Java Client Library.</p>
   
   ### Step 2: (Optional) Integrate a Plugin for Your Build Tool ###
   
  -<%=vars.product_short%> provides plugins for Maven and Gradle. You can deploy and manage your apps using Maven or Gradle command-line syntax and configure security credentials. For more information, refer to the [Build Tool Integration](./build-tool-int.html) topic.
  +<%=vars.product_short%> provides plugins for Maven and Gradle. You can deploy and manage your apps using Maven or Gradle command-line syntax and configure security credentials.
  +
  +For more information, refer to the [Build Tool Integration](./build-tool-int.html) topic.
  +
  +<p class="tip"><strong>Sample App Step</strong><br />You can skip this step. The <code>pong_matcher_spring</code> sample app does not require additional external plugin integration because in Step 10: Deploy the Application, you build the app using Maven.</p>
   
   ### Step 3: (Optional) Integrate the Cloud Foundry Eclipse Plugin for STS ###
   
   <%=vars.product_short%> provides an Eclipse plugin extension that enables you to deploy and manage Spring applications on a Cloud Foundry instance from the Spring Tools Suite (STS), version 3.0.0 and later. For more information, refer to the [Cloud Foundry Eclipse Plugin](./sts.html) topic. You must follow the instructions in the [Install to STS from the Extensions Tab](./sts.html#install-to-sts) and [Create a Cloud Foundry Server](./sts.html#cloud-foundry-server) sections before you can deploy and manage your apps with the plugin.
  +
  +<p class="tip"><strong>Sample App Step</strong><br />You can skip this step. The <code>pong_matcher_spring</code> sample app does not require additional external plugin integration because in Step 10: Deploy the Application, you build the app using Maven.</p>
   
   ### Step 4: Declare App Dependencies  ###
   
  
positive.code: * Include the appropriate driver in your application.
  * Create a dependency task for the driver in the build script for your build tool or IDE.
  
  ### Step 7: Configure Service Connections for Your Spring App ###
  
  <%=vars.product_short%> provides extensive support for connecting a Spring application to services such as MySQL, PostgreSQL, MongoDB, Redis, and RabbitMQ. For more information on creating and binding a service connection for your app, refer to the [Configure Service Connections for Spring](./spring-service-bindings.html) topic.
  
  ### Step 8: Configure the Deployment Manifest ###
  
  
negative.code: 
  Refer to the [Deploying with Application Manifests](../../devguide/deploy-apps/manifest.html) topic for more information.
  
  <p class="tip"><strong>Sample App Step</strong><br />You can skip this step. The <code>manifest.yml</code> file for the <code>pong_matcher_spring</code> sample app does not require any additional configuration to deploy the app.</p>
  
  ### Step 9: 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%>.
  
  <%=vars.gen_GSG%>
  
    <p class="tip"><strong>Sample App Step</strong><br />You must do this step to run the sample app.</p>
  
  ### Step 10: Deploy Your Application ###
  
  <p class="note"><strong>Note</strong>: You must use the cf CLI to deploy apps.</p>
  
  From the root directory of your application, run `cf push [APP-NAME] -p [PATH-TO-FILE.war]` to deploy your application.
  
  <p class="note"><strong>Note</strong>: Most Spring apps include an artifact, such as a <code>.jar</code>, <code>.war</code>, or <code>.zip</code> file. You must include the path to this file in the <code>cf push</code> command using the <code>-p</code> option if you do not declare the path in the <code>applications</code> block of the manifest file. The example shows how to specify a path to the <code>.war</code> file for a Spring app. Refer to the <a href="./java-tips.html">Tips for Java Developers</a> topic for CLI examples for specific build tools, frameworks, and languages that create an app with an artifact.</p>
  
  `cf push [APP-NAME]` creates a URL route to your application in the form HOST.DOMAIN, where HOST is your [APP-NAME] and DOMAIN is specified by your administrator. Your DOMAIN is`<%=vars.app_domain%>`. For example: `cf push my-app` creates the URL `my-app.<%=vars.app_domain%>`.
  
  The URL for your app must be unique from other apps that <%=vars.product_short%> hosts or the push will fail. Use the following options to help create a unique URL:
  
  * `-n` to assign a different HOST name for the app
  * `--random-route` to create a URL that includes the app name and random words
  * `cf help push` to view other options for this command
  
  If you want to view log activity while the app deploys, launch a new terminal window and run `cf logs [APP-NAME]`.
  
  Once your app deploys, browse to your app URL. Search for the `urls` field in the `App started` block in the output of the `cf push` command. Use the URL to access your app online.
  
  <p class="tip"><strong>Sample App Step</strong><br />
  1. Run <code>brew install maven</code>.
  <br />
  2. Change to the <code>app</code>directory, and run <code>mvn package</code> to build the app.
  <br />
  3. Run <code>cf push pong_matcher_spring -n [HOST_NAME]</code> to push the app.
  <br /><br />
  Example: <code>cf push pong_matcher_spring -n my-spring-app</code>
  </p>
  
  <p class="note"><strong>Note</strong>: You do not have to include the <code>-p</code> flag when you deploy the sample app. The sample app manifest declares the path to the archive that <code>cf push</code> uses to upload the app files.
  </p>
  
  The example below shows the terminal output of deploying the <code>pong\_matcher\_spring</code> app. <code>cf push</code> uses the instructions in the manifest file to create the app, create and bind the route, and upload the app. It then binds the app to the <code>mysql</code> service and starts one instance of the app with 1 GB. After the app starts, the output displays the health and status of the app.
  
  <pre class="terminal">
  $  |master ✓| → cf push pong_matcher_spring -n spring1119
  Using manifest file /Users/example/workspace/pong_matcher_spring/manifest.yml
  
  Creating app pong_matcher_spring in org Cloud-Apps / space development as clouduser@example.com...
  OK
  
  Creating route spring1119.cfapps.io...
  OK
  
  Binding spring1119.cfapps.io to pong_matcher_spring...
  OK
  
  Uploading pong_matcher_spring...
  Uploading app files from: /Users/example/workspace/pong_matcher_spring/target/pong-matcher-spring-1.0.0.BUILD-SNAPSHOT.jar
  Uploading 797.5K, 116 files
  OK
  Binding service mysql to app pong_matcher_spring in org Cloud-Apps / space development as clouduser@example.com...
  OK
  
  Starting app pong_matcher_spring in org Cloud-Apps / space development as clouduser@example.com...
  OK
  -----> Downloaded app package (25M)
  -----> Downloading Open Jdk JRE 1.8.0_25 from https://download.run.pivotal.io/openjdk/lucid/x86_64/openjdk-1.8.0_25.tar.gz (1.2s)
         Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.1s)
  -----> Downloading Spring Auto Reconfiguration 1.5.0_RELEASE from https://download.run.pivotal.io/auto-reconfiguration/auto-reconfiguration-1.5.0_RELEASE.jar (0.1s)
  
  -----> Uploading droplet (63M)
  
  0 of 1 instances running, 1 starting
  0 of 1 instances running, 1 starting
  1 of 1 instances running
  
  App started
  
  Showing health and status for app pong_matcher_spring in org Cloud-Apps / space development as clouduser@example.com...
  OK
  
  requested state: started
  instances: 1/1
  usage: 1G x 1 instances
  urls: spring1119.cfapps.io
  
       state     since                    cpu    memory         disk
  #0   running   2014-11-19 12:29:27 PM   0.0%   553.6M of 1G   127.4M of 1G
  </pre>
  
  ### Step 11: Test Your Deployed App ###
  
  You’ve deployed an app to <%=vars.product_short%>!
  
  Use the `cf` <%=vars.dev_console_2%> to review information and administer your app and your <%=vars.product_short%> account. For example, you can edit the `manifest.yml` to increase the number of app instances from 1 to 3, and redeploy the app with a new app name and host name.
  
  See the [Manage Your Application with the cf CLI](#cli-manage) section for more information. <%=vars.dev_console_4%>
  
  <p class="tip"><strong>Sample App Step</strong><br />
  To test the sample app, do the following:
  <br /><br />
  1. To export the test host, run <code>export HOST=SAMPLE_APP_URL</code>, substituting the URL for your app for <code>SAMPLE_APP_URL</code>.
  <br /><br />
  2. To clear the database from any previous tests, run:
  <br />
  <code>curl -v -X DELETE $HOST/all</code>
  <br />
  You should get a response of <code:>200</code>.
  <br /><br />
  3. To request a match as "andrew", run:
  <br />
  <code>curl -v -H "Content-Type: application/json" -X PUT $HOST/match_requests/firstrequest -d '{"player": "andrew"}'</code>
  <br />
  You should again get a response of <code>200</code>.
  <br /><br />
  4. To request a match as a different player, run:
  <br />
  <code>curl -v -H "Content-Type: application/json" -X PUT $HOST/match_requests/secondrequest -d '{"player": "navratilova"}'</code>
  <br /><br />
  5. To check the status of the first match request, run:
  <br />
  <code>curl -v -X GET $HOST/match_requests/firstrequest</code>
  <br />
  The last line of the output shows the <code>match_id</code>.
  <br /><br />
  6. Replace <code>MATCH_ID</code> with the <code>match_id</code> value from the previous step in the following command:
  <br />
  <code>curl -v -H "Content-Type: application/json" -X POST $HOST/results -d '
  {
      "match_id":"MATCH_ID",
      "winner":"andrew",
      "loser":"navratilova"
  }'</code>
  <br />
  You should receive a <code>201 Created</code> response.
  </p>
  
  ## <a id='cli-manage'></a>Manage Your Application with the cf CLI ##
  
  