diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java
index 9c7c7f50..5468d184 100644
--- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java
+++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java
@@ -38,7 +38,6 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.actuator.HasFeatures;
@@ -95,7 +94,6 @@ public class FeignAutoConfiguration {
// for load balanced ribbon clients.
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(ApacheHttpClient.class)
- @ConditionalOnMissingClass("com.netflix.loadbalancer.ILoadBalancer")
@ConditionalOnMissingBean(CloseableHttpClient.class)
@ConditionalOnProperty(value = "feign.httpclient.enabled", matchIfMissing = true)
protected static class HttpClientFeignConfiguration {
@@ -161,7 +159,6 @@ public class FeignAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(OkHttpClient.class)
- @ConditionalOnMissingClass("com.netflix.loadbalancer.ILoadBalancer")
@ConditionalOnMissingBean(okhttp3.OkHttpClient.class)
@ConditionalOnProperty("feign.okhttp.enabled")
protected static class OkHttpFeignConfiguration {
diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java
index 7c6b0800..7d603fb4 100644
--- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java
+++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java
@@ -28,7 +28,7 @@ import org.springframework.core.annotation.AliasFor;
* Annotation for interfaces declaring that a REST client with that interface should be
* created (e.g. for autowiring into another component). If ribbon is available it will be
* used to load balance the backend requests, and the load balancer can be configured
- * using a @RibbonClient with the same name (i.e. value) as the feign client.
+ * using the same name (i.e. value) as the feign client.
*
* @author Spencer Gibb
* @author Venil Noronha
@@ -112,8 +112,7 @@ public @interface FeignClient {
Class> fallbackFactory() default void.class;
/**
- * @return path prefix to be used by all method-level mappings. Can be used with or
- * without @RibbonClient.
+ * @return path prefix to be used by all method-level mappings.
*/
String path() default "";
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/DefaultGzipDecoderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/DefaultGzipDecoderTests.java
index d1f0769a..2c9ea7c7 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/DefaultGzipDecoderTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/DefaultGzipDecoderTests.java
@@ -18,7 +18,6 @@ package org.springframework.cloud.openfeign;
import java.util.Objects;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -69,7 +68,6 @@ public class DefaultGzipDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testBodyDecompress() {
ResponseEntity response = testClient().getGzipResponse();
assertThat(response).as("response was null").isNotNull();
@@ -82,7 +80,6 @@ public class DefaultGzipDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testNullBodyDecompress() {
ResponseEntity response = testClient().getNullResponse();
assertThat(response).as("response was null").isNotNull();
@@ -94,7 +91,6 @@ public class DefaultGzipDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testCharsetDecompress() {
ResponseEntity response = testClient().getUtf8Response();
assertThat(response).as("response was null").isNotNull();
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/EnableFeignClientsSpringDataTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/EnableFeignClientsSpringDataTests.java
index e05c6f4f..70152949 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/EnableFeignClientsSpringDataTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/EnableFeignClientsSpringDataTests.java
@@ -17,16 +17,14 @@
package org.springframework.cloud.openfeign;
import feign.codec.Encoder;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.openfeign.support.PageableSpringEncoder;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -42,7 +40,6 @@ public class EnableFeignClientsSpringDataTests {
private FeignContext feignContext;
@Test
- @Ignore // FIXME: 3.0.0
public void encoderDefaultCorrect() {
PageableSpringEncoder.class
@@ -50,7 +47,7 @@ public class EnableFeignClientsSpringDataTests {
}
@Configuration(proxyBeanMethods = false)
- @Import({ PropertyPlaceholderAutoConfiguration.class, FeignAutoConfiguration.class })
+ @EnableAutoConfiguration
protected static class PlainConfiguration {
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java
index 87835acd..a6eb222d 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientBuilderTests.java
@@ -26,7 +26,6 @@ import java.util.List;
import org.hamcrest.Matchers;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -124,12 +123,11 @@ public class FeignClientBuilderTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void forType_allFieldsSetOnBuilder() {
// when:
final FeignClientBuilder.Builder builder = this.feignClientBuilder
.forType(TestFeignClient.class, "TestClient").decode404(true).url("Url/")
- .contextId("TestContext");
+ .path("/Path").contextId("TestContext");
// then:
assertFactoryBeanField(builder, "applicationContext", this.applicationContext);
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.java
index 810899e6..de030816 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.java
@@ -32,18 +32,16 @@ import feign.codec.ErrorDecoder;
import feign.optionals.OptionalDecoder;
import feign.querymap.BeanQueryMapEncoder;
import feign.slf4j.Slf4jLogger;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.openfeign.support.PageableSpringEncoder;
import org.springframework.cloud.openfeign.support.SpringMvcContract;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -69,42 +67,36 @@ public class FeignClientOverrideDefaultsTests {
private BarClient bar;
@Test
- @Ignore // FIXME: 3.0.0
public void clientsAvailable() {
assertThat(this.foo).isNotNull();
assertThat(this.bar).isNotNull();
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideDecoder() {
Decoder.Default.class.cast(this.context.getInstance("foo", Decoder.class));
OptionalDecoder.class.cast(this.context.getInstance("bar", Decoder.class));
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideEncoder() {
Encoder.Default.class.cast(this.context.getInstance("foo", Encoder.class));
PageableSpringEncoder.class.cast(this.context.getInstance("bar", Encoder.class));
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideLogger() {
Logger.JavaLogger.class.cast(this.context.getInstance("foo", Logger.class));
Slf4jLogger.class.cast(this.context.getInstance("bar", Logger.class));
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideContract() {
Contract.Default.class.cast(this.context.getInstance("foo", Contract.class));
SpringMvcContract.class.cast(this.context.getInstance("bar", Contract.class));
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideLoggerLevel() {
assertThat(this.context.getInstance("foo", Logger.Level.class)).isNull();
assertThat(this.context.getInstance("bar", Logger.Level.class))
@@ -112,7 +104,6 @@ public class FeignClientOverrideDefaultsTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideRetryer() {
assertThat(this.context.getInstance("foo", Retryer.class))
.isEqualTo(Retryer.NEVER_RETRY);
@@ -120,7 +111,6 @@ public class FeignClientOverrideDefaultsTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideErrorDecoder() {
assertThat(this.context.getInstance("foo", ErrorDecoder.class)).isNull();
ErrorDecoder.Default.class
@@ -128,7 +118,6 @@ public class FeignClientOverrideDefaultsTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideRequestOptions() {
assertThat(this.context.getInstance("foo", Request.Options.class)).isNull();
Request.Options options = this.context.getInstance("bar", Request.Options.class);
@@ -137,7 +126,6 @@ public class FeignClientOverrideDefaultsTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void overrideQueryMapEncoder() {
QueryMapEncoder.Default.class
.cast(this.context.getInstance("foo", QueryMapEncoder.class));
@@ -146,7 +134,6 @@ public class FeignClientOverrideDefaultsTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void addRequestInterceptor() {
assertThat(this.context.getInstances("foo", RequestInterceptor.class).size())
.isEqualTo(1);
@@ -155,7 +142,6 @@ public class FeignClientOverrideDefaultsTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void exceptionPropagationPolicy() {
assertThat(this.context.getInstances("foo", ExceptionPropagationPolicy.class))
.isNull();
@@ -183,7 +169,7 @@ public class FeignClientOverrideDefaultsTests {
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = { FooClient.class, BarClient.class })
- @Import({ PropertyPlaceholderAutoConfiguration.class, FeignAutoConfiguration.class })
+ @EnableAutoConfiguration
protected static class TestConfiguration {
@Bean
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.java
index 8f8dedb1..f2a5345b 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.java
@@ -32,7 +32,6 @@ import feign.Retryer;
import feign.codec.EncodeException;
import feign.codec.Encoder;
import feign.codec.ErrorDecoder;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -128,28 +127,24 @@ public class FeignClientUsingPropertiesTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testFoo() {
String response = fooClient().foo();
assertThat(response).isEqualTo("OK");
}
@Test(expected = RetryableException.class)
- @Ignore // FIXME: 3.0.0
public void testBar() {
barClient().bar();
fail("it should timeout");
}
@Test(expected = SocketTimeoutException.class)
- @Ignore // FIXME: 3.0.0
public void testUnwrap() throws Exception {
unwrapClient().unwrap();
fail("it should timeout");
}
@Test
- @Ignore // FIXME: 3.0.0
public void testForm() {
Map request = Collections.singletonMap("form", "Data");
String response = formClient().form(request);
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java
index d29a079d..9a3ed334 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java
@@ -18,7 +18,6 @@ package org.springframework.cloud.openfeign;
import java.util.Collections;
-import org.junit.Ignore;
import org.junit.Test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -81,13 +80,11 @@ public class FeignClientsRegistrarTests {
}
@Test(expected = IllegalArgumentException.class)
- @Ignore // FIXME: 3.0.0
public void testFallback() {
new AnnotationConfigApplicationContext(FallbackTestConfig.class);
}
@Test(expected = IllegalArgumentException.class)
- @Ignore // FIXME: 3.0.0
public void testFallbackFactory() {
new AnnotationConfigApplicationContext(FallbackFactoryTestConfig.class);
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.java
index 225f992a..1597caf6 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.java
@@ -25,7 +25,6 @@ import feign.Target;
import feign.httpclient.ApacheHttpClient;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -81,7 +80,6 @@ public class FeignHttpClientUrlTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testUrlHttpClient() {
assertThat(this.urlClient).as("UrlClient was null").isNotNull();
Hello hello = this.urlClient.getHello();
@@ -91,7 +89,6 @@ public class FeignHttpClientUrlTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testBeanUrl() {
Hello hello = this.beanClient.getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -100,7 +97,6 @@ public class FeignHttpClientUrlTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testBeanUrlNoProtocol() {
Hello hello = this.beanClientNoProtocol.getHello();
assertThat(hello).as("hello was null").isNotNull();
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java
index 7223b9eb..ecc5d864 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java
@@ -21,15 +21,14 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -57,7 +56,7 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
@Autowired
FeignContext context;
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
public SpringDecoderTests() {
@@ -77,7 +76,6 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testResponseEntity() {
ResponseEntity response = testClient().getHelloResponse();
assertThat(response).as("response was null").isNotNull();
@@ -90,7 +88,6 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testSimpleType() {
Hello hello = testClient().getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -99,7 +96,6 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testUserParameterizedTypeDecode() {
List hellos = testClient().getHellos();
assertThat(hellos).as("hellos was null").isNotNull();
@@ -109,7 +105,6 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testSimpleParameterizedTypeDecode() {
List hellos = testClient().getHelloStrings();
assertThat(hellos).as("hellos was null").isNotNull();
@@ -119,7 +114,6 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
@SuppressWarnings("unchecked")
public void testWildcardTypeDecode() {
ResponseEntity> wildcard = testClient().getWildcard();
@@ -136,7 +130,6 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testResponseEntityVoid() {
ResponseEntity response = testClient().getHelloVoid();
assertThat(response).as("response was null").isNotNull();
@@ -148,13 +141,11 @@ public class SpringDecoderTests extends FeignClientFactoryBean {
}
@Test(expected = RuntimeException.class)
- @Ignore // FIXME: 3.0.0
public void test404() {
testClient().getNotFound();
}
@Test
- @Ignore // FIXME: 3.0.0
public void testDecodes404() {
final ResponseEntity response = testClient(true).getNotFound();
assertThat(response).as("response was null").isNotNull();
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryDisabledTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryDisabledTests.java
deleted file mode 100644
index a3bd5487..00000000
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryDisabledTests.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2013-2019 the original author or authors.
- *
- * 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
- *
- * 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.
- */
-
-package org.springframework.cloud.openfeign;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import org.springframework.boot.WebApplicationType;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration;
-import org.springframework.cloud.test.ClassPathExclusions;
-import org.springframework.cloud.test.ModifiedClassPathRunner;
-import org.springframework.context.ConfigurableApplicationContext;
-
-/**
- * @author Ryan Baxter
- */
-@RunWith(ModifiedClassPathRunner.class)
-@ClassPathExclusions({ "spring-retry-*.jar", "spring-boot-starter-aop-*.jar" })
-public class SpringRetryDisabledTests {
-
- private ConfigurableApplicationContext context;
-
- @Before
- public void setUp() {
- this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE)
- .sources(LoadBalancerAutoConfiguration.class).run();
- }
-
- @After
- public void tearDown() {
- if (this.context != null) {
- this.context.close();
- }
- }
-
- @Test
- public void testLoadBalancedRetryFactoryBean() throws Exception {
- // FIXME: 3.0.0
- /*
- * Map lbFactorys = this.context
- * .getBeansOfType(CachingSpringLoadBalancerFactory.class);
- * assertThat(lbFactorys.values()).hasSize(1); FeignLoadBalancer lb =
- * lbFactorys.values().iterator().next().create("foo");
- * assertThat(lb).isInstanceOf(FeignLoadBalancer.class);
- * assertThat(lb).isNotInstanceOf(RetryableFeignLoadBalancer.class);
- */
- }
-
-}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryEnabledTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryEnabledTests.java
deleted file mode 100644
index 3fa0b814..00000000
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryEnabledTests.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2013-2019 the original author or authors.
- *
- * 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
- *
- * 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.
- */
-
-package org.springframework.cloud.openfeign;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import org.springframework.beans.BeansException;
-import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration;
-import org.springframework.cloud.commons.httpclient.HttpClientConfiguration;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-/**
- * @author Ryan Baxter
- */
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(
- classes = { LoadBalancerAutoConfiguration.class, HttpClientConfiguration.class })
-public class SpringRetryEnabledTests implements ApplicationContextAware {
-
- private ApplicationContext context;
-
- @Test
- public void testLoadBalancedRetryFactoryBean() throws Exception {
- // FIXME: 3.0.0
- /*
- * Map lbFactorys = this.context
- * .getBeansOfType(CachingSpringLoadBalancerFactory.class);
- * assertThat(lbFactorys.values()).hasSize(1); FeignLoadBalancer lb =
- * lbFactorys.values().iterator().next().create("foo");
- * assertThat(lb).isInstanceOf(RetryableFeignLoadBalancer.class);
- */
- }
-
- @Override
- public void setApplicationContext(ApplicationContext context) throws BeansException {
- this.context = context;
- }
-
-}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/FeignClientTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/FeignClientTests.java
index dd5b4e1c..8a2b1aab 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/FeignClientTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/FeignClientTests.java
@@ -38,6 +38,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.FeignClientBuilder;
@@ -45,6 +48,7 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.annotation.DirtiesContext;
@@ -100,7 +104,6 @@ public class FeignClientTests {
private MultipartClient multipartClient;
@Test
- @Ignore // FIXME: 3.0.0
public void testAnnotations() {
Map beans = this.context
.getBeansWithAnnotation(FeignClient.class);
@@ -109,7 +112,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testClient() {
assertThat(this.testClient).as("testClient was null").isNotNull();
assertThat(this.extraClient).as("extraClient was null").isNotNull();
@@ -120,7 +122,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void extraClient() {
assertThat(this.extraClient).as("extraClient was null").isNotNull();
assertThat(Proxy.isProxyClass(this.extraClient.getClass()))
@@ -131,7 +132,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void buildByBuilder() {
assertThat(this.buildByBuilder).as("buildByBuilder was null").isNotNull();
assertThat(Proxy.isProxyClass(this.buildByBuilder.getClass()))
@@ -142,14 +142,14 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
+ @Ignore // FIXME: multipart
public void testSingleRequestPart() {
String response = this.multipartClient.singlePart("abc");
assertThat(response).isEqualTo("abc");
}
@Test
- @Ignore // FIXME: 3.0.0
+ @Ignore // FIXME: multipart
public void testMultipleRequestParts() {
MockMultipartFile file = new MockMultipartFile("file", "hello.bin", null,
"hello".getBytes());
@@ -158,7 +158,7 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
+ @Ignore // FIXME: multipart
public void testRequestPartWithListOfMultipartFiles() {
List multipartFiles = Arrays.asList(
new MockMultipartFile("file1", "hello1.bin", null, "hello".getBytes()),
@@ -172,7 +172,7 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
+ @Ignore // FIXME: multipart
public void testRequestBodyWithSingleMultipartFile() {
String partName = UUID.randomUUID().toString();
MockMultipartFile file1 = new MockMultipartFile(partName, "hello1.bin", null,
@@ -182,7 +182,7 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
+ @Ignore // FIXME: multipart
public void testRequestBodyWithListOfMultipartFiles() {
MockMultipartFile file1 = new MockMultipartFile("file1", "hello1.bin", null,
"hello".getBytes());
@@ -194,7 +194,7 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
+ @Ignore // FIXME: multipart
public void testRequestBodyWithMap() {
MockMultipartFile file1 = new MockMultipartFile("file1", "hello1.bin", null,
"hello".getBytes());
@@ -209,7 +209,7 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
+ @Ignore // FIXME: multipart
public void testInvalidMultipartFile() {
MockMultipartFile file = new MockMultipartFile("file1", "hello1.bin", null,
"hello".getBytes());
@@ -222,6 +222,8 @@ public class FeignClientTests {
@RestController
@EnableFeignClients
@Import(FeignClientBuilder.class)
+ @LoadBalancerClient(name = "localapp8",
+ configuration = LocalLoadBalancerClientConfiguration.class)
protected static class Application {
@Bean("build-by-builder")
@@ -329,4 +331,19 @@ public class FeignClientTests {
}
+ // Load balancer with fixed server list for "local" pointing to localhost
+ @Configuration(proxyBeanMethods = false)
+ public static class LocalLoadBalancerClientConfiguration {
+
+ @LocalServerPort
+ private int port = 0;
+
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
+
+ }
+
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.java
index df0c4df1..bd403dfd 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.java
@@ -18,20 +18,23 @@ package org.springframework.cloud.openfeign.encoding;
import java.util.List;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.encoding.app.client.InvoiceClient;
import org.springframework.cloud.openfeign.encoding.app.domain.Invoice;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.test.annotation.DirtiesContext;
@@ -56,7 +59,6 @@ public class FeignAcceptEncodingTests {
private InvoiceClient invoiceClient;
@Test
- @Ignore // FIXME 3.0.0
public void compressedResponse() {
// when
@@ -71,7 +73,7 @@ public class FeignAcceptEncodingTests {
}
@EnableFeignClients(clients = InvoiceClient.class)
- // @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class)
+ @LoadBalancerClient(name = "local", configuration = LocalClientConfiguration.class)
@SpringBootApplication(
scanBasePackages = "org.springframework.cloud.openfeign.encoding.app")
@Import(NoSecurityConfiguration.class)
@@ -80,16 +82,16 @@ public class FeignAcceptEncodingTests {
}
@Configuration(proxyBeanMethods = false)
- static class LocalRibbonClientConfiguration {
+ static class LocalClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ILoadBalancer ribbonLoadBalancer() { BaseLoadBalancer balancer =
- * new BaseLoadBalancer(); balancer.setServersList( Collections.singletonList(new
- * Server("localhost", this.port))); return balancer; }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.java
index 26253a99..0b2c264d 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.java
@@ -18,20 +18,23 @@ package org.springframework.cloud.openfeign.encoding;
import java.util.List;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.encoding.app.client.InvoiceClient;
import org.springframework.cloud.openfeign.encoding.app.domain.Invoice;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -56,7 +59,6 @@ public class FeignContentEncodingTests {
private InvoiceClient invoiceClient;
@Test
- @Ignore // FIXME 3.0.0
public void compressedResponse() {
// given
@@ -75,7 +77,7 @@ public class FeignContentEncodingTests {
}
@EnableFeignClients(clients = InvoiceClient.class)
- // @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class)
+ @LoadBalancerClient(name = "local", configuration = LocalClientConfiguration.class)
@SpringBootApplication(
scanBasePackages = "org.springframework.cloud.openfeign.encoding.app")
@Import(NoSecurityConfiguration.class)
@@ -84,16 +86,16 @@ public class FeignContentEncodingTests {
}
@Configuration(proxyBeanMethods = false)
- static class LocalRibbonClientConfiguration {
+ static class LocalClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ILoadBalancer ribbonLoadBalancer() { BaseLoadBalancer balancer =
- * new BaseLoadBalancer(); balancer.setServersList( Collections.singletonList(new
- * Server("localhost", this.port))); return balancer; }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignPageableEncodingTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignPageableEncodingTests.java
index c54ac354..1b338da6 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignPageableEncodingTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignPageableEncodingTests.java
@@ -16,22 +16,25 @@
package org.springframework.cloud.openfeign.encoding;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClientsConfiguration;
import org.springframework.cloud.openfeign.encoding.app.client.InvoiceClient;
import org.springframework.cloud.openfeign.encoding.app.domain.Invoice;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
@@ -61,7 +64,6 @@ public class FeignPageableEncodingTests {
private InvoiceClient invoiceClient;
@Test
- @Ignore // FIXME 3.0.0
public void testPageable() {
// given
@@ -80,7 +82,7 @@ public class FeignPageableEncodingTests {
}
@EnableFeignClients(clients = InvoiceClient.class)
- // @RibbonClient(name = "local", configuration = LocalRibbonClientConfiguration.class)
+ @LoadBalancerClient(name = "local", configuration = LocalClientConfiguration.class)
@SpringBootApplication(
scanBasePackages = "org.springframework.cloud.openfeign.encoding.app",
exclude = { RepositoryRestMvcAutoConfiguration.class })
@@ -91,16 +93,16 @@ public class FeignPageableEncodingTests {
}
@Configuration(proxyBeanMethods = false)
- static class LocalRibbonClientConfiguration {
+ static class LocalClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ILoadBalancer ribbonLoadBalancer() { BaseLoadBalancer balancer =
- * new BaseLoadBalancer(); balancer.setServersList( Collections.singletonList(new
- * Server("localhost", this.port))); return balancer; }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalTests.java
index d8a6f65a..b826f13a 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/FeignHalTests.java
@@ -18,7 +18,6 @@ package org.springframework.cloud.openfeign.hateoas;
import java.util.Collection;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -52,7 +51,6 @@ public class FeignHalTests {
private FeignHalClient feignHalClient;
@Test
- @Ignore // FIXME 3.0.0
public void testEntityModel() {
EntityModel entity = feignHalClient.entity();
assertThat(entity).isNotNull();
@@ -68,7 +66,6 @@ public class FeignHalTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testCollectionModel() {
CollectionModel collectionModel = feignHalClient.collection();
assertThat(collectionModel).isNotNull();
@@ -89,7 +86,6 @@ public class FeignHalTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testPagedModel() {
PagedModel paged = feignHalClient.paged();
assertThat(paged).isNotNull();
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/app/FeignHalApplication.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/app/FeignHalApplication.java
index e4d2febd..f4cb0fbe 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/app/FeignHalApplication.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hateoas/app/FeignHalApplication.java
@@ -18,9 +18,14 @@ package org.springframework.cloud.openfeign.hateoas.app;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
/**
* Test HATEOAS application.
@@ -31,7 +36,23 @@ import org.springframework.context.annotation.Import;
@SpringBootApplication(
scanBasePackages = "org.springframework.cloud.openfeign.hateoas.app",
exclude = RepositoryRestMvcAutoConfiguration.class)
+@LoadBalancerClient(name = "local", configuration = LocalHalClientConfiguration.class)
@Import(NoSecurityConfiguration.class)
public class FeignHalApplication {
+ // Load balancer with fixed server list for "local" pointing to localhost
+
+}
+
+class LocalHalClientConfiguration {
+
+ @LocalServerPort
+ private int port = 0;
+
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
+
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/loadbalancer/FeignLoadBalancerAutoConfigurationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/loadbalancer/FeignLoadBalancerAutoConfigurationTests.java
index b07477e6..9fb70726 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/loadbalancer/FeignLoadBalancerAutoConfigurationTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/loadbalancer/FeignLoadBalancerAutoConfigurationTests.java
@@ -18,6 +18,17 @@ package org.springframework.cloud.openfeign.loadbalancer;
import java.util.Map;
+import feign.Client;
+import feign.httpclient.ApacheHttpClient;
+import feign.okhttp.OkHttpClient;
+import org.junit.Test;
+
+import org.springframework.boot.WebApplicationType;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.cloud.commons.httpclient.HttpClientConfiguration;
+import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient;
+import org.springframework.cloud.loadbalancer.config.BlockingLoadBalancerClientAutoConfiguration;
+import org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import static org.assertj.core.api.Assertions.assertThat;
@@ -25,67 +36,54 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Olga Maciaszek-Sharma
*/
-class FeignLoadBalancerAutoConfigurationTests {
+public class FeignLoadBalancerAutoConfigurationTests {
- // FIXME: 3.0.0
- /*
- * @Test void
- * shouldInstantiateDefaultFeignBlockingLoadBalancerClientWhenHttpClientDisabled() {
- * ConfigurableApplicationContext context = initContext(
- * "spring.cloud.loadbalancer.ribbon.enabled=false",
- * "feign.httpclient.enabled=false"); assertThatOneBeanPresent(context,
- * BlockingLoadBalancerClient.class); assertLoadBalanced(context,
- * Client.Default.class); assertThatBeanNotPresent(context,
- * LoadBalancerFeignClient.class); }
- *
- * @Test void shouldInstantiateHttpFeignClientWhenEnabled() {
- * ConfigurableApplicationContext context = initContext(
- * "spring.cloud.loadbalancer.ribbon.enabled=false");
- * assertThatOneBeanPresent(context, BlockingLoadBalancerClient.class);
- * assertLoadBalanced(context, ApacheHttpClient.class);
- * assertThatBeanNotPresent(context, LoadBalancerFeignClient.class); }
- *
- * @Test void shouldInstantiateOkHttpFeignClientWhenEnabled() {
- * ConfigurableApplicationContext context = initContext(
- * "spring.cloud.loadbalancer.ribbon.enabled=false", "feign.httpclient.enabled=false",
- * "feign.okhttp.enabled=true"); assertThatOneBeanPresent(context,
- * BlockingLoadBalancerClient.class); assertLoadBalanced(context, OkHttpClient.class);
- * assertThatBeanNotPresent(context, LoadBalancerFeignClient.class); }
- *
- * @Test void shouldNotProcessLoadBalancerConfigurationWhenRibbonEnabled() {
- * ConfigurableApplicationContext context = initContext(
- * "spring.cloud.loadbalancer.ribbon.enabled=true"); assertThatOneBeanPresent(context,
- * LoadBalancerFeignClient.class); assertThatBeanNotPresent(context,
- * BlockingLoadBalancerClient.class); assertThatBeanNotPresent(context,
- * FeignBlockingLoadBalancerClient.class); }
- *
- * private ConfigurableApplicationContext initContext(String... properties) { return
- * new SpringApplicationBuilder().web(WebApplicationType.NONE) .properties(properties)
- * .sources(HttpClientConfiguration.class, RibbonAutoConfiguration.class,
- * LoadBalancerAutoConfiguration.class,
- * BlockingLoadBalancerClientAutoConfiguration.class,
- * FeignRibbonClientAutoConfiguration.class, FeignLoadBalancerAutoConfiguration.class)
- * .run(); }
- */
+ @Test
+ public void shouldInstantiateDefaultFeignBlockingLoadBalancerClientWhenHttpClientDisabled() {
+ ConfigurableApplicationContext context = initContext(
+ "feign.httpclient.enabled=false");
+ assertThatOneBeanPresent(context, BlockingLoadBalancerClient.class);
+ assertLoadBalanced(context, Client.Default.class);
+ }
+
+ @Test
+ public void shouldInstantiateHttpFeignClientWhenEnabled() {
+ ConfigurableApplicationContext context = initContext(
+ "spring.cloud.loadbalancer.ribbon.enabled=false");
+ assertThatOneBeanPresent(context, BlockingLoadBalancerClient.class);
+ assertLoadBalanced(context, ApacheHttpClient.class);
+ }
+
+ @Test
+ public void shouldInstantiateOkHttpFeignClientWhenEnabled() {
+ ConfigurableApplicationContext context = initContext(
+ "feign.httpclient.enabled=false", "feign.okhttp.enabled=true");
+ assertThatOneBeanPresent(context, BlockingLoadBalancerClient.class);
+ assertLoadBalanced(context, OkHttpClient.class);
+ }
+
+ private ConfigurableApplicationContext initContext(String... properties) {
+ return new SpringApplicationBuilder().web(WebApplicationType.NONE)
+ .properties(properties)
+ .sources(HttpClientConfiguration.class,
+ LoadBalancerAutoConfiguration.class,
+ BlockingLoadBalancerClientAutoConfiguration.class,
+ FeignLoadBalancerAutoConfiguration.class)
+ .run();
+ }
private void assertThatOneBeanPresent(ConfigurableApplicationContext context,
Class> beanClass) {
Map beans = context.getBeansOfType(beanClass);
- assertThat(beans).hasSize(1);
+ assertThat(beans).as("Missing bean of type %s", beanClass).hasSize(1);
}
private void assertLoadBalanced(ConfigurableApplicationContext context,
Class delegateClass) {
Map beans = context
.getBeansOfType(FeignBlockingLoadBalancerClient.class);
- assertThat(beans).hasSize(1);
+ assertThat(beans).as("Missing bean of type %s", delegateClass).hasSize(1);
assertThat(beans.get("feignClient").getDelegate()).isInstanceOf(delegateClass);
}
- private void assertThatBeanNotPresent(ConfigurableApplicationContext context,
- Class> beanClass) {
- Map beans = context.getBeansOfType(beanClass);
- assertThat(beans).isEmpty();
- }
-
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java
index 9d2b7053..5e7482a5 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java
@@ -18,7 +18,6 @@ package org.springframework.cloud.openfeign.support;
import feign.RequestTemplate;
import feign.codec.Encoder;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -58,7 +57,6 @@ public class PageableEncoderTests {
private FeignContext context;
@Test
- @Ignore // FIXME 3.0.0
public void testPaginationAndSortingRequest() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
@@ -80,7 +78,6 @@ public class PageableEncoderTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testPaginationRequest() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
@@ -100,7 +97,6 @@ public class PageableEncoderTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testSortingRequest() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
@@ -118,7 +114,6 @@ public class PageableEncoderTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testUnpagedRequest() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/SpringEncoderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/SpringEncoderTests.java
index 8ee29993..45295f3b 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/SpringEncoderTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/SpringEncoderTests.java
@@ -26,7 +26,6 @@ import java.util.List;
import feign.RequestTemplate;
import feign.codec.EncodeException;
import feign.codec.Encoder;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -85,7 +84,6 @@ public class SpringEncoderTests {
private GenericHttpMessageConverter> myGenericConverter;
@Test
- @Ignore // FIXME 3.0.0
public void testCustomHttpMessageConverter() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
@@ -109,7 +107,6 @@ public class SpringEncoderTests {
// gh-225
@Test
- @Ignore // FIXME 3.0.0
public void testCustomGenericHttpMessageConverter() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
@@ -137,7 +134,6 @@ public class SpringEncoderTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testBinaryData() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
@@ -152,7 +148,6 @@ public class SpringEncoderTests {
}
@Test(expected = EncodeException.class)
- @Ignore // FIXME 3.0.0
public void testMultipartFile1() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
@@ -165,7 +160,6 @@ public class SpringEncoderTests {
// gh-105, gh-107
@Test
- @Ignore // FIXME 3.0.0
public void testMultipartFile2() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.java
index 51c8a6bf..8754c543 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.java
@@ -20,8 +20,11 @@ import java.io.IOException;
import java.lang.reflect.Field;
import java.util.concurrent.TimeUnit;
+import feign.Client;
+import feign.httpclient.ApacheHttpClient;
import org.apache.http.Header;
import org.apache.http.StatusLine;
+import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.config.RegistryBuilder;
@@ -30,9 +33,9 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicHeader;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.MockingDetails;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +48,7 @@ import org.springframework.cloud.commons.httpclient.DefaultApacheHttpClientConne
import org.springframework.cloud.commons.httpclient.DefaultApacheHttpClientFactory;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.annotation.DirtiesContext;
@@ -55,13 +59,13 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockingDetails;
/**
* @author Ryan Baxter
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(
- properties = { "feign.okhttp.enabled: false", "ribbon.eureka.enabled = false" })
+@SpringBootTest(properties = { "feign.okhttp.enabled: false" })
@DirtiesContext
public class ApacheHttpClientConfigurationTests {
@@ -71,12 +75,10 @@ public class ApacheHttpClientConfigurationTests {
@Autowired
ApacheHttpClientFactory httpClientFactory;
- /*
- * @Autowired LoadBalancerFeignClient feignClient;
- */
+ @Autowired
+ FeignBlockingLoadBalancerClient feignClient;
@Test
- @Ignore // FIXME 3.0.0
public void testFactories() {
assertThat(this.connectionManagerFactory)
.isInstanceOf(ApacheHttpClientConnectionManagerFactory.class);
@@ -88,14 +90,13 @@ public class ApacheHttpClientConfigurationTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testHttpClientWithFeign() {
- // Client delegate = this.feignClient.getDelegate();
- // assertThat(ApacheHttpClient.class.isInstance(delegate)).isTrue();
- // ApacheHttpClient apacheHttpClient = (ApacheHttpClient) delegate; HttpClient
- // httpClient = getField(apacheHttpClient, "client"); MockingDetails
- // httpClientDetails = mockingDetails(httpClient);
- // assertThat(httpClientDetails.isMock()).isTrue();
+ Client delegate = this.feignClient.getDelegate();
+ assertThat(ApacheHttpClient.class.isInstance(delegate)).isTrue();
+ ApacheHttpClient apacheHttpClient = (ApacheHttpClient) delegate;
+ HttpClient httpClient = getField(apacheHttpClient, "client");
+ MockingDetails httpClientDetails = mockingDetails(httpClient);
+ assertThat(httpClientDetails.isMock()).isTrue();
}
protected T getField(Object target, String name) {
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.java
index 5608e701..907e9b1d 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.java
@@ -16,14 +16,14 @@
package org.springframework.cloud.openfeign.test;
-import java.lang.reflect.Field;
import java.util.concurrent.TimeUnit;
+import feign.Client;
import okhttp3.ConnectionPool;
import okhttp3.OkHttpClient;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.MockingDetails;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringBootConfiguration;
@@ -34,13 +34,15 @@ import org.springframework.cloud.commons.httpclient.DefaultOkHttpClientFactory;
import org.springframework.cloud.commons.httpclient.OkHttpClientConnectionPoolFactory;
import org.springframework.cloud.commons.httpclient.OkHttpClientFactory;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
import org.springframework.context.annotation.Bean;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.util.ReflectionUtils;
+import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockingDetails;
/**
* @author Ryan Baxter
@@ -60,12 +62,10 @@ public class OkHttpClientConfigurationTests {
@Autowired
OkHttpClientConnectionPoolFactory connectionPoolFactory;
- /*
- * @Autowired LoadBalancerFeignClient feignClient;
- */
+ @Autowired
+ FeignBlockingLoadBalancerClient feignClient;
@Test
- @Ignore // FIXME 3.0.0
public void testFactories() {
assertThat(this.connectionPoolFactory)
.isInstanceOf(OkHttpClientConnectionPoolFactory.class);
@@ -77,24 +77,21 @@ public class OkHttpClientConfigurationTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testHttpClientWithFeign() {
- // Client delegate = this.feignClient.getDelegate();
- // assertThat(feign.okhttp.OkHttpClient.class.isInstance(delegate)).isTrue();
- // feign.okhttp.OkHttpClient okHttpClient = (feign.okhttp.OkHttpClient) delegate;
- // OkHttpClient httpClient = getField(okHttpClient, "delegate"); MockingDetails
- // httpClientDetails = mockingDetails(httpClient);
- // assertThat(httpClientDetails.isMock()).isTrue();
+ Client delegate = this.feignClient.getDelegate();
+ assertThat(feign.okhttp.OkHttpClient.class.isInstance(delegate)).isTrue();
+ feign.okhttp.OkHttpClient okHttpClient = (feign.okhttp.OkHttpClient) delegate;
+ OkHttpClient httpClient = getField(okHttpClient, "delegate");
+ MockingDetails httpClientDetails = mockingDetails(httpClient);
+ assertThat(httpClientDetails.isMock()).isTrue();
}
protected T getField(Object target, String name) {
- Field field = ReflectionUtils.findField(target.getClass(), name);
- ReflectionUtils.makeAccessible(field);
- Object value = ReflectionUtils.getField(field, target);
+ Object value = ReflectionTestUtils.getField(target, target.getClass(), name);
return (T) value;
}
- @FeignClient(name = "foo", serviceId = "foo")
+ @FeignClient(name = "foo")
interface FooClient {
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.java
index ee5323e9..7e38b666 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.java
@@ -19,19 +19,21 @@ package org.springframework.cloud.openfeign.valid;
import java.util.List;
import feign.Logger;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
+import org.springframework.core.env.Environment;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -56,15 +58,6 @@ public class FeignClientNotPrimaryTests {
public static final String HELLO_WORLD_1 = "hello world 1";
- public static final String OI_TERRA_2 = "oi terra 2";
-
- public static final String MYHEADER1 = "myheader1";
-
- public static final String MYHEADER2 = "myheader2";
-
- @Value("${local.server.port}")
- private int port = 0;
-
@Autowired
private TestClient testClient;
@@ -72,20 +65,17 @@ public class FeignClientNotPrimaryTests {
private List testClients;
@Test
- @Ignore // FIXME 3.0.0
public void testClientType() {
assertThat(this.testClient).as("testClient was of wrong type")
.isInstanceOf(PrimaryTestClient.class);
}
@Test
- @Ignore // FIXME 3.0.0
public void testClientCount() {
assertThat(this.testClients).as("testClients was wrong").hasSize(2);
}
@Test
- @Ignore // FIXME 3.0.0
public void testSimpleType() {
Hello hello = this.testClient.getHello();
assertThat(hello).as("hello was null").isNull();
@@ -104,8 +94,7 @@ public class FeignClientNotPrimaryTests {
@RestController
@EnableFeignClients(clients = { TestClient.class },
defaultConfiguration = TestDefaultFeignConfig.class)
- // @RibbonClient(name = "localapp", configuration =
- // LocalRibbonClientConfiguration.class)
+ @LoadBalancerClient(name = "localapp", configuration = LocalClientConfiguration.class)
protected static class Application {
@Bean
@@ -163,15 +152,17 @@ public class FeignClientNotPrimaryTests {
// Load balancer with fixed server list for "local" pointing to localhost
@Configuration(proxyBeanMethods = false)
- public static class LocalRibbonClientConfiguration {
+ public static class LocalClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ServerList ribbonServerList() { return new
- * StaticServerList<>(new Server("localhost", this.port)); }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "localapp")
+ .build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientTests.java
index 409f0232..f3265bd3 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientTests.java
@@ -32,24 +32,29 @@ import feign.Client;
import feign.Logger;
import feign.RequestInterceptor;
import feign.RequestTemplate;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
-import rx.Single;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.FeignFormatterRegistrar;
+import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.format.Formatter;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.annotation.DateTimeFormat;
@@ -103,6 +108,10 @@ public class FeignClientTests {
@Autowired
private DecodingTestClient decodingTestClient;
+ @Autowired
+ @Qualifier("localapp2FeignClient")
+ private DecodingTestClient namedFeignClient;
+
@Autowired
private Client feignClient;
@@ -114,7 +123,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testClient() {
assertThat(this.testClient).as("testClient was null").isNotNull();
assertThat(Proxy.isProxyClass(this.testClient.getClass()))
@@ -124,7 +132,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testRequestMappingClassLevelPropertyReplacement() {
Hello hello = this.testClient.getHelloUsingPropertyPlaceHolder();
assertThat(hello).as("hello was null").isNotNull();
@@ -132,7 +139,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testSimpleType() {
Hello hello = this.testClient.getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -141,14 +147,12 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testOptional() {
Optional hello = this.testClient.getOptionalHello();
assertThat(hello).isNotNull().isPresent().contains(new Hello(HELLO_WORLD_1));
}
@Test
- @Ignore // FIXME: 3.0.0
public void testGenericType() {
List hellos = this.testClient.getHellos();
assertThat(hellos).as("hellos was null").isNotNull();
@@ -156,7 +160,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testRequestInterceptors() {
List headers = this.testClient.getHelloHeaders();
assertThat(headers).as("headers was null").isNotNull();
@@ -167,7 +170,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME: 3.0.0
public void testHeaderPlaceholders() {
String header = this.testClient.getHelloHeadersPlaceholders();
assertThat(header).as("header was null").isNotNull();
@@ -175,16 +177,14 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testFeignClientType() throws IllegalAccessException {
- // assertThat(this.feignClient).isInstanceOf(LoadBalancerFeignClient.class);
- // LoadBalancerFeignClient client = (LoadBalancerFeignClient) this.feignClient;
- // Client delegate = client.getDelegate();
- // assertThat(delegate).isInstanceOf(Client.Default.class);
+ assertThat(this.feignClient).isInstanceOf(FeignBlockingLoadBalancerClient.class);
+ FeignBlockingLoadBalancerClient client = (FeignBlockingLoadBalancerClient) this.feignClient;
+ Client delegate = client.getDelegate();
+ assertThat(delegate).isInstanceOf(Client.Default.class);
}
@Test
- @Ignore // FIXME 3.0.0
public void testServiceId() {
assertThat(this.testClientServiceId).as("testClientServiceId was null")
.isNotNull();
@@ -195,7 +195,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testParams() {
List list = Arrays.asList("a", "1", "test");
List params = this.testClient.getParams(list);
@@ -204,7 +203,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testFormattedParams() {
List list = Arrays.asList(LocalDate.of(2001, 1, 1),
LocalDate.of(2018, 6, 10));
@@ -214,18 +212,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
- public void testSingle() {
- Single single = this.testClient.getHelloSingle();
- assertThat(single).as("single was null").isNotNull();
- Hello hello = single.toBlocking().value();
- assertThat(hello).as("hello was null").isNotNull();
- assertThat(hello).as("first hello didn't match")
- .isEqualTo(new Hello(HELLO_WORLD_1));
- }
-
- @Test
- @Ignore // FIXME 3.0.0
public void testNoContentResponse() {
ResponseEntity response = this.testClient.noContent();
assertThat(response).as("response was null").isNotNull();
@@ -234,7 +220,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testHeadResponse() {
ResponseEntity response = this.testClient.head();
assertThat(response).as("response was null").isNotNull();
@@ -243,7 +228,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testHttpEntity() {
HttpEntity entity = this.testClient.getHelloEntity();
assertThat(entity).as("entity was null").isNotNull();
@@ -254,7 +238,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testMoreComplexHeader() {
String response = this.testClient.moreComplexContentType("{\"value\":\"OK\"}");
assertThat(response).as("response was null").isNotNull();
@@ -263,7 +246,6 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testDecodeNotFound() {
ResponseEntity response = this.decodingTestClient.notFound();
assertThat(response).as("response was null").isNotNull();
@@ -273,14 +255,12 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testOptionalNotFound() {
Optional s = this.decodingTestClient.optional();
assertThat(s).isNotPresent();
}
@Test
- @Ignore // FIXME 3.0.0
public void testConvertingExpander() {
assertThat(this.testClient.getToString(Arg.A)).isEqualTo(Arg.A.toString());
assertThat(this.testClient.getToString(Arg.B)).isEqualTo(Arg.B.toString());
@@ -296,11 +276,8 @@ public class FeignClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void namedFeignClientWorks() {
- // FIXME: 3.0.0
- // assertThat(this.namedHystrixClient).as("namedHystrixClient was
- // null").isNotNull();
+ assertThat(this.namedFeignClient).as("namedFeignClient was null").isNotNull();
}
protected enum Arg {
@@ -327,9 +304,6 @@ public class FeignClientTests {
path = "${feignClient.methodLevelRequestMappingPath}")
Hello getHelloUsingPropertyPlaceHolder();
- @RequestMapping(method = RequestMethod.GET, path = "/hello")
- Single getHelloSingle();
-
@RequestMapping(method = RequestMethod.GET, path = "/hellos")
List getHellos();
@@ -441,33 +415,16 @@ public class FeignClientTests {
clients = { TestClientServiceId.class, TestClient.class,
DecodingTestClient.class },
defaultConfiguration = TestDefaultFeignConfig.class)
- /*
- * @RibbonClients({
- *
- * @RibbonClient(name = "localapp", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp1", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp2", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp3", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp4", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp5", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp6", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp7", configuration =
- * LocalRibbonClientConfiguration.class) })
- */
+ @LoadBalancerClients({
+
+ @LoadBalancerClient(name = "localapp",
+ configuration = LocalLoadBalancerClientConfiguration.class),
+
+ @LoadBalancerClient(name = "localapp1",
+ configuration = LocalLoadBalancerClientConfiguration.class),
+
+ @LoadBalancerClient(name = "localapp2",
+ configuration = LocalLoadBalancerClientConfiguration.class) })
@Import(NoSecurityConfiguration.class)
protected static class Application {
@@ -658,15 +615,16 @@ public class FeignClientTests {
// Load balancer with fixed server list for "local" pointing to localhost
@Configuration(proxyBeanMethods = false)
- public static class LocalRibbonClientConfiguration {
+ public static class LocalLoadBalancerClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ServerList ribbonServerList() { return new
- * StaticServerList<>(new Server("localhost", this.port)); }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.java
index 3eddb2ac..ff0e4a75 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.java
@@ -18,10 +18,12 @@ package org.springframework.cloud.openfeign.valid;
import org.junit.Test;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration;
import org.springframework.cloud.commons.httpclient.HttpClientConfiguration;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.loadbalancer.FeignLoadBalancerAutoConfiguration;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -53,15 +55,13 @@ public class FeignClientValidationTests {
@Test
public void validLoadBalanced() {
- // FIXME: 3.0.0
- /*
- * AnnotationConfigApplicationContext context = new
- * AnnotationConfigApplicationContext( LoadBalancerAutoConfiguration.class,
- * RibbonAutoConfiguration.class, FeignRibbonClientAutoConfiguration.class,
- * GoodServiceIdConfiguration.class);
- * assertThat(context.getBean(GoodServiceIdConfiguration.Client.class)).isNotNull(
- * ); context.close();
- */
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
+ LoadBalancerAutoConfiguration.class,
+ org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration.class,
+ FeignLoadBalancerAutoConfiguration.class,
+ GoodServiceIdConfiguration.class);
+ assertThat(context.getBean(GoodServiceIdConfiguration.Client.class)).isNotNull();
+ context.close();
}
@Configuration(proxyBeanMethods = false)
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.java
index 4aaed540..71b4fd9d 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.java
@@ -19,7 +19,6 @@ package org.springframework.cloud.openfeign.valid;
import java.util.Objects;
import feign.Client;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,11 +27,17 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.test.annotation.DirtiesContext;
@@ -70,7 +75,6 @@ public class FeignHttpClientTests {
private UserClient userClient;
@Test
- @Ignore // FIXME 3.0.0
public void testSimpleType() {
Hello hello = this.testClient.getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -79,7 +83,6 @@ public class FeignHttpClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testPatch() {
ResponseEntity response = this.testClient.patchHello(new Hello("foo"));
assertThat(response).isNotNull();
@@ -88,16 +91,14 @@ public class FeignHttpClientTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testFeignClientType() throws IllegalAccessException {
- // assertThat(this.feignClient).isInstanceOf(LoadBalancerFeignClient.class);
- // LoadBalancerFeignClient client = (LoadBalancerFeignClient) this.feignClient;
- // Client delegate = client.getDelegate();
- // assertThat(delegate).isInstanceOf(feign.httpclient.ApacheHttpClient.class);
+ assertThat(this.feignClient).isInstanceOf(FeignBlockingLoadBalancerClient.class);
+ FeignBlockingLoadBalancerClient client = (FeignBlockingLoadBalancerClient) this.feignClient;
+ Client delegate = client.getDelegate();
+ assertThat(delegate).isInstanceOf(feign.httpclient.ApacheHttpClient.class);
}
@Test
- @Ignore // FIXME 3.0.0
public void testFeignInheritanceSupport() {
assertThat(this.userClient).as("UserClient was null").isNotNull();
final User user = this.userClient.getUser(1);
@@ -139,15 +140,11 @@ public class FeignHttpClientTests {
@EnableAutoConfiguration
@RestController
@EnableFeignClients(clients = { TestClient.class, UserClient.class })
- /*
- * @RibbonClients({
- *
- * @RibbonClient(name = "localapp", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp1", configuration =
- * LocalRibbonClientConfiguration.class) })
- */
+ @LoadBalancerClients({
+ @LoadBalancerClient(name = "localapp",
+ configuration = LocalClientConfiguration.class),
+ @LoadBalancerClient(name = "localapp1",
+ configuration = LocalClientConfiguration.class) })
@Import(NoSecurityConfiguration.class)
protected static class Application implements UserService {
@@ -255,15 +252,16 @@ public class FeignHttpClientTests {
// Load balancer with fixed server list for "local" pointing to localhost
@Configuration(proxyBeanMethods = false)
- static class LocalRibbonClientConfiguration {
+ static class LocalClientConfiguration {
@LocalServerPort
private int port = 0;
- /*
- * @Bean public ServerList ribbonServerList() { return new
- * StaticServerList<>(new Server("localhost", this.port)); }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.java
index c831b9d4..c422328d 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.java
@@ -19,7 +19,6 @@ package org.springframework.cloud.openfeign.valid;
import java.util.Objects;
import feign.Client;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,11 +27,18 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.http.ResponseEntity;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -71,7 +77,6 @@ public class FeignOkHttpTests {
private UserClient userClient;
@Test
- @Ignore // FIXME 3.0.0
public void testSimpleType() {
Hello hello = this.testClient.getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -80,7 +85,6 @@ public class FeignOkHttpTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testPatch() {
ResponseEntity response = this.testClient.patchHello(new Hello("foo"));
assertThat(response).isNotNull();
@@ -89,16 +93,14 @@ public class FeignOkHttpTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testFeignClientType() throws IllegalAccessException {
- // assertThat(this.feignClient).isInstanceOf(LoadBalancerFeignClient.class);
- // LoadBalancerFeignClient client = (LoadBalancerFeignClient) this.feignClient;
- // Client delegate = client.getDelegate();
- // assertThat(delegate).isInstanceOf(feign.okhttp.OkHttpClient.class);
+ assertThat(this.feignClient).isInstanceOf(FeignBlockingLoadBalancerClient.class);
+ FeignBlockingLoadBalancerClient client = (FeignBlockingLoadBalancerClient) this.feignClient;
+ Client delegate = client.getDelegate();
+ assertThat(delegate).isInstanceOf(feign.okhttp.OkHttpClient.class);
}
@Test
- @Ignore // FIXME 3.0.0
public void testFeignInheritanceSupport() {
assertThat(this.userClient).as("UserClient was null").isNotNull();
final User user = this.userClient.getUser(1);
@@ -138,15 +140,11 @@ public class FeignOkHttpTests {
@EnableAutoConfiguration
@RestController
@EnableFeignClients(clients = { TestClient.class, UserClient.class })
- /*
- * @RibbonClients({
- *
- * @RibbonClient(name = "localapp", configuration =
- * LocalRibbonClientConfiguration.class),
- *
- * @RibbonClient(name = "localapp1", configuration =
- * LocalRibbonClientConfiguration.class) })
- */
+ @LoadBalancerClients({
+ @LoadBalancerClient(name = "localapp",
+ configuration = FeignHttpClientTests.LocalClientConfiguration.class),
+ @LoadBalancerClient(name = "localapp1",
+ configuration = FeignHttpClientTests.LocalClientConfiguration.class) })
@Import(NoSecurityConfiguration.class)
protected static class Application implements UserService {
@@ -254,15 +252,16 @@ public class FeignOkHttpTests {
// Load balancer with fixed server list for "local" pointing to localhost
@Configuration(proxyBeanMethods = false)
- static class LocalRibbonClientConfiguration {
+ static class LocalClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ServerList ribbonServerList() { return new
- * StaticServerList<>(new Server("localhost", this.port)); }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/IterableParameterTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/IterableParameterTests.java
index de647194..60864efd 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/IterableParameterTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/IterableParameterTests.java
@@ -18,7 +18,6 @@ package org.springframework.cloud.openfeign.valid;
import io.vavr.collection.HashSet;
import io.vavr.collection.Set;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -27,11 +26,15 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.bind.annotation.GetMapping;
@@ -57,7 +60,6 @@ public class IterableParameterTests {
private TestClient testClient;
@Test
- @Ignore // FIXME 3.0.0
public void testClient() {
assertThat(this.testClient).as("testClient was null").isNotNull();
String results = this.testClient.echo(HashSet.of("a", "b"));
@@ -76,8 +78,8 @@ public class IterableParameterTests {
@EnableAutoConfiguration
@RestController
@EnableFeignClients(clients = TestClient.class)
- // @RibbonClient(name = "localapp", configuration =
- // LocalRibbonClientConfiguration.class)
+ @LoadBalancerClient(name = "localapp",
+ configuration = LocalRibbonClientConfiguration.class)
@Import(NoSecurityConfiguration.class)
protected static class Application {
@@ -94,10 +96,12 @@ public class IterableParameterTests {
@LocalServerPort
private int port = 0;
- /*
- * @Bean public ServerList ribbonServerList() { return new
- * StaticServerList<>(new Server("localhost", this.port)); }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "localapp")
+ .build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.java
index 516c065d..21ef179b 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.java
@@ -16,19 +16,22 @@
package org.springframework.cloud.openfeign.valid.scanning;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
import org.springframework.cloud.openfeign.testclients.TestClient;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -54,7 +57,6 @@ public class FeignClientEnvVarTests {
private TestClient testClient;
@Test
- @Ignore // FIXME 3.0.0
public void testSimpleType() {
String hello = this.testClient.getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -65,8 +67,7 @@ public class FeignClientEnvVarTests {
@EnableAutoConfiguration
@RestController
@EnableFeignClients(basePackages = { "${basepackage}" })
- // @RibbonClient(name = "localapp", configuration =
- // LocalRibbonClientConfiguration.class)
+ @LoadBalancerClient(name = "localapp", configuration = LocalClientConfiguration.class)
@Import(NoSecurityConfiguration.class)
protected static class Application {
@@ -79,15 +80,17 @@ public class FeignClientEnvVarTests {
// Load balancer with fixed server list for "local" pointing to localhost
@Configuration(proxyBeanMethods = false)
- public static class LocalRibbonClientConfiguration {
+ public static class LocalClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ServerList ribbonServerList() { return new
- * StaticServerList<>(new Server("localhost", this.port)); }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "localapp")
+ .build();
+ }
}
diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.java
index f0581b44..5692e462 100644
--- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.java
+++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.java
@@ -17,7 +17,6 @@
package org.springframework.cloud.openfeign.valid.scanning;
import feign.Client;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -25,11 +24,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.test.NoSecurityConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.core.env.Environment;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -63,7 +67,6 @@ public class FeignClientScanningTests {
private Client feignClient;
@Test
- @Ignore // FIXME 3.0.0
public void testSimpleType() {
String hello = this.testClient.getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -71,7 +74,6 @@ public class FeignClientScanningTests {
}
@Test
- @Ignore // FIXME 3.0.0
public void testSimpleTypeByKey() {
String hello = this.testClientByKey.getHello();
assertThat(hello).as("hello was null").isNotNull();
@@ -98,7 +100,7 @@ public class FeignClientScanningTests {
@EnableAutoConfiguration
@RestController
@EnableFeignClients // NO clients attribute. That's what this class is testing!
- // @RibbonClients(defaultConfiguration = LocalRibbonClientConfiguration.class)
+ @LoadBalancerClients(defaultConfiguration = LocalClientConfiguration.class)
@Import(NoSecurityConfiguration.class)
protected static class Application {
@@ -111,15 +113,16 @@ public class FeignClientScanningTests {
// Load balancer with fixed server list for "local" pointing to localhost
@Configuration(proxyBeanMethods = false)
- public static class LocalRibbonClientConfiguration {
+ static class LocalClientConfiguration {
- @Value("${local.server.port}")
+ @LocalServerPort
private int port = 0;
- /*
- * @Bean public ServerList ribbonServerList() { return new
- * StaticServerList<>(new Server("localhost", this.port)); }
- */
+ @Bean
+ public ServiceInstanceListSupplier staticServiceInstanceListSupplier(
+ Environment env) {
+ return ServiceInstanceListSupplier.fixed(env).instance(port, "local").build();
+ }
}