From 47dee39bb38315faac640c1486011bd4ce5433b2 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 12 Aug 2015 14:45:22 +0100 Subject: [PATCH] Add more interesting messaging demo --- .../main/java/sample/SampleBackground.java | 46 +++++++++++++++++++ .../sample/SampleMessagingApplication.java | 11 ++++- .../java/sample/SampleRequestResponse.java | 32 +++++++++++++ .../{SampleGateway.java => SampleSink.java} | 2 +- .../main/java/sample/SampleTransformer.java | 44 ++++++++++++++++++ .../src/main/resources/application.yml | 6 +-- .../src/main/resources/application.yml | 4 +- 7 files changed, 138 insertions(+), 7 deletions(-) create mode 100644 spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleBackground.java create mode 100644 spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleRequestResponse.java rename spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/{SampleGateway.java => SampleSink.java} (96%) create mode 100644 spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleTransformer.java diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleBackground.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleBackground.java new file mode 100644 index 000000000..d8b9507d6 --- /dev/null +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleBackground.java @@ -0,0 +1,46 @@ +/* + * 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 sample; + +import java.util.Random; + +import lombok.SneakyThrows; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.sleuth.Trace; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +/** + * @author Spencer Gibb + */ +@Component +public class SampleBackground { + + @Autowired + private Trace trace; + + @SneakyThrows + @Async + public void background() { + final Random random = new Random(); + int millis = random.nextInt(1000); + Thread.sleep(millis); + this.trace.addKVAnnotation("background-sleep-millis", String.valueOf(millis)); + } + +} diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleMessagingApplication.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleMessagingApplication.java index c21eccd73..f2574f22e 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleMessagingApplication.java +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleMessagingApplication.java @@ -43,7 +43,10 @@ import com.github.kristofa.brave.SpanCollector; public class SampleMessagingApplication { @Autowired - private SampleGateway gateway; + private SampleSink gateway; + + @Autowired + private SampleRequestResponse transformer; @Bean public Sampler defaultSampler() { @@ -57,6 +60,12 @@ public class SampleMessagingApplication { return msg; } + @RequestMapping("/xform") + public String xform() { + String msg = "Hello"; + return this.transformer.send(msg); + } + public static void main(String[] args) { SpringApplication.run(SampleMessagingApplication.class, args); } diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleRequestResponse.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleRequestResponse.java new file mode 100644 index 000000000..8fe3687ae --- /dev/null +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleRequestResponse.java @@ -0,0 +1,32 @@ +/* + * Copyright 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 sample; + +import org.springframework.integration.annotation.Gateway; +import org.springframework.integration.annotation.MessagingGateway; + +/** + * @author Dave Syer + * + */ +@MessagingGateway +public interface SampleRequestResponse { + + @Gateway(requestChannel="xform") + String send(String input); + +} diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleGateway.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleSink.java similarity index 96% rename from spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleGateway.java rename to spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleSink.java index 70ff734a4..e8804a344 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleGateway.java +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleSink.java @@ -24,7 +24,7 @@ import org.springframework.integration.annotation.MessagingGateway; * */ @MessagingGateway -public interface SampleGateway { +public interface SampleSink { @Gateway(requestChannel="messages") void send(String message); diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleTransformer.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleTransformer.java new file mode 100644 index 000000000..d2145e6f9 --- /dev/null +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleTransformer.java @@ -0,0 +1,44 @@ +/* + * Copyright 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 sample; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; +import org.springframework.messaging.Message; + +/** + * @author Dave Syer + * + */ +@MessageEndpoint +@Slf4j +public class SampleTransformer { + + @Autowired + SampleBackground background; + + @ServiceActivator(inputChannel="xform") + public String log(Message message) { + log.info("Received: " + message); + this.background.background(); + return message.getPayload().toString().toUpperCase(); + } + +} diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/resources/application.yml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/resources/application.yml index f877bc9d4..589e1d6dd 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/resources/application.yml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/resources/application.yml @@ -3,11 +3,11 @@ server: spring: application: - name: testSleuthApp + name: testSleuthMessaging sleuth: log: json: - enabled: true +# enabled: true logging: pattern: @@ -15,4 +15,4 @@ logging: span: logging: - enabled: true +# enabled: true diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml index 7c755047f..9aa11b01d 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: testSleuthApp + name: testSleuthZipkin logging: pattern: @@ -11,7 +11,7 @@ logging: span: logging: - enabled: true +# enabled: true endpoints: health: