Compare commits

...
538 Commits
Author SHA1 Message Date
buildmaster 70f7d413f3 Update SNAPSHOT to 2.2.0.RELEASE 2019-11-19 13:56:18 +00:00
Marcin Grzejszczak 94efa8767a Added missing javadocs
fixes gh-148
2019-11-19 13:57:47 +01:00
buildmaster 06f8a97e59 Bumping versions 2019-11-19 07:12:35 +00:00
Ryan Baxter 51c41e52f6 Bumping version to next release 2019-11-18 16:02:37 -05:00
Ryan Baxter b1a8036d3f Revert "Change versions for release"
This reverts commit a5be66e84f.
2019-11-18 15:59:13 -05:00
Ryan Baxter a5be66e84f Change versions for release 2019-11-18 15:56:03 -05:00
Marcin Grzejszczak 941bba5970 Merge branch '2.1.x' 2019-11-18 15:02:51 +01:00
Marcin Grzejszczak 1235c2153a Added gpg version 2019-11-18 15:02:17 +01:00
Marcin Grzejszczak 3312992760 Merge branch '2.1.x' 2019-11-18 14:50:59 +01:00
Marcin Grzejszczak 717978e9eb Added gpg version 2019-11-18 14:48:27 +01:00
buildmaster af4bc6f95c Bumping versions 2019-11-13 07:13:23 +00:00
Marcin Grzejszczak 1afb77ea41 Making all the attributes overridable 2019-11-12 14:01:35 +01:00
Ryan Baxter 33b42d3a4b Bumping version to 2.1.9 2019-11-11 11:39:54 -05:00
Ryan Baxter 079317a3fe Revert "Preparing for 2.1.8.RELEASE"
This reverts commit 5d8b1fa812.
2019-11-11 11:38:09 -05:00
Ryan Baxter 5d8b1fa812 Preparing for 2.1.8.RELEASE 2019-11-11 11:22:49 -05:00
Ryan Baxter c6a0a473ec Bumping boot to 2.1.10.RELEASE 2019-11-11 11:15:54 -05:00
buildmaster b167397c23 Going back to snapshots 2019-11-07 16:31:13 +00:00
buildmaster b02a62f33d Update SNAPSHOT to 2.2.0.RC2 2019-11-07 16:25:52 +00:00
Marcin Grzejszczak d810f71a84 Fixed the boms to be of flattenMode=bom 2019-11-07 15:07:41 +01:00
Marcin Grzejszczak cc07cbcde5 Bumped Boot to 2.2.1.RELEASE 2019-11-07 14:14:59 +01:00
Marcin Grzejszczak 9d88a2c0de Using the maven flatten plugin for published POMs
To avoid propagating build setup that is required to build a Spring Cloud project, the maven flatten plugin can be used. It has the advantage of letting you use whatever features you need while publishing "clean" pom to the repository.

