From 0c02f0f9ed8d3c9bef9af85183e959e5b7950ab5 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 19 Apr 2016 16:16:00 +0100 Subject: [PATCH] Add 'other' app in turbine sample --- .../src/test/java/apps/OtherApplication.java | 82 +++++++++++++++++++ turbine/src/test/resources/other.properties | 3 + 2 files changed, 85 insertions(+) create mode 100644 turbine/src/test/java/apps/OtherApplication.java create mode 100644 turbine/src/test/resources/other.properties diff --git a/turbine/src/test/java/apps/OtherApplication.java b/turbine/src/test/java/apps/OtherApplication.java new file mode 100644 index 0000000..dbb5837 --- /dev/null +++ b/turbine/src/test/java/apps/OtherApplication.java @@ -0,0 +1,82 @@ +/* + * Copyright 2014-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 apps; + +import javax.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; + +@Configuration +@EnableAutoConfiguration +@EnableDiscoveryClient +@EnableCircuitBreaker +@RestController +public class OtherApplication { + + @Autowired + private HelloService service; + + @RequestMapping("/") + public String hello() { + return this.service.hello(); + } + + @RequestMapping("/session") + public String session(HttpSession session) { + return session.getId(); + } + + @RequestMapping("/fail") + public String fail() { + return this.service.fail(); + } + + public static void main(String[] args) { + new SpringApplicationBuilder(OtherApplication.class).properties( + "spring.config.name:other").run(args); + } + + @Service + public static class HelloService { + + @HystrixCommand(fallbackMethod="fallback") + public String hello() { + return "Hello World"; + } + + @HystrixCommand(fallbackMethod="fallback") + public String fail() { + throw new RuntimeException("Planned"); + } + + public String fallback() { + return "Fallback"; + } + + } + +} diff --git a/turbine/src/test/resources/other.properties b/turbine/src/test/resources/other.properties new file mode 100644 index 0000000..d1bfb70 --- /dev/null +++ b/turbine/src/test/resources/other.properties @@ -0,0 +1,3 @@ +server.port: 8081 +spring.application.name: other +eureka.instance.metadata-map.cluster: MAIN \ No newline at end of file