Commit Graph

31 Commits

Author SHA1 Message Date
Olga Maciaszek-Sharma
ec784b757e Add hints to API via the Request interface. Fixes gh-647. (#669)
* Add hints to API via the Request interface. Fixes gh-647.

* Switch to generic context.
2020-01-17 14:26:33 -05:00
Olga Maciaszek-Sharma
8c054083cc Use configuration properties instead of environment. (#662)
* Use configuration properties instead of environment.

* Fix after review.
2019-12-19 17:27:40 +01:00
buildmaster
f25bbad456 Bumping versions 2019-12-18 16:05:04 +00:00
Olga Maciaszek-Sharma
75338cde79 Zoned ServiceInstanceListSupplier (#658)
* Get ServiceInstance zone from metadata.

* Add ZonePreferenceServiceInstanceListSupplier.

* Add javadocs and license entries.

* Add tests.

* Add documentation.

* Documentation fix.

* Fix after code review.
2019-12-18 15:25:51 +01:00
Olga Maciaszek-Sharma
de9e259b1e Make LoadBalancer cache conditional on no Ribbon default. (#650) 2019-12-11 15:55:41 +01:00
Olga Maciaszek-Sharma
da0e06eb7a Add evictor based loadbalancer caching (#644)
* Add Evictor dependency. Implement EvictorCache.

* Add EvictorBasedLoadBalancerCacheManager. Add evictor to starter.

* Set caffeine InitialCapacity from properties.

* Add tests. Add javadocs. Fix creating multiple cache instances.

* Reformat. Change property name. Add documentation.

* Add more tests.

* Move evictor version to parent. Add more tests.

* Ignore .flattened-pom.xml.

* Encapsulate Evictor and switch to non-evictor specific class naming.

* Adjust the docs.

* Fix after code review.
2019-11-25 20:34:19 +01:00
Olga Maciaszek-Sharma
1ddeca4a8e Switch to Spring Boot String to Duration conversion. 2019-11-22 16:49:28 +01:00
Olga Maciaszek-Sharma
bf6b31ee8a caffeine cache for loadbalancer Fix gh 638 (#643)
* Add Caffeine-based loadBalancerCacheManager.

* Add more tests.

* Fix test.

* Only enable loadBalancer caching if caffeine is on classpath. Warn if
caffeine is not on classpath.

* Add javadocs.

* Add docs. Change property name.

* Fix configuration.

* Fix after code review. Add another constructor to CaffeineBasedLoadBalancerCacheManager,
allowing to pass cache name, in order to support alternative ServiceInstanceListSupplierImplementations.
2019-11-22 15:53:57 +01:00
Ryan Baxter
18a4227c4e Added proxyBeanMethods = false to configuration classes. Fixes #623 2019-11-14 20:04:28 -05:00
Olga Maciaszek-Sharma
6356d92727 Remove unnecessary debug code. 2019-11-05 22:06:20 +01:00
Olga Maciaszek-Sharma
b1b0ec86a6 Fix gh 619 pass customisers in bean post processors (#627)
* Switch to passing customisers in BeanPostProcessor instead of the
SmartInitializingSingleton.

* Do not instantiate ReactorLoadBalancerExchangeFilterFunction while registering
LB BeanPostProcessor.

* Do not instantiate ReactorLoadBalancerExchangeFilterFunction while registering
LB BeanPostProcessor.

* Extract BeanPostProcessor instantiation to a separate configuration.

* Fix tests.

* Switch to using generics for DeferringLoadBalancerExchangeFilterFunction
and reusing BPP configuration for Ribbon. Add more test assertions.

* Add javadocs.

* Add test verifying LB filters added when WebClient built in constructor.
2019-11-05 15:22:09 +01:00
Olga Maciaszek-Sharma
c437379857 Merge branch '2.1.x'
# Conflicts:
#	spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfiguration.java
2019-10-29 17:48:21 +01:00
Olga Maciaszek-Sharma
b3c4698f99 Make RibbonWarnLogger conditional on loadbalancer.ribbon.enabled=true.
Fixes gh-628
2019-10-29 17:43:06 +01:00
Tim Ysewyn
7033a9877f Take first non-empty flux into consideration for composite reactive service discovery 2019-10-23 20:34:15 +02:00
Spencer Gibb
3fe7725fca Removes Objects.requireNonNull() 2019-10-23 14:03:46 -04:00
Tim Ysewyn
c0113c5235 Support reactive discovery client for load balancing 2019-10-03 16:34:58 +02:00
Olga Maciaszek-Sharma
87fa3c7897 Use Ribbon by default. (#609)
* Use Ribbon by default.

* Fix after review.

* Reformat.
2019-09-23 13:51:32 +02:00
Olga Maciaszek-Sharma
da0ce3c4c8 Gh 595 add serviceinstancelistsupplier (#607)
* Add ServiceInstanceListSupplier and its implementations.
Deprecate ServiceInstanceSupplier and its implementations.
Fixes gh-595.

* Switch to non-parameterised type.

* Switch autoConfiguration and tests to new implementation.

* Update docs and javadocs. Remove deprecated TODOs.

* Fix after code review.
2019-09-18 17:56:52 +02:00
Spencer Gibb
d2396bb21a Moves @ConditionalOnClass(RestTemplate.class) to inner class.
Creates test to make sure this works
2019-09-13 14:07:35 -04:00
Olga Maciaszek-Sharma
8bbd4384cc Remove deprecated comment. Move property configuration metadata to
loadbalancer module.
2019-09-12 20:44:09 +02:00
Olga Maciaszek-Sharma
19bab039a9 Gh 586 loadbalancer starter (#599)
* Add loadbalancer starter. Add property to set BlockingLoadBalancerClient
as default non-reactive loadbalancer. Start working on auto-enabling caching.

* Automatically enable caching. Fixes gh-585.

* Add tests.

* Add reference docs.

* Change property name.
2019-09-09 17:49:46 +02:00
Olga Maciaszek-Sharma
38af35ac37 Fix gh 591 backport lb changes (#597)
* Gh 576 use reactive load balancer (#584)

* Add `ReactorLoadBalancerClient` interface and its default implementation.

* Add initial `ReactorLoadBalancerExchangeFilterFunction` implementation.
Add `ReactorLoadBalancerClientAutoConfiguration`.
Refactor `ReactorLoadBalancerClient` interface and default implementation.

* Implement configuration changes to make default `ReactorLoadBalancer` and
`ReactorLoadBalancerClient` work out of the box with `@LoadBalanced
WebClient.Builder`.

* Add more tests for ReactorLoadBalancerExchangeFilterFunction and
DefaultReactorLoadBalancer.

* Fix configuration. Add tests. Add documentation.

* Add information on caching to the documentation.

* Add fixes after code review.

* Small refactoring after code review.

* Switch from handle(response, sink) to map(response).

* Remove redundant cast.

* Add link to caching in Springboot reference to the docs.

* Add more information on working with spring-cloud-loadbalancer vs. spring-cloud-starter-netflix-ribbon to the docs.

* Fix after code review.

(cherry picked from commit 3f17c0d902)

* Fix gh 491 gh 553 non reactive loadbalancer client (#590)

* Provide non-reactive LB client implemenation to use with RestTemplate.
Fixes gh-491.
Fixes gh-553.

* Add javadoc.

(cherry picked from commit c60df0f18e)

* Backport LoadBalancer changes. Fixes gh-591.

Fix gh 491 gh 553 non reactive loadbalancer client (#590)

* Provide non-reactive LB client implemenation to use with RestTemplate.
Fixes gh-491.
Fixes gh-553.

* Add javadoc.

(cherry picked from commit c60df0f18e)

* Update @since in javadocs after backporting changes to 2.1.x.
2019-09-02 20:38:47 +02:00
Olga Maciaszek-Sharma
c60df0f18e Fix gh 491 gh 553 non reactive loadbalancer client (#590)
* Provide non-reactive LB client implemenation to use with RestTemplate.
Fixes gh-491.
Fixes gh-553.

* Add javadoc.
2019-08-12 12:21:38 +02:00
Olga Maciaszek-Sharma
3f17c0d902 Gh 576 use reactive load balancer (#584)
* Add `ReactorLoadBalancerClient` interface and its default implementation.

* Add initial `ReactorLoadBalancerExchangeFilterFunction` implementation.
Add `ReactorLoadBalancerClientAutoConfiguration`.
Refactor `ReactorLoadBalancerClient` interface and default implementation.

* Implement configuration changes to make default `ReactorLoadBalancer` and
`ReactorLoadBalancerClient` work out of the box with `@LoadBalanced
WebClient.Builder`.

* Add more tests for ReactorLoadBalancerExchangeFilterFunction and
DefaultReactorLoadBalancer.

* Fix configuration. Add tests. Add documentation.

* Add information on caching to the documentation.

* Add fixes after code review.

* Small refactoring after code review.

* Switch from handle(response, sink) to map(response).

* Remove redundant cast.

* Add link to caching in Springboot reference to the docs.

* Add more information on working with spring-cloud-loadbalancer vs. spring-cloud-starter-netflix-ribbon to the docs.

* Fix after code review.
2019-08-12 11:40:26 +02:00
Ryan Baxter
316040ee94 Formatting changes 2019-05-23 19:59:36 -04:00
Spring Operator
8045850e96 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).

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://a.host (UnknownHostException) with 1 occurrences migrated to:
  https://a.host ([https](https://a.host) result UnknownHostException).
* [ ] http://c.host (UnknownHostException) with 1 occurrences migrated to:
  https://c.host ([https](https://c.host) result UnknownHostException).
* [ ] http://compose.docker.io/ (UnknownHostException) with 1 occurrences migrated to:
  https://compose.docker.io/ ([https](https://compose.docker.io/) result UnknownHostException).
* [ ] http://d.host (UnknownHostException) with 1 occurrences migrated to:
  https://d.host ([https](https://d.host) result UnknownHostException).
* [ ] http://f.host (UnknownHostException) with 1 occurrences migrated to:
  https://f.host ([https](https://f.host) result UnknownHostException).
* [ ] http://g.host (UnknownHostException) with 1 occurrences migrated to:
  https://g.host ([https](https://g.host) result UnknownHostException).
* [ ] http://h.host (UnknownHostException) with 1 occurrences migrated to:
  https://h.host ([https](https://h.host) result UnknownHostException).
* [ ] 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).

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

* [ ] http://12factor.net/ with 2 occurrences migrated to:
  https://12factor.net/ ([https](https://12factor.net/) result 200).
* [ ] http://cloud.spring.io/spring-cloud-consul/ with 1 occurrences migrated to:
  https://cloud.spring.io/spring-cloud-consul/ ([https](https://cloud.spring.io/spring-cloud-consul/) result 200).
* [ ] http://cloud.spring.io/spring-cloud-netflix/ with 1 occurrences migrated to:
  https://cloud.spring.io/spring-cloud-netflix/ ([https](https://cloud.spring.io/spring-cloud-netflix/) result 200).
* [ ] http://cloud.spring.io/spring-cloud-zookeeper/ with 1 occurrences migrated to:
  https://cloud.spring.io/spring-cloud-zookeeper/ ([https](https://cloud.spring.io/spring-cloud-zookeeper/) result 200).
* [ ] http://example.com with 1 occurrences migrated to:
  https://example.com ([https](https://example.com) result 200).
* [ ] http://martinfowler.com/bliki/CircuitBreaker.html with 1 occurrences migrated to:
  https://martinfowler.com/bliki/CircuitBreaker.html ([https](https://martinfowler.com/bliki/CircuitBreaker.html) result 200).
* [ ] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html with 2 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://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html with 2 occurrences migrated to:
  https://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html ([https](https://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html) result 200).
* [ ] http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html with 2 occurrences migrated to:
  https://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html ([https](https://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html) result 200).
* [ ] http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html with 2 occurrences migrated to:
  https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html ([https](https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html) result 200).
* [ ] http://pivotal.io/platform-as-a-service/migrating-to-cloud-native-application-architectures-ebook with 2 occurrences migrated to:
  https://pivotal.io/platform-as-a-service/migrating-to-cloud-native-application-architectures-ebook ([https](https://pivotal.io/platform-as-a-service/migrating-to-cloud-native-application-architectures-ebook) result 301).
* [ ] http://plugins.jetbrains.com/plugin/6546 with 2 occurrences migrated to:
  https://plugins.jetbrains.com/plugin/6546 ([https](https://plugins.jetbrains.com/plugin/6546) result 301).
* [ ] http://projects.spring.io/spring-boot with 2 occurrences migrated to:
  https://projects.spring.io/spring-boot ([https](https://projects.spring.io/spring-boot) 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).

These URLs were intentionally ignored.

* http:///foobar with 1 occurrences
* http://default with 1 occurrences
* http://foo with 7 occurrences
* http://foo_underscore with 1 occurrences
* http://foobar with 1 occurrences
* http://host1:8080 with 2 occurrences
* http://listener with 1 occurrences
* http://localhost with 4 occurrences
* http://localhost:8888 with 1 occurrences
* http://myservice/path/to/service with 1 occurrences
* http://noRetry with 1 occurrences
* http://s1-1:8080 with 5 occurrences
* http://stores with 1 occurrences
* http://stores/stores with 3 occurrences
* http://testservice with 1 occurrences
2019-03-27 12:21:04 -04:00
Spring Operator
2a84af80d4 URL Cleanup (#523)
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 1 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 275 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
2019-03-26 15:48:29 -04:00
Marcin Grzejszczak
377eaad4a1 Checkstyle for tests 2019-02-03 15:13:41 +01:00
Marcin Grzejszczak
04d764d33a Updated copyrights 2019-02-01 14:41:18 +01:00
Marcin Grzejszczak
ae314100f5 Applied checkstyle and turned it on by default 2019-02-01 12:50:02 +01:00
Spencer Gibb
1fa513194b Adds API and implementation of ReactiveLoadBalancer
API lives in spring-cloud-commons module and implementation in
spring-cloud-loadbalancer.
2018-10-03 12:38:12 -04:00