fixes gh-89
2019-11-07 14:12:44 +01:00
buildmaster 8a3f69227e Going back to snapshots 2019-10-23 20:01:31 +00:00
buildmaster db5c07d175 Update SNAPSHOT to 2.2.0.RC1 2019-10-23 19:58:52 +00:00
Spencer Gibb c0b4f01f4e Adds buildCommand back 2019-10-23 15:56:36 -04:00
buildmaster 2e19f63b25 Bumping versions 2019-10-23 18:24:23 +00:00
Marcin Grzejszczak fc96d209c7 Added project-root var resolution in readme generation script 2019-10-23 15:49:54 +02:00
buildmaster c780d61513 Bumping versions 2019-10-18 07:13:15 +00:00
Ryan Baxter b1bfba6477 Merge remote-tracking branch 'origin/2.1.x' 2019-10-17 15:54:00 -04:00
Ryan Baxter a8f202ab85 Removing resource_class from circle config 2019-10-17 15:51:48 -04:00
Ryan Baxter 637a075b76 Update to Spring Boot 2.2.0.RELEASE 2019-10-17 15:44:13 -04:00
buildmaster 758e7241a2 Bumping versions 2019-10-05 07:13:05 +00:00
Marcin Grzejszczak 377f8ab000 Upgraded asciidoctor plugin to 1.5.8 2019-10-04 16:16:40 +02:00
Marcin Grzejszczak c71f50931b Lowered the precedense of project-root attribute 2019-10-04 14:04:04 +02:00
Marcin Grzejszczak 200efcb348 Added gitignore so that the unpacked sources are not added [don't have a better idea ATM] 2019-10-03 21:34:56 +02:00
Marcin Grzejszczak ed42b3a69a Revert "remove bats fixtures temporarily"
This reverts commit 6ece1d5969.
2019-10-03 21:25:01 +02:00
Marcin Grzejszczak 2a7cf5d7be We don't want to download sources of our own project 2019-10-03 21:24:58 +02:00
Spencer Gibb 3a6c453d61 Comment out release hack 2019-10-03 14:56:34 -04:00
Spencer Gibb 098dba54c2 skip tests 2019-10-03 14:43:15 -04:00
Spencer Gibb 9d8a2e134e Attempt to install build without deploying 2019-10-03 14:39:41 -04:00
Spencer Gibb 2a3797bdaa Revert "Updates to 2.2.0.M6"
This reverts commit 92c70e32
2019-10-03 12:31:16 -04:00
Spencer Gibb 92c70e3253 Updates to 2.2.0.M6 2019-10-03 12:28:25 -04:00
Spencer Gibb 6ece1d5969 remove bats fixtures temporarily 2019-10-03 12:08:06 -04:00
buildmaster f01646cffd Bumping versions 2019-10-03 13:46:18 +00:00
buildmaster ac503a0448 Bumping versions 2019-09-24 14:05:10 +00:00
buildmaster 46a0f7cd0c Bumping versions 2019-09-24 11:01:17 +00:00
buildmaster bf7db5e2dd Bumping versions 2019-09-24 07:50:35 +00:00
buildmaster 7d473e0ba2 Bumping versions 2019-09-24 07:13:02 +00:00
Spencer Gibb c011c51240 Revert "Bumping versions"
This reverts commit 3f62e003
2019-09-23 12:36:17 -04:00
buildmaster 3f62e003c0 Bumping versions 2019-09-21 07:13:06 +00:00
Spencer Gibb 6ed8684df3 Bumps boot to 2.2.0.M6... again 2019-09-20 17:02:43 -04:00
Ryan Baxter 1b2b6bfb2c Revert "2.2.0.M5 version changes"
This reverts commit dcf98e5632.
2019-09-18 12:10:48 -04:00
Ryan Baxter dcf98e5632 2.2.0.M5 version changes 2019-09-18 12:09:15 -04:00
buildmaster 4faff54278 Bumping versions 2019-09-17 07:13:02 +00:00
Igor Perikov 1a67bf0b89 Update path to local checkstyle-header.txt (#141)
So it is valid and same as url pointing to github-uploaded .txt file
2019-09-16 11:59:22 -04:00
Marcin Grzejszczak f2f55d458f Fixed logging 2019-09-12 11:44:55 +02:00
buildmaster dfff168439 Bumping versions 2019-09-12 07:13:04 +00:00
Marcin Grzejszczak 643ca5161e Reclone spring cloud static if there are issues when cloning / pulling changes 2019-09-11 17:17:22 +02:00
Spencer Gibb 083caea6b2 Bumps boot to 2.2.0.M6 2019-09-11 09:56:46 -04:00
Marcin Grzejszczak 1d35ef3be7 Added tests, not failing if parent file doesn't exist 2019-09-09 11:30:17 +02:00
Marcin Grzejszczak f9aad5f2f5 Fixed the default path for configprops 2019-09-06 14:28:57 +02:00
Marcin Grzejszczak efdb76462e Improved rendering of the table with props 2019-09-06 13:54:18 +02:00
Marcin Grzejszczak 39c493473b Added the inclusion pattern 2019-09-06 13:49:31 +02:00
Marcin Grzejszczak f7f7f81534 Parametrized the configprops path 2019-09-06 13:32:42 +02:00
Marcin Grzejszczak 941340a588 Added automated configprops table generation; fixes gh-144 2019-09-06 13:15:50 +02:00
Ryan Baxter 1e7306187b Bumping version for next release 2019-09-05 20:55:23 -04:00
Ryan Baxter 3c6e1cfaa6 Revert "Prepping for 2.1.7.RELEASE"
This reverts commit 929f134f7f.
2019-09-05 20:54:13 -04:00
Ryan Baxter 929f134f7f Prepping for 2.1.7.RELEASE 2019-09-05 19:59:26 -04:00
Ryan Baxter 4fcaad3875 Bumping boot release 2019-09-05 16:46:33 -04:00
Marcin Grzejszczak 5c21bf991e Added additional test assertion 2019-08-19 13:05:31 +02:00
Marcin Grzejszczak 620f5a4ade Makes the spring cloud static repo exportable; fixes gh-140 2019-08-19 12:54:58 +02:00
Marcin Grzejszczak 12ac72d4b3 Removed the trailing slash in docs url 2019-08-19 09:00:38 +02:00
Marcin Grzejszczak adfcaa2525 origin master as git.branch 2019-08-12 12:51:03 +02:00
Marcin Grzejszczak 6a8cc81e0a Moved the setup of properties to the initialize phase 2019-08-12 12:51:03 +02:00
buildmaster 18da776da9 Bumping versions 2019-08-09 07:12:31 +00:00
Ryan Baxter 02d30876cf Setting Boot to 2.2.0.M5 2019-08-08 12:57:12 -04:00
Ryan Baxter 7013634e77 Revert "Version changes for 2.2.0.M4 release"
This reverts commit 80aa70eaa9.
2019-08-08 12:01:29 -04:00
Ryan Baxter 80aa70eaa9 Version changes for 2.2.0.M4 release 2019-08-08 11:59:51 -04:00
buildmaster e1ea303044 Bumping versions 2019-08-07 07:13:04 +00:00
Spencer Gibb 06547a6ff7 Bumps boot to 2.2.0.M5 2019-08-06 12:39:15 -04:00
buildmaster 32f586b20c Bumping versions 2019-08-06 07:12:43 +00:00
Marcin Grzejszczak d43a3e1b7d Added spring-cloud-version as an attribute 2019-08-05 22:45:36 +02:00
buildmaster 3afd0a2bd3 Bumping versions 2019-07-31 07:12:43 +00:00
Marcin Grzejszczak 7de33c920c Added info about attributes 2019-07-30 09:55:25 +02:00
Marcin Grzejszczak 8e73741657 Added info about attributes 2019-07-30 09:33:01 +02:00
buildmaster 5503649e5b Bumping versions 2019-07-30 07:13:14 +00:00
Marcin Grzejszczak 277160fb32 Multi pages (#139)
* WIP

* single / multi and pdf added

* Added git info to docs

* docs urls, links set from props

* Fixed extensions

* Added readme

* index.html is a normal page

* Fixed invalid reference to spring-cloud raw github links

* Added project root attribute

* Changes following review
2019-07-29 14:49:55 +02:00
Marcin Grzejszczak fb4e0c6b59 Added symbolic link of index.adoc 2019-07-29 14:23:42 +02:00
Marcin Grzejszczak 8c47c5fcf7 Added symbolic link of index.adoc 2019-07-29 14:23:40 +02:00
Marcin Grzejszczak fb4e94d07c Changes following review 2019-07-26 14:56:43 +02:00
Marcin Grzejszczak 3f2eb50c74 Merge branch 'master' into multi_pages 2019-07-23 18:13:57 +02:00
Marcin Grzejszczak 6176fb3ba7 Added project root attribute 2019-07-23 13:12:06 +02:00
buildmaster d885a49ddd Bumping versions 2019-07-23 11:04:03 +00:00
Marcin Grzejszczak 8d1f5b2c53 Removed brittle tests 2019-07-23 13:01:15 +02:00
Marcin Grzejszczak e96bbbdda1 Fixed invalid reference to spring-cloud raw github links 2019-07-22 17:34:00 +02:00
Marcin Grzejszczak 1b8e3471c0 index.html is a normal page 2019-07-22 16:40:37 +02:00
Marcin Grzejszczak 2a25b01f99 Added readme 2019-07-22 15:11:36 +02:00
Marcin Grzejszczak eaa807396c Updated old versions of asciidoctor stuff 2019-07-22 14:03:43 +02:00
Marcin Grzejszczak a3874d2c62 Fixed extensions 2019-07-20 11:39:06 +02:00
Marcin Grzejszczak 181fb388fc docs urls, links set from props 2019-07-19 17:39:52 +02:00
Marcin Grzejszczak 3673bb8944 Added git info to docs 2019-07-18 14:16:07 +02:00
Marcin Grzejszczak eafe8ff067 single / multi and pdf added 2019-07-16 17:05:16 +02:00
Marcin Grzejszczak e7b3617cca WIP 2019-07-11 17:00:45 +02:00
Clay McCoy 47a1177134 Add mac related file to .gitignore (#138) 2019-06-28 16:32:37 -04:00
Clay McCoy dc5e21e1b8 Add link to Spring Cloud Build project to IntelliJ setup docs (#137)
This would have helped me when setting up Checkstyle in the Spring Cloud Config project. I think a lot of IJ users will skip to this section like I did and miss the fact that these files aren’t in the local repo. Otherwise the docs are great.
2019-06-28 16:32:15 -04:00
Marcin Grzejszczak 66d630b974 Uncommented bats 2019-06-28 22:10:50 +02:00
Marcin Grzejszczak cd389e7a3b Should help with CI 2019-06-28 22:06:01 +02:00
Spencer Gibb 8125841e11 Revert "Update SNAPSHOT to 2.2.0.M3"
This reverts commit e46b1072a8.
2019-06-28 15:39:26 -04:00
Spencer Gibb e46b1072a8 Update SNAPSHOT to 2.2.0.M3 2019-06-28 15:37:49 -04:00
Spencer Gibb 6d67ffe1a3 Temporarily disable bats tests
see gh-136
2019-06-28 12:46:11 -04:00
Spencer Gibb 7ebdff56bb Bumps boot to 2.2.0.M4 2019-06-28 12:37:42 -04:00
Marcin Grzejszczak a3ede5ccc1 Made tests less birittle for CI 2019-06-28 17:23:11 +02:00
Marcin Grzejszczak 8590eece60 Added support for username and password 2019-06-28 15:23:52 +02:00
Marcin Grzejszczak ea3ab78228 Added empty password for token 2019-06-28 14:34:35 +02:00
Marcin Grzejszczak f068c529d5 More debugging 2019-06-28 13:47:02 +02:00
Marcin Grzejszczak b157cc00be MOAR logging 2019-06-27 16:34:36 +02:00
buildmaster 531b596883 Bumping versions to 2.1.7.BUILD-SNAPSHOT after release 2019-06-20 17:41:26 +00:00
buildmaster 0014bcb71f Going back to snapshots 2019-06-20 17:41:25 +00:00
buildmaster d16c66f632 Update SNAPSHOT to 2.1.6.RELEASE 2019-06-20 17:40:30 +00:00
Spencer Gibb dc6a2070e3 Bumps boot to 2.1.6.RELEASE 2019-06-19 12:04:52 -04:00
Spencer Gibb d783dad589 Removes exclusion of commons-logging from spring-core 2019-06-14 16:02:10 -04:00
Dave Syer 88a6c5c63a Don't use ${spring.version} 2019-06-14 11:35:20 +01:00
Marcin Grzejszczak 423ec17482 Bumped nohttp checkstyle to 0.0.2.RELEASE 2019-06-11 15:54:34 +02:00
Marcin Grzejszczak cedbdc586d Updated release train pushing 2019-06-11 10:06:19 +02:00
Marcin Grzejszczak f0aea46bb8 Updated gh-pages 2019-06-11 10:01:29 +02:00
Ryan Baxter 7496cb5b80 Revert "Version changes for 2.2.0.M2 release"
This reverts commit c2278c8cb5.
2019-06-10 13:45:50 -04:00
Ryan Baxter c2278c8cb5 Version changes for 2.2.0.M2 release 2019-06-10 13:43:41 -04:00
Marcin Grzejszczak 20f213f59d Disabled the nohttp check by default 2019-06-06 14:03:54 +02:00
Marcin Grzejszczak 80eece2100 Added nohttp checkstyle; fixes gh-134 2019-06-06 13:39:51 +02:00
Spencer Gibb 5a691a5ede Updates to boot 2.1.6.BUILD-SNAPSHOT 2019-06-04 14:47:57 -04:00
Ryan Baxter 5512e6e613 Bumping to next release 2019-05-15 12:26:32 -04:00
Ryan Baxter 2cd5817a32 2.1.5.RELEASE changes 2019-05-15 12:13:51 -04:00
Ryan Baxter 62ce24f573 Bumping to boot 2.1.5 2019-05-15 12:03:40 -04:00
Marcin Grzejszczak 3f7f57b869 Added javadoc:aggregate
fixes gh-133
2019-05-04 13:26:58 +04:00
Marcin Grzejszczak 4db49e7e87 Fixed tests 2019-04-29 18:51:07 +04:00
Marcin Grzejszczak 83eb472b07 Fixed tests 2019-04-29 18:50:42 +04:00
Marcin Grzejszczak cb125e972f Added configuration options 2019-04-29 18:48:19 +04:00
Marcin Grzejszczak a5ea61295e Added automated guides updating; fixes gh-131 2019-04-29 18:35:49 +04:00
Marcin Grzejszczak 5264c6b65c Bumped javaformat to 0.0.9 2019-04-16 08:19:50 +04:00
Marcin Grzejszczak c6c8c762c5 Bats tests exection fixes
- allows to skip via skipTests
- runs bats tests only on linux

fixes gh-129 gh-130
2019-04-16 07:32:01 +04:00
Spencer Gibb 39ad014510 Revert "Update SNAPSHOT to 2.2.0.M1"
This reverts commit 69821e2399.
2019-04-15 14:48:21 -04:00
Spencer Gibb 69821e2399 Update SNAPSHOT to 2.2.0.M1 2019-04-15 14:45:06 -04:00
Spencer Gibb 7acbf0ebc5 Updates shellcheck 0.6.0 sha 2019-04-09 14:33:50 -04:00
Spencer Gibb a6bbf05629 Updates shellcheck 0.6.0 sha 2019-04-09 14:25:01 -04:00
Marcin Grzejszczak 35914dfdd8 Fixed 2019-04-09 18:28:50 +02:00
Marcin Grzejszczak ee7c80bacb Should work 2019-04-09 17:30:30 +02:00
Marcin Grzejszczak 4cfd69816d Don't fail if shellcheck is to be installed manually 2019-04-09 16:55:42 +02:00
Marcin Grzejszczak d4e75dba89 Don't fail if shellcheck is to be installed manually 2019-04-09 16:50:55 +02:00
Spencer Gibb 16306d7ff9 Update docker compose url 2019-04-01 12:41:52 -04:00
Spencer Gibb f0d77c65cb Update docker compose url 2019-04-01 12:41:28 -04:00
Marcin Grzejszczak 17561eb47b Should work 2019-03-28 22:36:46 +01:00
Marcin Grzejszczak 15a0de25f3 Should work 2019-03-28 22:33:42 +01:00
Marcin Grzejszczak 714c68cda5 Should work 2019-03-28 22:26:30 +01:00
Marcin Grzejszczak aae0e08910 Should work 2019-03-28 22:24:03 +01:00
Marcin Grzejszczak 6cf9ed86ea Added bats and tests for gh-pages 2019-03-28 18:58:57 +01:00
Ryan Baxter 93e0430a0c Merge pull request #119 from spring-operator/polish-urls-xml-2.1.x
URL Cleanup
2019-03-26 11:59:10 -04:00
Ryan Baxter 2c7d425bed Merge pull request #126 from spring-operator/polish-urls-remaining-2.1.x
URL Cleanup
2019-03-26 11:57:39 -04:00
Spring Operator 40a436a9a7 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* [ ] http://xslthl.sf.net (301) with 4 occurrences could not be migrated:
   ([https](https://xslthl.sf.net) result AnnotatedConnectException).
* [ ] http://exslt.org/common (404) with 1 occurrences could not be migrated:
   ([https](https://exslt.org/common) result SSLHandshakeException).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* [ ] http://compose.docker.io/ (UnknownHostException) with 1 occurrences migrated to:
  https://compose.docker.io/ ([https](https://compose.docker.io/) result UnknownHostException).
* [ ] http://www.puppycrawl.com/dtds/suppressions_1_1.dtd (404) with 2 occurrences migrated to:
  https://www.puppycrawl.com/dtds/suppressions_1_1.dtd ([https](https://www.puppycrawl.com/dtds/suppressions_1_1.dtd) result 404).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html with 3 occurrences migrated to:
  https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ([https](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) result 200).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* [ ] http://plugins.jetbrains.com/plugin/6546 with 3 occurrences migrated to:
  https://plugins.jetbrains.com/plugin/6546 ([https](https://plugins.jetbrains.com/plugin/6546) result 301).
* [ ] http://eclipse.org with 1 occurrences migrated to:
  https://eclipse.org ([https](https://eclipse.org) result 302).
* [ ] http://eclipse.org/m2e/ with 2 occurrences migrated to:
  https://eclipse.org/m2e/ ([https](https://eclipse.org/m2e/) result 302).
* [ ] http://www.springsource.com/developer/sts with 1 occurrences migrated to:
  https://www.springsource.com/developer/sts ([https](https://www.springsource.com/developer/sts) result 302).

# Ignored
These URLs were intentionally ignored.

* http://docbook.org/ns/docbook with 4 occurrences
* http://docbook.sourceforge.net/xmlns/l10n/1.0 with 2 occurrences
* http://www.w3.org/1999/XSL/Format with 2 occurrences
* http://www.w3.org/1999/XSL/Transform with 6 occurrences
* http://www.w3.org/1999/xlink with 1 occurrences
2019-03-26 03:09:21 -05:00
Spring Operator 323b5f2678 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* [ ] http://xslthl.sf.net (301) with 1 occurrences could not be migrated:
   ([https](https://xslthl.sf.net) result AnnotatedConnectException).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* [ ] http://www.puppycrawl.com/dtds/configuration_1_3.dtd (404) with 1 occurrences migrated to:
  https://www.puppycrawl.com/dtds/configuration_1_3.dtd ([https](https://www.puppycrawl.com/dtds/configuration_1_3.dtd) result 404).
* [ ] http://www.puppycrawl.com/dtds/suppressions_1_1.dtd (404) with 1 occurrences migrated to:
  https://www.puppycrawl.com/dtds/suppressions_1_1.dtd ([https](https://www.puppycrawl.com/dtds/suppressions_1_1.dtd) result 404).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://asciidoctor.org with 1 occurrences migrated to:
  https://asciidoctor.org ([https](https://asciidoctor.org) result 200).
* [ ] http://sourceforge.net/projects/xslthl/ with 14 occurrences migrated to:
  https://sourceforge.net/projects/xslthl/ ([https](https://sourceforge.net/projects/xslthl/) result 200).
* [ ] http://www.w3.org/TR/CSS21/propidx.html with 1 occurrences migrated to:
  https://www.w3.org/TR/CSS21/propidx.html ([https](https://www.w3.org/TR/CSS21/propidx.html) result 200).

# Ignored
These URLs were intentionally ignored.

* http://maven.apache.org/POM/4.0.0 with 10 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 5 occurrences
2019-03-25 23:50:27 -05:00
buildmaster 8d5da126d3 Bumping versions to 2.1.5.BUILD-SNAPSHOT after release 2019-03-25 13:58:32 +00:00
buildmaster af8ca0befb Going back to snapshots 2019-03-25 13:58:32 +00:00
buildmaster 6f6d6aa856 Update SNAPSHOT to 2.1.4.RELEASE 2019-03-25 13:52:46 +00:00
Marcin Grzejszczak f8427d402b Merge branch '2.1.x' 2019-03-22 11:46:36 +01:00
Spring Operator 0b737621f0 URL Cleanup (#106)
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 2 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 8 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
2019-03-22 10:52:25 +01:00
Spring Operator 5e639a39cb URL Cleanup (#105)
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 2 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 2 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
2019-03-22 10:51:25 +01:00
Spring Operator 3e440513ef URL Cleanup (#99)
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* [ ] http://compose.docker.io/ (UnknownHostException) with 1 occurrences migrated to:
  https://compose.docker.io/ ([https](https://compose.docker.io/) result UnknownHostException).
* [ ] http://www.puppycrawl.com/dtds/suppressions_1_1.dtd (404) with 2 occurrences migrated to:
  https://www.puppycrawl.com/dtds/suppressions_1_1.dtd ([https](https://www.puppycrawl.com/dtds/suppressions_1_1.dtd) result 404).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html with 3 occurrences migrated to:
  https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ([https](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) result 200).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* [ ] http://plugins.jetbrains.com/plugin/6546 with 3 occurrences migrated to:
  https://plugins.jetbrains.com/plugin/6546 ([https](https://plugins.jetbrains.com/plugin/6546) result 301).
* [ ] http://eclipse.org with 1 occurrences migrated to:
  https://eclipse.org ([https](https://eclipse.org) result 302).
* [ ] http://eclipse.org/m2e/ with 2 occurrences migrated to:
  https://eclipse.org/m2e/ ([https](https://eclipse.org/m2e/) result 302).
* [ ] http://www.springsource.com/developer/sts with 1 occurrences migrated to:
  https://www.springsource.com/developer/sts ([https](https://www.springsource.com/developer/sts) result 302).
2019-03-22 10:49:52 +01:00
Marcin Grzejszczak 2a2c9f892e Updated Spring Java format 2019-03-22 09:22:01 +01:00
Marcin Grzejszczak 83fe233eb0 Updated checkstyle 2019-03-22 09:20:29 +01:00
Marcin Grzejszczak b9b56dece4 Updated java format version 2019-03-22 09:20:07 +01:00
Ryan Baxter d4f6a811d9 Merge remote-tracking branch 'origin/2.1.x' 2019-03-21 12:10:17 -04:00
Ryan Baxter 35d8230662 Updating checkstyle rules to make sure header uses https 2019-03-21 12:08:21 -04:00
Ryan Baxter a72e84c536 Merge remote-tracking branch 'origin/2.0.x' into 2.1.x 2019-03-21 12:02:04 -04:00
Marcin Grzejszczak a8d4be6ae4 Updated spring boot formatter plugin 2019-03-21 12:54:55 +01:00
Marcin Grzejszczak e578b69a84 Bumped checkstyle 2019-03-21 12:53:23 +01:00
Ryan Baxter 9f34c0061c Merge pull request #98 from spring-operator/polish-urls-xml-master
URL Cleanup
2019-03-20 10:36:58 -04:00
Spring Operator 419cffdad8 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* http://www.puppycrawl.com/dtds/configuration_1_3.dtd (404) with 1 occurrences migrated to:
  https://www.puppycrawl.com/dtds/configuration_1_3.dtd ([https](https://www.puppycrawl.com/dtds/configuration_1_3.dtd) result 404).
* http://www.puppycrawl.com/dtds/suppressions_1_1.dtd (404) with 1 occurrences migrated to:
  https://www.puppycrawl.com/dtds/suppressions_1_1.dtd ([https](https://www.puppycrawl.com/dtds/suppressions_1_1.dtd) result 404).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://maven.apache.org/xsd/maven-4.0.0.xsd with 5 occurrences migrated to:
  https://maven.apache.org/xsd/maven-4.0.0.xsd ([https](https://maven.apache.org/xsd/maven-4.0.0.xsd) result 200).

# Ignored
These URLs were intentionally ignored.

* http://maven.apache.org/POM/4.0.0 with 10 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 5 occurrences
2019-03-19 21:17:27 -05:00
Spring Operator 94e1a06065 URL Cleanup (#94)
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success 
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://maven.apache.org/xsd/maven-4.0.0.xsd with 5 occurrences migrated to:  
  https://maven.apache.org/xsd/maven-4.0.0.xsd ([https](https://maven.apache.org/xsd/maven-4.0.0.xsd) result 200).
* http://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch with 1 occurrences migrated to:  
  https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch ([https](https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch) result 200).
* http://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin with 1 occurrences migrated to:  
  https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin ([https](https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin) result 200).
* http://www.apache.org/licenses/LICENSE-2.0 with 4 occurrences migrated to:  
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
* http://www.spring.io with 6 occurrences migrated to:  
  https://www.spring.io ([https](https://www.spring.io) result 301).

# Ignored
These URLs were intentionally ignored.

* http://maven.apache.org/POM/4.0.0 with 10 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 5 occurrences
2019-03-16 11:45:22 -04:00
Ryan Baxter 55a678407e Removing old circle config 2019-03-13 20:12:53 -04:00
Spencer Gibb 914e6bda9c Merge branch '2.1.x' 2019-03-13 16:33:23 -04:00
Spencer Gibb 9965c61542 Disable flatten plugin 2019-03-13 16:30:32 -04:00
Spencer Gibb d9abf1ed42 added .flattened-pom.xml 2019-03-13 16:10:41 -04:00
Spencer Gibb b8aa7d5ea0 Removes duplicate flatten plugin 2019-03-13 16:00:21 -04:00
Dave Syer b4baf0827f Merge branch '2.1.x' 2019-03-13 09:51:58 +00:00
Dave Syer 093b0882b5 Add flatten plugin to build parents 2019-03-13 09:51:50 +00:00
Dave Syer b7ae867705 Add flatten plugin to build parents 2019-03-13 09:49:59 +00:00
Spring Operator e581ff54f1 URL Cleanup (#88)
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success 
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch migrated to:  
  https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch ([https](https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch) result 200).
* http://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin migrated to:  
  https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin ([https](https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin) result 200).
* http://www.apache.org/licenses/LICENSE-2.0 migrated to:  
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
* http://www.spring.io migrated to:  
  https://www.spring.io ([https](https://www.spring.io) result 301).

# Ignored
These URLs were intentionally ignored.

* http://maven.apache.org/POM/4.0.0
* http://maven.apache.org/xsd/maven-4.0.0.xsd
* http://www.w3.org/2001/XMLSchema-instance
2019-03-11 19:14:43 -04:00
Marcin Grzejszczak 5dc84bc818 Bumped Boot to 2.2.0 2019-03-07 16:55:37 +01:00
Marcin Grzejszczak beaf83d474 Whitelisted this branch 2019-03-07 15:36:12 +01:00
Marcin Grzejszczak d149e2dddb Updated docs module 2019-03-07 15:35:49 +01:00
Marcin Grzejszczak 8215171d54 Updated readme 2019-03-07 15:30:41 +01:00
Marcin Grzejszczak a7adac2015 Turns on checkstyle by default 2019-03-07 15:25:05 +01:00
Marcin Grzejszczak 996f004ee6 Updated 2019-03-07 15:21:59 +01:00
Marcin Grzejszczak edcd6ad4dd Bumped for Hoxton 2019-03-07 15:15:08 +01:00
Marcin Grzejszczak b2373e2c50 HTTP to HTTPS 2019-03-07 15:12:55 +01:00
Marcin Grzejszczak 7f5ba64aa7 Commenting out the LineLength requirement
The Boot formatter and the line length check are contradictory. Let's not check the line length.
2019-02-25 16:11:25 +01:00
Ryan Baxter e26366fbce Bumping to 2.0.6.BUILD-SNAPSHOT 2019-02-21 11:38:14 -05:00
Ryan Baxter 6a78cf2e85 2.0.5.RELEASE 2019-02-21 11:29:56 -05:00
Marcin Grzejszczak a992f3d706 Updated build 2019-02-15 17:10:27 +01:00
buildmaster 713a16e110 Bumping versions to 2.1.4.BUILD-SNAPSHOT after release 2019-02-15 14:16:02 +00:00
buildmaster 256b86c191 Going back to snapshots 2019-02-15 14:16:01 +00:00
buildmaster d383f11a98 Update SNAPSHOT to 2.1.3.RELEASE 2019-02-15 14:14:12 +00:00
Ryan Baxter 9474ca2e3d Use Boot 2.1.3 2019-02-15 09:05:26 -05:00
buildmaster 4c0ff24db6 Bumping versions 2019-02-14 17:20:37 +00:00
Marcin Grzejszczak 677ed92bcb Update pom.xml 2019-02-14 18:17:58 +01:00
buildmaster 8b6fb7d48b Bumping versions 2019-02-14 17:16:14 +00:00
Chin Huang 82aa564d22 Exhort contributors to not edit the generated README.adoc file (#87) 2019-02-12 15:53:35 -05:00
Marcin Grzejszczak 0b71752b7b Updated Groovy style 2019-02-08 16:45:56 +01:00
Marcin Grzejszczak 9b037574ed Updated Groovy style 2019-02-08 16:18:02 +01:00
Marcin Grzejszczak c6052d025c Updated Groovy style 2019-02-08 16:04:56 +01:00
Olga Maciaszek-Sharma c144394179 Revert incorrect backward change in inspection setup. 2019-02-08 13:50:54 +01:00
Olga Maciaszek-Sharma 3bd7aa065c Merge remote-tracking branch 'origin/master' 2019-02-07 19:56:07 +01:00
Olga Maciaszek-Sharma 83ed333158 Add "excludeScope", cause "scope" was not handled correctly for inner classes. 2019-02-07 19:54:46 +01:00
Spencer Gibb 549410b7df Update to 120 right margin 2019-02-07 13:41:37 -05:00
Marcin Grzejszczak be7927d350 Updated readme 2019-02-07 19:12:14 +01:00
Marcin Grzejszczak 70bcc3f1c0 Added more concrete checkstyle setup 2019-02-07 19:02:08 +01:00
Marcin Grzejszczak a129f34039 Added editorconfig 2019-02-07 15:15:27 +01:00
Marcin Grzejszczak 76521f9186 Fixed the order of checkstyles 2019-02-07 14:55:06 +01:00
Marcin Grzejszczak 87faa674cb Removed duplicated format plugin 2019-02-07 14:48:53 +01:00
Marcin Grzejszczak 455691108e Changed the order of formatting and checkstyle 2019-02-07 14:38:20 +01:00
Marcin Grzejszczak 3157fe7adf Updated spring boot java conventions 2019-02-07 11:27:43 +01:00
Marcin Grzejszczak e14be3ccae Added examples to suppressions 2019-02-05 16:46:37 +01:00
Olga Maciaszek-Sharma 2d9d850679 Moved Netflix checkstyle suppressions back to project. 2019-02-05 13:01:40 +01:00
Marcin Grzejszczak 4541cb274b Added checkstyle documentation 2019-02-05 09:53:15 +01:00
Marcin Grzejszczak abef739438 Updated the checkstyle location 2019-02-05 09:39:22 +01:00
Marcin Grzejszczak 8e520c45d0 Searches for suppressions under src/checkstyle/checkstyle-suppresions.xml 2019-02-05 09:31:34 +01:00
Marcin Grzejszczak 5995da49aa Added an option for additional suppression files 2019-02-05 09:25:21 +01:00
Marcin Grzejszczak 2f6cc5a199 Added sample folder to suppresions 2019-02-04 16:18:59 +01:00
Marcin Grzejszczak 7abbd131bf Added build and target to skipped locations 2019-02-04 15:53:12 +01:00
Olga Maciaszek-Sharma da9d52773d Add checkstyle suppressions for illegal imports necessary for some Netflix types. 2019-02-04 12:04:34 +01:00
Marcin Grzejszczak 6b947f96b8 Parametrized suppressions 2019-02-02 11:36:12 +01:00
Marcin Grzejszczak 56150ea5ea Added override checkstyle rule 2019-02-01 15:06:24 +01:00
Olga Maciaszek-Sharma f5692c711b Merge remote-tracking branch 'origin/master' 2019-01-31 19:12:33 +01:00
Olga Maciaszek-Sharma d5908b1898 Adding back guava import - added suppressions directly in SCNetflix. 2019-01-31 19:12:21 +01:00
Marcin Grzejszczak 75dfbe1b71 parametrized failures on error and warning for checkstyle 2019-01-31 17:40:46 +01:00
Olga Maciaszek-Sharma b763c7e76d Fix import-control setup. 2019-01-31 17:09:59 +01:00
Olga Maciaszek-Sharma 8190edd353 Fix import-control setup. 2019-01-31 17:07:33 +01:00
Olga Maciaszek-Sharma 26146271cc Add import control setup in checkstyle.xml. 2019-01-31 17:01:57 +01:00
Olga Maciaszek-Sharma b42078d051 Switch from illegal import definition in Guava to import-control verification. 2019-01-31 16:42:44 +01:00
Olga Maciaszek-Sharma 0d3107bc2a Remove verification for empty javadoc after discussing in channel. 2019-01-30 18:02:59 +01:00
Olga Maciaszek-Sharma b62df46daa Switch to public scope for Javadoc Type check. 2019-01-30 17:56:37 +01:00
Olga Maciaszek-Sharma 6482383cc4 Merge remote-tracking branch 'origin/master' 2019-01-30 17:42:06 +01:00
Olga Maciaszek-Sharma 626bbb6d07 Commenting out some rules after discussing it in Spring Cloud channel. 2019-01-30 17:41:51 +01:00
Marcin Grzejszczak 9c3dddb63c Set tab width to 1 2019-01-30 13:00:10 +01:00
Marcin Grzejszczak 0d5e152e7a Added line length to be 120 2019-01-29 20:02:06 +01:00
Marcin Grzejszczak 58cbac5e86 Updated Checkstyle with latest Boot entries, removed this. check; fixes gh-86 2019-01-29 17:58:55 +01:00
Ryan Baxter cc3527e7ba Bumping version to 2.1.3.BUILD-SNAPSHOT 2019-01-22 11:59:41 -05:00
Ryan Baxter ae3ecc8f3c Revert "Version changes for 2.1.2.RELEASE"
This reverts commit 6cbeee8435.
2019-01-22 11:57:21 -05:00
Ryan Baxter 6cbeee8435 Version changes for 2.1.2.RELEASE 2019-01-22 11:54:26 -05:00
Daniel Zou ad99cb0e55 Add Awaitility and AssertJ assumptions to avoidStaticImportCheck exclusions (#85) 2019-01-21 17:56:38 +01:00
Spencer Gibb 4e61a5a4c2 Bumps boot to 2.0.8.RELEASE 2019-01-12 12:50:07 -05:00
Spencer Gibb d8bbfe6bd2 Bumps boot to 2.1.2.RELEASE 2019-01-12 12:44:34 -05:00
buildmaster 8f8166242b Bumping versions to 2.1.2.BUILD-SNAPSHOT after release 2019-01-08 10:00:37 +00:00
buildmaster 7cb2441c7e Going back to snapshots 2019-01-08 10:00:37 +00:00
buildmaster fa1827bdd6 Update SNAPSHOT to 2.1.1.RELEASE 2019-01-08 09:51:30 +00:00
Spencer Gibb 1bc5ca3d2e Update to 2.1.1.BUILD-SNAPSHOT 2019-01-07 12:31:55 -05:00
Spencer Gibb 85b6d45c7c Update SNAPSHOT to 2.1.0.RELEASE 2019-01-07 12:08:06 -05:00
Marcin Grzejszczak 0eb1e1a65b Removed dockbook, fixed the docs 2018-12-20 19:03:08 +01:00
Marcin Grzejszczak b572d06fd5 new docs 2018-12-20 18:56:40 +01:00
Marcin Grzejszczak 3e6e1cdf3e Revert "Going back to old docs"
This reverts commit 1e866629e5.
2018-12-20 18:25:21 +01:00
Marcin Grzejszczak 1e866629e5 Going back to old docs 2018-12-20 18:24:38 +01:00
Marcin Grzejszczak e605c3e47b Bumped asciidoctor 2018-12-20 18:03:53 +01:00
Marcin Grzejszczak 17b29bf7b1 Copying ruby files 2018-12-20 17:46:53 +01:00
Marcin Grzejszczak 4398f81257 New docs (#83)
Updates the pom.xmls to start generating documentation in the new way
2018-12-20 17:41:24 +01:00
Marcin Grzejszczak 12286375b6 Don't append token if already pass is used 2018-12-13 17:41:30 +00:00
Ryan Baxter ebbad49f17 Removing Lombok (#81)
addresses https://github.com/spring-cloud/spring-cloud-config/issues/869

fixes gh-82
2018-12-13 09:58:57 -05:00
Marcin Grzejszczak 1cebd560ff Update ghpages.sh 2018-12-12 19:03:22 +00:00
Ryan Baxter eadf287397 Going back to snapshots after release 2018-12-11 15:38:46 -05:00
Ryan Baxter 85e49e2cd5 Version changes for RC3 release 2018-12-11 15:30:34 -05:00
Dave Syer 1212d08afb Fix versions of some maven plugins 2018-12-10 09:04:19 +00:00
dmitry-s 32da4095f5 add SuppresionFilter module (#79) 2018-12-05 21:13:17 +01:00
Dave Syer d3f2e082d6 Update to Boot 2.1.1 2018-12-04 13:47:54 +00:00
Artem Bilan 2e986256a2 GH-62: Fix Checkstyle plugin configuration (#77)
Fixes spring-cloud/spring-cloud-build#62

Since Checkstyle plugin is declared in the dependency management, we
can't use a relative path to Checkstyle resources.
We can only rely on the classpath as it is present in the
`spring-cloud-build-tools` dependency, so downstream projects just rely
on the common Checkstyle configuration from the parent
2018-11-20 19:47:13 +01:00
Marcin Grzejszczak bdfc3591ee Should use the token 2018-11-18 10:03:18 +01:00
Marcin Grzejszczak 2014a30efa Updated Groovy conventions 2018-11-16 14:37:48 +01:00
Marcin Grzejszczak b61fcecfb4 Fixed copyright pattern; fixes gh-62 2018-11-16 13:04:03 +01:00
Ryan Baxter 807a327c8c Moving version back to snapshots 2018-11-01 19:51:22 -04:00
Ryan Baxter 18a3a14dd1 Spring Cloud Build 2.1.0.RC2 release 2018-11-01 19:46:34 -04:00
Spencer Gibb 322f84d8d5 Bumps boot to 2.1.0.RELEASE 2018-10-30 13:09:22 -04:00
Spencer Gibb 2f04332537 Revert "Update SNAPSHOT to 2.1.0.RC1"
This reverts commit 8d94ce5417.
2018-10-23 15:46:16 -04:00
Spencer Gibb 8d94ce5417 Update SNAPSHOT to 2.1.0.RC1 2018-10-23 15:33:15 -04:00
Spencer Gibb 707f8d5d65 Bumps boot to 2.1.0.RC1 2018-10-23 15:28:51 -04:00
buildmaster 3a68656c23 Bumping versions to 2.0.5.BUILD-SNAPSHOT after release 2018-10-23 15:40:08 +00:00
buildmaster 97ffe0a406 Going back to snapshots 2018-10-23 15:40:08 +00:00
buildmaster 6a41df677a Update SNAPSHOT to 2.0.4.RELEASE 2018-10-23 15:38:38 +00:00
Ryan Baxter f6a5a3eea1 Bumping the boot version for Finchley.SR2 release 2018-10-17 15:45:12 -04:00
Marcin Grzejszczak bf69d77c8c Added project and spring boot defaults 2018-10-08 15:41:49 +02:00
Marcin Grzejszczak 066ac897a9 Apply the spring formatter before checking it 2018-10-05 11:41:19 +02:00
Spencer Gibb 2daa03b4e7 Bumps boot to 2.1.0.BUILD-SNAPSHOT 2018-10-04 15:59:12 -04:00
Tim Ysewyn 998266fba4 Fixed checkstyle setup (#76) 2018-10-01 23:28:47 +02:00
Spencer Gibb 6acff5ad3e Update to boot 2.1.0.M4 2018-10-01 10:53:56 -04:00
Marcin Grzejszczak 7fd3739c75 Checkstyle produces warnings 2018-10-01 12:29:16 +02:00
Marcin Grzejszczak 33b6b6c8d5 Disables test sources in boot checkstyle 2018-10-01 11:22:53 +02:00
Marcin Grzejszczak 542f540b42 Fixed the boot checkstyle and formatter setup 2018-10-01 11:18:26 +02:00
Marcin Grzejszczak b14b53f98e Going back to old checkstyle rules 2018-10-01 10:30:37 +02:00
Marcin Grzejszczak bd42b899a4 Revert "Fixed checkstyle setup"
This reverts commit 37b3508c53.
2018-10-01 10:28:02 +02:00
Marcin Grzejszczak f811879742 Revert "Checkstyle doesn't break the build"
This reverts commit 88a07f4865.
2018-10-01 10:27:54 +02:00
Marcin Grzejszczak 88a07f4865 Checkstyle doesn't break the build 2018-09-30 18:36:24 +02:00
Marcin Grzejszczak 37b3508c53 Fixed checkstyle setup 2018-09-29 12:54:10 +01:00
Marcin Grzejszczak 1cbb533b13 Don't fail th ebuild on broken javadocs 2018-09-29 11:43:59 +01:00
Marcin Grzejszczak fc064fd3fc Bumped plugins for jdk11; fixes gh-75 2018-09-29 11:28:09 +01:00
Ryan Baxter 1aa4f9d1d0 Merge remote-tracking branch 'origin/2.0.x' 2018-09-28 10:32:18 -04:00
Ryan Baxter 5c442ffb73 Merge remote-tracking branch 'origin/1.3.x' into 2.0.x 2018-09-28 10:30:43 -04:00
Ryan Baxter ff3bf15bd6 Merge remote-tracking branch 'origin/1.2.x' into 1.3.x 2018-09-28 10:28:38 -04:00
Ryan Baxter b2b515f04e Removing old circle config and adding new 2.0 config 2018-09-28 10:17:35 -04:00
Spencer Gibb 84f21bbb7d Bumps boot to 2.0.5.RELEASE 2018-09-19 14:44:34 -04:00
Spencer Gibb 018f9d1f8e Revert "Update SNAPSHOT to 2.1.0.M2"
This reverts commit 8260f0ebfe.
2018-09-18 17:46:04 -04:00
Spencer Gibb 8260f0ebfe Update SNAPSHOT to 2.1.0.M2 2018-09-18 17:44:03 -04:00
Spencer Gibb edbc73e909 Bumps boot to 2.1.0.M3 2018-09-13 09:40:37 -04:00
Spencer Gibb 6c21859cd4 Revert "Update SNAPSHOT to 2.1.0.M1"
This reverts commit f078a4e28c.
2018-08-21 12:07:46 -04:00
Spencer Gibb f078a4e28c Update SNAPSHOT to 2.1.0.M1 2018-08-21 12:06:24 -04:00
Spencer Gibb f329fd4b44 Bumps boot to 2.1.0.M2 2018-08-21 10:42:56 -04:00
Spencer Gibb a6028e09e2 Updates to 2.1.0.BUILD-SNAPSHOT and bumps boot to 2.1.0.M1 2018-08-01 13:32:23 -04:00
buildmaster 207618a38e Bumping versions to 2.0.4.BUILD-SNAPSHOT after release 2018-07-31 17:59:25 +00:00
buildmaster bc5cd9dd48 Going back to snapshots 2018-07-31 17:59:24 +00:00
buildmaster 4a78e2d996 Update SNAPSHOT to 2.0.3.RELEASE 2018-07-31 17:58:30 +00:00
buildmaster bb6f4b3763 Bumping versions to 1.3.12.BUILD-SNAPSHOT after release 2018-06-28 14:15:46 +00:00
buildmaster 167f2b2f7d Going back to snapshots 2018-06-28 14:15:46 +00:00
buildmaster d15f4f1ec7 Update SNAPSHOT to 1.3.10.RELEASE 2018-06-28 14:14:39 +00:00
buildmaster 5f3c88babc Bumping versions to 1.3.11.BUILD-SNAPSHOT after release 2018-06-28 13:39:47 +00:00
buildmaster 0e386af8ac Going back to snapshots 2018-06-28 13:39:47 +00:00
buildmaster 712ff51fb8 Update SNAPSHOT to 1.3.10.RELEASE 2018-06-28 13:38:58 +00:00
Ryan Baxter 75f490ffcf Bumping boot version 2018-06-27 14:05:06 -04:00
Marcin Grzejszczak e5c0728c23 Bumping versions 2018-06-25 17:14:40 +02:00
Marcin Grzejszczak f47d341d53 Revert "Bumping versions"
This reverts commit 4c3f641821.
2018-06-25 16:38:32 +02:00
Marcin Grzejszczak 4c3f641821 Bumping versions 2018-06-25 16:34:53 +02:00
Spencer Gibb 6076b81450 Updates to 2.0.3.BUILD-SNAPSHOT 2018-06-15 20:15:44 -04:00
Spencer Gibb f3542553dd Updates to 2.0.2.RELEASE 2018-06-15 20:12:15 -04:00
Spencer Gibb e78250bd7c Updates to boot 2.0.3.BUILD-SNAPSHOT 2018-06-05 15:23:00 -04:00
Spencer Gibb 951e60f9dc Updates to 2.0.2.BUILD-SNAPSHOT 2018-05-17 12:50:17 -04:00
Spencer Gibb 7049b82390 Prepare to release 2.0.1.BUILD 2018-05-17 12:47:51 -04:00
Spencer Gibb f29b2d98ae Move back to boot 2.0.2.RELEASE 2018-05-17 11:46:58 -04:00
Marcin Grzejszczak ccf97a9964 Fixed printing of versions 2018-05-10 17:01:52 +02:00
Dave Syer f28552204c Update to Boot 2.0.2 2018-05-10 09:11:17 +01:00
Dave Syer ae73ec3da9 Revert to snapshots 2018-04-24 10:15:55 +01:00
Dave Syer 4b2628d05a Update to Boot 1.5.12 2018-04-24 10:15:21 +01:00
Dave Syer c11c60b23b Bumnp Spring Boot to 1.5.12 2018-04-24 09:59:36 +01:00
Ryan Baxter f70adbbd74 Upgrade animal sniffer. Fixes #72 2018-04-18 16:11:19 -04:00
Marcin Grzejszczak bc394526fa Bumped boot to 1.5.11 2018-04-06 14:01:00 +02:00
Spencer Gibb 896a5bb1d3 Updates to 2.0.1.BUILD-SNAPSHOT 2018-04-05 17:26:02 -04:00
Spencer Gibb f7cc4c9cbf Reverts to SNAPSHOT 2018-04-05 13:32:37 -04:00
Spencer Gibb 54866e4fde Updates to 2.0.0.RELEASE 2018-04-05 13:30:06 -04:00
Spencer Gibb e194987098 Updates to boot 2.0.1.RELEASE 2018-04-05 10:44:47 -04:00
Spencer Gibb 85f2129719 Updates to boot 2.0.1.BUILD-SNAPSHOT 2018-04-04 15:23:43 -04:00
Marcin Grzejszczak 992b69d2f9 Added callout icons, fixes gh-70 2018-03-09 12:57:56 +01:00
Marcin Grzejszczak c3115313ac Added callout icons, fixes gh-70 2018-03-09 12:56:45 +01:00
Dave Syer 62496dfea4 Revert spring cloud version to snapshots 2018-03-01 11:40:04 +00:00
Dave Syer 44308608fa Update to RC2 2018-03-01 11:39:29 +00:00
Dave Syer 62c6abd991 Revert Boot to snapshots as well 2018-02-27 11:51:09 +00:00
Dave Syer 27d1e79004 Revert to snapshots 2018-02-23 16:39:32 +00:00
Dave Syer 79da5e764f RC1 -> Boot 2.0.0.RC2 2018-02-23 16:38:43 +00:00
Spencer Gibb 3cf83c46ab Move to Spring Boot RC2 in anticipation of Spring Cloud milestone. 2018-02-22 11:47:42 -05:00
Spencer Gibb 0193cebef6 Fix copy and paste name. 2018-02-20 11:23:23 -05:00
Marcin Grzejszczak 434aac7f68 Fails the build if generated HTML contains Unresolved (#68)
fixes #67
2018-02-12 17:11:11 +01:00
Marcin Grzejszczak 80066daca7 Fails the build if generated HTML contains Unresolved (#68)
fixes #67
2018-02-12 17:09:59 +01:00
Spencer Gibb 10d29409e5 Merge remote-tracking branch 'origin/master' 2018-02-09 20:17:17 -05:00
Spencer Gibb 70db998312 Updates to Spring Boot 2.0.0.BUILD-SNAPSHOT 2018-02-09 20:17:09 -05:00
Ryan Baxter f020bf77a9 bumping version to next release 2018-02-07 15:56:36 -05:00
Ryan Baxter a2bb813307 Revert "1.3.8.RELEASE"
This reverts commit 136880ebe3.
2018-02-07 15:43:48 -05:00
Ryan Baxter 136880ebe3 1.3.8.RELEASE 2018-02-07 15:40:00 -05:00
Ryan Baxter e50d36b42a Bumping boot version 2018-02-07 15:33:23 -05:00
Ryan Baxter 679cbad438 Fixing links 2018-02-07 14:38:16 -05:00
Spencer Gibb 5555a5b804 Updates to Spring Boot 2.0.0.RC1 2018-02-03 19:09:03 -05:00
Dave Syer 6c706834b6 Revert to snapshots 2018-02-03 14:30:01 +00:00
Dave Syer 4a9a6b5a03 Update to 2.0.0.M7 2018-02-03 14:29:14 +00:00
Spencer Gibb a4d3ca059d Updates to Spring Boot 2.0.0.RC1 2018-01-31 14:04:15 -05:00
Dave Syer 51db058ec5 Switch to Boot snapshots 2018-01-11 13:52:04 +00:00
Ryan Baxter 2578cdbfa9 Fixing boot dependencies version 2018-01-03 17:25:08 -05:00
buildmaster 924ed94f88 Bumping versions to 1.3.8.BUILD-SNAPSHOT after release 2017-12-21 17:37:30 +00:00
buildmaster c508ad4a2f Going back to snapshots 2017-12-21 17:37:30 +00:00
buildmaster db230a7b3d Update SNAPSHOT to 1.3.7.RELEASE 2017-12-21 17:36:44 +00:00
Ryan Baxter 73deaf4f00 Merge pull request #64 from ryanjbaxter/github-templates
GitHub Templates
2017-12-20 14:28:15 -05:00
Ryan Baxter e515f33d6c Customizing for Spring Cloud 2017-12-06 20:02:18 -08:00
Ryan Baxter 6c037307c7 Adding contributing file 2017-12-05 15:07:00 -08:00
Ryan Baxter 253dcf4852 GitHub issue template 2017-12-05 14:17:22 -08:00
buildmaster da52405878 Going back to snapshots 2017-12-01 21:32:42 +00:00
buildmaster c3f1d40a1a Update SNAPSHOT to 2.0.0.M6 2017-12-01 21:32:10 +00:00
Spencer Gibb 015bc38d38 Update boot to 2.0.0.M7 2017-11-30 13:08:37 -05:00
Spencer Gibb f5a37ebb50 Update boot to 1.5.9.RELEASE 2017-11-28 12:42:05 -05:00
Spencer Gibb 33357b5a8e Merge branch '1.3.x' 2017-11-28 12:20:25 -05:00
Spencer Gibb f4c22a5151 Fix docs whitelist branch 2017-11-28 12:20:09 -05:00
Spencer Gibb c48f0debbb Merge branch '1.3.x' 2017-11-27 22:42:20 -05:00
Spencer Gibb b382dd1420 Update to Spring Boot 2.0.0.BUILD-SNAPSHOT 2017-11-22 10:52:19 -05:00
buildmaster 34aaa7e1f1 Bumping versions to 1.3.7.BUILD-SNAPSHOT after release 2017-11-20 10:34:54 +00:00
buildmaster e9ef6a7e53 Going back to snapshots 2017-11-20 10:34:54 +00:00
buildmaster 203d35ed0a Update SNAPSHOT to 1.3.6.RELEASE 2017-11-20 10:34:16 +00:00
Spencer Gibb 4409eeb36c Going back to snapshots 2017-11-14 16:44:39 -05:00
Spencer Gibb 2847052243 Update SNAPSHOT to 2.0.0.M5 2017-11-14 16:44:08 -05:00
Spencer Gibb da45237da3 Update to Spring Boot 2.0.0.M6 2017-11-07 12:15:37 -05:00
Spencer Gibb 69c64d1b32 Update to Spring Boot 2.0.0.BUILD-SNAPSHOT 2017-10-30 15:54:49 -04:00
Spencer Gibb b1475df241 Update to Spring Boot 1.5.8.RELEASE 2017-10-30 15:53:30 -04:00
Spencer Gibb 9884f0d3d4 Back to SNAPSHOTS 2017-10-17 19:56:23 -04:00
Spencer Gibb 7d3355a2b1 Update to 2.0.0.M4 2017-10-17 19:52:16 -04:00
Spencer Gibb 58cf4d940f Update to boot 2.0.0.M5 2017-10-16 15:32:04 -04:00
Dave Syer d1064b9d81 Merge branch 'master' into 2.0.x 2017-10-13 15:44:46 +01:00
Dave Syer ce4be9d6fa Revert to cloud snapshot versions 2017-10-13 15:44:16 +01:00
Dave Syer 5b8d436cd8 Update to 2.0.0.M3 2017-10-13 15:42:54 +01:00
Dave Syer 3ee2cf33b8 Update Spring Boot to 2.0.0.M5 2017-10-13 15:40:42 +01:00
Spencer Gibb 3d79a4425f Add -parameters to maven-compiler-plugin 2017-09-25 13:32:09 -04:00
Dave Syer 4000709c4c Add compiler plugin version 2017-09-15 11:27:22 +01:00
Dave Syer 7d5abfdf13 Revert to snapshots 2017-09-12 17:43:57 +01:00
Dave Syer 80fa01c000 Update to 1.3.5.RELEASE 2017-09-12 17:40:43 +01:00
Spencer Gibb 2bd140e7bc Update to boot 2.0.0.BUILD-SNAPSHOT 2017-09-07 10:47:36 -06:00
Spencer Gibb 8238bb0d15 Merge branch 'master' into 2.0.x 2017-09-01 12:46:26 -06:00
Spencer Gibb 666bfc724c Update mvnw to 3.5.0
fixes gh-53
2017-09-01 12:46:12 -06:00
Spencer Gibb 56d0534fa4 remove java7 check in 2.0.x
java8 is the baseline in 2.0.x
2017-09-01 12:06:38 -06:00
Marcin Grzejszczak f028bf01b6 Merge branch 'master' into 2.0.x 2017-08-31 14:27:48 +02:00
Marcin Grzejszczak 09317bb95c Polish 2017-08-31 14:27:44 +02:00
Marcin Grzejszczak 4e7df1097b Merge branch 'master' into 2.0.x 2017-08-31 14:19:34 +02:00
Marcin Grzejszczak 8f19618cc2 Let's eat our own dogfood
sc-build reuses sc-build logic to generate its own docs
2017-08-31 14:08:45 +02:00
Marcin Grzejszczak fe8ac6ba05 Fixed wrong parent reference 2017-08-31 13:51:24 +02:00
Marcin Grzejszczak bde5a78f12 Merge branch 'master' into 2.0.x 2017-08-31 13:49:07 +02:00
Marcin Grzejszczak 4d0246d73e Started to publish the docs module as a jar
without this change we copy paste all the scripts, resources etc. to every single project
with this change each project will have this project's resources unpacked in the local `target` directory. The docs generation already reference this changed location so no need to copy paste of any resources is required

fixes #60
2017-08-31 13:48:43 +02:00
Marcin Grzejszczak 0269b4a8b6 Not failing the script if a file can't be added
it happens when you want to add a file that is in .gitignore
2017-08-29 14:33:21 +02:00
Dave Syer 2d2baca883 Revert change to spring-cloud-build.version
It has to be a fixed value because this project is used as a parent
for others.
2017-08-29 12:20:36 +01:00
Dave Syer 7ca50a9d7f Remove duplicate plugin 2017-08-29 12:15:59 +01:00
Marcin Grzejszczak 4173657bdd Updated sc-build version 2017-08-29 13:10:06 +02:00
Dave Syer dc1fb141a1 Merge branch 'master' into 2.0.x 2017-08-29 12:08:50 +01:00
Dave Syer 40d8febe83 Set up compiler plugin by default 2017-08-29 12:08:32 +01:00
Dave Syer 30bb69b3bb Merge branch 'master' into 2.0.x 2017-08-29 11:49:08 +01:00
Dave Syer 4f532ed92d Process javadocs for imports 2017-08-29 11:48:49 +01:00
Marcin Grzejszczak ee21ccbd0e Fixed _ problem in ghpages 2017-08-29 11:47:42 +02:00
Marcin Grzejszczak 8c177337e2 Fixed _ problem in ghpages 2017-08-29 11:44:37 +02:00
Dave Syer 86a06377af Merge branch 'master' into 2.0.x 2017-08-29 09:41:24 +01:00
Dave Syer 3d4369f6cb Add checkstyle plugin configuration
Not enabled by default because many projects do not use it yet. The
plan is to roll it out and then remove the google import detector.

Fixes gh-58
2017-08-29 09:38:26 +01:00
Marcin Grzejszczak 051f13ad4c Merge branch 'master' into 2.0.x 2017-08-29 10:26:38 +02:00
Marcin Grzejszczak bea8723caf Allowed resolution of external URIs 2017-08-29 10:26:32 +02:00
Marcin Grzejszczak 7d36e90a27 Merge branch 'master' into 2.0.x 2017-08-29 10:03:35 +02:00
Marcin Grzejszczak b7bbf68141 Initial approach to new docs (#59) 2017-08-29 09:52:29 +02:00
Ryan Baxter 2b41ae3ff9 Bump version for next release 2017-08-24 15:20:11 -04:00
Ryan Baxter 1ab1e583ae Revert "1.3.4.RELEASE"
This reverts commit ebdc00ddea.
2017-08-24 15:12:37 -04:00
Ryan Baxter ebdc00ddea 1.3.4.RELEASE 2017-08-24 15:06:46 -04:00
Ryan Baxter 450ea884db Fixing boot property 2017-08-24 15:00:49 -04:00
Ryan Baxter 261cbf51ec Bumping boot version 2017-08-24 14:27:57 -04:00
Spencer Gibb b4aaf79a2f Revert "Update to v2.0.0.M2"
This reverts commit f5baba6129.
2017-08-15 11:43:37 -06:00
Spencer Gibb f5baba6129 Update to v2.0.0.M2 2017-08-15 11:43:19 -06:00
Spencer Gibb 0732b82936 Upgrade to spring boot 2.0.0.M3 2017-08-07 18:30:46 -06:00
Kyle Anderson a9ced4513e Maven Configuration Improvements (#57)
* Specify build-helper-maven-plugin Version

* Refactored Deprecated AntRun Plugin Parameter
2017-07-12 15:36:48 -04:00
Dave Syer 2260256ed3 Merge branch 'master' into 2.0.x 2017-06-19 12:03:39 +01:00
Dave Syer 4cc410cfc0 Revert to snapshots 2017-06-19 11:49:11 +01:00
Dave Syer e5ed9b4f90 Update for 1.3.3.RELEASE 2017-06-19 11:42:13 +01:00
Spencer Gibb 6ad3ed0b22 Back to snapshots 2017-06-16 12:17:21 -06:00
Spencer Gibb 4f1796eb56 Bumping versions 2017-06-16 12:15:32 -06:00
Spencer Gibb ec0ece030f Upgrade spring boot to 2.0.0.M2
fixes gh-56
2017-06-16 11:48:29 -06:00
Spencer Gibb 68a2afff02 Merge pull request #55 from mbogoevici/boot-1.5.4
Update Spring Boot to 1.5.4.RELEASE
2017-06-09 15:53:29 -04:00
Marius Bogoevici eb8ffcff45 Update Spring Boot to 1.5.4.RELEASE 2017-06-09 15:33:34 -04:00
Spencer Gibb 9752b851f5 Go back to boot 2.0 snapshots 2017-05-25 10:39:13 -06:00
Spencer Gibb e22b27d906 add spring-boot version back 2017-05-16 13:46:52 -06:00
Spencer Gibb 3ea6161f08 add fixed version 2017-05-16 13:44:16 -06:00
Spencer Gibb 8a15a4f17b fix boot & build-dependencies versions 2017-05-16 13:17:29 -06:00
Spencer Gibb 694511d09e pin to boot 2.0 milestone1 2017-05-16 10:13:52 -06:00
Dave Syer 59b799c981 Merge branch 'master' into 2.0.x 2017-05-16 14:12:08 +01:00
Dave Syer e51364bff5 Add compiler plugin version 2017-05-16 14:11:46 +01:00
Dave Syer 1e0b917050 Set default java version to 1.8 2017-05-12 17:26:02 +01:00
Marcin Grzejszczak aaa6a2c973 Let's start highlighting syntax... (#54) 2017-05-12 14:17:53 +02:00
Jon Schneider de403a2553 Add CircleCI badge to README.adoc 2017-05-11 13:14:12 -05:00
Dave Syer 5ac35865bb Merge branch 'master' into 2.0.x 2017-05-02 10:51:23 +01:00
Ryan Baxter bc6b006ea1 Bumping version for next release 2017-05-01 13:55:40 -04:00
Ryan Baxter 769fd97b4b Revert "Version changes for 1.2.3.RELEASE"
This reverts commit 9032d73724.
2017-05-01 12:01:14 -04:00
Ryan Baxter 9032d73724 Version changes for 1.2.3.RELEASE 2017-05-01 11:56:53 -04:00
Dave Syer 171be768c7 Revert to snapshots 2017-04-26 09:08:57 +01:00
Dave Syer 22e98d294c Update to 1.3.2.RELEASE 2017-04-26 09:07:45 +01:00
Dave Syer db0cd55df2 Remove unused resources 2017-04-24 11:48:18 +01:00
Dave Syer d4257bc99c Add spring-cloud-build-dependencies BOM layer
Users, and even Spring Cloud libraries never need to know about this,
but the extra level of indirection helps because of the commons-logging
dependency, which we want to exclude from Spring Cloud libraries, but
which can only be excluded globally from all of them here. The previous
solution to that problem was to add the exclusion with a spring-core
dependency managed by spring-cloud-build directly. The problem with that
is that it needs to have the spring-core version explicitly, or else
libraries that depend directly on spring-core cannot find the version
(not many libraries *do* depend directly on spring-core so it only hurts
on the margin to not have the version, which is where we were with
1.3.1.RELEASE and lower).
2017-04-24 11:00:42 +01:00
Spencer Gibb 3f0164b477 Bump spring-boot version to 1.4.6 2017-04-20 09:30:34 -06:00
Spencer Gibb 6d233a06dd Remove java7 animal sniffer 2017-03-22 12:11:04 -06:00
Spencer Gibb 2a1f3cb48b Merge branch 'master' into 2.0.x 2017-03-17 18:10:36 -06:00
Ryan Baxter d124c23725 adding circle ci yaml 2017-03-17 14:43:51 -04:00
Ryan Baxter b4e4209ce4 Merge branch 'master' of https://github.com/spring-cloud/spring-cloud-build 2017-03-17 14:33:23 -04:00
Ryan Baxter 055edea9cb adding circle ci config 2017-03-17 14:33:03 -04:00
Ryan Baxter f7ac468ffb Bumping boot version 2017-03-17 12:06:58 -04:00
Marcin Grzejszczak 736d29ac18 Fixed the retrieval of current branch 2017-03-17 10:10:08 +01:00
Marcin Grzejszczak ef8189dc88 Fixed the retrieval of current branch 2017-03-17 09:43:26 +01:00
Dave Syer 0d6033a129 Update to Boot 2.0.0 snaphots 2017-03-16 17:10:38 +00:00
Marcin Grzejszczak 03fd279df1 Added logging to the script 2017-03-10 16:53:19 +01:00
Marcin Grzejszczak 3bfe13c793 Updated ghpages 2017-03-10 16:48:13 +01:00
Marcin Grzejszczak 931e8fe555 Updated ghpages 2017-03-10 16:00:12 +01:00
Marcin Grzejszczak 88118aa277 Don't switch to tag for snapshots 2017-03-10 15:36:59 +01:00
Dave Syer 74a746b71e Revert to snapshots 2017-03-06 12:32:45 +00:00
Dave Syer 541b8f302e Update to 1.3.1 2017-03-06 12:31:37 +00:00
Spencer Gibb 9685ebad24 Update to SNAPSHOTS 2017-03-03 12:15:46 -07:00
Spencer Gibb 058cdab1d6 Update SNAPSHOT to 1.3.1.RC1 2017-03-03 12:06:06 -07:00
Spencer Gibb b33ccfd117 Update to boot 1.5.2.BUILD-SNAPSHOT 2017-03-02 08:36:55 -07:00
Dave Syer 6d169a297a Merge branch '1.2.x' 2017-02-20 10:54:42 +00:00
Dave Syer 76b3e6c32c Manage version of jar plugin to not break STS 2017-02-20 10:50:43 +00:00
Spencer Gibb 9e3d5b843f Merge pull request #49 from tan9/patch-1
Fixed the format of JCenter deploying snippet.
2017-02-14 23:34:46 -05:00
Pei-Tang Huang 9665f34a7f Fixed the format of JCenter deploying snippet. 2017-02-15 09:06:06 +08:00
Dave Syer 49e5d2a1d4 Manage version of jar plugin to not break STS 2017-02-09 17:40:07 +00:00
Dave Syer 3364e45e20 Revert to snapshots 2017-02-03 09:21:24 +00:00
Dave Syer 28ab788e2c Update for 1.2.2.RELEASE 2017-02-03 09:20:24 +00:00
Spencer Gibb 215a981377 Update to boot 1.5.1.BUILD-SNAPSHOT 2017-01-31 06:10:05 -07:00
Ryan Baxter 32ec5e9d77 Revert "1.3.1.M1 version changes"
This reverts commit 85cbefaa8c.
2017-01-09 12:36:48 -05:00
Ryan Baxter 85cbefaa8c 1.3.1.M1 version changes 2017-01-09 12:33:17 -05:00
Ryan Baxter a351473db1 Bumping version to 1.3.1.BUILD-SNAPSHOT 2017-01-09 12:29:53 -05:00
Ryan Baxter fa632a468b Revert "1.3.0.M1 version changes"
This reverts commit 8bd7121d21.
2017-01-09 12:21:38 -05:00
Ryan Baxter 8bd7121d21 1.3.0.M1 version changes 2017-01-09 12:12:58 -05:00
Ryan Baxter e238e08989 Revert "Version changes for 1.3.0.RELEASE"
This reverts commit 49b48d7294.
2017-01-09 11:52:39 -05:00
Ryan Baxter 49b48d7294 Version changes for 1.3.0.RELEASE 2017-01-09 11:47:09 -05:00
Dave Syer 70a448f359 Update to 1.3.0 snapshots 2016-12-02 13:20:07 +00:00
Mark Pollack ade61f45df Add version plugins for maven jar/javadoc/source
* Use latest versions in 2.x family of plugins.
2016-11-19 21:51:22 +00:00
Spencer Gibb 3ce22f282c Merge pull request #44 from copa2/patch-1
Fix typo
2016-11-03 15:29:58 -04:00
copa2 c80858652b Fix typo
Obvious fix
2016-11-02 22:42:52 +01:00
Dave Syer af055cf9c3 Add versions for some plugins 2016-10-24 12:04:31 +01:00
Marcin Grzejszczak 786ffe9db5 Fixing git remote 2016-10-18 15:50:56 +02:00
Marcin Grzejszczak 3abc7bdef4 Added tail to pick proper echoed value 2016-09-22 22:58:45 +02:00
Dave Syer 26a0e7df3d Fix commented out git push
Otherwise the result is not persisted
2016-09-22 12:03:14 +01:00
Dave Syer 96e92e5dd4 Fix project name and git additions
The project name is not necessarily the same as the artifactId
(some projects use *-parent), so it's better to guess from
the git remote.

Also "git add -A <a file>" can easily fail if you add an ignored
file by mistake. It's better just to add the directory.
2016-09-22 11:15:35 +01:00
Dave Syer c68034276a Update ghpages script to do project name discovery
Also uses local mvnw wrapper if it it is there.
2016-09-21 11:50:26 +01:00
Dave Syer 41622b37dc Revert to snapshots 2016-09-21 11:07:24 +01:00
Dave Syer 2d982d3fa9 Update for 1.2.1 2016-09-21 11:07:24 +01:00
Dave Syer da600e5407 Ensure version is scraped from parent pom 2016-09-20 13:48:13 +01:00
Dave Syer 7e273ab445 Update to Boot 1.4.1 snapshots 2016-09-20 10:54:55 +01:00
Marcin Grzejszczak 4b25d38462 Added Syncing of mvnw script 2016-09-15 16:16:18 +02:00
Marcin Grzejszczak 74e01e91c7 Added ReleaseTrain switch 2016-08-23 16:01:53 +02:00
Marcin Grzejszczak 31b59823a2 Fixed bugs in gh-pages
- when (-b) flag was passed there was a check if target contains docs (makes no sense)
- after cloning the Spring Cloud Static we didn't check out gh-pages
2016-08-22 13:27:11 +02:00
Marcin Grzejszczak 66bfb4626b Added automated building and cloning of spring-cloud-static 2016-08-19 11:40:58 +02:00
Marcin Grzejszczak 2a24b23f37 Continuing the script when failing to check out... it happens for Jenkins for some reason 2016-08-18 16:45:45 +02:00
Marcin Grzejszczak fa67b987a3 Continuing the script when failing to check out... it happens for Jenkins for some reason 2016-08-18 16:10:50 +02:00
Marcin Grzejszczak 9726d21b93 Fixed branch resolution
some older repos don't have the docs.main prop. In that case I'm resolving the root file from REPO_NAME
2016-08-18 14:26:36 +02:00
Marcin Grzejszczak 8cec662d57 Added cd to rootfolder for ghpages 2016-08-18 13:43:09 +02:00
Marcin Grzejszczak bc15dd4cf9 Updated synchro script - fixed minor bugs 2016-08-18 13:17:04 +02:00
Marcin Grzejszczak 1c8c65b384 Creating folder in ghpages only when branch is whitelisted 2016-08-18 12:54:07 +02:00
Marcin Grzejszczak 990f3bcca3 Reverting back to previous logic of docs copying 2016-08-18 12:45:18 +02:00
Marcin Grzejszczak d9ab4d4172 Fixed the invalid destination folder for docs 2016-08-18 12:40:20 +02:00
Marcin Grzejszczak 8d7ee9f53a Fixed the wrong script 2016-08-18 12:32:55 +02:00
Marcin Grzejszczak 6ad3ddf539 Updated the gh-pages script to deploy from a tag to given folder 2016-08-18 12:05:15 +02:00
Dave Syer 358898558d Change repo URLs to https 2016-08-17 17:31:20 +01:00
Marcin Grzejszczak 9b126f55ca Added ghpages synchronization script
we have a lot of projects that have ghpages.sh file in different branches. This script will allow to update all of them in a relatively easy way
2016-08-17 12:48:06 +02:00
Marcin Grzejszczak e6b32406dc Hopefully fixed the build for Jenkins 2016-08-16 17:58:07 +02:00
Marcin Grzejszczak 8b482cd8c6 Updated the gh-pages script with path to Maven 2016-08-16 17:52:29 +02:00
Marcin Grzejszczak 0e710b4095 Updated the gh-pages script 2016-08-16 17:42:02 +02:00
Marcin Grzejszczak 7b77bdaf33 Deploying documentation to proper folder
What we're missing ATM is different documentation versions for different application versions. What this change does is that it's:

- finding out what is the current branch (e.g. 1.0.x)
- finding out out what is the name of the main adoc file (e.g. spring-cloud-sleuth)
- pulling the changes from gh-pages after checkout
- finding out what is the list of comma separated whitelisted branches (via the `docs.whitelisted.branches` prop)
- in gh-pages creating a folder with name of the branch  (e.g. /1.0.x)
copying all the docs/target/generated-docs/ to that folder
- if the branch from which we're calling the script is NOT master then we're changing the ${main.adoc}.html to index.html so that it's easier to access the docs (e.g. http://cloud.spring.io/spring-cloud-sleuth/1.0.x/)
2016-08-16 15:53:24 +02:00
Dave Syer 840e080b57 Revert to snapshots 2016-08-16 09:48:57 +01:00
Dave Syer 56d5a65d68 Update to 1.2.0.RELEASE 2016-08-16 09:48:08 +01:00
Dave Syer e5a8be13fe Update travis secrets 2016-08-15 10:29:31 +01:00
Dave Syer 7f967e892e Update Boot version 2016-08-15 10:04:09 +01:00
Dave Syer 8c3e4b80e0 Change link to CLA 2016-07-11 09:18:53 +01:00
Dave Syer 6fb6a6db8a Re-instate .settings.xml for travis 2016-07-06 14:48:30 +01:00
Dave Syer b52bd3e711 Re-instate .settings.xml for travis 2016-07-06 14:47:35 +01:00
Spencer Gibb d4541520ba Update to boot 1.4.0.BUILD-SNAPSHOT and update version to 1.2.0 2016-07-01 13:00:08 -06:00
1426 changed files with 58149 additions and 824 deletions
+39
View File
@@ -0,0 +1,39 @@
version: 2
jobs:
build:
docker:
- image: springcloud/pipeline-base
user: appuser
environment:
_JAVA_OPTIONS: "-Xms1024m -Xmx2048m"
TERM: dumb
branches:
ignore:
- gh-pages # list of branches to ignore
steps:
- checkout
- restore_cache:
key: sc-build-{{ .Branch }}
- run:
name: "Download dependencies"
command: ./mvnw -s .settings.xml -U --fail-never dependency:go-offline || true
- save_cache:
key: sc-build-{{ .Branch }}
paths:
- ~/.m2
- run:
name: "Running build"
command: ./mvnw -s .settings.xml clean org.jacoco:jacoco-maven-plugin:prepare-agent install -U -P sonar -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
- run:
name: "Aggregate test results"
when: always
command: |
mkdir -p ~/junit/
find . -type f -regex ".*/target/.*-reports/.*" -exec cp {} ~/junit/ \;
bash <(curl -s https://codecov.io/bash)
- store_artifacts:
path: ~/junit/
destination: artifacts
- store_test_results:
path: ~/junit/
destination: testartifacts
+28
View File
@@ -0,0 +1,28 @@
root = true
[*.java]
indent_style = tab
indent_size = 4
continuation_indent_size = 8
[*.groovy]
indent_style = tab
indent_size = 4
continuation_indent_size = 8
[*.xml]
indent_style = tab
indent_size = 4
continuation_indent_size = 8
[*.yml]
indent_style = space
indent_size = 2
[*.yaml]
indent_style = space
indent_size = 2
[*.sh]
indent_style = space
indent_size = 4
+45
View File
@@ -0,0 +1,45 @@
# Contributing
Spring Cloud is released under the non-restrictive Apache 2.0 license,
and follows a very standard Github development process, using Github
tracker for issues and merging pull requests into master. If you want
to contribute even something trivial please do not hesitate, but
follow the guidelines below.
## Sign the Contributor License Agreement
Before we accept a non-trivial patch or pull request we will need you to sign the
[Contributor License Agreement](https://cla.pivotal.io/sign/spring).
Signing the contributor's agreement does not grant anyone commit rights to the main
repository, but it does mean that we can accept your contributions, and you will get an
author credit if we do. Active contributors might be asked to join the core team, and
given the ability to merge pull requests.
## Code of Conduct
This project adheres to the Contributor Covenant [code of
conduct](https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc). By participating, you are expected to uphold this code. Please report
unacceptable behavior to spring-code-of-conduct@pivotal.io.
## Code Conventions and Housekeeping
None of these is essential for a pull request, but they will all help. They can also be
added after the original pull request but before a merge.
* Use the Spring Framework code format conventions. If you use Eclipse
you can import formatter settings using the
`eclipse-code-formatter.xml` file from the
[Spring Cloud Build](https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml) project. If using IntelliJ, you can use the
[Eclipse Code Formatter Plugin](https://plugins.jetbrains.com/plugin/6546) to import the same file.
* Make sure all new `.java` files to have a simple Javadoc class comment with at least an
`@author` tag identifying you, and preferably at least a paragraph on what the class is
for.
* Add the ASF license header comment to all new `.java` files (copy from existing files
in the project)
* Add yourself as an `@author` to the .java files that you modify substantially (more
than cosmetic changes).
* Add some Javadocs and, if you change the namespace, some XSD doc elements.
* A few unit tests would help a lot as well -- someone has to do it.
* If no-one else is using your branch, please rebase it against the current master (or
other target branch in the main project).
* When writing a commit message please follow [these conventions](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html),
if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit
message (where XXXX is the issue number).
+20
View File
@@ -0,0 +1,20 @@
<!--
Thanks for raising a Spring Cloud issue. What sort of issue are you raising?
Question
Please ask questions about how to use something, or to understand why something isn't
working as you expect it to, on Stack Overflow using the spring-cloud tag.
Bug report
Please provide details of the problem, including the version of Spring Cloud that you
are using. If possible, please provide a test case or sample application that reproduces
the problem. This makes it much easier for us to diagnose the problem and to verify that
we have fixed it.
Enhancement
Please start by describing the problem that you are trying to solve. There may already
be a solution, or there may be a way to solve it that you hadn't considered.
-->
+3
View File
@@ -16,3 +16,6 @@ _site/
.idea
*.iml
.factorypath
.vscode/
.flattened-pom.xml
.DS_Store
+6
View File
@@ -0,0 +1,6 @@
[submodule "docs/src/test/bats/test_helper/bats-assert"]
path = docs/src/test/bats/test_helper/bats-assert
url = https://github.com/ztombol/bats-assert
[submodule "docs/src/test/bats/test_helper/bats-support"]
path = docs/src/test/bats/test_helper/bats-support
url = https://github.com/ztombol/bats-support
+1 -1
View File
@@ -1 +1 @@
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip
+68
View File
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<servers>
<server>
<id>repo.spring.io</id>
<username>${env.CI_DEPLOY_USERNAME}</username>
<password>${env.CI_DEPLOY_PASSWORD}</password>
</server>
</servers>
<profiles>
<profile>
<!--
N.B. this profile is only here to support users and IDEs that do not use Maven 3.3.
It isn't needed on the command line if you use the wrapper script (mvnw) or if you use
a native Maven with the right version. Eclipse users should points their Maven tooling to
this settings file, or copy the profile into their ~/.m2/settings.xml.
-->
<id>spring</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
View File
-27
View File
@@ -1,27 +0,0 @@
sudo: false
language: java
before_install:
- echo Using MVN_GOAL=${MVN_GOAL} for SPRING_CLOUD_BUILD=${SPRING_CLOUD_BUILD}
- git config user.name "$GIT_NAME"
- git config user.email "$GIT_EMAIL"
- git config credential.helper "store --file=.git/credentials"
- echo "https://$GH_TOKEN:@github.com" > .git/credentials
- gem install asciidoctor
install:
- ./mvnw install -P docs -q -U -DskipTests=true -Dmaven.test.redirectTestOutputToFile=true
- '[ "${MVN_GOAL}" == "deploy" ] && ./docs/src/main/asciidoc/ghpages.sh || echo "Not updating docs"'
script:
- './mvnw $MVN_GOAL $MVN_PROFILE -nsu -Dmaven.test.redirectTestOutputToFile=true'
env:
global:
- GIT_NAME="Dave Syer"
- GIT_EMAIL=dsyer@pivotal.io
- CI_DEPLOY_USERNAME=buildmaster
- FEATURE_BRANCH=$(echo ${TRAVIS_BRANCH} | grep "^.*/.*$" && echo true || echo false)
- SPRING_CLOUD_BUILD=$(echo ${TRAVIS_REPO_SLUG} | grep -q "^spring-cloud/.*$" && echo true || echo false)
#- MVN_GOAL=$([ "${TRAVIS_PULL_REQUEST}" == "false" -a "${TRAVIS_TAG}" == "" -a "${FEATURE_BRANCH}" == "false" -a "${SPRING_CLOUD_BUILD}" == "true" ] && echo deploy || echo install)
- MVN_GOAL=install
- VERSION=$(mvn validate | grep Building | head -1 | sed -e 's/.* //')
- MILESTONE=$(echo ${VERSION} | egrep 'M|RC' && echo true || echo false)
- MVN_PROFILE=$([ "${MILESTONE}" == "true" ] && echo -P milestone)
- secure: "LJf0hWIf2CT5JGXyokvBLK7YcOR8jA/Ajy9JadW6XSIpcwOFnZ/ssuOV2V3ISdBfufEukfaK19WVO4th/UBvjQd9JhZwMoPpu37ybSjd62hZHuIRZnyVlXxvDM/+OYR2TCR5XXb7G86fXsmmY6u9IOJ8PIVRvskH9LCwSei9vBg="
+2 -2
View File
@@ -1,7 +1,7 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
https://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
@@ -193,7 +193,7 @@
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
https://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,
+297 -7
View File
@@ -1,4 +1,10 @@
// Do not edit this file (e.g. go instead to docs/src/main/asciidoc)
////
DO NOT EDIT THIS FILE. IT WAS GENERATED.
Manual changes to this file will be lost when it is generated again.
Edit the files in the src/main/asciidoc/ directory instead.
////
image:https://circleci.com/gh/spring-cloud/spring-cloud-build.svg?style=svg[link="https://travis-ci.org/spring-cloud/spring-cloud-build"]
Spring Cloud Build is a common utility project for Spring Cloud
to use for plugin and dependency management.
@@ -26,9 +32,9 @@ $ mvn deploy -DaltReleaseDeploymentRepository=repo.spring.io::default::https://r
and for jcenter use
---
----
$ mvn deploy -DaltReleaseDeploymentRepository=bintray::default::https://api.bintray.com/maven/spring/jars/org.springframework.cloud:build
---
----
and for Maven Central use
@@ -40,6 +46,8 @@ $ mvn deploy -P central -DaltReleaseDeploymentRepository=sonatype-nexus-staging:
== Contributing
:spring-cloud-build-branch: master
Spring Cloud is released under the non-restrictive Apache 2.0 license,
and follows a very standard Github development process, using Github
tracker for issues and merging pull requests into master. If you want
@@ -48,7 +56,7 @@ follow the guidelines below.
=== Sign the Contributor License Agreement
Before we accept a non-trivial patch or pull request we will need you to sign the
https://support.springsource.com/spring_committer_signup[contributor's agreement].
https://cla.pivotal.io/sign/spring[Contributor License Agreement].
Signing the contributor's agreement does not grant anyone commit rights to the main
repository, but it does mean that we can accept your contributions, and you will get an
author credit if we do. Active contributors might be asked to join the core team, and
@@ -68,7 +76,7 @@ added after the original pull request but before a merge.
`eclipse-code-formatter.xml` file from the
https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring
Cloud Build] project. If using IntelliJ, you can use the
http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter
https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter
Plugin] to import the same file.
* Make sure all new `.java` files to have a simple Javadoc class comment with at least an
`@author` tag identifying you, and preferably at least a paragraph on what the class is
@@ -81,6 +89,288 @@ added after the original pull request but before a merge.
* A few unit tests would help a lot as well -- someone has to do it.
* If no-one else is using your branch, please rebase it against the current master (or
other target branch in the main project).
* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
* When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit
message (where XXXX is the issue number).
message (where XXXX is the issue number).
=== Checkstyle
Spring Cloud Build comes with a set of checkstyle rules. You can find them in the `spring-cloud-build-tools` module. The most notable files under the module are:
.spring-cloud-build-tools/
----
└── src
   ├── checkstyle
   │   └── checkstyle-suppressions.xml <3>
   └── main
   └── resources
   ├── checkstyle-header.txt <2>
   └── checkstyle.xml <1>
----
<1> Default Checkstyle rules
<2> File header setup
<3> Default suppression rules
==== Checkstyle configuration
Checkstyle rules are *disabled by default*. To add checkstyle to your project just define the following properties and plugins.
.pom.xml
----
<properties>
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError> <1>
<maven-checkstyle-plugin.failsOnViolation>true
</maven-checkstyle-plugin.failsOnViolation> <2>
<maven-checkstyle-plugin.includeTestSourceDirectory>true
</maven-checkstyle-plugin.includeTestSourceDirectory> <3>
</properties>
<build>
<plugins>
<plugin> <4>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
</plugin>
<plugin> <5>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
<reporting>
<plugins>
<plugin> <5>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</build>
----
<1> Fails the build upon Checkstyle errors
<2> Fails the build upon Checkstyle violations
<3> Checkstyle analyzes also the test sources
<4> Add the Spring Java Format plugin that will reformat your code to pass most of the Checkstyle formatting rules
<5> Add checkstyle plugin to your build and reporting phases
If you need to suppress some rules (e.g. line length needs to be longer), then it's enough for you to define a file under `${project.root}/src/checkstyle/checkstyle-suppressions.xml` with your suppressions. Example:
.projectRoot/src/checkstyle/checkstyle-suppresions.xml
----
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"https://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files=".*ConfigServerApplication\.java" checks="HideUtilityClassConstructor"/>
<suppress files=".*ConfigClientWatch\.java" checks="LineLengthCheck"/>
</suppressions>
----
It's advisable to copy the `${spring-cloud-build.rootFolder}/.editorconfig` and `${spring-cloud-build.rootFolder}/.springformat` to your project. That way, some default formatting rules will be applied. You can do so by running this script:
```bash
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig
$ touch .springformat
```
=== IDE setup
==== Intellij IDEA
In order to setup Intellij you should import our coding conventions, inspection profiles and set up the checkstyle plugin.
The following files can be found in the https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build] project.
.spring-cloud-build-tools/
----
└── src
   ├── checkstyle
   │   └── checkstyle-suppressions.xml <3>
   └── main
   └── resources
   ├── checkstyle-header.txt <2>
   ├── checkstyle.xml <1>
   └── intellij
      ├── Intellij_Project_Defaults.xml <4>
      └── Intellij_Spring_Boot_Java_Conventions.xml <5>
----
<1> Default Checkstyle rules
<2> File header setup
<3> Default suppression rules
<4> Project defaults for Intellij that apply most of Checkstyle rules
<5> Project style conventions for Intellij that apply most of Checkstyle rules
.Code style
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-code-style.png[Code style]
Go to `File` -> `Settings` -> `Editor` -> `Code style`. There click on the icon next to the `Scheme` section. There, click on the `Import Scheme` value and pick the `Intellij IDEA code style XML` option. Import the `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml` file.
.Inspection profiles
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-inspections.png[Code style]
Go to `File` -> `Settings` -> `Editor` -> `Inspections`. There click on the icon next to the `Profile` section. There, click on the `Import Profile` and import the `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml` file.
.Checkstyle
To have Intellij work with Checkstyle, you have to install the `Checkstyle` plugin. It's advisable to also install the `Assertions2Assertj` to automatically convert the JUnit assertions
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-checkstyle.png[Checkstyle]
Go to `File` -> `Settings` -> `Other settings` -> `Checkstyle`. There click on the `+` icon in the `Configuration file` section. There, you'll have to define where the checkstyle rules should be picked from. In the image above, we've picked the rules from the cloned Spring Cloud Build repository. However, you can point to the Spring Cloud Build's GitHub repository (e.g. for the `checkstyle.xml` : `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). We need to provide the following variables:
- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL.
- `checkstyle.suppressions.file` - default suppressions. Please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` URL.
- `checkstyle.additional.suppressions.file` - this variable corresponds to suppressions in your local project. E.g. you're working on `spring-cloud-contract`. Then point to the `project-root/src/checkstyle/checkstyle-suppressions.xml` folder. Example for `spring-cloud-contract` would be: `/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`.
IMPORTANT: Remember to set the `Scan Scope` to `All sources` since we apply checkstyle rules for production and test sources.
== Flattening the POMs
To avoid propagating build setup that is required to build a Spring Cloud project, we're using the maven flatten plugin. It has the advantage of letting you use whatever features you need while publishing "clean" pom to the repository.
In order to add it, add the `org.codehaus.mojo:flatten-maven-plugin` to your `pom.xml`.
[source,xml]
----
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
----
== Reusing the documentation
Spring Cloud Build publishes its `spring-cloud-build-docs` module that contains
helpful scripts (e.g. README generation ruby script) and css, xslt and images
for the Spring Cloud documentation. If you want to follow the same convention
approach of generating documentation just add these plugins to your `docs` module
[source,xml]
----
<profiles>
<profile>
<id>docs</id>
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId> <1>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId> <2>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId> <3>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId> <4>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId> <5>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId> <6>
</plugin>
</plugins>
</build>
</profile>
</profiles>
----
<2> This plugin downloads sets up all the git information of the project
<2> This plugin downloads the resources of the `spring-cloud-build-docs` module
<3> This plugin unpacks the resources of the `spring-cloud-build-docs` module
<4> This plugin generates an `adoc` file with all the configuration properties from the classpath
<5> This plugin is required to parse the Asciidoctor documentation
<6> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links
IMPORTANT: The order of plugin declaration is important!
In order for the build to generate the `adoc` file with all your configuration properties, your `docs` module should contain all the dependencies on the classpath, that you would want to scan for configuration properties. The file will be output to `${docsModule}/src/main/asciidoc/_configprops.adoc` file (configurable via the `configprops.path` property).
If you want to modify which of the configuration properties are put in the table, you can tweak the `configprops.inclusionPattern` pattern to include only a subset of the properties (e.g. `<configprops.inclusionPattern>spring.sleuth.*</configprops.inclusionPattern>`).
Spring Cloud Build Docs comes with a set of attributes for asciidoctor that you can reuse.
[source,xml]
----
<attributes>
<docinfo>shared</docinfo>
<allow-uri-read>true</allow-uri-read>
<nofooter/>
<toc>left</toc>
<toc-levels>4</toc-levels>
<sectlinks>true</sectlinks>
<sources-root>${project.basedir}/src</sources-root>
<asciidoc-sources-root>${project.basedir}/src/main/asciidoc</asciidoc-sources-root>
<generated-resources-root>${project.basedir}/target/generated-resources
</generated-resources-root>
<!-- Use this attribute the reference code from another module -->
<!-- Note the @ at the end, lowering the precedence of the attribute -->
<project-root>${maven.multiModuleProjectDirectory}@</project-root>
<!-- It's mandatory for you to pass the docs.main property -->
<github-repo>${docs.main}</github-repo>
<github-raw>
https://raw.githubusercontent.com/spring-cloud/${docs.main}/${github-tag}@
</github-raw>
<github-code>https://github.com/spring-cloud/${docs.main}/tree/${github-tag}@
</github-code>
<github-issues>https://github.com/spring-cloud/${docs.main}/issues/@</github-issues>
<github-wiki>https://github.com/spring-cloud/${docs.main}/wiki@</github-wiki>
<github-master-code>https://github.com/spring-cloud/${docs.main}/tree/master
</github-master-code>
<index-link>${index-link}@</index-link>
<!-- Spring Cloud specific -->
<!-- for backward compatibility -->
<spring-cloud-version>${project.version}@</spring-cloud-version>
<project-version>${project.version}@</project-version>
<github-tag>${github-tag}@</github-tag>
<version-type>${version-type}@</version-type>
<docs-url>${docs-url}@</docs-url>
<raw-docs-url>${raw-docs-url}@</raw-docs-url>
<project-version>${project.version}@</project-version>
<project-name>${docs.main}@</project-name>
</attributes>
----
== Updating the guides
We assume that your project contains guides under the `guides` folder.
```
.
└── guides
├── gs-guide1
├── gs-guide2
└── gs-guide3
```
This means that the project contains 3 guides that would
correspond to the following guides in Spring Guides org.
- https://github.com/spring-guides/gs-guide1
- https://github.com/spring-guides/gs-guide2
- https://github.com/spring-guides/gs-guide3
If you deploy your project with the `-Pguides` profile like this
```
$ ./mvnw clean deploy -Pguides
```
what will happen is that for GA project versions, we will clone `gs-guide1`, `gs-guide2` and `gs-guide3` and update their contents with the ones being under your `guides` project.
You can skip this by either not adding the `guides` profile, or passing the `-DskipGuides` system property when the profile is turned on.
You can configure the project version passed to guides via the `guides-project.version` (defaults to `${project.version}`). The phase at which guides get updated can be configured by `guides-update.phase` (defaults to `deploy`).
+4
View File
@@ -0,0 +1,4 @@
releaser:
maven:
buildCommand: ./scripts/build.sh {{systemProps}}
# deployCommand: echo "skip deploy"
+186
View File
@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-cloud-build-docs</artifactId>
<name>spring-cloud-build-docs</name>
<packaging>jar</packaging>
<description>Spring Cloud Build Docs</description>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>2.2.0.RELEASE</version>
</parent>
<properties>
<docs.main>spring-cloud-build</docs.main>
<!-- Comma separated list of whitelisted branches -->
<docs.whitelisted.branches>1.2.x,1.3.x,2.0.x,2.1.x</docs.whitelisted.branches>
<main.basedir>${basedir}/..</main.basedir>
<gmavenplus-plugin.version>1.8.1</gmavenplus-plugin.version>
<groovy.version>2.5.8</groovy.version>
<!-- We don't want to downloaded sources of our own project-->
<maven-dependency-plugin-for-docs.phase>none</maven-dependency-plugin-for-docs.phase>
<docs.resources.dir>${project.basedir}/src/main/</docs.resources.dir>
</properties>
<dependencies>
<!-- Script -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-nio</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main</directory>
<excludes>
<exclude>groovy/**/*.*</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/groovy</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>${gmavenplus-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>addSources</goal>
<goal>generateStubs</goal>
<goal>generateTestStubs</goal>
<goal>groovydoc-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>docs</id>
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>unix</id>
<activation>
<os>
<family>unix</family>
<name>Linux</name>
</os>
</activation>
<build>
<plugins>
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>Run tests</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${skipTests}</skip>
<!-- <skip>true</skip> -->
<executable>${basedir}/src/test/bash/run-bats.sh</executable>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
+2
View File
@@ -0,0 +1,2 @@
META-INF/
org/
+117 -3
View File
@@ -1,3 +1,5 @@
image:https://circleci.com/gh/spring-cloud/spring-cloud-build.svg?style=svg[link="https://travis-ci.org/spring-cloud/spring-cloud-build"]
Spring Cloud Build is a common utility project for Spring Cloud
to use for plugin and dependency management.
@@ -24,9 +26,9 @@ $ mvn deploy -DaltReleaseDeploymentRepository=repo.spring.io::default::https://r
and for jcenter use
---
----
$ mvn deploy -DaltReleaseDeploymentRepository=bintray::default::https://api.bintray.com/maven/spring/jars/org.springframework.cloud:build
---
----
and for Maven Central use
@@ -38,4 +40,116 @@ $ mvn deploy -P central -DaltReleaseDeploymentRepository=sonatype-nexus-staging:
== Contributing
include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/contributing.adoc[]
include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/contributing.adoc[]
== Flattening the POMs
To avoid propagating build setup that is required to build a Spring Cloud project, we're using the maven flatten plugin. It has the advantage of letting you use whatever features you need while publishing "clean" pom to the repository.
In order to add it, add the `org.codehaus.mojo:flatten-maven-plugin` to your `pom.xml`.
[source,xml]
----
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
----
== Reusing the documentation
Spring Cloud Build publishes its `spring-cloud-build-docs` module that contains
helpful scripts (e.g. README generation ruby script) and css, xslt and images
for the Spring Cloud documentation. If you want to follow the same convention
approach of generating documentation just add these plugins to your `docs` module
[source,xml]
----
<profiles>
<profile>
<id>docs</id>
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId> <1>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId> <2>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId> <3>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId> <4>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId> <5>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId> <6>
</plugin>
</plugins>
</build>
</profile>
</profiles>
----
<2> This plugin downloads sets up all the git information of the project
<2> This plugin downloads the resources of the `spring-cloud-build-docs` module
<3> This plugin unpacks the resources of the `spring-cloud-build-docs` module
<4> This plugin generates an `adoc` file with all the configuration properties from the classpath
<5> This plugin is required to parse the Asciidoctor documentation
<6> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links
IMPORTANT: The order of plugin declaration is important!
In order for the build to generate the `adoc` file with all your configuration properties, your `docs` module should contain all the dependencies on the classpath, that you would want to scan for configuration properties. The file will be output to `${docsModule}/src/main/asciidoc/_configprops.adoc` file (configurable via the `configprops.path` property).
If you want to modify which of the configuration properties are put in the table, you can tweak the `configprops.inclusionPattern` pattern to include only a subset of the properties (e.g. `<configprops.inclusionPattern>spring.sleuth.*</configprops.inclusionPattern>`).
Spring Cloud Build Docs comes with a set of attributes for asciidoctor that you can reuse.
[source,xml]
----
include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/pom.xml[tags=attributes,indent=0]
----
== Updating the guides
We assume that your project contains guides under the `guides` folder.
```
.
└── guides
├── gs-guide1
├── gs-guide2
└── gs-guide3
```
This means that the project contains 3 guides that would
correspond to the following guides in Spring Guides org.
- https://github.com/spring-guides/gs-guide1
- https://github.com/spring-guides/gs-guide2
- https://github.com/spring-guides/gs-guide3
If you deploy your project with the `-Pguides` profile like this
```
$ ./mvnw clean deploy -Pguides
```
what will happen is that for GA project versions, we will clone `gs-guide1`, `gs-guide2` and `gs-guide3` and update their contents with the ones being under your `guides` project.
You can skip this by either not adding the `guides` profile, or passing the `-DskipGuides` system property when the profile is turned on.
You can configure the project version passed to guides via the `guides-project.version` (defaults to `${project.version}`). The phase at which guides get updated can be configured by `guides-update.phase` (defaults to `deploy`).
+5 -5
View File
@@ -31,7 +31,7 @@ credentials and you already have those.
The projects that require middleware generally include a
`docker-compose.yml`, so consider using
http://compose.docker.io/[Docker Compose] to run the middeware servers
https://docs.docker.com/compose/[Docker Compose] to run the middeware servers
in Docker containers. See the README in the
https://github.com/spring-cloud-samples/scripts[scripts demo
repository] for specific instructions about the common cases of mongo,
@@ -53,13 +53,13 @@ a modified file in the correct place. Just commit it and push the change.
=== Working with the code
If you don't have an IDE preference we would recommend that you use
http://www.springsource.com/developer/sts[Spring Tools Suite] or
http://eclipse.org[Eclipse] when working with the code. We use the
http://eclipse.org/m2e/[m2eclipe] eclipse plugin for maven support. Other IDEs and tools
https://www.springsource.com/developer/sts[Spring Tools Suite] or
https://eclipse.org[Eclipse] when working with the code. We use the
https://eclipse.org/m2e/[m2eclipse] eclipse plugin for maven support. Other IDEs and tools
should also work without issue as long as they use Maven 3.3.3 or better.
==== Importing into eclipse with m2eclipse
We recommend the http://eclipse.org/m2e/[m2eclipe] eclipse plugin when working with
We recommend the https://eclipse.org/m2e/[m2eclipse] eclipse plugin when working with
eclipse. If you don't already have m2eclipse installed it is available from the "eclipse
marketplace".
@@ -1,33 +0,0 @@
==== Adding Project Lombok Agent
Spring Cloud uses http://projectlombok.org/features/index.html[Project Lombok]
to generate getters and setters etc. Compiling from the command line this
shouldn't cause any problems, but in an IDE you need to add an agent
to the JVM. Full instructions can be found in the Lombok website. The
sign that you need to do this is a lot of compiler errors to do with
missing methods and fields, e.g.
[indent=0]
----
The method getInitialStatus() is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 120 Java Problem
The method getInitialStatus() is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 121 Java Problem
The method setNonSecurePort(int) is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 112 Java Problem
The type EurekaInstanceConfigBean.IdentifyingDataCenterInfo must implement the inherited abstract method DataCenterInfo.getName() EurekaInstanceConfigBean.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 131 Java Problem
The method getId() is undefined for the type ProxyRouteLocator.ProxyRouteSpec PreDecorationFilter.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/pre line 60 Java Problem
The method getLocation() is undefined for the type ProxyRouteLocator.ProxyRouteSpec PreDecorationFilter.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/pre line 55 Java Problem
----
==== Importing into Intellij
Spring Cloud projects use annotation processing, particularly Lombok, which requires configuration
or you will encounter compile problems. It also needs a specific version of maven and a profile
enabled. Intellij 14.1+ requires some configuration to ensure these are setup properly.
1. Click Preferences, Plugins. *Ensure Lombok is installed*
2. Click New, Project from Existing Sources, choose your spring-cloud project directory
3. Choose Maven, and select Environment Settings. *Ensure you are using Maven 3.3.3*
4. In the next screen, *Select the profile `spring`* click Next until Finish.
5. Click Preferences, "Build, Execution, Deployment", Compiler, Annotation Processors. *Click Enable Annotation Processing*
6. Click Build, Rebuild Project, and you are ready to go!
==== Importing into other IDEs
Maven is well supported by most Java IDEs. Refer to you vendor documentation.
+2 -2
View File
@@ -41,5 +41,5 @@ appropriate to the circumstances. Maintainers are obligated to maintain confiden
with regard to the reporter of an incident.
This Code of Conduct is adapted from the
http://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at
http://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/]
https://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at
https://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/]
+138 -3
View File
@@ -1,3 +1,5 @@
:spring-cloud-build-branch: master
Spring Cloud is released under the non-restrictive Apache 2.0 license,
and follows a very standard Github development process, using Github
tracker for issues and merging pull requests into master. If you want
@@ -6,7 +8,7 @@ follow the guidelines below.
=== Sign the Contributor License Agreement
Before we accept a non-trivial patch or pull request we will need you to sign the
https://support.springsource.com/spring_committer_signup[contributor's agreement].
https://cla.pivotal.io/sign/spring[Contributor License Agreement].
Signing the contributor's agreement does not grant anyone commit rights to the main
repository, but it does mean that we can accept your contributions, and you will get an
author credit if we do. Active contributors might be asked to join the core team, and
@@ -26,7 +28,7 @@ added after the original pull request but before a merge.
`eclipse-code-formatter.xml` file from the
https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring
Cloud Build] project. If using IntelliJ, you can use the
http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter
https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter
Plugin] to import the same file.
* Make sure all new `.java` files to have a simple Javadoc class comment with at least an
`@author` tag identifying you, and preferably at least a paragraph on what the class is
@@ -39,6 +41,139 @@ added after the original pull request but before a merge.
* A few unit tests would help a lot as well -- someone has to do it.
* If no-one else is using your branch, please rebase it against the current master (or
other target branch in the main project).
* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
* When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit
message (where XXXX is the issue number).
=== Checkstyle
Spring Cloud Build comes with a set of checkstyle rules. You can find them in the `spring-cloud-build-tools` module. The most notable files under the module are:
.spring-cloud-build-tools/
----
└── src
   ├── checkstyle
   │   └── checkstyle-suppressions.xml <3>
   └── main
   └── resources
   ├── checkstyle-header.txt <2>
   └── checkstyle.xml <1>
----
<1> Default Checkstyle rules
<2> File header setup
<3> Default suppression rules
==== Checkstyle configuration
Checkstyle rules are *disabled by default*. To add checkstyle to your project just define the following properties and plugins.
.pom.xml
----
<properties>
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError> <1>
<maven-checkstyle-plugin.failsOnViolation>true
</maven-checkstyle-plugin.failsOnViolation> <2>
<maven-checkstyle-plugin.includeTestSourceDirectory>true
</maven-checkstyle-plugin.includeTestSourceDirectory> <3>
</properties>
<build>
<plugins>
<plugin> <4>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
</plugin>
<plugin> <5>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
<reporting>
<plugins>
<plugin> <5>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</build>
----
<1> Fails the build upon Checkstyle errors
<2> Fails the build upon Checkstyle violations
<3> Checkstyle analyzes also the test sources
<4> Add the Spring Java Format plugin that will reformat your code to pass most of the Checkstyle formatting rules
<5> Add checkstyle plugin to your build and reporting phases
If you need to suppress some rules (e.g. line length needs to be longer), then it's enough for you to define a file under `${project.root}/src/checkstyle/checkstyle-suppressions.xml` with your suppressions. Example:
.projectRoot/src/checkstyle/checkstyle-suppresions.xml
----
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"https://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files=".*ConfigServerApplication\.java" checks="HideUtilityClassConstructor"/>
<suppress files=".*ConfigClientWatch\.java" checks="LineLengthCheck"/>
</suppressions>
----
It's advisable to copy the `${spring-cloud-build.rootFolder}/.editorconfig` and `${spring-cloud-build.rootFolder}/.springformat` to your project. That way, some default formatting rules will be applied. You can do so by running this script:
```bash
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig
$ touch .springformat
```
=== IDE setup
==== Intellij IDEA
In order to setup Intellij you should import our coding conventions, inspection profiles and set up the checkstyle plugin.
The following files can be found in the https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build] project.
.spring-cloud-build-tools/
----
└── src
   ├── checkstyle
   │   └── checkstyle-suppressions.xml <3>
   └── main
   └── resources
   ├── checkstyle-header.txt <2>
   ├── checkstyle.xml <1>
   └── intellij
      ├── Intellij_Project_Defaults.xml <4>
      └── Intellij_Spring_Boot_Java_Conventions.xml <5>
----
<1> Default Checkstyle rules
<2> File header setup
<3> Default suppression rules
<4> Project defaults for Intellij that apply most of Checkstyle rules
<5> Project style conventions for Intellij that apply most of Checkstyle rules
.Code style
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-code-style.png[Code style]
Go to `File` -> `Settings` -> `Editor` -> `Code style`. There click on the icon next to the `Scheme` section. There, click on the `Import Scheme` value and pick the `Intellij IDEA code style XML` option. Import the `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml` file.
.Inspection profiles
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-inspections.png[Code style]
Go to `File` -> `Settings` -> `Editor` -> `Inspections`. There click on the icon next to the `Profile` section. There, click on the `Import Profile` and import the `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml` file.
.Checkstyle
To have Intellij work with Checkstyle, you have to install the `Checkstyle` plugin. It's advisable to also install the `Assertions2Assertj` to automatically convert the JUnit assertions
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-checkstyle.png[Checkstyle]
Go to `File` -> `Settings` -> `Other settings` -> `Checkstyle`. There click on the `+` icon in the `Configuration file` section. There, you'll have to define where the checkstyle rules should be picked from. In the image above, we've picked the rules from the cloned Spring Cloud Build repository. However, you can point to the Spring Cloud Build's GitHub repository (e.g. for the `checkstyle.xml` : `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). We need to provide the following variables:
- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL.
- `checkstyle.suppressions.file` - default suppressions. Please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` URL.
- `checkstyle.additional.suppressions.file` - this variable corresponds to suppressions in your local project. E.g. you're working on `spring-cloud-contract`. Then point to the `project-root/src/checkstyle/checkstyle-suppressions.xml` folder. Example for `spring-cloud-contract` would be: `/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`.
IMPORTANT: Remember to set the `Scan Scope` to `All sources` since we apply checkstyle rules for production and test sources.
+391 -41
View File
@@ -1,54 +1,404 @@
#!/bin/bash -x
#!/bin/bash
git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'`
# Usage: (cd <project root>; ghpages.sh -v <version> -b -c)
if ! (git remote set-branches --add origin gh-pages && git fetch -q); then
echo "No gh-pages, so not syncing"
exit 0
fi
set -e
if ! [ -d docs/target/generated-docs ]; then
echo "No gh-pages sources in docs/target/generated-docs, so not syncing"
exit 0
fi
export GIT_BIN ROOT_FOLDER COMMIT_CHANGES MAVEN_PATH MAVEN_EXEC REPO_NAME SPRING_CLOUD_STATIC_REPO SPRING_CLOUD_STATIC_REPO_DESTINATION
export CURRENT_BRANCH PREVIOUS_BRANCH
export GITHUB_REPO_USERNAME_ENV="${GITHUB_REPO_USERNAME_ENV:-GITHUB_REPO_USERNAME}"
export GITHUB_REPO_PASSWORD_ENV="${GITHUB_REPO_PASSWORD_ENV:-GITHUB_REPO_PASSWORD}"
REPO_USER="${!GITHUB_REPO_USERNAME_ENV}"
REPO_PASS="${!GITHUB_REPO_PASSWORD_ENV}"
export SPRING_CLOUD_STATIC_REPO_DESTINATION="${SPRING_CLOUD_STATIC_REPO_DESTINATION:-$( dirname "$(mktemp)")/}"
# Find name of current branch
###################################################################
branch=$TRAVIS_BRANCH
[ "$branch" == "" ] && branch=`git rev-parse --abbrev-ref HEAD`
target=.
if [ "$branch" != "master" ]; then target=./$branch; mkdir -p $target; fi
GIT_BIN="${GIT_BIN:-git}"
# The script should be executed from the root folder
ROOT_FOLDER="$( pwd )"
echo "Current folder is [${ROOT_FOLDER}]"
echo "Spring Cloud Static repo is [${SPRING_CLOUD_STATIC_REPO_DESTINATION}]"
# Set default props like MAVEN_PATH, ROOT_FOLDER etc.
function set_default_props() {
if [[ ! -e "${ROOT_FOLDER}/.git" ]]; then
echo "You're not in the root folder of the project!"
exit 1
fi
# Prop that will let commit the changes
COMMIT_CHANGES="no"
MAVEN_PATH=${MAVEN_PATH:-}
if [ -e "${ROOT_FOLDER}/mvnw" ]; then
MAVEN_EXEC="$ROOT_FOLDER/mvnw"
else
MAVEN_EXEC="${MAVEN_PATH}mvn"
fi
echo "Path to Maven is [${MAVEN_EXEC}]"
if [ -z "${REPO_NAME}" ]; then
REPO_NAME="$("${GIT_BIN}" remote -v | grep origin | head -1 | sed -e 's!.*/!!' -e 's/ .*//' -e 's/\.git.*//')"
fi
echo "Repo name is [${REPO_NAME}]"
SPRING_CLOUD_STATIC_REPO=${SPRING_CLOUD_STATIC_REPO:-git@github.com:spring-cloud/spring-cloud-static.git}
echo "Spring Cloud Static repo is [${SPRING_CLOUD_STATIC_REPO}"
}
# Adds the oauth token if present to the remote url
function add_oauth_token_to_remote_url() {
local remote
remote="$( "${GIT_BIN}" config remote.origin.url | sed -e 's/^git:/https:/' )"
echo "Current remote [${remote}]"
if [[ ${remote} != *".git" ]]; then
echo "Remote doesn't end with [.git]"
remote="${remote}.git"
echo "Remote with [.git] suffix: [${remote}]"
fi
if [[ "${REPO_USER}" != "" && ${remote} != *"@"* ]]; then
withUserAndPass=${remote/https:\/\//https://${REPO_USER}:${REPO_PASS}@}
echo "Username and password found. Will reuse it to push the code to [${withUserAndPass}]"
"${GIT_BIN}" remote set-url --push origin "${withUserAndPass}"
elif [[ "${RELEASER_GIT_OAUTH_TOKEN}" != "" && ${remote} != *"@"* ]]; then
withToken=${remote/https:\/\//https://${RELEASER_GIT_OAUTH_TOKEN}@}
echo "OAuth token found. Will reuse it to push the code to [${withToken}]"
"${GIT_BIN}" remote set-url --push origin "${withToken}"
else
echo "No OAuth token found. Will push to [${remote}]"
"${GIT_BIN}" remote set-url --push origin "${remote}"
fi
}
# Check if gh-pages exists and docs have been built
function check_if_anything_to_sync() {
add_oauth_token_to_remote_url
if [[ "${RELEASE_TRAIN}" != "yes" ]] && ! ("${GIT_BIN}" remote set-branches --add origin gh-pages && "${GIT_BIN}" fetch -q) ; then
echo "No gh-pages, so not syncing"
exit 0
fi
if ! [ -d docs/target/generated-docs ] && ! [ "${BUILD}" == "yes" ]; then
echo "No gh-pages sources in docs/target/generated-docs, so not syncing"
exit 0
fi
}
function retrieve_current_branch() {
# Code getting the name of the current branch. For master we want to publish as we did until now
# https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch
# If there is a branch already passed will reuse it - otherwise will try to find it
CURRENT_BRANCH=${BRANCH}
if [[ -z "${CURRENT_BRANCH}" ]] ; then
CURRENT_BRANCH=$("${GIT_BIN}" symbolic-ref -q HEAD)
CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/}
CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD}
fi
echo "Current branch is [${CURRENT_BRANCH}]"
"${GIT_BIN}" checkout "${CURRENT_BRANCH}" || echo "Failed to check the branch... continuing with the script"
PREVIOUS_BRANCH="${CURRENT_BRANCH}"
echo "Previous branch was [${PREVIOUS_BRANCH}]"
}
# Switches to the provided value of the release version. We always prefix it with `v`
function switch_to_tag() {
if [[ "${RELEASE_TRAIN}" != "yes" ]] ; then
"${GIT_BIN}" checkout v"${VERSION}"
else
echo "Not switching to tag"
fi
}
# Build the docs if switch is on
function build_docs_if_applicable() {
if [[ "${BUILD}" == "yes" ]] ; then
./mvnw clean install -P docs -pl docs -DskipTests
else
echo "Not building docs"
fi
}
# Get the name of the `docs.main` property
# Get whitelisted branches - assumes that a `docs` module is available under `docs` profile
# shellcheck disable=SC2016
function retrieve_doc_properties() {
if [[ "${RELEASE_TRAIN}" == "yes" ]]; then
echo "Will not extract any properties for release train"
return
fi
WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"}
WHITELISTED_BRANCHES_VALUE=$("${MAVEN_EXEC}" -q \
-Dexec.executable="echo" \
-Dexec.args="\${${WHITELIST_PROPERTY}}" \
org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \
-P docs \
-pl docs | tail -1 )
echo "Extracted '${WHITELIST_PROPERTY}' from Maven build [${WHITELISTED_BRANCHES_VALUE}]"
}
# Stash any outstanding changes
###################################################################
git diff-index --quiet HEAD
dirty=$?
if [ "$dirty" != "0" ]; then git stash; fi
function stash_changes() {
local success="false"
"${GIT_BIN}" diff-index --quiet HEAD && dirty=$? && success="true"
if [[ "${success}" == "false" ]]; then
echo "Failed to check if the current repo is dirty. Assuming that it is." && dirty="1"
fi
echo "The repo is dirty [${dirty}]"
if [ "$dirty" != "0" ]; then "${GIT_BIN}" stash; fi
}
# Switch to gh-pages branch to sync it with current branch
###################################################################
git checkout gh-pages
for f in docs/target/generated-docs/*; do
file=${f#docs/target/generated-docs/*}
if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
# Not ignored...
cp -rf $f $target
git add -A $target/$file
function add_docs_from_target() {
local DESTINATION_REPO_FOLDER
if [[ -z "${DESTINATION}" && -z "${CLONE}" ]] ; then
DESTINATION_REPO_FOLDER="${ROOT_FOLDER}"
elif [[ "${CLONE}" == "yes" ]]; then
mkdir -p "${ROOT_FOLDER}"/target
local clonedStatic="${SPRING_CLOUD_STATIC_REPO_DESTINATION}"/spring-cloud-static
if [[ ! -e "${clonedStatic}/.git" ]]; then
echo "Cloning Spring Cloud Static to [${clonedStatic}]"
"${GIT_BIN}" clone "${SPRING_CLOUD_STATIC_REPO}" "${clonedStatic}" && cd "${clonedStatic}" && "${GIT_BIN}" checkout gh-pages
else
echo "Spring Cloud Static already cloned to [${clonedStatic}] - will pull changes"
local pullSuccessful="false"
cd "${clonedStatic}" && "${GIT_BIN}" checkout gh-pages && "${GIT_BIN}" pull origin gh-pages && pullSuccessful="true" || echo "Failed to clone and pull versions - will remove the folder and clone it again"
if [[ "${pullSuccessful}" == "false" ]]; then
cd "${ROOT_FOLDER}"
echo "Removing the [${clonedStatic}] folder"
rm -rf "${clonedStatic}"
echo "Cloning Spring Cloud Static again"
"${GIT_BIN}" clone "${SPRING_CLOUD_STATIC_REPO}" "${clonedStatic}" && cd "${clonedStatic}" && "${GIT_BIN}" checkout gh-pages
fi
fi
if [[ -z "${RELEASE_TRAIN}" ]] ; then
DESTINATION_REPO_FOLDER="${clonedStatic}/${REPO_NAME}"
else
DESTINATION_REPO_FOLDER="${clonedStatic}"
fi
mkdir -p "${DESTINATION_REPO_FOLDER}"
else
if [[ ! -e "${DESTINATION}/.git" ]]; then
echo "[${DESTINATION}] is not a git repository"
exit 1
fi
if [[ -z "${RELEASE_TRAIN}" ]] ; then
DESTINATION_REPO_FOLDER="${DESTINATION}/${REPO_NAME}"
else
DESTINATION_REPO_FOLDER="${DESTINATION}"
fi
mkdir -p "${DESTINATION_REPO_FOLDER}"
echo "Destination was provided [${DESTINATION}]"
fi
done
cd "${DESTINATION_REPO_FOLDER}"
"${GIT_BIN}" checkout gh-pages
"${GIT_BIN}" pull origin gh-pages
git add -A README.adoc || echo "No change to README.adoc"
git commit -a -m "Sync docs from $branch to gh-pages" || echo "Nothing committed"
# Add git branches
###################################################################
if [[ -z "${VERSION}" && -z "${RELEASE_TRAIN}" ]] ; then
copy_docs_for_current_version
else
copy_docs_for_provided_version
fi
commit_changes_if_applicable
}
# Uncomment the following push if you want to auto push to
# the gh-pages branch whenever you commit to branch locally.
# This is a little extreme. Use with care!
###################################################################
git push origin gh-pages || echo "Cannot push gh-pages"
# Finally, switch back to the current branch and exit block
git checkout $branch
if [ "$dirty" != "0" ]; then git stash pop; fi
# Copies the docs by using the retrieved properties from Maven build
function copy_docs_for_current_version() {
if [[ "${CURRENT_BRANCH}" == "master" ]] ; then
echo -e "Current branch is master - will copy the current docs only to the root folder"
for f in docs/target/generated-docs/*; do
file=${f#docs/target/generated-docs/*}
if ! "${GIT_BIN}" ls-files -i -o --exclude-standard --directory | grep -q ^"${file}"$; then
# Not ignored...
cp -rf "${f}" "${ROOT_FOLDER}"/
fi
done
"${GIT_BIN}" add -A "${ROOT_FOLDER}"
COMMIT_CHANGES="yes"
else
echo -e "Current branch is [${CURRENT_BRANCH}]"
# https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin
if [[ ",${WHITELISTED_BRANCHES_VALUE}," = *",${CURRENT_BRANCH},"* ]] ; then
mkdir -p "${ROOT_FOLDER}/${CURRENT_BRANCH}"
echo -e "Branch [${CURRENT_BRANCH}] is whitelisted! Will copy the current docs to the [${CURRENT_BRANCH}] folder"
for f in docs/target/generated-docs/*; do
file="${f#docs/target/generated-docs/*}"
if ! "${GIT_BIN}" ls-files -i -o --exclude-standard --directory | grep -q ^"${file}"$; then
echo "The file [${file}] shouldn't be ignored"
# Not ignored...
# We want users to access 1.0.0.RELEASE/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html
cp -rf "${f}" "${ROOT_FOLDER}/${CURRENT_BRANCH}"
"${GIT_BIN}" add -A "${ROOT_FOLDER}/${CURRENT_BRANCH}/${file}" || echo "Failed to add the file [${file}]"
fi
done
COMMIT_CHANGES="yes"
else
echo -e "Branch [${CURRENT_BRANCH}] is not on the white list! Check out the Maven [${WHITELIST_PROPERTY}] property in
[docs] module available under [docs] profile. Won't commit any changes to gh-pages for this branch."
fi
fi
}
exit 0
# Copies the docs by using the explicitly provided version
function copy_docs_for_provided_version() {
local FOLDER="${DESTINATION_REPO_FOLDER}/${VERSION}"
mkdir -p "${FOLDER}"
echo -e "Current tag is [v${VERSION}] Will copy the current docs to the [${FOLDER}] folder"
for f in "${ROOT_FOLDER}"/docs/target/generated-docs/*; do
file="${f#${ROOT_FOLDER}/docs/target/generated-docs/*}"
copy_docs_for_branch "${file}" "${FOLDER}"
done
COMMIT_CHANGES="yes"
CURRENT_BRANCH="v${VERSION}"
}
# Copies the docs from target to the provided destination
# Params:
# $1 - file from target
# $2 - destination to which copy the files
function copy_docs_for_branch() {
local file="$1"
local destination="$2"
echo "Copying file [${file}] to destination [${destination}]"
if ! "${GIT_BIN}" ls-files -i -o --exclude-standard --directory | grep -q ^"${file}"$; then
# Not ignored...
cp -rf "${f}" "${destination}"
"${GIT_BIN}" add -A "${destination}"
fi
}
function commit_changes_if_applicable() {
if [[ "${COMMIT_CHANGES}" == "yes" ]] ; then
COMMIT_SUCCESSFUL="no"
"${GIT_BIN}" commit -a -m "Sync docs from ${CURRENT_BRANCH} to gh-pages" && COMMIT_SUCCESSFUL="yes" || echo "Failed to commit changes"
# Uncomment the following push if you want to auto push to
# the gh-pages branch whenever you commit to master locally.
# This is a little extreme. Use with care!
###################################################################
if [[ "${COMMIT_SUCCESSFUL}" == "yes" ]] ; then
add_oauth_token_to_remote_url
"${GIT_BIN}" push origin gh-pages
fi
fi
}
# Switch back to the previous branch and exit block
function checkout_previous_branch() {
# If -version was provided we need to come back to root project
cd "${ROOT_FOLDER}"
"${GIT_BIN}" checkout "${PREVIOUS_BRANCH}" || echo "Failed to check the branch... continuing with the script"
if [ "$dirty" != "0" ]; then "${GIT_BIN}" stash pop; fi
return 0
}
# Assert if properties have been properly passed
function assert_properties() {
echo "VERSION [${VERSION}], RELEASE_TRAIN [${RELEASE_TRAIN}], DESTINATION [${DESTINATION}], CLONE [${CLONE}]"
if [[ "${VERSION}" != "" && (-z "${DESTINATION}" && -z "${CLONE}") ]] ; then echo "Version was set but destination / clone was not!"; exit 1;fi
if [[ ("${DESTINATION}" != "" && "${CLONE}" != "") && -z "${VERSION}" ]] ; then echo "Destination / clone was set but version was not!"; exit 1;fi
if [[ "${DESTINATION}" != "" && "${CLONE}" == "yes" ]] ; then echo "Destination and clone was set. Pick one!"; exit 1;fi
if [[ "${RELEASE_TRAIN}" != "" && -z "${VERSION}" ]] ; then echo "Release train was set but no version was passed!"; exit 1;fi
}
# Prints the usage
function print_usage() {
cat <<EOF
The idea of this script is to update gh-pages branch with the generated docs. Without any options
the script will work in the following manner:
- if there's no gh-pages / target for docs module then the script ends
- for master branch the generated docs are copied to the root of gh-pages branch
- for any other branch (if that branch is whitelisted) a subfolder with branch name is created
and docs are copied there
- if the version switch is passed (-v) then a tag with (v) prefix will be retrieved and a folder
with that version number will be created in the gh-pages branch. WARNING! No whitelist verification will take place
- if the destination switch is passed (-d) then the script will check if the provided dir is a git repo and then will
switch to gh-pages of that repo and copy the generated docs to [docs/<project-name>/<version>]
- if the destination switch is passed (-d) then the script will check if the provided dir is a git repo and then will
switch to gh-pages of that repo and copy the generated docs to [docs/<project-name>/<version>]
- if the release train switch is passed (-r) then the script will check if the provided dir is a git repo and then will
switch to gh-pages of that repo and copy the generated docs to [docs/<version>]
USAGE:
You can use the following options:
-v|--version - the script will apply the whole procedure for a particular library version
-r|--releasetrain - instead of nesting the docs under the project_name/version folder the docs will end up in version
-d|--destination - the root of destination folder where the docs should be copied. You have to use the full path.
E.g. point to spring-cloud-static folder. Can't be used with (-c)
-b|--build - will run the standard build process after checking out the branch
-c|--clone - will automatically clone the spring-cloud-static repo instead of providing the destination.
Obviously can't be used with (-d)
EOF
}
# ==========================================
# ____ ____ _____ _____ _____ _______
# / ____|/ ____| __ \|_ _| __ \__ __|
# | (___ | | | |__) | | | | |__) | | |
# \___ \| | | _ / | | | ___/ | |
# ____) | |____| | \ \ _| |_| | | |
# |_____/ \_____|_| \_\_____|_| |_|
#
# ==========================================
if [[ "${SOURCE_FUNCTIONS}" == "true" ]]; then
echo "Will just source functions. Will not run any commands"
else
while [[ $# -gt 0 ]]
do
key="$1"
case "${key}" in
-v|--version)
VERSION="$2"
shift # past argument
;;
-r|--releasetrain)
RELEASE_TRAIN="yes"
;;
-d|--destination)
DESTINATION="$2"
shift # past argument
;;
-b|--build)
BUILD="yes"
;;
-c|--clone)
CLONE="yes"
;;
-h|--help)
print_usage
exit 0
;;
*)
echo "Invalid option: [$1]"
print_usage
exit 1
;;
esac
shift # past argument or value
done
assert_properties
set_default_props
check_if_anything_to_sync
retrieve_current_branch
if echo "${VERSION}" | grep -q -E 'SNAPSHOT' || [[ -z "${VERSION}" ]]; then
CLONE=""
VERSION=""
echo "You've provided a version variable but it's a snapshot one. Due to this will not clone spring-cloud-static and publish docs over there"
else
switch_to_tag
fi
build_docs_if_applicable
retrieve_doc_properties
stash_changes
add_docs_from_target
checkout_previous_branch
fi
Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

+1
View File
@@ -0,0 +1 @@
spring-cloud-build.adoc
+1 -1
View File
@@ -1,3 +1,3 @@
= Spring Cloud Build
include::README.adoc
include::README.adoc[]
+149
View File
@@ -0,0 +1,149 @@
#!/bin/bash
set -e
GIT_BIN="${GIT_BIN:-git}"
echo "Project version is [${PROJECT_VERSION}]"
if [[ "${PROJECT_VERSION}" != *"RELEASE"* ]];then
echo "Will not update guides, since the version is not a RELEASE one"
exit 0
fi
# The script should be executed from the root folder
[[ -z "${ROOT_FOLDER}" ]] && ROOT_FOLDER="$( pwd )"
echo "Current folder is ${ROOT_FOLDER}"
if [[ ! -e "${ROOT_FOLDER}/.git" ]]; then
echo "You're not in the root folder of the project!"
exit 1
fi
GUIDES_FOLDER="${ROOT_FOLDER}/guides"
SPRING_GUIDES_REPO_ROOT="${SPRING_GUIDES_REPO_ROOT:-git@github.com:spring-guides}"
echo "The Spring Guides repo root is [${SPRING_GUIDES_REPO_ROOT}]"
if [[ ! -d "${GUIDES_FOLDER}" ]]; then
echo "No [guides] folder is present. Won't do anything"
exit 0
fi
function iterate_over_guides() {
for dir in "${GUIDES_FOLDER}"/*/ # list directories in the form "/tmp/dirname/"
do
local dir="${dir%*/}" # remove the trailing "/"
local folderName="${dir##*/}" # print everything after the final "/"
if [[ "${folderName}" == "target" ]]; then
echo "Skipping [${folderName}]"
continue
fi
local guideRepo="${SPRING_GUIDES_REPO_ROOT}/${folderName}"
local clonedGuideFolderParent="${ROOT_FOLDER}/target"
local clonedGuideFolder="${clonedGuideFolderParent}/${folderName}"
echo "Will clone [${guideRepo}] project [${folderName}] to target"
mkdir -p "${clonedGuideFolder}"
rm -rf "${clonedGuideFolder}"
"${GIT_BIN}" clone "${guideRepo}" "${clonedGuideFolder}"
pushd "${clonedGuideFolder}"
echo "Will start the commit process for [${folderName}]"
add_oauth_token_to_remote_url
remove_all_files
copy_new_guide "${GUIDES_FOLDER}/${folderName}" "${clonedGuideFolderParent}"
commit_and_push_new_guide_contents
echo "Successfully copied and pushed new guides for [${guideRepo}]"
popd
done
}
function commit_and_push_new_guide_contents() {
"${GIT_BIN}" add .
"${GIT_BIN}" commit -m "Updating guides" || echo "Nothing to commit"
"${GIT_BIN}" push origin master || echo "Nothing to push"
}
function copy_new_guide() {
local guideFolder="${1}"
local clonedGuideFolder="${2}"
echo "Will copy new guide files from [${guideFolder}/] to [${clonedGuideFolder}]"
cp -r "${guideFolder}/" "${clonedGuideFolder}/"
echo "Copied new guide files"
}
function remove_all_files() {
echo "Removing all non git files in [$( pwd )]"
"${GIT_BIN}" rm -rf "$( pwd )/"
"${GIT_BIN}" clean -fxd
echo "All files removed"
}
# Adds the oauth token if present to the remote url
function add_oauth_token_to_remote_url() {
local remote
remote="$( "${GIT_BIN}" config remote.origin.url | sed -e 's/^git:/https:/' )"
echo "Current remote [${remote}]"
if [[ "${RELEASER_GIT_OAUTH_TOKEN}" != "" && ${remote} != *"@"* ]]; then
echo "OAuth token found. Will reuse it to push the code"
withToken=${remote/https:\/\//https://${RELEASER_GIT_OAUTH_TOKEN}@}
"${GIT_BIN}" remote set-url --push origin "${withToken}"
else
echo "No OAuth token found"
"${GIT_BIN}" remote set-url --push origin "$( "${GIT_BIN}" config remote.origin.url | sed -e 's/^git:/https:/' )"
fi
}
# Prints the usage
function print_usage() {
cat <<EOF
The idea of this script is to keep the Spring guides up to date by taking the
contents of guides from the project's repository and pushing them to Spring guides
repository.
This script iterates over the contents of the [guides] folder. Each its subfolder
corresponds to a repository under the Spring Guides repository (i.e. the https://github.com/spring-guides organization).
Upon the iteration a corresponding guide repository gets cloned and updated with the latest content from the project repository. A commit and push then takes place.
USAGE:
You can use the following options:
-h|--help - display this message
EOF
}
# ==========================================
# ____ ____ _____ _____ _____ _______
# / ____|/ ____| __ \|_ _| __ \__ __|
# | (___ | | | |__) | | | | |__) | | |
# \___ \| | | _ / | | | ___/ | |
# ____) | |____| | \ \ _| |_| | | |
# |_____/ \_____|_| \_\_____|_| |_|
#
# ==========================================
if [[ "${SOURCE_FUNCTIONS}" == "true" ]]; then
echo "Will just source functions. Will not run any commands"
else
while [[ $# -gt 0 ]]
do
key="$1"
case "${key}" in
-h|--help)
print_usage
exit 0
;;
*)
echo "Invalid option: [$1]"
print_usage
exit 1
;;
esac
shift # past argument or value
done
iterate_over_guides
fi
@@ -0,0 +1,112 @@
package org.springframework.cloud.internal
import java.util.regex.Pattern
import groovy.json.JsonSlurper
import groovy.transform.CompileStatic
import org.springframework.core.io.Resource
import org.springframework.core.io.support.PathMatchingResourcePatternResolver
/**
* @author Marcin Grzejszczak
*/
class Main {
@CompileStatic
static void main(String... args) {
String outputFile = args[0]
String inclusionPattern = args.length > 1 ? args[1] : ".*"
File parent = new File(outputFile).parentFile
if (!parent.exists()) {
println "No parent directory [${parent.toString()}] found. Won't generate the configuration properties file"
return
}
new Generator().generate(outputFile, inclusionPattern)
}
static class Generator {
void generate(String outputFile, String inclusionPattern) {
println "Parsing all configuration metadata"
Resource[] resources = getResources()
println "Found [${resources.length}] configuration metadata jsons"
TreeSet names = new TreeSet()
def descriptions = [:]
int count = 0
int matchingPropertyCount = 0
int propertyCount = 0
Pattern pattern = Pattern.compile(inclusionPattern)
resources.each { Resource resource ->
if (resourceNameContainsPattern(resource)) {
count++
def slurper = new JsonSlurper()
slurper.parseText(resource.inputStream.text).properties.each { val ->
propertyCount++
if (!pattern.matcher(val.name).matches()) {
return
}
matchingPropertyCount++
names.add val.name
descriptions[val.name] = new ConfigValue(val.name, val.description, val.defaultValue)
}
}
}
println "Found [${count}] Cloud projects configuration metadata jsons. [${matchingPropertyCount}/${propertyCount}] were matching the pattern [${inclusionPattern}]"
println "Successfully built the description table"
if (names.empty) {
println("Will not update the table, since no configuration properties were found!")
return
}
new File(outputFile).text = """\
|===
|Name | Default | Description
${names.collect { it -> return descriptions[it] }.join("\n")}
|===
"""
println "Successfully stored the output file"
}
protected boolean resourceNameContainsPattern(Resource resource) {
try {
return resource.getURL().toString().contains("cloud")
}
catch (Exception e) {
println("Exception [${e}] for resource [${resource}] occurred while trying to retrieve its URL")
return false
}
}
protected Resource[] getResources() {
return new PathMatchingResourcePatternResolver()
.getResources("classpath*:/META-INF/spring-configuration-metadata.json")
}
}
@CompileStatic
static class ConfigValue {
String name
String description
Object defaultValue
ConfigValue() {}
ConfigValue(String name, String description, Object defaultValue) {
this.name = name
this.description = escapedValue(description)
this.defaultValue = escapedValue(defaultValue)
}
private String escapedValue(Object value) {
return value != null ?
value.toString().replaceAll('\\|', '\\\\|') : ''
}
String toString() {
"|${name} | ${defaultValue} | ${description}"
}
}
}
+12 -2
View File
@@ -17,14 +17,24 @@ end
file = ARGV[0] if ARGV.length>0
# Copied from https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/scripts/asciidoc-coalescer.rb
doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: options[:attributes]
attributes = {}
attributes['project-root'] = File.expand_path("#{base_dir}/../")
doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: attributes
header_attr_names = (doc.instance_variable_get :@attributes_modified).to_a
header_attr_names.each {|k| doc.attributes[%(#{k}!)] = '' unless doc.attr? k }
attrs = doc.attributes
attrs['allow-uri-read'] = true
puts attrs
out = "// Do not edit this file (e.g. go instead to src/main/asciidoc)\n\n"
out = <<-WARNING
////
DO NOT EDIT THIS FILE. IT WAS GENERATED.
Manual changes to this file will be lost when it is generated again.
Edit the files in the src/main/asciidoc/ directory instead.
////
WARNING
doc = Asciidoctor.load_file file, safe: :unsafe, parse: false, attributes: attrs
out << doc.reader.read
+82
View File
@@ -0,0 +1,82 @@
#!/bin/bash
[[ -z $DEBUG ]] || set -o xtrace
set -o errexit
set -o errtrace
set -o nounset
set -o pipefail
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
ROOT_DIR="${ROOT_DIR}/../../.."
echo "Root directory is [${ROOT_DIR}]"
function usage {
echo "usage: $0: <download-shellcheck|run-shellcheck|download-bats|run-bats|initialize-submodules>"
exit 1
}
if [[ $# -ne 1 ]]; then
usage
fi
SHELLCHECK_VERSION="v0.6.0"
SHELLCHECK_BIN="${ROOT_DIR}/../target/shellcheck-${SHELLCHECK_VERSION}/shellcheck"
case $1 in
download-shellcheck)
if [[ "${OSTYPE}" == linux* && ! -z "${SHELLCHECK_BIN}" ]]; then
SHELLCHECK_ARCHIVE="shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz"
if [[ -x "${ROOT_DIR}/../target/shellcheck-${SHELLCHECK_VERSION}/shellcheck" ]]; then
echo "shellcheck already downloaded - skipping..."
exit 0
fi
wget -P "${ROOT_DIR}/../target/" \
"https://storage.googleapis.com/shellcheck/${SHELLCHECK_ARCHIVE}"
pushd "${ROOT_DIR}/../target/"
tar xvf "${SHELLCHECK_ARCHIVE}"
rm -vf -- "${SHELLCHECK_ARCHIVE}"
popd
else
echo "It seems that automatic installation is not supported on your platform."
echo "Please install shellcheck manually:"
echo " https://github.com/koalaman/shellcheck#installing"
exit 1
fi
;;
run-shellcheck)
echo "Running shellcheck"
"${SHELLCHECK_BIN}" "${ROOT_DIR}"/src/main/asciidoc/*.sh
echo "Shellcheck passed sucessfully!"
;;
download-bats)
if [[ -x "${ROOT_DIR}/../target/bats/bin/bats" ]]; then
echo "bats already downloaded - skipping..."
exit 0
fi
git clone https://github.com/bats-core/bats-core.git "${ROOT_DIR}/../target/bats"
;;
run-bats)
echo "Running bats"
SHELLCHECK_BIN="${ROOT_DIR}/../target/bats/bin/bats"
"${SHELLCHECK_BIN}" "${ROOT_DIR}"/src/test/bats
echo "Bats passed sucesfully!"
;;
initialize-submodules)
files="$( ls "${ROOT_DIR}/src/test/bats/test_helper/bats-assert/" || echo "" )"
pushd "${ROOT_DIR}/../"
if [ ! -z "${files}" ]; then
echo "Submodules already initialized";
git submodule foreach git pull origin master || echo "Failed to pull - continuing the script"
else
echo "Initilizing submodules"
git submodule init
git submodule update
git submodule foreach git pull origin master || echo "Failed to pull - continuing the script"
fi
popd
;;
*)
usage
;;
esac
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
[[ -z $DEBUG ]] || set -o xtrace
set -o errexit
set -o errtrace
set -o nounset
set -o pipefail
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
"${ROOT_DIR}"/build-helper.sh "initialize-submodules" || echo "Failed to init submodules"
"${ROOT_DIR}"/build-helper.sh "download-shellcheck"
"${ROOT_DIR}"/build-helper.sh "run-shellcheck"
"${ROOT_DIR}"/build-helper.sh "download-bats"
"${ROOT_DIR}"/build-helper.sh "run-bats"
@@ -0,0 +1,32 @@
# Operating System Files
*.DS_Store
Thumbs.db
*.sw?
.#*
*#
*~
*.sublime-*
# Build Artifacts
.gradle/
build/
target/
bin/
dependency-reduced-pom.xml
# Eclipse Project Files
.classpath
.project
.settings/
# IntelliJ IDEA Files
*.iml
*.ipr
*.iws
*.idea
README.html
@@ -0,0 +1,9 @@
sudo: false
language: java
jdk:
- oraclejdk8
script:
- test/run.sh
notifications:
slack:
secure: Ces2qauynvAzEFvvYCBLTvatyct8JE6EjHWUGDBdaIGuFpqtW+9zuwWL4Ls0+w+GZoprVAIk+G47qt/ax/Us4xQlIcmp8w+IHbyhSK2oGKzGumP5KOUrMqu6zEt3PhTr3q3ub9RNvafdsIhpDVWtmSZbNHkm8uOpzd14mjUn9ACp0WOt3MWNqh+wgkJnep2PSrF3mzuPs1Yqs2FN379qqijjQTsAs5dmJO9KDejELnB3SaAIicr0hFzMU/x1LR1VXTIF+M4s+bJcxUdmN8BJWsvwNf5sBAzTRMoNitONfOCrf53v9nl//cK8xDp2/CyCj/ZZB1W7XmTxeyS5l+U2QivoEvPEjqQTktbbFNeBxtEPucizMlE5nOkBA5zq1MQlDQM/0NoUKd3yb46FZQiHKWOcQ9erwPZuuoS9tecdM2k0hzMbZ/jhNMOsyiM3fo6VcrEh1oVlgTfgx9cNHuSplI9BwReyB1R+m4GVF6j72Kp2Om938xBZtT14gcuAjpORYVXFqGYmUM3m3qxGghEJMs7f1uoTNiSRstYJpZQdPZDYW+X9teSsyRss9iw7xYminYOiywjyGJEdnFBETdFPQ0u5A6mC/dyTE+k4vCyOJXHK+6m62UnObonqYIbSJFiBGnBU0KOloj2DyqtgifcU8wTu5OEg7ljlqu9qfxwuzmQ=
@@ -0,0 +1,2 @@
If you have not previously done so, please fill out and
submit the https://cla.pivotal.io/sign/spring[Contributor License Agreement].
@@ -0,0 +1,16 @@
All code in this repository is:
=======================================================================
Copyright (c) 2013 GoPivotal, 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.
@@ -0,0 +1 @@
Except where otherwise noted, this work is licensed under http://creativecommons.org/licenses/by-nd/3.0/
@@ -0,0 +1,203 @@
:spring_version: current
:spring_boot_version: 2.1.4.RELEASE
:Controller: http://docs.spring.io/spring/docs/{spring_version}/javadoc-api/org/springframework/stereotype/Controller.html
:DispatcherServlet: http://docs.spring.io/spring/docs/{spring_version}/javadoc-api/org/springframework/web/servlet/DispatcherServlet.html
:SpringApplication: http://docs.spring.io/spring-boot/docs/{spring_boot_version}/api/org/springframework/boot/SpringApplication.html
:ResponseBody: http://docs.spring.io/spring/docs/{spring_version}/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
:toc:
:icons: font
:source-highlighter: prettify
:project_id: gs-contract-rest
This guide walks you through the process of creating a Spring REST application with its contract stubs and consuming the contract within an other Spring application. https://cloud.spring.io/spring-cloud-contract[Spring Cloud Contract Project]
== What you'll build
You'll setup two micro services one providing its contract, and the other one consuming this contract to make sure that the integration to the contract provider service is aligned with the specifications. If in the future, the contract of the producer service changes, then the consumer service's tests fail catching the potential incompatibility.
== What you'll need
:java_version: 1.8
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/prereq_editor_jdk_buildtools.adoc[]
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/how_to_complete_this_guide.adoc[]
[[reveal-gradle]]
[.reveal-gradle]
== Build with Gradle
[[scratch]]
[.use-gradle]
== Build with Gradle
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/build_system_intro.adoc[]
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/create_directory_structure_hello.adoc[]
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/create_both_builds.adoc[]
`contract-rest-service/build.gradle`
// AsciiDoc source formatting doesn't support groovy, so using java instead
[source,java]
----
include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-service/build.gradle[]
----
`contract-rest-client/build.gradle`
// AsciiDoc source formatting doesn't support groovy, so using java instead
[source,java]
----
include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-client/build.gradle[]
----
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/spring-boot-gradle-plugin.adoc[]
[[reveal-maven]]
[.reveal-maven]
== Build with Maven
[[use-maven]]
[.use-maven]
== Build with Maven
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/build_system_intro_maven.adoc[]
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/create_directory_structure_hello.adoc[]
To get you started quickly, here are the complete configurations for the server and client applications:
`contract-rest-service/pom.xml`
[source,xml]
----
include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-service/pom.xml[]
----
`contract-rest-client/pom.xml`
[source,xml]
----
include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-client/pom.xml[]
----
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/spring-boot-maven-plugin.adoc[]
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/hide-show-sts.adoc[]
[[initial]]
== Create contract producer service
You'll first need to create the service which produces the contract. This is a regular Spring Boot application providing a very simple REST service. The rest service simply returns a `Person` object in JSON.
`contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java`
[source,java]
----
include::complete/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java[]
----
=== Create the contract of the REST service
The contract of the REST service can be defined as a `.groovy` script. This contract specifies that if there is a `GET` request to url `/person/1`, sample data `id=1`, `name=foo` and `surname=bee` representing a `Person` entity will be returned in the response body of content-type `application/json` .
`contract-rest-service/src/test/resources/contracts/hello/find_person_by_id.groovy`
[source,java]
----
include::complete/contract-rest-service/src/test/resources/contracts/hello/find_person_by_id.groovy[]
----
At the `test` phase, automatic test classes will be created for the contract specified in the groovy file. The auto generated test java classes will extend the `hello.BaseClass`.
[source,xml]
----
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>${spring-cloud-contract.version}</version>
<extensions>true</extensions>
<configuration>
<baseClassForTests>hello.BaseClass</baseClassForTests>
</configuration>
</plugin>
----
`contract-rest-service/src/test/java/hello/BaseClass.java`
[source,java]
----
include::complete/contract-rest-service/src/test/java/hello/BaseClass.java[]
----
At this step, when the tests are executed, test results should be GREEN indicating that the REST controller is aligned with the contract and you have a fully functioning service.
==== Check the simple Person query business logic
Model class `Person.java`
`contract-rest-service/src/main/java/hello/Person.java`
[source,java]
----
include::complete/contract-rest-service/src/main/java/hello/Person.java[]
----
Service bean `PersonService.java` which just populates a few Person entity in memory and returns the one when asked.
`contract-rest-service/src/main/java/hello/PersonService.java`
[source,java]
----
include::complete/contract-rest-service/src/main/java/hello/PersonService.java[]
----
RestController bean `PersonRestController.java` which calls `PersonService` bean when a REST request is received for a person with the id.
`contract-rest-service/src/main/java/hello/PersonRestController.java`
[source,java]
----
include::complete/contract-rest-service/src/main/java/hello/PersonRestController.java[]
----
=== Test the contract-rest-service application
Run the `ContractRestServiceApplication.java` class as a Java Application or Spring Boot Application. The service should start at port `8000`.
Visit the service in the browser `http://localhost:8000/person/1`, `http://localhost:8000/person/2`, etc.
== Create contract consumer service
With the contract producer service ready, now we need to crate the client application which consumes the contract provided. This is a regular Spring Boot application providing a very simple REST service. The rest service simply returns a message with the queried Person's name, e.g. `Hello Anna`.
`contract-rest-client/src/main/java/hello/ContractRestClientApplication.java`
[source,java]
----
include::complete/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java[]
----
=== Create the contract test
The contract provided by the producer should be consumed as a simple Spring test.
`contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java`
[source,java]
----
include::complete/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java[]
----
This test class will load the stubs of the contract producer service and make sure that the integration to the service is aligned with the contract.
In case the communication is faulty between the consumer service's test and the producer's contract, tests will fail and the problem will need to be fixed before making a new change on production.
=== Test the contract-rest-client application
Run the `ContractRestClientApplication.java` class as a Java Application or Spring Boot Application. The service should start at port `9000`.
Visit the service in the browser `http://localhost:9000/message/1`, `http://localhost:9000/message/2`, etc.
== Summary
Congratulations! You've just used Spring to make your REST services declare their contract and consumer service be aligned with this contract.
== See Also
The following guides may also be helpful:
* https://spring.io/guides/gs/spring-boot/[Building an Application with Spring Boot]
* https://spring.io/guides/gs/multi-module/[Creating a Multi Module Project]
include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/footer.adoc[]
@@ -0,0 +1 @@
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
@@ -0,0 +1,43 @@
buildscript {
ext { springBootVersion = '2.1.4.RELEASE' }
repositories { mavenCentral() }
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
bootJar {
baseName = 'contract-rest-client'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories { mavenCentral() }
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.cloud:spring-cloud-starter-contract-stub-runner')
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
}
}
eclipse {
classpath {
containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
}
}
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
@@ -0,0 +1,172 @@
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"
@@ -0,0 +1,84 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>contract-rest-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RC1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-contract-stub-runner</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,34 @@
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class ContractRestClientApplication {
public static void main(String[] args) {
SpringApplication.run(ContractRestClientApplication.class, args);
}
}
@RestController
class MessageRestController {
private final RestTemplate restTemplate;
MessageRestController(RestTemplateBuilder restTemplateBuilder) {
this.restTemplate = restTemplateBuilder.build();
}
@RequestMapping("/message/{personId}")
String getMessage(@PathVariable("personId") Long personId) {
Person person = this.restTemplate.getForObject("http://localhost:8000/person/{personId}", Person.class, personId);
return "Hello " + person.getName();
}
}
@@ -0,0 +1,44 @@
package hello;
class Person {
public Person() {
}
public Person(Long id, String name, String surname) {
this.id = id;
this.name = name;
this.surname = surname;
}
private Long id;
private String name;
private String surname;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}
@@ -0,0 +1,3 @@
spring.application.name=contract-rest-client
server.port=9000
@@ -0,0 +1,39 @@
package hello;
import org.assertj.core.api.BDDAssertions;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.contract.stubrunner.junit.StubRunnerRule;
import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestTemplate;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ContractRestClientApplicationTest {
@Rule
public StubRunnerRule stubRunnerRule = new StubRunnerRule()
.downloadStub("com.example", "contract-rest-service", "0.0.1-SNAPSHOT", "stubs")
.withPort(8100)
.stubsMode(StubRunnerProperties.StubsMode.LOCAL);
@Test
public void get_person_from_service_contract() {
// given:
RestTemplate restTemplate = new RestTemplate();
// when:
ResponseEntity<Person> personResponseEntity = restTemplate.getForEntity("http://localhost:8100/person/1", Person.class);
// then:
BDDAssertions.then(personResponseEntity.getStatusCodeValue()).isEqualTo(200);
BDDAssertions.then(personResponseEntity.getBody().getId()).isEqualTo(1l);
BDDAssertions.then(personResponseEntity.getBody().getName()).isEqualTo("foo");
BDDAssertions.then(personResponseEntity.getBody().getSurname()).isEqualTo("bee");
}
}
@@ -0,0 +1,50 @@
buildscript {
ext {
springBootVersion = '2.1.4.RELEASE'
verifierVersion = '2.0.2.RELEASE'
}
repositories { mavenCentral() }
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${verifierVersion}"
}
}
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'spring-cloud-contract'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
bootJar {
baseName = 'contract-rest-service'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories { mavenCentral() }
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.cloud:spring-cloud-starter-contract-verifier')
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
}
}
contracts {
packageWithBaseClasses = 'hello'
baseClassMappings {
baseClassMapping(".*hello.*", "hello.BaseClass")
}
}
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
@@ -0,0 +1,172 @@
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"
@@ -0,0 +1,84 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>contract-rest-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RC1</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.BUILD-SNAPSHOT</spring-cloud.version>
<spring-cloud-contract.version>2.2.0.BUILD-SNAPSHOT</spring-cloud-contract.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-contract-verifier</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>${spring-cloud-contract.version}</version>
<extensions>true</extensions>
<configuration>
<baseClassForTests>hello.BaseClass</baseClassForTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,12 @@
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ContractRestServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ContractRestServiceApplication.class, args);
}
}
@@ -0,0 +1,40 @@
package hello;
class Person {
Person(Long id, String name, String surname) {
this.id = id;
this.name = name;
this.surname = surname;
}
private Long id;
private String name;
private String surname;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}
@@ -0,0 +1,20 @@
package hello;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
class PersonRestController {
private final PersonService personService;
public PersonRestController(PersonService personService) {
this.personService = personService;
}
@GetMapping("/person/{id}")
public Person findPersonById(@PathVariable("id") Long id) {
return personService.findPersonById(id);
}
}
@@ -0,0 +1,23 @@
package hello;
import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Service;
@Service
class PersonService {
private final Map<Long, Person> personMap;
public PersonService() {
personMap = new HashMap<>();
personMap.put(1L, new Person(1L, "Richard", "Gere"));
personMap.put(2L, new Person(2L, "Emma", "Choplin"));
personMap.put(3L, new Person(3L, "Anna", "Carolina"));
}
Person findPersonById(Long id) {
return personMap.get(id);
}
}
@@ -0,0 +1,28 @@
package hello;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;
import io.restassured.module.mockmvc.RestAssuredMockMvc;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ContractRestServiceApplication.class)
public abstract class BaseClass {
@Autowired PersonRestController personRestController;
@MockBean PersonService personService;
@Before public void setup() {
RestAssuredMockMvc.standaloneSetup(personRestController);
Mockito.when(personService.findPersonById(1L))
.thenReturn(new Person(1L, "foo", "bee"));
}
}
@@ -0,0 +1,22 @@
import org.springframework.cloud.contract.spec.Contract
Contract.make {
description "should return person by id=1"
request {
url "/person/1"
method GET()
}
response {
status OK()
headers {
contentType applicationJson()
}
body (
id: 1,
name: "foo",
surname: "bee"
)
}
}
@@ -0,0 +1,6 @@
#Wed Nov 15 10:48:25 CET 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip
+160
View File
@@ -0,0 +1,160 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
@@ -0,0 +1,90 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
+233
View File
@@ -0,0 +1,233 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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
#
# https://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.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
#
# Look for the Apple JDKs first to preserve the existing behaviour, and then look
# for the new JDKs provided by Oracle.
#
if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
#
# Apple JDKs
#
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
fi
if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
#
# Apple JDKs
#
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
fi
if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
#
# Oracle JDKs
#
export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
fi
if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
#
# Apple JDKs
#
export JAVA_HOME=`/usr/libexec/java_home`
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Migwn, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
fi
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
local basedir=$(pwd)
local wdir=$(pwd)
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
wdir=$(cd "$wdir/.."; pwd)
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} "$@"
+145
View File
@@ -0,0 +1,145 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
set MAVEN_CMD_LINE_ARGS=%*
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar""
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-contract-rest</artifactId>
<version>0.1.0</version>
<packaging>pom</packaging>
<modules>
<module>contract-rest-service</module>
<module>contract-rest-client</module>
</modules>
</project>
@@ -0,0 +1,4 @@
rootProject.name = 'gs-contract-rest'
include 'contract-rest-service'
include 'contract-rest-client'
@@ -0,0 +1 @@
Updated to latest
@@ -0,0 +1 @@
1d776d21deba9bd58877220abd802e8794ddb6a3 branch 'master' of github.com:spring-guides/gs-contract-rest
@@ -0,0 +1 @@
ref: refs/heads/master
@@ -0,0 +1 @@
06e323583eeda1364779d80eef55110256411426
@@ -0,0 +1,11 @@
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:spring-guides/gs-contract-rest.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
@@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.
@@ -0,0 +1,15 @@
#!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit. The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".
. git-sh-setup
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:
@@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".
# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
# This example catches duplicate Signed-off-by lines.
test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
exit 1
}
@@ -0,0 +1,114 @@
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Open2;
# An example hook script to integrate Watchman
# (https://facebook.github.io/watchman/) with git to speed up detecting
# new and modified files.
#
# The hook is passed a version (currently 1) and a time in nanoseconds
# formatted as a string and outputs to stdout all files that have been
# modified since the given time. Paths must be relative to the root of
# the working tree and separated by a single NUL.
#
# To enable this hook, rename this file to "query-watchman" and set
# 'git config core.fsmonitor .git/hooks/query-watchman'
#
my ($version, $time) = @ARGV;
# Check the hook interface version
if ($version == 1) {
# convert nanoseconds to seconds
$time = int $time / 1000000000;
} else {
die "Unsupported query-fsmonitor hook version '$version'.\n" .
"Falling back to scanning...\n";
}
my $git_work_tree;
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
$git_work_tree = Win32::GetCwd();
$git_work_tree =~ tr/\\/\//;
} else {
require Cwd;
$git_work_tree = Cwd::cwd();
}
my $retry = 1;
launch_watchman();
sub launch_watchman {
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
or die "open2() failed: $!\n" .
"Falling back to scanning...\n";
# In the query expression below we're asking for names of files that
# changed since $time but were not transient (ie created after
# $time but no longer exist).
#
# To accomplish this, we're using the "since" generator to use the
# recency index to select candidate nodes and "fields" to limit the
# output to file names only. Then we're using the "expression" term to
# further constrain the results.
#
# The category of transient files that we want to ignore will have a
# creation clock (cclock) newer than $time_t value and will also not
# currently exist.
my $query = <<" END";
["query", "$git_work_tree", {
"since": $time,
"fields": ["name"],
"expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]]
}]
END
print CHLD_IN $query;
close CHLD_IN;
my $response = do {local $/; <CHLD_OUT>};
die "Watchman: command returned no output.\n" .
"Falling back to scanning...\n" if $response eq "";
die "Watchman: command returned invalid output: $response\n" .
"Falling back to scanning...\n" unless $response =~ /^\{/;
my $json_pkg;
eval {
require JSON::XS;
$json_pkg = "JSON::XS";
1;
} or do {
require JSON::PP;
$json_pkg = "JSON::PP";
};
my $o = $json_pkg->new->utf8->decode($response);
if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) {
print STDERR "Adding '$git_work_tree' to watchman's watch list.\n";
$retry--;
qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
# Watchman will always return all files on the first query so
# return the fast "everything is dirty" flag to git and do the
# Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file.
print "/\0";
eval { launch_watchman() };
exit 0;
}
die "Watchman: $o->{error}.\n" .
"Falling back to scanning...\n" if $o->{error};
binmode STDOUT, ":utf8";
local $, = "\0";
print @{$o->{files}};
}
@@ -0,0 +1,8 @@
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
exec git update-server-info
@@ -0,0 +1,14 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".
. git-sh-setup
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:
@@ -0,0 +1,49 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --bool hooks.allownonascii)
# Redirect output to stderr.
exec 1>&2
# Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
# Note that the use of brackets around a tr range is ok here, (it's
# even required, for portability to Solaris 10's /usr/bin/tr), since
# the square bracket bytes happen to fall in the designated range.
test $(git diff --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
cat <<\EOF
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true
EOF
exit 1
fi
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --
@@ -0,0 +1,53 @@
#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
# <local ref> <local sha1> <remote ref> <remote sha1>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
z40=0000000000000000000000000000000000000000
while read local_ref local_sha remote_ref remote_sha
do
if [ "$local_sha" = $z40 ]
then
# Handle delete
:
else
if [ "$remote_sha" = $z40 ]
then
# New branch, examine all commits
range="$local_sha"
else
# Update to existing branch, examine new commits
range="$remote_sha..$local_sha"
fi
# Check for WIP commit
commit=`git rev-list -n 1 --grep '^WIP' "$range"`
if [ -n "$commit" ]
then
echo >&2 "Found WIP commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0
@@ -0,0 +1,169 @@
#!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.
publish=next
basebranch="$1"
if test "$#" = 2
then
topic="refs/heads/$2"
else
topic=`git symbolic-ref HEAD` ||
exit 0 ;# we do not interrupt rebasing detached HEAD
fi
case "$topic" in
refs/heads/??/*)
;;
*)
exit 0 ;# we do not interrupt others.
;;
esac
# Now we are dealing with a topic branch being rebased
# on top of master. Is it OK to rebase it?
# Does the topic really exist?
git show-ref -q "$topic" || {
echo >&2 "No such branch $topic"
exit 1
}
# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
echo >&2 "$topic is fully merged to master; better remove it."
exit 1 ;# we could allow it, but there is no point.
fi
# Is topic ever merged to next? If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
not_in_topic=`git rev-list "^$topic" master`
if test -z "$not_in_topic"
then
echo >&2 "$topic is already up to date with master"
exit 1 ;# we could allow it, but there is no point.
else
exit 0
fi
else
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
/usr/bin/perl -e '
my $topic = $ARGV[0];
my $msg = "* $topic has commits already merged to public branch:\n";
my (%not_in_next) = map {
/^([0-9a-f]+) /;
($1 => 1);
} split(/\n/, $ARGV[1]);
for my $elem (map {
/^([0-9a-f]+) (.*)$/;
[$1 => $2];
} split(/\n/, $ARGV[2])) {
if (!exists $not_in_next{$elem->[0]}) {
if ($msg) {
print STDERR $msg;
undef $msg;
}
print STDERR " $elem->[1]\n";
}
}
' "$topic" "$not_in_next" "$not_in_master"
exit 1
fi
<<\DOC_END
This sample hook safeguards topic branches that have been
published from being rewound.
The workflow assumed here is:
* Once a topic branch forks from "master", "master" is never
merged into it again (either directly or indirectly).
* Once a topic branch is fully cooked and merged into "master",
it is deleted. If you need to build on top of it to correct
earlier mistakes, a new topic branch is created by forking at
the tip of the "master". This is not strictly necessary, but
it makes it easier to keep your history simple.
* Whenever you need to test or publish your changes to topic
branches, merge them into "next" branch.
The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.
With this workflow, you would want to know:
(1) ... if a topic branch has ever been merged to "next". Young
topic branches can have stupid mistakes you would rather
clean up before publishing, and things that have not been
merged into other branches can be easily rebased without
affecting other people. But once it is published, you would
not want to rewind it.
(2) ... if a topic branch has been fully merged to "master".
Then you can delete it. More importantly, you should not
build on top of it -- other people may already want to
change things related to the topic as patches against your
"master", so if you need further changes, it is better to
fork the topic (perhaps with the same name) afresh from the
tip of "master".
Let's look at this example:
o---o---o---o---o---o---o---o---o---o "next"
/ / / /
/ a---a---b A / /
/ / / /
/ / c---c---c---c B /
/ / / \ /
/ / / b---b C \ /
/ / / / \ /
---o---o---o---o---o---o---o---o---o---o---o "master"
A, B and C are topic branches.
* A has one fix since it was merged up to "next".
* B has finished. It has been fully merged up to "master" and "next",
and is ready to be deleted.
* C has not merged to "next" at all.
We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.
To compute (1):
git rev-list ^master ^topic next
git rev-list ^master next
if these match, topic has not merged in next at all.
To compute (2):
git rev-list master..topic
if this is empty, it is fully merged to "master".
DOC_END
@@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".
if test -n "$GIT_PUSH_OPTION_COUNT"
then
i=0
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
do
eval "value=\$GIT_PUSH_OPTION_$i"
case "$value" in
echoback=*)
echo "echo from the pre-receive-hook: ${value#*=}" >&2
;;
reject)
exit 1
esac
i=$((i + 1))
done
fi
@@ -0,0 +1,42 @@
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".
# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
# case "$COMMIT_SOURCE,$SHA1" in
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
# *) ;;
# esac
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi
@@ -0,0 +1,128 @@
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
# This boolean sets whether unannotated tags will be allowed into the
# repository. By default they won't be.
# hooks.allowdeletetag
# This boolean sets whether deleting tags will be allowed in the
# repository. By default they won't be.
# hooks.allowmodifytag
# This boolean sets whether a tag may be modified after creation. By default
# it won't be.
# hooks.allowdeletebranch
# This boolean sets whether deleting branches will be allowed in the
# repository. By default they won't be.
# hooks.denycreatebranch
# This boolean sets whether remotely creating branches will be denied
# in the repository. By default this is allowed.
#
# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"
# --- Safety check
if [ -z "$GIT_DIR" ]; then
echo "Don't run this script from the command line." >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 <ref> <oldrev> <newrev>)" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
exit 1
fi
# --- Config
allowunannotated=$(git config --bool hooks.allowunannotated)
allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
denycreatebranch=$(git config --bool hooks.denycreatebranch)
allowdeletetag=$(git config --bool hooks.allowdeletetag)
allowmodifytag=$(git config --bool hooks.allowmodifytag)
# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
echo "*** Project description file hasn't been set" >&2
exit 1
;;
esac
# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero="0000000000000000000000000000000000000000"
if [ "$newrev" = "$zero" ]; then
newrev_type=delete
else
newrev_type=$(git cat-file -t $newrev)
fi
case "$refname","$newrev_type" in
refs/tags/*,commit)
# un-annotated tag
short_refname=${refname##refs/tags/}
if [ "$allowunannotated" != "true" ]; then
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
exit 1
fi
;;
refs/tags/*,delete)
# delete tag
if [ "$allowdeletetag" != "true" ]; then
echo "*** Deleting a tag is not allowed in this repository" >&2
exit 1
fi
;;
refs/tags/*,tag)
# annotated tag
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
then
echo "*** Tag '$refname' already exists." >&2
echo "*** Modifying a tag is not allowed in this repository." >&2
exit 1
fi
;;
refs/heads/*,commit)
# branch
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
echo "*** Creating a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/remotes/*,commit)
# tracking branch
;;
refs/remotes/*,delete)
# delete tracking branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
exit 1
fi
;;
*)
# Anything else (is there anything else?)
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
exit 1
;;
esac
# --- Finished
exit 0
@@ -0,0 +1,6 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
@@ -0,0 +1,4 @@
0000000000000000000000000000000000000000 f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e Marcin Grzejszczak <marcin@grzejszczak.pl> 1545049294 +0100 clone: from git@github.com:spring-guides/gs-contract-rest.git
f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e 06e323583eeda1364779d80eef55110256411426 Marcin Grzejszczak <marcin@grzejszczak.pl> 1545050508 +0100 commit: Updated contract to the latest version; fixes gh-2
06e323583eeda1364779d80eef55110256411426 1d776d21deba9bd58877220abd802e8794ddb6a3 Marcin Grzejszczak <marcin@grzejszczak.pl> 1556531881 +0400 pull --rebase origin master: Fast-forward
1d776d21deba9bd58877220abd802e8794ddb6a3 9918bc61b3b4ba0b5005e9ed7debdd50c9838393 Marcin Grzejszczak <marcin@grzejszczak.pl> 1556532308 +0400 commit: Updated to latest
@@ -0,0 +1,4 @@
0000000000000000000000000000000000000000 f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e Marcin Grzejszczak <marcin@grzejszczak.pl> 1545049294 +0100 clone: from git@github.com:spring-guides/gs-contract-rest.git
f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e 06e323583eeda1364779d80eef55110256411426 Marcin Grzejszczak <marcin@grzejszczak.pl> 1545050508 +0100 commit: Updated contract to the latest version; fixes gh-2
06e323583eeda1364779d80eef55110256411426 1d776d21deba9bd58877220abd802e8794ddb6a3 Marcin Grzejszczak <marcin@grzejszczak.pl> 1556531881 +0400 pull --rebase origin master: Fast-forward
1d776d21deba9bd58877220abd802e8794ddb6a3 9918bc61b3b4ba0b5005e9ed7debdd50c9838393 Marcin Grzejszczak <marcin@grzejszczak.pl> 1556532308 +0400 commit: Updated to latest
@@ -0,0 +1 @@
0000000000000000000000000000000000000000 f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e Marcin Grzejszczak <marcin@grzejszczak.pl> 1545049294 +0100 clone: from git@github.com:spring-guides/gs-contract-rest.git
@@ -0,0 +1,3 @@
f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e 06e323583eeda1364779d80eef55110256411426 Marcin Grzejszczak <marcin@grzejszczak.pl> 1545050516 +0100 update by push
06e323583eeda1364779d80eef55110256411426 1d776d21deba9bd58877220abd802e8794ddb6a3 Marcin Grzejszczak <marcin@grzejszczak.pl> 1556531881 +0400 pull --rebase origin master: fast-forward
1d776d21deba9bd58877220abd802e8794ddb6a3 9918bc61b3b4ba0b5005e9ed7debdd50c9838393 Marcin Grzejszczak <marcin@grzejszczak.pl> 1556532314 +0400 update by push

Some files were not shown because too many files have changed in this diff Show More