Skip to content

Implement Manifest V3 objects and deployment #1167

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 280 commits into from
Nov 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
280 commits
Select commit Hold shift + click to select a range
f7b5952
Merge branch '3.x'
twoseat May 28, 2020
272094c
v4.8.0.BUILD-SNAPSHOT Development
twoseat May 28, 2020
0d134c0
Increase Support for Maintenance Info
twoseat Jun 4, 2020
6a8affd
Merge branch '1048-maintenance-info' into 3.x
twoseat Jun 4, 2020
9fb5485
Merge branch '3.x'
twoseat Jun 4, 2020
f37e811
Add support for events v3
enchobelezirev Nov 1, 2019
8900835
Polishing
twoseat Jun 3, 2020
e5a6c86
Advanced Polishing
twoseat Jun 11, 2020
6ae68da
Merge branch '1014-v3-events' into 3.x
twoseat Jun 11, 2020
f3a0924
Merge branch '3.x'
twoseat Jun 11, 2020
af56fdb
Refresh Refresh Tokens
twoseat Jun 11, 2020
0cea1e0
Merge branch '1051-refresh-tokens' into 3.x
twoseat Jun 11, 2020
c8b85cc
Merge branch '3.x'
twoseat Jun 11, 2020
8c04919
Compatibility Updates
twoseat Jun 15, 2020
2401346
Merge branch 'compatibility-updates' into 3.x
twoseat Jun 16, 2020
2dd0120
Merge branch '3.x'
twoseat Jun 16, 2020
b92f9b6
Correct Audit Events Relationships.
twoseat Jun 15, 2020
e6afdfb
Merge branch 'audit-relationships' into 3.x
twoseat Jun 16, 2020
138c3d9
Merge branch '3.x'
twoseat Jun 16, 2020
7170629
Add Request ID Logging
twoseat Jun 16, 2020
e787600
Merge branch '981-request-logging' into 3.x
twoseat Jun 16, 2020
f6121c0
Merge branch '3.x'
twoseat Jun 16, 2020
f93ef5b
Updated Word List
twoseat Jun 11, 2020
a6475cb
Merge branch 'word-updates' into 3.x
twoseat Jun 16, 2020
0049f61
Merge branch '3.x'
twoseat Jun 16, 2020
f93ff38
Operations Layer Support for Maintenance Info
twoseat Jun 11, 2020
097eb72
Merge branch '1050-maintenance-info-ops' into 3.x
twoseat Jun 18, 2020
0b299d2
Merge branch '3.x'
twoseat Jun 18, 2020
0d8fdf2
v3.26.0.BUILD-SNAPSHOT Development
twoseat Jun 22, 2020
64078f8
Merge branch '3.x'
twoseat Jun 22, 2020
c4b037e
v4.9.0.BUILD-SNAPSHOT Development
twoseat Jun 22, 2020
67df80d
Add Stack to Operations Buildpack
twoseat Jul 6, 2020
70e8cbb
Merge branch '1056-buildpack-stack' into 3.x
twoseat Jul 6, 2020
35606f7
Merge branch '3.x'
twoseat Jul 6, 2020
345c603
Add routes support for V3
enchobelezirev Oct 30, 2019
46d6ae6
Additional Functionality
twoseat Jun 22, 2020
7f4cf2a
Merge branch '1012-v3-routes' into 3.x
twoseat Jul 8, 2020
3a68d85
Merge branch '3.x'
twoseat Jul 8, 2020
8940067
Fix CI Failure
twoseat Jul 8, 2020
b274134
Merge branch 'fix-ci' into 3.x
twoseat Jul 9, 2020
266d7d1
Merge branch '3.x'
twoseat Jul 9, 2020
628e681
More CI Fixes
twoseat Jul 9, 2020
d26143b
Merge branch 'more-ci-fix' into 3.x
twoseat Jul 9, 2020
7d55cc3
Merge branch '3.x'
twoseat Jul 9, 2020
f9a17ba
Fix Health Check Type Error
twoseat Jul 13, 2020
a8d7ba6
Merge branch '980-health-check-error' into 3.x
twoseat Jul 13, 2020
ac2411b
Merge branch '3.x' into main
twoseat Jul 13, 2020
1546ee7
Support Multiple Buildpacks
twoseat Jul 14, 2020
4072ac5
Merge branch '1037-multiple-buildpacks' into 3.x
twoseat Jul 29, 2020
7ef9be7
Merge branch '3.x' into main
twoseat Jul 29, 2020
5fba379
Dependency Updates
twoseat Jul 31, 2020
03bd6cc
Merge branch 'dependency-updates' into 3.x
twoseat Jul 31, 2020
b9b6383
Merge branch '3.x' into main
twoseat Jul 31, 2020
88d1877
Fix File Uploads
twoseat Aug 5, 2020
cd022f7
Merge branch 'fix-uploads' into 3.x
twoseat Aug 5, 2020
da8f518
Merge branch '3.x' into main
twoseat Aug 5, 2020
fbbab60
Revert Some Dependencies
twoseat Aug 13, 2020
9bbebe6
Merge branch 'dependencies' into 3.x
twoseat Aug 13, 2020
e1ee418
Merge branch '3.x' into main
twoseat Aug 13, 2020
c9da9ec
Add V3 Spaces
twoseat Aug 13, 2020
b358b25
Merge branch 'v3-spaces' into 3.x
twoseat Aug 14, 2020
d374340
Merge branch '3.x' into main
twoseat Aug 14, 2020
9b33f93
v3.27.0.BUILD-SNAPSHOT Development
twoseat Aug 14, 2020
bbeb18f
Merge branch '3.x' into main
twoseat Aug 14, 2020
6a14b7a
v4.10.0.BUILD-SNAPSHOT Development
twoseat Aug 14, 2020
6759fde
Handle Opaque Tokens
twoseat Aug 19, 2020
d13e4e2
Merge branch '1058-token-parsing' into 3.x
twoseat Aug 19, 2020
499401a
Merge branch '3.x' into main
twoseat Aug 19, 2020
0a4bcf9
Complete V3 Organizations
twoseat Aug 13, 2020
fcca362
Merge branch 'v3-orgs' into 3.x
twoseat Aug 20, 2020
ed0129d
Merge branch '3.x' into main
twoseat Aug 20, 2020
2dbee10
Fix scale application request in Applications V3 client
enchobelezirev Oct 24, 2019
c85a215
Fix Application Scaling
twoseat Aug 21, 2020
38890c6
Merge branch '1010-scale-app' into 3.x
twoseat Aug 21, 2020
f9aa264
Merge branch '3.x' into main
twoseat Aug 21, 2020
9ab7ea7
Update README
twoseat Sep 8, 2020
4dcec97
Merge branch 'doc-update' into 3.x
twoseat Sep 8, 2020
c198257
Merge branch '3.x' into main
twoseat Sep 8, 2020
3eb3cb6
Support Application Features
twoseat Sep 15, 2020
4852d52
Merge branch 'app-features' into 3.x
twoseat Sep 15, 2020
7cf6ba5
Merge branch '3.x' into main
twoseat Sep 15, 2020
529cc79
Protect Blocking API
nebhale Sep 15, 2020
aedf900
Merge branch '1068-protect-blocking-api' into 3.x
twoseat Sep 16, 2020
2ab80dd
Merge branch '3.x' into main
twoseat Sep 16, 2020
b37692e
v3.28.0.BUILD-SNAPSHOT Development
twoseat Sep 16, 2020
6cbc928
Merge branch '3.x' into main
twoseat Sep 16, 2020
0db5f50
v4.11.0.BUILD-SNAPSHOT Development
twoseat Sep 16, 2020
596d86a
Add Java 11 to Unit Tests
twoseat Sep 15, 2020
f599ce7
Merge branch 'expand-testing' into 3.x
twoseat Sep 18, 2020
fca2042
Merge branch '3.x' into main
twoseat Sep 18, 2020
b9d397d
Support Java 11
twoseat Sep 22, 2020
ef36e10
Merge branch '1067-java11-updates' into 3.x
twoseat Sep 22, 2020
4cd896d
Merge branch '3.x' into main
twoseat Sep 22, 2020
43e42dd
Update to Latest Cloud Controller Version
twoseat Sep 29, 2020
e63a778
Merge branch 'cf-update' into 3.x
twoseat Sep 29, 2020
7fd5bca
Merge branch '3.x' into main
twoseat Sep 29, 2020
f97c0b7
Fix enabling of public visibility for a single plan
nictas Aug 16, 2019
68b53f0
Polishing
twoseat Aug 20, 2019
4dee580
Merge branch '994-plan-visibility' into 3.x
twoseat Sep 30, 2020
05c429e
Merge branch '3.x' into main
twoseat Sep 30, 2020
f512f44
Update unit baddes for java8 and java11
gberche-orange Sep 23, 2020
b9b5068
Update README
twoseat Oct 5, 2020
bacce23
Merge branch '1069-readme-update' into 3.x
twoseat Oct 5, 2020
c103f84
Merge branch '3.x' into main
twoseat Oct 5, 2020
1348cd3
v3.29.0.BUILD-SNAPSHOT Development
twoseat Oct 6, 2020
58ed936
Merge branch '3.x' into main
twoseat Oct 6, 2020
920b42d
v4.12.0.BUILD-SNAPSHOT Development
twoseat Oct 6, 2020
24ceb3e
Implement Service Plans
twoseat Sep 15, 2020
603ede6
Merge branch 'service-plans' into 3.x
twoseat Oct 12, 2020
6250584
Merge branch '3.x' into main
twoseat Oct 12, 2020
56af9cd
Support V3 Applications
twoseat Oct 23, 2020
b4fe0e8
Merge branch 'v3-apps' into 3.x
twoseat Oct 23, 2020
461d8e0
Merge branch '3.x' into main
twoseat Oct 23, 2020
a0db646
Add Admin V3 Support
twoseat Nov 3, 2020
0e80f06
Merge branch 'v3-admin' into 3.x
twoseat Nov 3, 2020
e850142
Merge branch '3.x' into main
twoseat Nov 3, 2020
2536f68
Update Dependencies
twoseat Nov 4, 2020
444a2a6
Merge branch 'dep-updates' into 3.x
twoseat Nov 4, 2020
ede39cc
Merge branch '3.x' into main
twoseat Nov 4, 2020
1b95cc7
v3.30.0.BUILD-SNAPSHOT Development
twoseat Nov 4, 2020
2098af2
Merge branch '3.x' into main
twoseat Nov 4, 2020
e8a50b7
v4.13.0.BUILD-SNAPSHOT Development
twoseat Nov 4, 2020
c369fcd
Support V3 Buildpacks
twoseat Nov 12, 2020
c674909
Merge branch 'v3-buildpacks' into main
twoseat Nov 12, 2020
b22e638
Fix CI Failure
twoseat Nov 12, 2020
4da28a2
Merge branch 'fix-ci' into main
twoseat Nov 12, 2020
6e57618
Support Service Offerings V3
twoseat Dec 9, 2020
4eca953
Merge branch 'v3-service-offerings' into main
twoseat Dec 9, 2020
062ac19
Fix CI Issues
twoseat Dec 9, 2020
53b7cb1
Merge branch 'service-offering-fixes' into main
twoseat Dec 9, 2020
c38e963
Add automatic module names (JPMS)
nictas Oct 7, 2020
1798e6c
Merge branch '1071-module-names' into main
twoseat Dec 11, 2020
40eb088
Update Version to 5.x
twoseat Jan 5, 2021
adb1268
Merge branch 'new-version'
twoseat Jan 6, 2021
6c1f500
Dependency Updates
twoseat Jan 7, 2021
2763bae
Merge branch 'dep-upgrades' into 4.x
twoseat Jan 7, 2021
4b18e96
Merge branch '4.x'
twoseat Jan 7, 2021
517e52c
Remove A Delay Util
twoseat Jan 7, 2021
707b83c
Merge branch 'remove-delay-util'
twoseat Jan 7, 2021
7c8522b
Add Log Cache client
mheath Jun 18, 2020
3736ad1
Polishing
twoseat Jan 8, 2021
5fc354b
Merge branch '1053-log-cache' into 4.x
twoseat Jan 8, 2021
9fc2c10
Merge branch '4.x'
twoseat Jan 8, 2021
9049f50
Fix CI
twoseat Jan 11, 2021
abf1a55
Merge branch 'fix-ci' into 4.x
twoseat Jan 11, 2021
25ffbd7
Merge branch '4.x'
twoseat Jan 11, 2021
c8805b8
Fix buffer leak when GET response has a body
mheath Jan 7, 2021
1752f15
Merge branch '1084-buffer-leak' into 4.x
twoseat Jan 11, 2021
e61cb3d
Merge branch '4.x'
twoseat Jan 11, 2021
0c56678
Update JUnit Dependency
twoseat Jan 11, 2021
831b2a4
Merge branch 'update-junit'
twoseat Jan 11, 2021
d5ece0b
Rename Service Instances Package
twoseat Jan 12, 2021
6647222
Merge branch 'package-rename'
twoseat Jan 12, 2021
376c50c
Remove Port-based Tests
twoseat Jan 12, 2021
f92fe3c
Merge branch 'reduce-port-tests' into 4.x
twoseat Jan 12, 2021
76a262b
Merge branch '4.x'
twoseat Jan 12, 2021
f342e8e
Limit Log Cache Tests
twoseat Jan 12, 2021
902bcb4
Merge branch 'ignore-tests' into 4.x
twoseat Jan 12, 2021
2ee2a12
Merge branch '4.x'
twoseat Jan 12, 2021
1e3b4c6
v4.14.0.BUILD-SNAPSHOT Development
twoseat Jan 12, 2021
ecd3113
Merge branch '4.x'
twoseat Jan 12, 2021
90248d2
v5.1.0.BUILD-SNAPSHOT Development
twoseat Jan 12, 2021
2b23353
Support renaming spaces
mheath Jan 5, 2021
5f29fe8
Polishing
twoseat Jan 12, 2021
f153c81
Merge branch '1081-rename-spaces' into 4.x
twoseat Jan 13, 2021
bb63cc2
Merge branch '4.x'
twoseat Jan 13, 2021
d946cec
Add support for V3 Roles
radito3 Dec 4, 2020
52a0557
Polishing
twoseat Jan 14, 2021
f5655e8
Merge branch '1079-v3-roles' into 4.x
twoseat Jan 14, 2021
8b99869
Merge branch '4.x'
twoseat Jan 14, 2021
3fc0391
Update Copyright Date
twoseat Jan 15, 2021
d007f96
Merge branch 'copyright-update' into 4.x
twoseat Jan 15, 2021
e82ba66
Merge branch '4.x'
twoseat Jan 15, 2021
48e0fa3
Update Dependencies
twoseat Jan 15, 2021
348ad88
Merge branch 'dep-updates' into 4.x
twoseat Jan 15, 2021
2291ab3
Merge branch '4.x'
twoseat Jan 15, 2021
0231659
v4.15.0.BUILD-SNAPSHOT Development
twoseat Jan 15, 2021
467ce6d
Merge branch '4.x'
twoseat Jan 15, 2021
54732e1
v5.2.0.BUILD-SNAPSHOT Development
twoseat Jan 15, 2021
f58b6a9
Make state field nullable
Feb 19, 2021
06f1003
Merge branch '4.x' into main
mheath Feb 25, 2021
190f26a
v5.3.0.BUILD-SNAPSHOT Development
mheath Mar 3, 2021
ae392f3
Use a base image
Apr 30, 2021
a6a1cb6
Removed file, no longer needed.
Apr 30, 2021
c237679
Merge pull request #1101 from cloudfoundry/ci_fixes
Apr 30, 2021
2641d4e
Migration of CI (#1102)
May 4, 2021
f37dad6
Fixes issue with failing integration tests. This test was changing th…
May 5, 2021
cfddc2d
Add the concourse release script JAR into the image
May 10, 2021
81ea151
Removing Bintray & using https://github.com/spring-io/concourse-relea…
May 10, 2021
dee4bdf
Bump snapshot versions to 5.4.0
May 10, 2021
020725c
Change JAR name in image
May 11, 2021
d1adae8
Updates to CI for promote to maven
May 11, 2021
e4eea16
Updates dockerfile & maven promotion scripts
May 11, 2021
2431f9e
- Remove CI information from README as it's no longer public
May 14, 2021
7256ba3
Remove storing the build info, no longer needed. This is pulled by th…
May 17, 2021
1c86d07
v5.6.0.BUILD-SNAPSHOT Development
May 17, 2021
94cb2f6
Install jfrog-cli in the CI image
May 18, 2021
02614ff
Install jfrog-cli in the CI image using curl, since they don't have D…
May 18, 2021
10ef8d5
Move jfrog cli to the PATH
May 18, 2021
a5be31a
Use long instead of integer (#1085)
IvanBorislavovDimitrov Jun 3, 2021
b15a829
Convert memory and disk on the ProcessUsage object to Long
Jun 3, 2021
28dea4f
Makes ProcessStatisticsResource validations aware of the state.
Jun 4, 2021
fd6f50b
Add basic troubleshooting instructions
Jun 4, 2021
966ee96
Update README.md
Jun 4, 2021
bbd9790
Update README.md
Jun 11, 2021
b230acf
Add support for V3 Stacks (#1088)
radito3 Jun 24, 2021
0173a85
Use Double.valueOf instead of new Double. This resolves a WARNING und…
Jun 24, 2021
71783ae
Added instructions for running integration tests & enabling trace out…
Aug 9, 2021
c062ff8
Updates IDEA config
Aug 18, 2021
04abccd
Add Service Brokers Endpoints & service instance credentials/paramete…
theghost5800 Aug 20, 2021
3c83978
fix: upgrade org.apache.commons:commons-compress from 1.20 to 1.21 (#…
snyk-bot Aug 26, 2021
52f1caa
fix: upgrade org.atteo:evo-inflector from 1.2.2 to 1.3 (#1111)
snyk-bot Aug 26, 2021
5c12229
Ensure connections are closed in the event of a 401 & retry. (#1118)
Aug 26, 2021
9d5e7f9
Marking ServiceBrokersTest as requiring CF 2.10+ (#1119)
Aug 26, 2021
96f068a
v5.7.0.BUILD-SNAPSHOT Development
Aug 27, 2021
503632e
Allow empty query params for V3 filtering & Fix build for Windows (#1…
radito3 Nov 1, 2021
6e94919
Avoid NPE in DefaultApplications.java (#1126)
marc-schaefers Jan 4, 2022
ae97dc4
Fixed issue with PR#1126 where compilation+unit tests failed with Uns…
pivotal-david-osullivan Jan 24, 2022
8d43a43
Fix for comparison of unauthorised check (#1136)
pivotal-david-osullivan Feb 14, 2022
f6a0fa2
Fix parse of ProcessStatisticsResource with nullable fields (#1134)
theghost5800 Feb 17, 2022
b1077fe
Marks a Deployment Resource's 'app' relationship property as Nullable
Feb 21, 2022
e611cd2
Marks a Deployment Resource's 'app' relationship property as Nullable…
pivotal-david-osullivan Feb 21, 2022
c329221
Bumps Supported API version, handles removal of Deployment 'state' in…
Feb 22, 2022
dd88827
Merge pull request #1138 from cloudfoundry/tas_2_11
pivotal-david-osullivan Feb 23, 2022
3f3f1d0
Set supported-api-version to 164 (#1139)
pivotal-david-osullivan Feb 24, 2022
2879b44
v5.8.0.BUILD-SNAPSHOT Development
Feb 28, 2022
67a834e
Changes to SSLContext setup to handle deprecations in reactor-netty &…
Feb 23, 2022
00faecf
Merge pull request #1140 from cloudfoundry/boot-2-5
pivotal-david-osullivan Mar 4, 2022
e427d97
Ensure that http client is always configured
Apr 27, 2022
7a2d445
Merge pull request #1147 from cloudfoundry/gh_issue_1143
pivotal-david-osullivan Apr 27, 2022
fe1fe4d
Fix connection pool size in test (#1148)
Apr 27, 2022
a3a11e4
v5.9.0.BUILD-SNAPSHOT Development
Apr 28, 2022
31bc5c9
CC API version bump and necessary changes for support (#1150)
pivotal-david-osullivan May 6, 2022
997bbd4
CC API version bump and necessary changes for support
May 5, 2022
10bcef7
Merge pull request #1151 from cloudfoundry/build-fields
pivotal-david-osullivan May 9, 2022
71770ed
CC API version bump and necessary changes for support (#1152)
pivotal-david-osullivan May 10, 2022
f834b53
Add variable substitution in ApplicationManifestUtils (#1153)
luschmar Jun 1, 2022
4f63c5f
Allow null values in map of service parameters (#1159)
theghost5800 Jul 20, 2022
72b6b6b
Implement service instances and plans creation and update (#1157)
IvanBorislavovDimitrov Jul 20, 2022
a9b80c9
Re-implement V3 Service Bindings (#1158)
radito3 Jul 27, 2022
974a8b5
Fixes issue where test was not waiting for the creation of service in…
Jul 27, 2022
7fb6fe9
Add LifecycleType for KPACK (#1162)
Jul 27, 2022
003de15
v5.10.0.BUILD-SNAPSHOT Development
Jul 28, 2022
2772431
Fix service credential binding details response
radito3 Sep 8, 2022
dcba939
Merge pull request #1166 from radito3/main
pivotal-david-osullivan Sep 13, 2022
e883106
Implement Manifest V3 objects and deployment
schulzh Sep 16, 2022
c45ab19
add integration tests
schulzh Sep 21, 2022
92cbd00
some cleanup
schulzh Sep 21, 2022
6346e75
Fix processes with 0 Instances not getting ready
schulzh Sep 30, 2022
944a8a5
Apply review feedback
schulzh Oct 6, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
.idea/libraries
.idea/jarRepositories.xml
.idea/tasks.xml
.idea/workspace.xml
target/
bin/
.project
.classpath
.settings/
.factorypath
.factorypath
.gradle
6 changes: 4 additions & 2 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/runConfigurations.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 46 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,14 @@
| `cloudfoundry-operations` | [![javadoc](https://javadoc.io/badge2/org.cloudfoundry/cloudfoundry-operations/javadoc.svg)](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-operations)
| `cloudfoundry-util` | [![javadoc](https://javadoc.io/badge2/org.cloudfoundry/cloudfoundry-util/javadoc.svg)](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-util)

| Job | Status
| --- | ------
| `unit-test` | [![unit-test-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/java-client/jobs/unit-test-master/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/unit-test-master)
| `integration-test-2.5` | [![integration-test-2.5-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/java-client/jobs/integration-test-2.5-master/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.5-master)
| `integration-test-2.6` | [![integration-test-2.6-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/java-client/jobs/integration-test-2.6-master/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.6-master)
| `integration-test-2.7` | [![integration-test-2.7-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/java-client/jobs/integration-test-2.7-master/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.7-master)
| `integration-test-2.8` | [![integration-test-2.8-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/java-client/jobs/integration-test-2.8-master/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.8-master)
| `deploy` | [![deploy-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/java-client/jobs/deploy-master/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/deploy-master)


The `cf-java-client` project is a Java language binding for interacting with a Cloud Foundry instance. The project is broken up into a number of components that expose different levels of abstraction depending on need.

* `cloudfoundry-client` – Interfaces, request, and response objects mapping to the [Cloud Foundry REST APIs][a]. This project has no implementation and therefore cannot connect to a Cloud Foundry instance on its own.
* `cloudfoundry-client-reactor` – The default implementation of the `cloudfoundry-client` project. This implementation is based on the Reactor Netty [`HttpClient`][h].
* `cloudfoundry-client-reactor` – The default implementation of the `cloudfoundry-client` project. This implementation is based on Reactor Netty [`HttpClient`][h].
* `cloudfoundry-operations` – An API and implementation that corresponds to the [Cloud Foundry CLI][c] operations. This project builds on the `cloudfoundry-client` and therefore has a single implementation.

## Versions
The Cloud Foundry Java Client has two active versions. The `4.x` line uses Spring Boot `2.2.x` just to manage its dependencies, while the `3.x` line uses Spring Boot `2.1.x`. Unless you have a specific dependency-related reason for using the older version we recommend you adopt the `4.x` line.
The Cloud Foundry Java Client has two active versions. The `5.x` line is compatible with Spring Boot `2.4.x - 2.6.x` just to manage its dependencies, while the `4.x` line uses Spring Boot `2.3.x`.

## Dependencies
Most projects will need two dependencies; the Operations API and an implementation of the Client API. For Maven, the dependencies would be defined like this:
Expand All @@ -35,13 +25,12 @@ Most projects will need two dependencies; the Operations API and an implementati
<dependency>
<groupId>org.cloudfoundry</groupId>
<artifactId>cloudfoundry-client-reactor</artifactId>
<version>4.3.0.RELEASE</version>
<version>latest.RELEASE</version>
</dependency>
<dependency>
<groupId>org.cloudfoundry</groupId>
<artifactId>cloudfoundry-operations</artifactId>
<version>4.3.0.RELEASE</version>
</dependency>
<version>latest.RELEASE</version>
</dependency>
...
</dependencies>
Expand All @@ -67,8 +56,8 @@ For Gradle, the dependencies would be defined like this:

```groovy
dependencies {
compile 'org.cloudfoundry:cloudfoundry-client-reactor:4.3.0.RELEASE'
compile 'org.cloudfoundry:cloudfoundry-operations:4.3.0.RELEASE'
compile 'org.cloudfoundry:cloudfoundry-client-reactor:<latest>.RELEASE'
compile 'org.cloudfoundry:cloudfoundry-operations:<latest>.RELEASE'
...
}
```
Expand Down Expand Up @@ -208,7 +197,7 @@ Once you've got a reference to the `CloudFoundryOperations`, it's time to start

1. Requests a list of all organizations
1. Extracts the name of each organization
1. Prints the name of the each organization to `System.out`
1. Prints the name of each organization to `System.out`

```java
cloudFoundryOperations.organizations()
Expand Down Expand Up @@ -245,6 +234,24 @@ The above example is more complicated:
1. `.flatMapIterable(...)` – Substitutes the original `Mono` with a `Flux` of the `Resource`s returned by the requested page.
1. `.map(...)` – Maps the `Resource` to an `OrganizationSummary` type.

## Troubleshooting

If you are having issues with the cf-java-client in your applications...

First, [read this article on debugging reactive applications](https://spring.io/blog/2019/03/28/reactor-debugging-experience) and watch this [Spring Tips Video](https://spring.io/blog/2019/05/29/spring-tips-debugging-reactor-applications) also on debugging reactive apps.

Beyond that, it is helpful to capture the following information:

1. The version of cf-java-client you are using
2. If you are using Spring Boot & if so, the version
3. A description of the problem behavior.
4. A list of things, if any, you have recently changed in your project (even if seemingly unrelated)
5. If you are getting failures with an operation or client request, capture the request and response information.
- You may capture basic request and response information by setting the log level for `cloudfoundry-client` to `DEBUG`. For example with Spring Boot, set `logging.level.cloudfoundry-client=debug`.
- You may perform a wire capture by setting the log level for `cloudfoundry-client.wire` to `TRACE`. For example with Spring Boot, set `logging.level.cloudfoundry-client.wire=trace`.

If you open a Github issue with a request for help, please include as much of the information above as possible and do not forget to sanitize any request/response data posted.

## Development
The project depends on Java 8. To build from source and install to your local Maven cache, run the following:

Expand All @@ -261,8 +268,20 @@ To run the integration tests, run the following:
$ ./mvnw -Pintegration-test clean test
```

To run a specific integration test, run the following replacing with `-Dtest=org.cloudfoundry.TestClass#test-method` (`#test-method` is optional):

```shell
./mvnw -Pintegration-test clean test -Dtest=org.cloudfoundry.client.v3.ServiceBrokersTest#update
```

To run tests & enable HTTP trace output, execute:

```shell
CLIENT_LOGGING_LEVEL=trace ./mvnw -Pintegration-test clean test
```

**IMPORTANT**
Integration tests should be run against an empty Cloud Foundry instance. The integration tests are destructive, affecting nearly everything on an instance given the chance.
Integration tests require admin access and should be run against an empty Cloud Foundry instance. The integration tests are destructive, affecting nearly everything on an instance given the chance.

The integration tests require a running instance of Cloud Foundry to test against. To configure the integration tests with the appropriate connection information use the following environment variables:

Expand All @@ -279,6 +298,14 @@ Name | Description
`TEST_PROXY_USERNAME` | _(Optional)_ The username for a proxy to route all requests through
`TEST_SKIPSSLVALIDATION` | _(Optional)_ Whether to skip SSL validation when connecting to the Cloud Foundry instance. Defaults to `false`.

If you do not have access to a CloudFoundry instance with admin access, you can run one locally using [bosh-deployment](https://github.com/cloudfoundry/bosh-deployment) & [cf-deployment](https://github.com/cloudfoundry/cf-deployment/) and Virtualbox.

For instructions installing Bosh in VirtualBox using `bosh-deployment`, see the [Install Section to install Bosh](https://bosh.io/docs/bosh-lite/).

With Bosh installed, follow the [deployment guide to get CF installed](https://github.com/cloudfoundry/cf-deployment/blob/main/texts/deployment-guide.md). You can skip to step 4, since you're installing into VirtualBox. Be sure to read the entire document before you begin, however pay specific attention to [this section which has specific instructions for running locally](https://github.com/cloudfoundry/cf-deployment/blob/main/texts/deployment-guide.md#for-operators-deploying-cf-to-local-bosh-lite).

Lastly before running the tests, it is strongly recommended that you take a snapshot of the VMs in the environment. This allows for the quick rollback of the environment should the tests break something (they don't generally, integration tests should clean up after themselves).

## Contributing
[Pull requests][u] and [Issues][e] are welcome.

Expand Down
11 changes: 9 additions & 2 deletions ci/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
FROM ubuntu:bionic
ARG base_image=openjdk:8-jre
FROM ${base_image}

ADD https://repo.spring.io/libs-release/io/spring/concourse/releasescripts/concourse-release-scripts/0.3.2/concourse-release-scripts-0.3.2.jar /opt/concourse-release-scripts.jar

RUN apt-get update && apt-get install --no-install-recommends -y \
ca-certificates \
curl \
jq \
&& rm -rf /var/lib/apt/lists/*
gnupg \
&& rm -rf /var/lib/apt/lists/*

RUN curl -fL https://getcli.jfrog.io | sh && \
mv jfrog /usr/local/bin/
22 changes: 0 additions & 22 deletions ci/builder.yml

This file was deleted.

86 changes: 86 additions & 0 deletions ci/claim-environment.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
#!/usr/bin/env bash

set -euo pipefail

ROOT=$(realpath "$(dirname "${BASH_SOURCE[0]}")"/../..)

if [[ -d "${ROOT}"/om ]]; then
printf "➜ Expanding om\n"
tar xzf "${ROOT}"/om/om-linux-*.tar.gz -C "${ROOT}"/om
export PATH="${ROOT}"/om:${PATH}
fi

printf "Claiming environment from %s\n" "${POOL}"

CLAIM=$(curl \
--fail \
--location \
--show-error \
--silent \
--header 'Accept: application/json' \
--request "POST" \
"https://environments.toolsmiths.cf-app.com/pooled_gcp_engineering_environments/claim?api_token=${API_TOKEN}&pool_name=${POOL}&notes=Claimed%20by%20Java%20Buildpack%20CI")

printf "Claimed %s\n" "$(jq -n -r --argjson claim "${CLAIM}" '$claim.name')"

CREDENTIALS=$(om \
--target "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.url')" \
--username "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.username')" \
--password "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.password')" \
credentials \
--product-name cf \
--credential-reference .uaa.admin_credentials \
--format json)

jq \
-n -r \
--argjson claim "${CLAIM}" \
--argjson credentials "${CREDENTIALS}" \
'{ name: $claim.name, username: $credentials.identity, password: $credentials.password }' \
> "${ROOT}"/environment/cf-creds.json


CREDENTIALS=$(om \
--target "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.url')" \
--username "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.username')" \
--password "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.password')" \
credentials \
--product-name cf \
--credential-reference .uaa.admin_client_credentials \
--format json)

jq \
-n -r \
--argjson claim "${CLAIM}" \
--argjson credentials "${CREDENTIALS}" \
'{ client: $credentials.identity, secret: $credentials.password }' \
> "${ROOT}"/environment/uaa-creds.json

printf "Patching for TCP Routing Support\n"

om \
--target "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.url')" \
--username "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.username')" \
--password "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.password')" \
staged-config \
--product-name cf > /tmp/cf.yml

TCP_ROUTES_LB="$(jq -n -r --argjson claim "${CLAIM}" '$claim.tcp_router_pool')"

om \
--target "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.url')" \
--username "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.username')" \
--password "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.password')" \
configure-product \
--config /tmp/cf.yml \
--ops-file cf-java-client/ci/tcp-routes.yml \
--var TCP_ROUTES_LB="tcp:${TCP_ROUTES_LB}"

om \
--target "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.url')" \
--username "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.username')" \
--password "$(jq -n -r --argjson claim "${CLAIM}" '$claim.ops_manager.password')" \
apply-changes \
-n cf

printf "Environment updated with TCP Routes\n"
24 changes: 23 additions & 1 deletion ci/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,28 @@ set -euo pipefail

[[ -d $PWD/maven && ! -d $HOME/.m2 ]] && ln -s $PWD/maven $HOME/.m2

function clean_gpg {
FINGERPRINT=$(gpg --list-keys | head -4 | tail -1 | tr -d ' ')
gpg --batch --yes --delete-secret-keys "$FINGERPRINT"
gpg --batch --yes --delete-keys "$FINGERPRINT"
}

trap clean_gpg EXIT
gpg --batch --import-options import-show --import <(echo "$MAVEN_GPG_PRIVATE_KEY")

mkdir -p ~/.m2
cat <<EOF > ~/.m2/settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>gpg.passphrase</id>
<passphrase>${MAVEN_GPG_PASSPHRASE}</passphrase>
</server>
</servers>
</settings>
EOF

cd cf-java-client
./mvnw -q -Dmaven.test.skip=true deploy
cp target/build-info.json ../build-info/build-info.json
24 changes: 0 additions & 24 deletions ci/deploy.yml

This file was deleted.

Loading