diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 00000000000..36775c57a56
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "java-repo-tools"]
+ path = java-repo-tools
+ url = https://github.com/GoogleCloudPlatform/java-repo-tools.git
diff --git a/.travis.yml b/.travis.yml
index 3c62378a168..0e48bda620a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,6 +15,11 @@
language: java
jdk:
- oraclejdk8
+git:
+ # Handle git submodules ourselves. We want the samples and tests to work
+ # without a recursive clone. We only use submodules for an additional layer
+ # of localhost testing scripts.
+ submodules: false
addons:
apt:
sources:
diff --git a/java-repo-tools/google-checks.xml b/google-checks.xml
similarity index 100%
rename from java-repo-tools/google-checks.xml
rename to google-checks.xml
diff --git a/java-repo-tools b/java-repo-tools
new file mode 160000
index 00000000000..74755a28f01
--- /dev/null
+++ b/java-repo-tools
@@ -0,0 +1 @@
+Subproject commit 74755a28f01aedf57992f473eb2d0201b1e04f2a
diff --git a/java-repo-tools/.gitignore b/java-repo-tools/.gitignore
deleted file mode 100644
index 342c18bf686..00000000000
--- a/java-repo-tools/.gitignore
+++ /dev/null
@@ -1,26 +0,0 @@
-service-account.json
-
-### Java ###
-*.class
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.ear
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-
-# Maven
-target/
-pom.xml.tag
-pom.xml.releaseBackup
-pom.xml.versionsBackup
-pom.xml.next
-release.properties
-dependency-reduced-pom.xml
-buildNumber.properties
-.mvn/timing.properties
diff --git a/java-repo-tools/.travis.yml b/java-repo-tools/.travis.yml
deleted file mode 100644
index d5659c59ce8..00000000000
--- a/java-repo-tools/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-language: java
-jdk:
-- oraclejdk7
-- oraclejdk8
-script: mvn verify
-after_success:
-- bash <(curl -s https://codecov.io/bash)
-branches:
- only:
- - master
diff --git a/java-repo-tools/CONTRIBUTING.md b/java-repo-tools/CONTRIBUTING.md
deleted file mode 100644
index 6736efd943c..00000000000
--- a/java-repo-tools/CONTRIBUTING.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# How to become a contributor and submit your own code
-
-## Contributor License Agreements
-
-We'd love to accept your sample apps and patches! Before we can take them, we
-have to jump a couple of legal hurdles.
-
-Please fill out either the individual or corporate Contributor License Agreement
-(CLA).
-
- * If you are an individual writing original source code and you're sure you
- own the intellectual property, then you'll need to sign an [individual CLA]
- (https://developers.google.com/open-source/cla/individual).
- * If you work for a company that wants to allow you to contribute your work,
- then you'll need to sign a [corporate CLA]
- (https://developers.google.com/open-source/cla/corporate).
-
-Follow either of the two links above to access the appropriate CLA and
-instructions for how to sign and return it. Once we receive it, we'll be able to
-accept your pull requests.
-
-## Contributing A Patch
-
-1. Submit an issue describing your proposed change to the repo in question.
-1. The repo owner will respond to your issue promptly.
-1. If your proposed change is accepted, and you haven't already done so, sign a
- Contributor License Agreement (see details above).
-1. Fork the desired repo, develop and test your code changes.
-1. Ensure that your code adheres to the existing style in the sample to which
- you are contributing. Refer to the
- [Google Cloud Platform Samples Style Guide]
- (https://github.com/GoogleCloudPlatform/Template/wiki/style.html) for the
- recommended coding standards for this organization.
-1. Ensure that your code has an appropriate set of unit tests which all pass.
-1. Submit a pull request.
diff --git a/java-repo-tools/LICENSE b/java-repo-tools/LICENSE
deleted file mode 100644
index 261eeb9e9f8..00000000000
--- a/java-repo-tools/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/java-repo-tools/README.md b/java-repo-tools/README.md
deleted file mode 100644
index 0c172c9c051..00000000000
--- a/java-repo-tools/README.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# Cloud Platform Java Repository Tools
-
-[![Build
-Status](https://travis-ci.org/GoogleCloudPlatform/java-repo-tools.svg?branch=master)](https://travis-ci.org/GoogleCloudPlatform/java-repo-tools)
-[![Coverage
-Status](https://codecov.io/gh/GoogleCloudPlatform/java-repo-tools/branch/master/graph/badge.svg)](https://codecov.io/gh/GoogleCloudPlatform/java-repo-tools)
-
-This is a collection of common tools used to maintain and test Java repositories
-in the [GoogleCloudPlaftorm](https://github.com/GoogleCloudPlatform)
-organization.
-
-
-## Using this repository
-
-This repository is copied into a subtree of other Java repositories, such as
-[java-docs-samples](/GoogleCloudPlatform/java-docs-samples). Note, that a
-subtree is just the code copied into a directory, so a regular `git clone` will
-continue to work.
-
-
-### Adding to a new repository
-
-To copy `java-repo-tools` into a subtree of a new repository `my-java-samples`,
-first add this repository as a remote. We then fetch all the changes from this
-`java-repo-tools`.
-
-```
-git remote add java-repo-tools git@github.com:GoogleCloudPlatform/java-repo-tools.git
-git fetch java-repo-tools master
-```
-
-We can then go back to the `my-java-samples` code and prepare a Pull Request to
-add the `java-repo-tools` code in a subtree. Making a new branch is optional, but
-recommended so that you can more easily send a pull request to start using
-`java-repo-tools`.
-
-```
-git checkout -b use-java-repo-tools origin/master
-```
-
-Finally, read the `java-repo-tools` into a subtree. So that you can pull future
-updates from the `java-repo-tools` repository, this command will merge histories.
-This way prevents unnecessary conflicts when pulling changes in.
-
-```
-git subtree add --prefix=java-repo-tools java-repo-tools master
-```
-
-Now all the content of `java-repo-tools` will be in the `java-repo-tools/`
-directory (which we specified in the `--prefix` command).
-
-#### Using the Maven configuration
-
-If all the projects within your `my-java-samples` share a common parent POM for
-plugin configuration (like checkstyle). We can then make the
-`java-repo-tools/pom.xml` parent of this.
-
-```
-
-
- com.google.cloud
- shared-configuration
- 1.0.0
- java-repo-tools
-
-```
-
-Once this is added to the common parent, all modules will have the same plugin
-configuration applied. If the children POMs provide the plugin information
-themselves, it will override this configuration, so you should delete any
-now-redundant plugin information.
-
-
-#### Examples
-
-- Adding to repository with an existing parent POM: Pull Request
- [java-docs-samples#125][java-docs-samples-125].
-
-[java-docs-samples-125]: https://github.com/GoogleCloudPlatform/java-docs-samples/pull/125
-
-
-### Detecting if you need to synchronize a subtree
-
-If you haven't done this before, run
-
-```
-git remote add java-repo-tools git@github.com:GoogleCloudPlatform/java-repo-tools.git
-```
-
-To detect if you have changes in the directory, run
-
-```
-git fetch java-repo-tools master
-git diff-tree -p HEAD:java-repo-tools/ java-repo-tools/master
-```
-
-or to diff against your local `java-repo-tools` branch:
-
-```
-git diff-tree -p HEAD:java-repo-tools/ java-repo-tools --
-```
-
-(The trailing `--` is to say that we want to compare against the branch, not the
-directory.)
-
-
-### Pulling changes from Java Repository Tools to a subtree
-
-To update the `java-repo-tools` directory, if you haven't done this before, run
-
-```
-git remote add java-repo-tools git@github.com:GoogleCloudPlatform/java-repo-tools.git
-```
-
-To pull the latest changes from this `java-repo-tools` repository, run:
-
-```
-git checkout master
-# Making a new branch is optional, but recommended to send a pull request for
-# update.
-git checkout -b update-java-repo-tools
-git pull -s subtree java-repo-tools master
-```
-
-Then you can make any needed changes to make the rest of the repository
-compatible with the updated `java-repo-tools` code, commit, push, and send a
-Pull Request as you would in the normal flow.
-
-
-### Pushing changes from a subtree upstream to Java Repository Tools
-
-What if you make changes in your repository and now want to push them upstream?
-
-Assuming you just commited changes in the `java-repo-tools/` directory of your
-`my-main-branch`, to split the `java-repo-tools` changes into their own branch.
-The first time using the `subtree` command, we may need to use the `--rejoin`
-argument.
-
-```
-git subtree split --prefix=java-repo-tools -b ${USER}-push-java-repo-tools
-git checkout ${USER}-push-java-repo-tools
-git push java-repo-tools ${USER}-push-java-repo-tools
-```
-
-Then, you can send a pull request to the `java-repo-tools` repository.
-
-
-## References
-
-- [GitHub's subtree merge reference](https://help.github.com/articles/about-git-subtree-merges/)
-
-## Contributing changes
-
-- See [CONTRIBUTING.md](CONTRIBUTING.md)
-
-
-## Licensing
-
-- Apache 2.0 - See [LICENSE](LICENSE)
-
diff --git a/java-repo-tools/codecov.yml b/java-repo-tools/codecov.yml
deleted file mode 100644
index f5c84448f07..00000000000
--- a/java-repo-tools/codecov.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-codecov:
- branch: master
-comment:
- branches:
- - master
diff --git a/java-repo-tools/pom.xml b/java-repo-tools/pom.xml
deleted file mode 100644
index 8985be5024b..00000000000
--- a/java-repo-tools/pom.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
- 4.0.0
- 1.0.0
-
- com.google.cloud
- shared-configuration
- pom
-
-
- UTF-8
- UTF-8
- 2.2
- 0.7.6.201602180812
- 3.0.0
- 2.17
- 2.8.2
- 2.19.1
- 2.5.2
- 2.7
- 3.5.1
- 2.19.1
-
-
-
- 3.1.0
-
-
-
- test
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin-version}
-
- false
-
-
-
-
- org.apache.maven.plugins
- maven-failsafe-plugin
- ${maven-failsafe-plugin-version}
-
-
-
- integration-test
- verify
-
-
-
-
-
- org.apache.maven.plugins
- maven-checkstyle-plugin
- ${maven-checkstyle-plugin-version}
-
- google-checks.xml
- true
- true
- true
- true
- suppressions.xml
-
-
- check
-
-
-
- org.codehaus.mojo
- versions-maven-plugin
- ${codehaus-versions-maven-plugin-version}
-
-
- org.jacoco
- jacoco-maven-plugin
- ${jacoco-maven-plugin-version}
-
-
-
- prepare-agent
-
-
-
- report
- test
-
- report
-
-
-
-
-
-
-
diff --git a/java-repo-tools/scripts/test-localhost.sh b/java-repo-tools/scripts/test-localhost.sh
deleted file mode 100755
index a83f3e20d29..00000000000
--- a/java-repo-tools/scripts/test-localhost.sh
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Usage:
-# test-localhost.sh deployment-type path/to/project -- [maven arguments]
-#
-# This script runs a localhost server Maven plugin and verifies that a request
-# to http://localhost:8080/ does not return an error code.
-
-print_usage () {
- echo "Usage:" >&2
- echo " $0 server-type path/to/project [-- maven arguments]" >&2
- echo >&2
- echo "server-type can be any of the following:" >&2
- echo " appengine - GAE Standard - Local - GA Plugin" >&2
- echo " jetty - Flex - Local" >&2
- echo " spring-boot - local" >&2
- echo " new_mvn - local - Standard / FlexCompat" >&2
- echo " gradle - local - Standard / FlexCompat" >&2
- echo " gradle_jetty - local - Flex" &2
-}
-
-if [[ -z "$1" ]]; then
- echo "Missing server-type parameter." >&2
- print_usage
- exit 1
-fi
-case $1 in
- appengine)
- server_started_message="localhost:8080"
- command="mvn --batch-mode clean appengine:devserver -DskipTests"
- ;;
- jetty)
- server_started_message="Started Jetty Server"
- command="mvn --batch-mode clean jetty:run-exploded -DskipTests"
- ;;
- spring-boot)
- server_started_message="Tomcat started on port(s): 8080 (http)"
- command="mvn --batch-mode clean spring-boot:run -DskipTests"
- ;;
- new_mvn)
- server_started_message="localhost:8080"
- command="mvn --batch-mode clean appengine:run -DskipTests"
- ;;
- gradle)
- server_started_message="localhost:8080"
- command="gradle appengineRun"
- ;;
- gradle_jetty)
- server_started_message="localhost:8080"
- command="gradle jettyRun"
- ;;
- *)
- print_usage
- exit 1
- ;;
-esac
-
-if [[ -z "$2" ]]; then
- echo "Missing directory parameter." >&2
- print_usage
- exit 1
-fi
-code_path=$2
-
-if [[ "$3" == "--" ]]; then
- shift 3
- for mvn_arg in "${@}"; do
- command="${command} ${mvn_arg}"
- done
-elif [[ -n "$3" ]]; then
- echo "Got unexpected third argument" >&2
- print_usage
- exit 1
-fi
-
-set -e
-set -x
-
-(
-cd "$code_path"
-expect -c "
- spawn ${command}
- set timeout 600
- expect \"${server_started_message}\"
- "'sleep 10
- spawn curl --silent --output /dev/stderr --write-out "%{http_code}" http://localhost:8080/
- expect {
- "200" {
- exit
- }
- }
- exit 1
- '
-)
-
diff --git a/java-repo-tools/test-devserver.sh b/java-repo-tools/test-devserver.sh
deleted file mode 100755
index 62b3dfefef7..00000000000
--- a/java-repo-tools/test-devserver.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Usage:
-# test-devserver.sh path/to/project
-#
-# This script runs the local appengine:devserver Maven plugin and verifies that
-# a request to http://localhost:8080/ does not return an error code.
-#
-# As an example, this is useful for verifying that datastore-indexes.xml is
-# correct (only if autoGenerate=false and the / handler does all queries used),
-# as an example.
-
-set -e
-set -x
-
-if [ -z "$1" ]; then
- echo "Missing directory parameter."
- echo "Usage:"
- echo " $0 path/to/project"
- exit 1
-fi
-
-(
-cd "$1"
-expect -c '
- spawn mvn --batch-mode clean appengine:devserver -DskipTests
- set timeout 600
- expect localhost:8080
- sleep 10
- spawn curl --silent --output /dev/stderr --write-out "%{http_code}" http://localhost:8080/
- expect {
- "200" {
- exit
- }
- }
- exit 1
- '
-)
-
diff --git a/java-repo-tools/test/README.md b/java-repo-tools/test/README.md
deleted file mode 100644
index 59e4015515c..00000000000
--- a/java-repo-tools/test/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Cloud Platform Java Repository Tools Test
-
-This is a test application for checking that the root [`pom.xml`](../pom.xml)
-and [`google-checks.xml`](../google-checks.xml) are working as expected.
-
diff --git a/java-repo-tools/test/pom.xml b/java-repo-tools/test/pom.xml
deleted file mode 100644
index 0bde62cec8e..00000000000
--- a/java-repo-tools/test/pom.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
- 4.0.0
-
- com.google.cloud
- shared-configuration-test
- 1.0
- jar
-
-
- shared-configuration
- com.google.cloud
- 1.0.0
- ..
-
-
-
-
-
- junit
- junit
- 4.12
- test
-
-
- com.google.truth
- truth
- 0.28
- test
-
-
-
diff --git a/java-repo-tools/test/src/main/java/com/google/cloud/samples/test/App.java b/java-repo-tools/test/src/main/java/com/google/cloud/samples/test/App.java
deleted file mode 100644
index a2e47132975..00000000000
--- a/java-repo-tools/test/src/main/java/com/google/cloud/samples/test/App.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2016 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.cloud.samples.test;
-
-/**
- * A hello world app to test the parent pom.xml.
- */
-public class App {
- public String greeting() {
- return "Hello World!";
- }
-
- public static void main(String[] args) {
- App app = new App();
- System.out.println(app.greeting());
- }
-}
diff --git a/java-repo-tools/test/src/test/java/com/google/cloud/samples/test/AppTest.java b/java-repo-tools/test/src/test/java/com/google/cloud/samples/test/AppTest.java
deleted file mode 100644
index 3bdb86fa09a..00000000000
--- a/java-repo-tools/test/src/test/java/com/google/cloud/samples/test/AppTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2016 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.cloud.samples.test;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-/**
- * Unit tests for {@link App}.
- */
-@RunWith(JUnit4.class)
-public class AppTest {
- @Test public void main_printsHelloWorld() {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- System.setOut(new PrintStream(out));
-
- App.main(new String[0]);
-
- String greeting = out.toString();
- assertThat(greeting).named("greeting").contains("Hello World!");
- }
-}
diff --git a/pom.xml b/pom.xml
index 666391cc052..3e888d38082 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,10 +23,9 @@
- com.google.cloud
+ com.google.cloud.samples
shared-configuration
1.0.0
- java-repo-tools
diff --git a/speech/grpc/pom.xml b/speech/grpc/pom.xml
index b8be45241a2..cb55bf58349 100644
--- a/speech/grpc/pom.xml
+++ b/speech/grpc/pom.xml
@@ -28,9 +28,9 @@ limitations under the License.
com.google.cloud
- shared-configuration
+ doc-samples
1.0.0
- ../../java-repo-tools
+ ../..
diff --git a/java-repo-tools/suppressions.xml b/suppressions.xml
similarity index 100%
rename from java-repo-tools/suppressions.xml
rename to suppressions.xml
diff --git a/travis.sh b/travis.sh
index 80faa81eb27..3f822b8e2df 100755
--- a/travis.sh
+++ b/travis.sh
@@ -25,27 +25,34 @@ if [ -z "$GOOGLE_APPLICATION_CREDENTIALS" ] ; then
fi
mvn --batch-mode clean verify -DskipTests=$SKIP_TESTS | egrep -v "(^\[INFO\] Download|^\[INFO\].*skipping)"
-# Run tests using App Engine local devserver.
-devserver_tests=(
- appengine/helloworld
- appengine/datastore/geo
- appengine/datastore/indexes
- appengine/datastore/indexes-exploding
- appengine/datastore/indexes-perfect
-)
-for testdir in "${devserver_tests[@]}" ; do
- ./java-repo-tools/scripts/test-localhost.sh appengine "${testdir}"
-done
-
-# newplugin_std_tests=(
-# appengine/helloworld-new-plugins
-# )
-# for testdir in "${newplugin_std_tests[@]}" ; do
-# ./java-repo-tools/scripts/test-localhost.sh standard_mvn "${testdir}"
-# ./java-repo-tools/scripts/test-localhost.sh standard_gradle "${testdir}"
-# done
-
-
# Check that all shell scripts in this repo (including this one) pass the
# Shell Check linter.
shellcheck ./**/*.sh
+
+# Run tests using App Engine local devserver.
+test_localhost() {
+ # The testing scripts are stored in a submodule. This allows us to carefully
+ # update the testing scripts, since submodules are tied to a specific commit.
+ git submodule init
+ git submodule update
+
+ devserver_tests=(
+ appengine/helloworld
+ appengine/datastore/geo
+ appengine/datastore/indexes
+ appengine/datastore/indexes-exploding
+ appengine/datastore/indexes-perfect
+ )
+ for testdir in "${devserver_tests[@]}" ; do
+ ./java-repo-tools/scripts/test-localhost.sh appengine "${testdir}"
+ done
+
+ # newplugin_std_tests=(
+ # appengine/helloworld-new-plugins
+ # )
+ # for testdir in "${newplugin_std_tests[@]}" ; do
+ # ./java-repo-tools/scripts/test-localhost.sh standard_mvn "${testdir}"
+ # ./java-repo-tools/scripts/test-localhost.sh standard_gradle "${testdir}"
+ # done
+}
+test_localhost