Skip to content

Commit 245c256

Browse files
committed
Update to Spring Boot 1.5.9 and Spring Cloud Edgware.RELEASE
closes codecentric#597
1 parent 121d475 commit 245c256

File tree

3 files changed

+51
-24
lines changed

3 files changed

+51
-24
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>1.5.8.RELEASE</version>
8+
<version>1.5.9.RELEASE</version>
99
<relativePath/>
1010
</parent>
1111
<groupId>de.codecentric</groupId>
@@ -18,8 +18,8 @@
1818
<properties>
1919
<java.version>1.7</java.version>
2020
<main.basedir>${basedir}</main.basedir>
21-
<spring-boot.version>1.5.8.RELEASE</spring-boot.version>
22-
<spring-cloud.version>Dalston.SR4</spring-cloud.version>
21+
<spring-boot.version>1.5.9.RELEASE</spring-boot.version>
22+
<spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
2323
<hystrix-dashboard.version>1.5.5</hystrix-dashboard.version>
2424
<build-plugin.jacoco.version>0.7.9</build-plugin.jacoco.version>
2525
<build-plugin.coveralls.version>4.3.0</build-plugin.coveralls.version>

spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/config/RevereseZuulProxyConfiguration.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,22 @@
2121
import de.codecentric.boot.admin.zuul.ApplicationRouteLocator;
2222
import de.codecentric.boot.admin.zuul.filters.pre.ApplicationHeadersFilter;
2323

24+
import org.apache.http.impl.client.CloseableHttpClient;
2425
import org.springframework.beans.factory.annotation.Autowired;
2526
import org.springframework.boot.actuate.endpoint.Endpoint;
2627
import org.springframework.boot.actuate.trace.TraceRepository;
2728
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2829
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
30+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
31+
import org.springframework.cloud.commons.httpclient.ApacheHttpClientConnectionManagerFactory;
32+
import org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory;
33+
import org.springframework.cloud.commons.httpclient.HttpClientConfiguration;
2934
import org.springframework.cloud.netflix.zuul.RoutesEndpoint;
3035
import org.springframework.cloud.netflix.zuul.ZuulServerAutoConfiguration;
3136
import org.springframework.cloud.netflix.zuul.filters.ProxyRequestHelper;
3237
import org.springframework.cloud.netflix.zuul.filters.RouteLocator;
3338
import org.springframework.cloud.netflix.zuul.filters.TraceProxyRequestHelper;
39+
import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;
3440
import org.springframework.cloud.netflix.zuul.filters.pre.PreDecorationFilter;
3541
import org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter;
3642
import org.springframework.cloud.netflix.zuul.web.ZuulHandlerMapping;
@@ -39,10 +45,12 @@
3945
import org.springframework.context.PayloadApplicationEvent;
4046
import org.springframework.context.annotation.Bean;
4147
import org.springframework.context.annotation.Configuration;
48+
import org.springframework.context.annotation.Import;
4249
import org.springframework.core.annotation.Order;
4350

