Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to latest java-repo-tools. #259

Merged
merged 20 commits into from
Jun 20, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
15930b4
Use java-repo-tools checkstyle plugins.
tswast Mar 22, 2016
dd718e0
Checkstyle fixes.
tswast Mar 29, 2016
f89ed2e
Merge branch 'master' of github.com:GoogleCloudPlatform/java-repo-too…
tswast Apr 12, 2016
f8e7856
Remove recommendation to create a branch.
tswast Apr 12, 2016
6b6a900
Added few more sample code for Search API. (#173)
Apr 21, 2016
ab2212d
Add sample for App Engine Datastore setDistinct projection queries.
tswast Apr 21, 2016
8ee5b8d
Update coveralls plugin for code coverage analysis. (#194)
tswast Apr 26, 2016
f2e19b6
Use codecov for coverage. (#199)
tswast Apr 26, 2016
5574790
Add Datastore indexes samples. (#214)
tswast Apr 29, 2016
bbaa0fc
Use the subtree command to push changes upstream.
tswast May 2, 2016
9315c4d
Merge pull request #10 from GoogleCloudPlatform/java-repo-tools-updat…
tswast May 2, 2016
6ee0542
Use subtree command instead of git plumbing.
tswast May 3, 2016
90a280d
Merge branch 'master' of github.com:GoogleCloudPlatform/java-repo-too…
tswast Jun 9, 2016
89c888d
Support App Engine or Jetty for local testing.
tswast Jun 10, 2016
494d6cb
Add localhost tests to Travis.
tswast Jun 13, 2016
0cd0a1e
Merge branch 'master' of github.com:GoogleCloudPlatform/java-repo-too…
tswast Jun 20, 2016
3686a49
test-devserver.sh is replaced by scripts/test-localhost.sh.
tswast Jun 20, 2016
1d046f9
Merge pull request #11 from GoogleCloudPlatform/tswast-push-java-repo…
tswast Jun 20, 2016
029773a
Merge branch 'master' of github.com:GoogleCloudPlatform/java-repo-too…
tswast Jun 20, 2016
346295f
Use test-localhost.sh script.
tswast Jun 20, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 14 additions & 35 deletions java-repo-tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,34 +27,21 @@ git remote add java-repo-tools git@github.com:GoogleCloudPlatform/java-repo-tool
git fetch java-repo-tools master
```

To make it easier to push changes back upstream, create a new branch.

```
git checkout -b java-repo-tools 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.

```
git checkout master
# Making a new branch ia optional, but recommended to send a pull request to
# start using java-repo-tools.
git checkout -b use-java-repo-tools
```

So that we can pull future updates from the `java-repo-tools` repository, we
merge histories. This way we won't get unnecessary conflicts when pulling changes
in.
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 merge -s ours --no-commit java-repo-tools/master
git checkout -b use-java-repo-tools origin/master
```

Finally, read the `java-repo-tools` into a subtree.
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 read-tree --prefix=java-repo-tools/ -u java-repo-tools
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/`
Expand Down Expand Up @@ -143,22 +130,14 @@ Pull Request as you would in the normal flow.
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 merge the changes into the local `java-repo-tools` branch,
we need to cherry pick this commit using the subtree strategy. It will ignore
any changes to file not in the `java-repo-tools/` directory.

```
git checkout java-repo-tools
git cherry-pick -x --strategy=subtree my-main-branch
```

After you have committed all the changes you want to your `java-repo-tools`
branch, you can push to the upstream `java-repo-tools` repository with the
following command. (Replace `name-for-remote-branch` with the name you'd like to
give the branch on the `java-repo-tools` repository.)
`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 push java-repo-tools java-repo-tools:name-for-remote-branch
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.
Expand Down
94 changes: 94 additions & 0 deletions java-repo-tools/scripts/test-localhost.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#!/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" >&2
echo " jetty" >&2
echo " spring-boot" >&2
}

if [[ -z "$1" ]]; then
echo "Missing server-type parameter." >&2
print_usage
exit 1
fi
case $1 in
appengine)
mvn_plugin="appengine:devserver"
server_started_message="localhost:8080"
;;
jetty)
mvn_plugin="jetty:run-exploded"
server_started_message="Started Jetty Server"
;;
spring-boot)
mvn_plugin="spring-boot:run"
server_started_message="Tomcat started on port(s): 8080 (http)"
;;
*)
print_usage
exit 1
;;
esac

if [[ -z "$2" ]]; then
echo "Missing directory parameter." >&2
print_usage
exit 1
fi
code_path=$2

mvn_command="mvn --batch-mode clean ${mvn_plugin} -DskipTests"
if [[ "$3" == "--" ]]; then
shift 3
for mvn_arg in "${@}"; do
mvn_command="${mvn_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 ${mvn_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
'
)

2 changes: 1 addition & 1 deletion travis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@ devserver_tests=(
appengine/datastore/indexes-perfect
)
for testdir in ${devserver_tests[@]} ; do
./java-repo-tools/test-devserver.sh "${testdir}"
./java-repo-tools/scripts/test-localhost.sh appengine "${testdir}"
done