remove sidecar as a toplevel project (doesn't make sense since consul IS a sidecar).

Add a zuul application test
This commit is contained in:
Spencer Gibb
2015-01-27 09:18:14 -07:00
parent 5eb310362a
commit 6ef01e04e3
11 changed files with 89 additions and 45 deletions

View File

@@ -30,8 +30,8 @@
<module>spring-cloud-consul-config</module>
<module>spring-cloud-consul-discovery</module>
<module>spring-cloud-consul-bus</module>
<module>spring-cloud-consul-sidecar</module>
<module>spring-cloud-consul-sample</module>
<module>spring-cloud-consul-tests</module>
</modules>
<build>
@@ -107,6 +107,11 @@
<artifactId>spring-cloud-config-client</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-sidecar</artifactId>

View File

@@ -93,13 +93,14 @@ public class ConsulRibbonClientConfiguration implements BeanPostProcessor {
}
private void wrapServerList(DynamicServerListLoadBalancer<?> balancer) {
@SuppressWarnings("unchecked")
DynamicServerListLoadBalancer<ConsulServer> dynamic = (DynamicServerListLoadBalancer<ConsulServer>) balancer;
ServerList<ConsulServer> list = dynamic.getServerListImpl();
if (list instanceof ConsulServerList) {
ConsulServerList csl = (ConsulServerList) list;
csl.setClient(client);
}
// TODO: fix this set client hack
@SuppressWarnings("unchecked")
DynamicServerListLoadBalancer<ConsulServer> dynamic = (DynamicServerListLoadBalancer<ConsulServer>) balancer;
ServerList<ConsulServer> list = dynamic.getServerListImpl();
if (list instanceof ConsulServerList) {
ConsulServerList csl = (ConsulServerList) list;
csl.setClient(client);
}
}
protected void setProp(String serviceId, String suffix, String value) {

View File

@@ -1,10 +0,0 @@
package org.springframework.cloud.consul.sidecar;
import org.springframework.context.annotation.Configuration;
/**
* @author Spencer Gibb
*/
@Configuration
public class ConsulSidecarConfiguration {
}

View File

@@ -1,23 +0,0 @@
package org.springframework.cloud.consul.sidecar;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.sidecar.SidecarConfiguration;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Import;
import java.lang.annotation.*;
/**
* @author Spencer Gibb
*/
@EnableCircuitBreaker
@EnableDiscoveryClient
@EnableZuulProxy
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import({SidecarConfiguration.class, ConsulSidecarConfiguration.class})
public @interface EnableSidecar {
}

View File

@@ -4,10 +4,10 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-cloud-consul-sidecar</artifactId>
<artifactId>spring-cloud-consul-tests</artifactId>
<packaging>jar</packaging>
<name>Spring Cloud Consul Sidecar</name>
<description>Spring Cloud Consul Sidecar</description>
<name>Spring Cloud Consul Tests</name>
<description>Spring Cloud Consul Tests</description>
<parent>
<groupId>org.springframework.cloud</groupId>
@@ -33,6 +33,10 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-sidecar</artifactId>

View File

@@ -23,11 +23,17 @@ import org.springframework.boot.actuate.metrics.repository.InMemoryMetricReposit
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.IntegrationTest;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.sidecar.*;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.bind.annotation.RestController;
import java.lang.annotation.*;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SidecarApplicationTests.SidecarApplication.class)
@IntegrationTest("server.port=0")
@@ -39,7 +45,10 @@ public class SidecarApplicationTests {
@SpringBootApplication
@org.springframework.cloud.netflix.sidecar.EnableSidecar
@EnableCircuitBreaker
@EnableDiscoveryClient
@EnableZuulProxy
@Import(SidecarConfiguration.class)
@RestController
public static class SidecarApplication {

View File

@@ -0,0 +1,58 @@
/*
* Copyright 2013-2015 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.cloud.consul.sidecar;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.metrics.repository.InMemoryMetricRepository;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.IntegrationTest;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ZuulApplicationTests.ZuulApplication.class)
@IntegrationTest("server.port=0")
public class ZuulApplicationTests {
@Test
public void contextLoads() {
}
@SpringBootApplication
@EnableCircuitBreaker
@EnableDiscoveryClient
@EnableZuulProxy
public static class ZuulApplication {
@Bean
public InMemoryMetricRepository inMemoryMetricRepository() {
return new InMemoryMetricRepository();
}
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class, args);
}
}
}