4451
@Configuration
4552
@AutoConfigureAfter({AdminServerWebConfiguration.class})
53+
@Import(HttpClientConfiguration.class)
4654
public class RevereseZuulProxyConfiguration extends ZuulServerAutoConfiguration {
4755

4856
@Autowired(required = false)
@@ -88,8 +96,22 @@ public ApplicationHeadersFilter applicationHeadersFilter(ApplicationRouteLocator
8896
}
8997

9098
@Bean
91-
public SimpleHostRoutingFilter simpleHostRoutingFilter() {
92-
return new SimpleHostRoutingFilter(proxyRequestHelper(), zuulProperties);
99+
@ConditionalOnMissingBean({SimpleHostRoutingFilter.class, CloseableHttpClient.class})
100+
public SimpleHostRoutingFilter simpleHostRoutingFilter(ProxyRequestHelper helper,
101+
ZuulProperties zuulProperties,
102+
ApacheHttpClientConnectionManagerFactory connectionManagerFactory,
103+
ApacheHttpClientFactory httpClientFactory) {
104+
return new SimpleHostRoutingFilter(helper, zuulProperties,
105+
connectionManagerFactory, httpClientFactory);
106+
}
107+
108+
@Bean
109+
@ConditionalOnMissingBean({SimpleHostRoutingFilter.class})
110+
public SimpleHostRoutingFilter simpleHostRoutingFilter2(ProxyRequestHelper helper,
111+
ZuulProperties zuulProperties,
112+
CloseableHttpClient httpClient) {
113+
return new SimpleHostRoutingFilter(helper, zuulProperties,
114+
httpClient);
93115
}
94116

95117
@Bean

spring-boot-admin-server/src/test/java/de/codecentric/boot/admin/zuul/ApplicationRouteLocatorTest.java

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
import de.codecentric.boot.admin.model.Application;
3434
import de.codecentric.boot.admin.registry.ApplicationRegistry;
35+
import de.codecentric.boot.admin.zuul.ApplicationRouteLocator.ApplicationRoute;
3536

3637
public class ApplicationRouteLocatorTest {
3738

@@ -47,42 +48,46 @@ public void setup() {
4748

4849
@Test
4950
public void getRoutes_healthOnly() {
50-
when(registry.getApplications()).thenReturn(singletonList(Application.create("app1")
51-
.withHealthUrl("http://localhost/health").withId("1234").build()));
51+
Application application = Application.create("app1")
52+
.withHealthUrl("http://localhost/health")
53+
.withId("1234")
54+
.build();
55+
when(registry.getApplications()).thenReturn(singletonList(application));
5256

5357
assertEquals(1, locator.getRoutes().size());
54-
assertEquals(asList(new Route("1234-health", "/**", "http://localhost/health",
55-
"/api/applications/1234/health", false, null)), locator.getRoutes());
58+
assertEquals(singletonList(new ApplicationRoute(application, "1234-health", "/**", "http://localhost/health",
59+
"/api/applications/1234/health")), locator.getRoutes());
5660

5761
Route matchingRoute = locator.getMatchingRoute("/api/applications/1234/health");
58-
assertEquals(new Route("1234-health", "", "http://localhost/health",
59-
"/api/applications/1234/health", false, null), matchingRoute);
62+
assertEquals(new ApplicationRoute(application, "1234-health", "", "http://localhost/health",
63+
"/api/applications/1234/health"), matchingRoute);
6064

6165
assertNull(locator.getMatchingRoute("/api/applications/1234/danger"));
6266
}
6367

6468
@Test
6569
public void getRoutes() {
66-
when(registry.getApplications()).thenReturn(
67-
singletonList(Application.create("app1").withHealthUrl("http://localhost/health")
68-
.withManagementUrl("http://localhost").withId("1234").build()));
70+
Application application = Application.create("app1")
71+
.withHealthUrl("http://localhost/health")
72+
.withManagementUrl("http://localhost")
73+
.withId("1234")
74+
.build();
75+
when(registry.getApplications()).thenReturn(singletonList(application));
6976

7077
assertEquals(2, locator.getRoutes().size());
7178

72-
assertEquals(asList(
73-
new Route("1234-health", "/**", "http://localhost/health",
74-
"/api/applications/1234/health", false, null),
75-
new Route("1234-env", "/**", "http://localhost/env", "/api/applications/1234/env",
76-
false, null)),
77-
locator.getRoutes());
79+
assertEquals(asList(new ApplicationRoute(application, "1234-health", "/**", "http://localhost/health",
80+
"/api/applications/1234/health"),
81+
new ApplicationRoute(application, "1234-env", "/**", "http://localhost/env",
82+
"/api/applications/1234/env")), locator.getRoutes());
7883

7984
Route matchingHealth = locator.getMatchingRoute("/api/applications/1234/health");
80-
assertEquals(new Route("1234-health", "", "http://localhost/health",
81-
"/api/applications/1234/health", false, null), matchingHealth);
85+
assertEquals(new ApplicationRoute(application, "1234-health", "", "http://localhost/health",
86+
"/api/applications/1234/health"), matchingHealth);
8287

8388
Route matchingEnv = locator.getMatchingRoute("/api/applications/1234/env/reset");
84-
assertEquals(new Route("1234-env", "/reset", "http://localhost/env",
85-
"/api/applications/1234/env", false, null), matchingEnv);
89+
assertEquals(new ApplicationRoute(application, "1234-env", "/reset", "http://localhost/env",
90+
"/api/applications/1234/env"), matchingEnv);
8691

8792
assertNull(locator.getMatchingRoute("/api/applications/1234/danger"));
8893
}

0 commit comments

Comments
 (0)