Giter Site home page Giter Site logo

spring-cloud / spring-cloud-stream Goto Github PK

View Code? Open in Web Editor NEW
962.0 83.0 594.0 17.41 MB

Framework for building Event-Driven Microservices

Home Page: http://cloud.spring.io/spring-cloud-stream

License: Apache License 2.0

Java 99.83% Shell 0.14% Kotlin 0.04%
microservices messaging event-driven-microservices stream-processing reactive cloud-native

spring-cloud-stream's Introduction

CircleCI
codecov
Gitter

Introduction

Spring Cloud Stream is a framework for building message-driven microservice applications. Spring Cloud Stream builds upon Spring Boot to create standalone, production-grade Spring applications and uses Spring Integration to provide connectivity to message brokers. It provides opinionated configuration of middleware from several vendors, introducing the concepts of persistent publish-subscribe semantics, consumer groups, and partitions. These are called binder implementations in the parlance of Spring Cloud Stream. Out of the box, Spring Cloud Stream provides binder implementations for Apache Kafka and RabbitMQ. While these two binder implementations are based on Message Channels, Spring Cloud Stream also provides another binder implementation for Kafka Streams that does not use message channels, but native Kafka Streams types such as KStream, KTable etc.

Below, you can find more information on how to use these various out-of-the-box binder implementations in your applications.

Apache Kafka Binder

Usage

To use Apache Kafka binder, you need to add spring-cloud-stream-binder-kafka as a dependency to your Spring Cloud Stream application, as shown in the following example for Maven:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-stream-binder-kafka</artifactId>
</dependency>

Alternatively, you can also use the Spring Cloud Stream Kafka Starter, as shown in the following example for Maven:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-stream-kafka</artifactId>
</dependency>

Apache Kafka Streams Binder

Usage

To use Apache Kafka Streams binder, you need to add spring-cloud-stream-binder-kafka-streams as a dependency to your Spring Cloud Stream application, as shown in the following example for Maven:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-stream-binder-kafka-streams</artifactId>
</dependency>

RabbitMQ Binder

Usage

To use the RabbitMQ binder, you can add it to your Spring Cloud Stream application, by using the following Maven coordinates:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>

Alternatively, you can use the Spring Cloud Stream RabbitMQ Starter, as follows:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>

Resources

For more information, please visit the project website:

Building

Basic Compile and Test

To build the source you will need to install JDK 17.

Spring Cloud uses Maven for most build-related activities, and you should be able to get off the ground quite quickly by cloning the project you are interested in and typing

$ ./mvnw install
Note
You can also install Maven (>=3.3.3) yourself and run the mvn command in place of ./mvnw in the examples below. If you do that you also might need to add -P spring if your local Maven settings do not contain repository declarations for spring pre-release artifacts.
Note
Be aware that you might need to increase the amount of memory available to Maven by setting a MAVEN_OPTS environment variable with a value like -Xmx512m -XX:MaxPermSize=128m. We try to cover this in the .mvn configuration, so if you find you have to do it to make a build succeed, please raise a ticket to get the settings added to source control.

The projects that require middleware (i.e. Redis) for testing generally require that a local instance of [Docker](https://www.docker.com/get-started) is installed and running.

Documentation

The spring-cloud-build module has a "docs" profile, and if you switch that on it will try to build asciidoc sources from src/main/asciidoc. As part of that process it will look for a README.adoc and process it by loading all the includes, but not parsing or rendering it, just copying it to ${main.basedir} (defaults to ${basedir}, i.e. the root of the project). If there are any changes in the README it will then show up after a Maven build as a modified file in the correct place. Just commit it and push the change.

Working with the code

If you don’t have an IDE preference we would recommend that you use Spring Tools Suite or Eclipse when working with the code. We use the m2eclipse eclipse plugin for maven support. Other IDEs and tools should also work without issue as long as they use Maven 3.3.3 or better.

Activate the Spring Maven profile

Spring Cloud projects require the 'spring' Maven profile to be activated to resolve the spring milestone and snapshot repositories. Use your preferred IDE to set this profile to be active, or you may experience build errors.

Importing into eclipse with m2eclipse

We recommend the m2eclipse eclipse plugin when working with eclipse. If you don’t already have m2eclipse installed it is available from the "eclipse marketplace".

Note
Older versions of m2e do not support Maven 3.3, so once the projects are imported into Eclipse you will also need to tell m2eclipse to use the right profile for the projects. If you see many different errors related to the POMs in the projects, check that you have an up to date installation. If you can’t upgrade m2e, add the "spring" profile to your settings.xml. Alternatively you can copy the repository settings from the "spring" profile of the parent pom into your settings.xml.

Importing into eclipse without m2eclipse

If you prefer not to use m2eclipse you can generate eclipse project metadata using the following command:

$ ./mvnw eclipse:eclipse

The generated eclipse projects can be imported by selecting import existing projects from the file menu.

Contributing

Spring Cloud is released under the non-restrictive Apache 2.0 license, and follows a very standard Github development process, using Github tracker for issues and merging pull requests into master. If you want to contribute even something trivial please do not hesitate, but follow the guidelines below.

Sign the Contributor License Agreement

Before we accept a non-trivial patch or pull request we will need you to sign the Contributor License Agreement. Signing the contributor’s agreement does not grant anyone commit rights to the main repository, but it does mean that we can accept your contributions, and you will get an author credit if we do. Active contributors might be asked to join the core team, and given the ability to merge pull requests.

Code of Conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

Code Conventions and Housekeeping

None of these is essential for a pull request, but they will all help. They can also be added after the original pull request but before a merge.

  • Use the Spring Framework code format conventions. If you use Eclipse you can import formatter settings using the eclipse-code-formatter.xml file from the Spring Cloud Build project. If using IntelliJ, you can use the Eclipse Code Formatter Plugin to import the same file.

  • Make sure all new .java files to have a simple Javadoc class comment with at least an @author tag identifying you, and preferably at least a paragraph on what the class is for.

  • Add the ASF license header comment to all new .java files (copy from existing files in the project)

  • Add yourself as an @author to the .java files that you modify substantially (more than cosmetic changes).

  • Add some Javadocs and, if you change the namespace, some XSD doc elements.

  • A few unit tests would help a lot as well — someone has to do it.

  • If no-one else is using your branch, please rebase it against the current master (or other target branch in the main project).

  • When writing a commit message please follow these conventions, if you are fixing an existing issue please add Fixes gh-XXXX at the end of the commit message (where XXXX is the issue number).

Checkstyle

Spring Cloud Build comes with a set of checkstyle rules. You can find them in the spring-cloud-build-tools module. The most notable files under the module are:

spring-cloud-build-tools/
└── src
    ├── checkstyle
    │   └── checkstyle-suppressions.xml (3)
    └── main
        └── resources
            ├── checkstyle-header.txt (2)
            └── checkstyle.xml (1)
  1. Default Checkstyle rules

  2. File header setup

  3. Default suppression rules

Checkstyle configuration

Checkstyle rules are disabled by default. To add checkstyle to your project just define the following properties and plugins.

pom.xml
<properties>
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError> (1)
        <maven-checkstyle-plugin.failsOnViolation>true
        </maven-checkstyle-plugin.failsOnViolation> (2)
        <maven-checkstyle-plugin.includeTestSourceDirectory>true
        </maven-checkstyle-plugin.includeTestSourceDirectory> (3)
</properties>

<build>
        <plugins>
            <plugin> (4)
                <groupId>io.spring.javaformat</groupId>
                <artifactId>spring-javaformat-maven-plugin</artifactId>
            </plugin>
            <plugin> (5)
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
        </plugins>

    <reporting>
        <plugins>
            <plugin> (5)
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
        </plugins>
    </reporting>
</build>
  1. Fails the build upon Checkstyle errors

  2. Fails the build upon Checkstyle violations

  3. Checkstyle analyzes also the test sources

  4. Add the Spring Java Format plugin that will reformat your code to pass most of the Checkstyle formatting rules

  5. Add checkstyle plugin to your build and reporting phases

If you need to suppress some rules (e.g. line length needs to be longer), then it’s enough for you to define a file under ${project.root}/src/checkstyle/checkstyle-suppressions.xml with your suppressions. Example:

projectRoot/src/checkstyle/checkstyle-suppresions.xml
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
		"-//Puppy Crawl//DTD Suppressions 1.1//EN"
		"https://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
	<suppress files=".*ConfigServerApplication\.java" checks="HideUtilityClassConstructor"/>
	<suppress files=".*ConfigClientWatch\.java" checks="LineLengthCheck"/>
</suppressions>

It’s advisable to copy the ${spring-cloud-build.rootFolder}/.editorconfig and ${spring-cloud-build.rootFolder}/.springformat to your project. That way, some default formatting rules will be applied. You can do so by running this script:

$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig
$ touch .springformat

IDE setup

Intellij IDEA

In order to setup Intellij you should import our coding conventions, inspection profiles and set up the checkstyle plugin. The following files can be found in the Spring Cloud Build project.

spring-cloud-build-tools/
└── src
    ├── checkstyle
    │   └── checkstyle-suppressions.xml (3)
    └── main
        └── resources
            ├── checkstyle-header.txt (2)
            ├── checkstyle.xml (1)
            └── intellij
                ├── Intellij_Project_Defaults.xml (4)
                └── Intellij_Spring_Boot_Java_Conventions.xml (5)
  1. Default Checkstyle rules

  2. File header setup

  3. Default suppression rules

  4. Project defaults for Intellij that apply most of Checkstyle rules

  5. Project style conventions for Intellij that apply most of Checkstyle rules

Code style
Figure 1. Code style

Go to FileSettingsEditorCode style. There click on the icon next to the Scheme section. There, click on the Import Scheme value and pick the Intellij IDEA code style XML option. Import the spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml file.

Code style
Figure 2. Inspection profiles

Go to FileSettingsEditorInspections. There click on the icon next to the Profile section. There, click on the Import Profile and import the spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml file.

Checkstyle

To have Intellij work with Checkstyle, you have to install the Checkstyle plugin. It’s advisable to also install the Assertions2Assertj to automatically convert the JUnit assertions

Checkstyle

Go to FileSettingsOther settingsCheckstyle. There click on the + icon in the Configuration file section. There, you’ll have to define where the checkstyle rules should be picked from. In the image above, we’ve picked the rules from the cloned Spring Cloud Build repository. However, you can point to the Spring Cloud Build’s GitHub repository (e.g. for the checkstyle.xml : https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml). We need to provide the following variables:

Important
Remember to set the Scan Scope to All sources since we apply checkstyle rules for production and test sources.

Duplicate Finder

Spring Cloud Build brings along the basepom:duplicate-finder-maven-plugin, that enables flagging duplicate and conflicting classes and resources on the java classpath.

Duplicate Finder configuration

Duplicate finder is enabled by default and will run in the verify phase of your Maven build, but it will only take effect in your project if you add the duplicate-finder-maven-plugin to the build section of the projecst’s pom.xml.

pom.xml
<build>
    <plugins>
        <plugin>
            <groupId>org.basepom.maven</groupId>
            <artifactId>duplicate-finder-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

For other properties, we have set defaults as listed in the plugin documentation.

You can easily override them but setting the value of the selected property prefixed with duplicate-finder-maven-plugin. For example, set duplicate-finder-maven-plugin.skip to true in order to skip duplicates check in your build.

If you need to add ignoredClassPatterns or ignoredResourcePatterns to your setup, make sure to add them in the plugin configuration section of your project:

<build>
    <plugins>
        <plugin>
            <groupId>org.basepom.maven</groupId>
            <artifactId>duplicate-finder-maven-plugin</artifactId>
            <configuration>
                <ignoredClassPatterns>
                    <ignoredClassPattern>org.joda.time.base.BaseDateTime</ignoredClassPattern>
                    <ignoredClassPattern>.*module-info</ignoredClassPattern>
                </ignoredClassPatterns>
                <ignoredResourcePatterns>
                    <ignoredResourcePattern>changelog.txt</ignoredResourcePattern>
                </ignoredResourcePatterns>
            </configuration>
        </plugin>
    </plugins>
</build>

spring-cloud-stream's People

Contributors

artembilan avatar byungjunyou avatar claudio-code avatar dependabot[bot] avatar ericbottard avatar garyrussell avatar ghillert avatar ilayaperumalg avatar imechemi avatar making avatar marcingrzejszczak avatar markfisher avatar markpollack avatar mbogoevici avatar ncheema avatar nico-javadev avatar olegz avatar omercelikceng avatar onobc avatar phillipuniverse avatar sabbyanandan avatar snussbaumer avatar sobychacko avatar spencergibb avatar spring-builds avatar spring-operator avatar trisberg avatar viniciusccarvalho avatar walliee avatar yanayita avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring-cloud-stream's Issues

Refactor to use Boot's JarLauncher

As a s-c-s developer, I'd like to refactor the current ModuleLauncher contract with Boot's JarLauncher API, so we don't have to maintain duplicate functionality.

Support partitioning properties for Gemfire binder

TimeSource sample enhancements

Show alternative implementations

  • return a simple String on the @InboundChannelAdapter method instead of MessageSource<String>
  • Use SI Java DSL

Change application.yml to reference outputChannelName instead of inputChannelName

Make s-c-s modules searchable by its name

As a s-c-s user, I'd like to search the modules by it's name aside from the default spring.application.name offered by boot, so I can also fetch modules by it's name.

Implement Gemfire message-channel binder

As a s-c-s user, I'd like to have Gemfire message-channel binder, so I can use Gemfire as the messaging middleware for low latency use-cases.

Acceptance Criteria:

  • Gemfire as a binder exist in s-c-s repo under spring-cloud-stream-binder-gemfire package
  • Including spring-cloud-stream-binder-gemfire as binder successfully allows using Gemfire as messaging middleware

Resolves #189

Bind message properties to modules

As a s-c-s developer, I'd like to support XD-like features where modules bind to incoming messages via expressions or other mechanism, so I can bind message properties to every microservice modules.

Make SpEL usage consistent across all including custom modules

As a user, I'd like to use SpEL expressions inline at the stream definition level, so I can operate on the payload consistently while using any OOTB, including the custom modules.

Acceptance Criteria:

  • Applicability of SpEL expression is consistent across the modules
  • Utility function exist and overridable for custom modules
  • Applied across OOTB modules and verifiable via test fixtures
  • Implementation details are documented with examples

NPE in the RedisQueueOutboundChannelAdapter caused by the misconfiguration for the RedisMessageChannelBinder

2015-10-28 11:45:43,630 ERROR inbound.retry.0-redis:queue-inbound-channel-adapter1 o.s.c.s.b.r.RedisMessageChannelBinder$1:286 - Failed to deliver message
org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.integration.redis.outbound.RedisQueueOutboundChannelAdapter@5f977c77]; nested exception is java.lang.IllegalArgumentException: EvaluationContext must not be null
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:139) ~[spring-integration-core-4.2.1.RELEASE.jar:na]
    at org.springframework.cloud.stream.binder.redis.RedisMessageChannelBinder$1$2.recover(RedisMessageChannelBinder.java:277) ~[classes/:na]
    at org.springframework.cloud.stream.binder.redis.RedisMessageChannelBinder$1$2.recover(RedisMessageChannelBinder.java:267) ~[classes/:na]
    at org.springframework.retry.support.RetryTemplate.handleRetryExhausted(RetryTemplate.java:458) ~[spring-retry-1.1.2.RELEASE.jar:na]
    at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:320) ~[spring-retry-1.1.2.RELEASE.jar:na]
    at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:168) ~[spring-retry-1.1.2.RELEASE.jar:na]
    at org.springframework.cloud.stream.binder.redis.RedisMessageChannelBinder$1.doSend(RedisMessageChannelBinder.java:260) ~[classes/:na]
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:442) [spring-integration-core-4.2.1.RELEASE.jar:na]
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:392) [spring-integration-core-4.2.1.RELEASE.jar:na]
    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115) [spring-messaging-4.2.3.BUILD-20151027.143026-12.jar:4.2.3.BUILD-SNAPSHOT]
    at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:45) [spring-messaging-4.2.3.BUILD-20151027.143026-12.jar:4.2.3.BUILD-SNAPSHOT]
    at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:105) [spring-messaging-4.2.3.BUILD-20151027.143026-12.jar:4.2.3.BUILD-SNAPSHOT]
    at org.springframework.integration.endpoint.MessageProducerSupport.sendMessage(MessageProducerSupport.java:105) [spring-integration-core-4.2.1.RELEASE.jar:na]
    at org.springframework.integration.redis.inbound.RedisQueueMessageDrivenEndpoint.popMessageAndSend(RedisQueueMessageDrivenEndpoint.java:224) [spring-integration-redis-4.2.1.RELEASE.jar:na]
    at org.springframework.integration.redis.inbound.RedisQueueMessageDrivenEndpoint.access$300(RedisQueueMessageDrivenEndpoint.java:54) [spring-integration-redis-4.2.1.RELEASE.jar:na]
    at org.springframework.integration.redis.inbound.RedisQueueMessageDrivenEndpoint$ListenerTask.run(RedisQueueMessageDrivenEndpoint.java:323) [spring-integration-redis-4.2.1.RELEASE.jar:na]
    at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:55) [spring-integration-core-4.2.1.RELEASE.jar:na]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
Caused by: java.lang.IllegalArgumentException: EvaluationContext must not be null
    at org.springframework.util.Assert.notNull(Assert.java:115) ~[spring-core-4.2.3.BUILD-20151027.143026-12.jar:4.2.3.BUILD-SNAPSHOT]
    at org.springframework.expression.spel.ExpressionState.<init>(ExpressionState.java:85) ~[spring-expression-4.2.3.BUILD-20151027.143026-12.jar:4.2.3.BUILD-SNAPSHOT]
    at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:329) ~[spring-expression-4.2.3.BUILD-20151027.143026-12.jar:4.2.3.BUILD-SNAPSHOT]
    at org.springframework.integration.redis.outbound.RedisQueueOutboundChannelAdapter.handleMessageInternal(RedisQueueOutboundChannelAdapter.java:115) ~[spring-integration-redis-4.2.1.RELEASE.jar:na]
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) ~[spring-integration-core-4.2.1.RELEASE.jar:na]
    ... 17 common frames omitted

That's just because:

@Override
public void afterPropertiesSet() throws Exception {
    Assert.notNull(this.applicationContext, "The 'applicationContext' property cannot be null");
    onInit();
    if (this.evaluationContext == null) {
        this.evaluationContext = IntegrationContextUtils.getEvaluationContext(getBeanFactory());
    }
}

in the MessageChannelBinderSupport, but the RedisMessageChannelBinder has this code:

protected void onInit() {
    this.errorAdapter.setIntegrationEvaluationContext(this.evaluationContext);
}

So, we populate null to the RedisQueueOutboundChannelAdapter in case of normal application initialization.

App fails to start up if Rabbit broker is not available

Spring AMQP has the ability to declare queues and exchanges when it first connects, but Spring Cloud Stream doesn't work that way (apparently because they are not @Beans):

    at org.springframework.cloud.stream.binder.rabbit.RabbitMessageChannelBinder.declareExchangeIfNotPresent(RabbitMessageChannelBinder.java:776) ~[spring-cloud-stream-binder-rabbit-1.0.0.BUILD-SNAPSHOT.jar:1.0.0.BUILD-SNAPSHOT]

Stops the app starting.

Add support for modules to register itself to Eureka

As a s-c-s user, I'd like to have the modules self-register itself with Eureka whenever they're installed, so I can also discover the same modules using Data Flow Admin SPI and reuse them to create data pipelines.

Acceptance Criteria:

  • Modules pushed to CF registers themselves in Eureka
  • XD's Receptor Admin SPI could discover such modules
  • Data pipes can be created with such modules successfully

Spike: Investigate the inclusion of message bus binding libaries

As a s-c-s developer, I'd like to investigate how to include/exclude msg bus/binding jars, so I can decide the binding selection and fallback mechanism when there is none available.

Acceptance Criteria:

  • Best practices to include binding library is documented

Acknowledgement for Sending Message

Hi,

Currently there is no way to find out if Kafka message is successfully delivered . I tried to use
MessageChannel.send , it always returns true ,even if zookeeper and kakfa server is down.

So, my requirement is to have a way to get a confirmation about delivery of message to kafka server.

Add property override support for modules via external config file

As a s-c-s developer, I'd like to pass any overrides via external config file, so I can influence and override the default module configurations. (ex: module resolution from a different maven coordinate).

Acceptance Criteria:
Property overrides for modules can be successfully injected via external config files

ModuleLauncher does not allow to take remoteRepositories that need username and password.

Let's assume I need to launch a module that sits in a private maven repo (which needs a user/pwd):

java -jar target/spring-cloud-stream-module-launcher-1.0.0.BUILD-SNAPSHOT.jar --modules=io.myorg.custom.module:elasticsearch-sink:1.0.0.BUILD-SNAPSHOT -spring.cloud.stream.bindings.input=ticktock --remoteRepositories=http://mvnrepo.myorg.org/repositories/snapshots

The code will fail with an unauthorized error (401). For some reason there is no way to pass in the repository identifier that defined the password in ~/.m2/settings.xml.

Maybe something simple like the convention below will be good enough?

--remoteRepositories=<repoIdentifier>::http://mvnrepo.myorg.org/repositories/snapshots

This <repoIdentifier> could be used instead of the autogenerated on in the code and needs to match the server entry in settings.xml. If none is given, the auto-generated one could be used. However, the code still needs to be 'fixed' to also consider settings.xml, which currently seems to be ignored.

Let me know if that makes sense. I can do a PR....

Add TAP support for Rabbit binder

As a user, I'd like to tap the primary pipeline, so I can fork the same data and do some ad-hoc analysis without impacting the original stream.

For background and design notes, please refer to XD-3519

Add support for multiple binders per binder type

As a developer, I want to be able to connect to multiple external systems for the same binding type, so that I can read data from a system and write it to another.

Acceptance Criteria:

  • I can successfully consume from and publish to different instances of the same binder (ex: consume from rabbit1 but publish to rabbit2)
  • Unit tests included to simulate publish and subscribe to an from different instances of the same binder type

Document how to use to BOM template

As a s-c-s developer, I'd like to document the use of BOM templates, so the general audience can use it as a reference to include external libraries dynamically.

TimeSource Sample Logging Enhancement

Log out the payload of each MessageSource event in the @InboundChannelAdapter.

Example:

2015-09-19 01:04:08.635  INFO 16455 --- [ask-scheduler-6] demo.TimeSource : Emit log payload: "2015-09-19 01:04:08"
2015-09-19 01:04:13.639  INFO 16455 --- [ask-scheduler-6] demo.TimeSource : Emit log payload: "2015-09-19 01:04:13"
2015-09-19 01:04:18.642  INFO 16455 --- [ask-scheduler-6] demo.TimeSource : Emit log payload: "2015-09-19 01:04:18"
2015-09-19 01:04:23.646  INFO 16455 --- [ask-scheduler-6] demo.TimeSource : Emit log payload: "2015-09-19 01:04:23"

If consumer and producer agree on the content type of a message coercion should be automatic

If a consumer and producer don't specify a content type (via spring.cloud.stream.bindings.*.contentType) then as long as they share a class definition for the payload (a domain object) then the message will flow. That's uncomfortable for 2 reasons: first it forces them to share the domain class (or have an identical class with the same FQCN), and second it uses a default content type which is not interopable (Java serialization basically, not JSON or protobuf or whatever).

As soon as you specify the content type (e.g. as application/json for interop / human readable messages), the system breaks because JSON gets converted to a String and the receiver can't process it as a domain object any more (he has to manually convert the String to a domain object, going through 2 layers of conversion, from String to JSON to Object).

I propose that if the consumer and producer agree on the content type (e.g. application/json) then Spring Cloud Stream (or Spring Integration) should be able to handle the conversion and type coercion.

Marius has pointed out that you have a similar situation in REST endpoints where the solution is HttpMessageConverters that are mime-type as well as Java type aware. The payload is essentially bytes (or Strings) as far as the "dumb pipes" model is concerned (Spring Cloud Stream), but it carries content type headers, a bit like an HTTP request.

https://github.com/joshlong/type-proxy-not-present-error/tree/master

Hi, I've experienced an odd error when using spring-cloud-starter-stream-redis reproduced in this project. Start config-service, eureka-service, and reservation-service and you'll see the error (as reproduced below) in the reservation-service.

If you replace it with spring-cloud-starter-stream-rabbit things work fine. I know that this demo used to work in Redis before in the last major Spring Initializr version of Spring Cloud.

/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:59592,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Users/jlong/Downloads/reservation-service/target/classes:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-web/1.3.0.RC1/spring-boot-starter-web-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter/1.3.0.RC1/spring-boot-starter-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot/1.3.0.RC1/spring-boot-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.3.0.RC1/spring-boot-autoconfigure-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.3.0.RC1/spring-boot-starter-logging-1.3.0.RC1.jar:/Users/jlong/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar:/Users/jlong/.m2/repository/ch/qos/logback/logback-core/1.1.3/logback-core-1.1.3.jar:/Users/jlong/.m2/repository/org/slf4j/jul-to-slf4j/1.7.12/jul-to-slf4j-1.7.12.jar:/Users/jlong/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.12/log4j-over-slf4j-1.7.12.jar:/Users/jlong/.m2/repository/org/yaml/snakeyaml/1.16/snakeyaml-1.16.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/1.3.0.RC1/spring-boot-starter-tomcat-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.0.28/tomcat-embed-core-8.0.28.jar:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.0.28/tomcat-embed-el-8.0.28.jar:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-logging-juli/8.0.28/tomcat-embed-logging-juli-8.0.28.jar:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.0.28/tomcat-embed-websocket-8.0.28.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-validation/1.3.0.RC1/spring-boot-starter-validation-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/hibernate/hibernate-validator/5.2.2.Final/hibernate-validator-5.2.2.Final.jar:/Users/jlong/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/Users/jlong/.m2/repository/com/fasterxml/classmate/1.1.0/classmate-1.1.0.jar:/Users/jlong/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.6.1/jackson-databind-2.6.1.jar:/Users/jlong/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.6.1/jackson-annotations-2.6.1.jar:/Users/jlong/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.6.1/jackson-core-2.6.1.jar:/Users/jlong/.m2/repository/org/springframework/spring-web/4.2.1.RELEASE/spring-web-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-aop/4.2.1.RELEASE/spring-aop-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/jlong/.m2/repository/org/springframework/spring-beans/4.2.1.RELEASE/spring-beans-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-context/4.2.1.RELEASE/spring-context-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-webmvc/4.2.1.RELEASE/spring-webmvc-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-expression/4.2.1.RELEASE/spring-expression-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/1.3.0.RC1/spring-boot-starter-actuator-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-actuator/1.3.0.RC1/spring-boot-actuator-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-actuator-docs/1.3.0.RC1/spring-boot-actuator-docs-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/hateoas/spring-hateoas/0.19.0.RELEASE/spring-hateoas-0.19.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/1.3.0.RC1/spring-boot-starter-data-jpa-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-aop/1.3.0.RC1/spring-boot-starter-aop-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/aspectj/aspectjweaver/1.8.7/aspectjweaver-1.8.7.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/1.3.0.RC1/spring-boot-starter-jdbc-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/apache/tomcat/tomcat-jdbc/8.0.28/tomcat-jdbc-8.0.28.jar:/Users/jlong/.m2/repository/org/apache/tomcat/tomcat-juli/8.0.28/tomcat-juli-8.0.28.jar:/Users/jlong/.m2/repository/org/springframework/spring-jdbc/4.2.1.RELEASE/spring-jdbc-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/hibernate/hibernate-entitymanager/4.3.11.Final/hibernate-entitymanager-4.3.11.Final.jar:/Users/jlong/.m2/repository/org/jboss/logging/jboss-logging/3.3.0.Final/jboss-logging-3.3.0.Final.jar:/Users/jlong/.m2/repository/org/jboss/logging/jboss-logging-annotations/1.2.0.Beta1/jboss-logging-annotations-1.2.0.Beta1.jar:/Users/jlong/.m2/repository/org/hibernate/hibernate-core/4.3.11.Final/hibernate-core-4.3.11.Final.jar:/Users/jlong/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/Users/jlong/.m2/repository/org/jboss/jandex/1.1.0.Final/jandex-1.1.0.Final.jar:/Users/jlong/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar:/Users/jlong/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar:/Users/jlong/.m2/repository/org/hibernate/common/hibernate-commons-annotations/4.0.5.Final/hibernate-commons-annotations-4.0.5.Final.jar:/Users/jlong/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/1.0.0.Final/hibernate-jpa-2.1-api-1.0.0.Final.jar:/Users/jlong/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar:/Users/jlong/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar:/Users/jlong/.m2/repository/org/springframework/data/spring-data-jpa/1.9.0.RELEASE/spring-data-jpa-1.9.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/data/spring-data-commons/1.11.0.RELEASE/spring-data-commons-1.11.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-orm/4.2.1.RELEASE/spring-orm-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-tx/4.2.1.RELEASE/spring-tx-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-aspects/4.2.1.RELEASE/spring-aspects-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-zipkin/1.0.0.M1/spring-cloud-starter-zipkin-1.0.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-sleuth/1.0.0.M1/spring-cloud-starter-sleuth-1.0.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-sleuth-core/1.0.0.M1/spring-cloud-sleuth-core-1.0.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-sleuth-zipkin/1.0.0.M1/spring-cloud-sleuth-zipkin-1.0.0.M1.jar:/Users/jlong/.m2/repository/com/github/kristofa/brave-core/3.0.0-rc-1/brave-core-3.0.0-rc-1.jar:/Users/jlong/.m2/repository/org/apache/thrift/libthrift/0.9.0/libthrift-0.9.0.jar:/Users/jlong/.m2/repository/com/github/kristofa/brave-http/3.0.0-rc-1/brave-http-3.0.0-rc-1.jar:/Users/jlong/.m2/repository/com/github/kristofa/brave-core-spring/3.0.0-rc-1/brave-core-spring-3.0.0-rc-1.jar:/Users/jlong/.m2/repository/com/github/kristofa/brave-zipkin-spancollector/3.0.0-rc-1/brave-zipkin-spancollector-3.0.0-rc-1.jar:/Users/jlong/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-stream-redis/1.0.0.M1/spring-cloud-starter-stream-redis-1.0.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream-binder-redis/1.0.0.M1/spring-cloud-stream-binder-redis-1.0.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream-binder-spi/1.0.0.M1/spring-cloud-stream-binder-spi-1.0.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/retry/spring-retry/1.1.2.RELEASE/spring-retry-1.1.2.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream-codec/1.0.0.M1/spring-cloud-stream-codec-1.0.0.M1.jar:/Users/jlong/.m2/repository/com/esotericsoftware/kryo-shaded/3.0.3/kryo-shaded-3.0.3.jar:/Users/jlong/.m2/repository/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-redis/1.3.0.RC1/spring-boot-starter-redis-1.3.0.RC1.jar:/Users/jlong/.m2/repository/org/springframework/data/spring-data-redis/1.6.0.RELEASE/spring-data-redis-1.6.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/spring-context-support/4.2.1.RELEASE/spring-context-support-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/redis/clients/jedis/2.7.3/jedis-2.7.3.jar:/Users/jlong/.m2/repository/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-redis/4.2.0.RELEASE/spring-integration-redis-4.2.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-jmx/4.2.0.RELEASE/spring-integration-jmx-4.2.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-core/4.2.0.RELEASE/spring-integration-core-4.2.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter/1.1.0.M1/spring-cloud-starter-1.1.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-context/1.1.0.M1/spring-cloud-context-1.1.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/security/spring-security-crypto/4.0.2.RELEASE/spring-security-crypto-4.0.2.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-commons/1.1.0.M1/spring-cloud-commons-1.1.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream/1.0.0.M1/spring-cloud-stream-1.0.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/spring-messaging/4.2.1.RELEASE/spring-messaging-4.2.1.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-config/1.1.0.M1/spring-cloud-starter-config-1.1.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-config-client/1.1.0.M1/spring-cloud-config-client-1.1.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-eureka/1.1.0.M1/spring-cloud-starter-eureka-1.1.0.M1.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-netflix-core/1.1.0.M1/spring-cloud-netflix-core-1.1.0.M1.jar:/Users/jlong/.m2/repository/com/netflix/eureka/eureka-client/1.2.0/eureka-client-1.2.0.jar:/Users/jlong/.m2/repository/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar:/Users/jlong/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar:/Users/jlong/.m2/repository/com/netflix/netflix-commons/netflix-eventbus/0.1.2/netflix-eventbus-0.1.2.jar:/Users/jlong/.m2/repository/com/netflix/archaius/archaius-core/0.6.5/archaius-core-0.6.5.jar:/Users/jlong/.m2/repository/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar:/Users/jlong/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/Users/jlong/.m2/repository/com/netflix/servo/servo-core/0.9.4/servo-core-0.9.4.jar:/Users/jlong/.m2/repository/com/netflix/servo/servo-internal/0.9.4/servo-internal-0.9.4.jar:/Users/jlong/.m2/repository/com/sun/jersey/jersey-core/1.13/jersey-core-1.13.jar:/Users/jlong/.m2/repository/com/sun/jersey/jersey-client/1.13/jersey-client-1.13.jar:/Users/jlong/.m2/repository/com/sun/jersey/contribs/jersey-apache-client4/1.11/jersey-apache-client4-1.11.jar:/Users/jlong/.m2/repository/org/apache/httpcomponents/httpclient/4.5.1/httpclient-4.5.1.jar:/Users/jlong/.m2/repository/org/apache/httpcomponents/httpcore/4.4.3/httpcore-4.4.3.jar:/Users/jlong/.m2/repository/commons-codec/commons-codec/1.9/commons-codec-1.9.jar:/Users/jlong/.m2/repository/com/google/inject/guice/4.0/guice-4.0.jar:/Users/jlong/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/jlong/.m2/repository/com/netflix/governator/governator-annotations/1.7.5/governator-annotations-1.7.5.jar:/Users/jlong/.m2/repository/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.jar:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-ribbon/1.1.0.M1/spring-cloud-starter-ribbon-1.1.0.M1.jar:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon/2.1.0/ribbon-2.1.0.jar:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-transport/2.1.0/ribbon-transport-2.1.0.jar:/Users/jlong/.m2/repository/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar:/Users/jlong/.m2/repository/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar:/Users/jlong/.m2/repository/com/netflix/hystrix/hystrix-core/1.4.13/hystrix-core-1.4.13.jar:/Users/jlong/.m2/repository/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-core/2.1.0/ribbon-core-2.1.0.jar:/Users/jlong/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-httpclient/2.1.0/ribbon-httpclient-2.1.0.jar:/Users/jlong/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar:/Users/jlong/.m2/repository/com/netflix/netflix-commons/netflix-commons-util/0.1.1/netflix-commons-util-0.1.1.jar:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-loadbalancer/2.1.0/ribbon-loadbalancer-2.1.0.jar:/Users/jlong/.m2/repository/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar:/Users/jlong/.m2/repository/io/reactivex/rxjava/1.0.14/rxjava-1.0.14.jar:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-eureka/2.1.0/ribbon-eureka-2.1.0.jar:/Users/jlong/.m2/repository/com/netflix/eureka/eureka2-client-shaded/2.0.0-rc.2/eureka2-client-shaded-2.0.0-rc.2.jar:/Users/jlong/.m2/repository/io/netty/netty-codec-http/4.0.25.Final/netty-codec-http-4.0.25.Final.jar:/Users/jlong/.m2/repository/io/netty/netty-codec/4.0.25.Final/netty-codec-4.0.25.Final.jar:/Users/jlong/.m2/repository/io/netty/netty-handler/4.0.25.Final/netty-handler-4.0.25.Final.jar:/Users/jlong/.m2/repository/io/netty/netty-transport-native-epoll/4.0.25.Final/netty-transport-native-epoll-4.0.25.Final.jar:/Users/jlong/.m2/repository/io/netty/netty-common/4.0.25.Final/netty-common-4.0.25.Final.jar:/Users/jlong/.m2/repository/io/netty/netty-buffer/4.0.25.Final/netty-buffer-4.0.25.Final.jar:/Users/jlong/.m2/repository/io/netty/netty-transport/4.0.25.Final/netty-transport-4.0.25.Final.jar:/Users/jlong/.m2/repository/com/thoughtworks/xstream/xstream/1.4.2/xstream-1.4.2.jar:/Users/jlong/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar:/Users/jlong/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar:/Users/jlong/.m2/repository/org/springframework/data/spring-data-rest-hal-browser/2.4.0.RELEASE/spring-data-rest-hal-browser-2.4.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/data/spring-data-rest-webmvc/2.4.0.RELEASE/spring-data-rest-webmvc-2.4.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/data/spring-data-rest-core/2.4.0.RELEASE/spring-data-rest-core-2.4.0.RELEASE.jar:/Users/jlong/.m2/repository/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar:/Users/jlong/.m2/repository/org/atteo/evo-inflector/1.2.1/evo-inflector-1.2.1.jar:/Users/jlong/.m2/repository/com/github/fge/json-patch/1.7/json-patch-1.7.jar:/Users/jlong/.m2/repository/com/github/fge/jackson-coreutils/1.6/jackson-coreutils-1.6.jar:/Users/jlong/.m2/repository/com/github/fge/msg-simple/1.1/msg-simple-1.1.jar:/Users/jlong/.m2/repository/com/github/fge/btf/1.2/btf-1.2.jar:/Users/jlong/.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar:/Users/jlong/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.12/jcl-over-slf4j-1.7.12.jar:/Users/jlong/.m2/repository/com/h2database/h2/1.4.190/h2-1.4.190.jar:/Users/jlong/.m2/repository/org/objenesis/objenesis/2.1/objenesis-2.1.jar:/Users/jlong/.m2/repository/org/springframework/spring-core/4.2.2.RELEASE/spring-core-4.2.2.RELEASE.jar:/Applications/IntelliJ IDEA 14.app/Contents/lib/idea_rt.jar" com.example.ReservationServiceApplication --spring.output.ansi.enabled=always
Connected to the target VM, address: '127.0.0.1:59592', transport: 'socket'
2015-10-27 17:55:30.971  INFO 38026 --- [           main] c.example.ReservationServiceApplication  : Starting ReservationServiceApplication on jl with PID 38026 (/Users/jlong/Downloads/reservation-service/target/classes started by jlong in /Users/jlong/Downloads/reservation-service)
2015-10-27 17:55:30.975  INFO 38026 --- [           main] c.example.ReservationServiceApplication  : No profiles are active
2015-10-27 17:55:31.033  INFO 38026 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@7eecb5b8: startup date [Tue Oct 27 17:55:31 PDT 2015]; root of context hierarchy
2015-10-27 17:55:31.304  INFO 38026 --- [           main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2015-10-27 17:55:31.425  INFO 38026 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesBootstrapConfiguration' of type [class org.springframework.cloud.bootstrap.config.ConfigurationPropertiesBootstrapConfiguration$$EnhancerBySpringCGLIB$$e685efd4] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-10-27 17:55:31.588  INFO 38026 --- [           main] c.example.ReservationServiceApplication  : Started ReservationServiceApplication in 0.849 seconds (JVM running for 1.397)

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::            (v1.3.0.RC1)

2015-10-27 17:55:32.908  INFO 38026 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource [name='configService', propertySources=[MapPropertySource [name='https://github.com/joshlong/bootiful-microservices-config/reservation-service.properties'], MapPropertySource [name='https://github.com/joshlong/bootiful-microservices-config/application.properties']]]
2015-10-27 17:55:32.939  INFO 38026 --- [trace=,span=] [           main] c.example.ReservationServiceApplication  : No profiles are active
2015-10-27 17:55:32.961  INFO 38026 --- [trace=,span=] [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@30272916: startup date [Tue Oct 27 17:55:32 PDT 2015]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@7eecb5b8
2015-10-27 17:55:33.963  INFO 38026 --- [trace=,span=] [           main] o.s.b.f.config.PropertiesFactoryBean     : Loading properties file from URL [jar:file:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-core/4.2.0.RELEASE/spring-integration-core-4.2.0.RELEASE.jar!/META-INF/spring.integration.default.properties]
2015-10-27 17:55:33.966  INFO 38026 --- [trace=,span=] [           main] o.s.i.config.IntegrationRegistrar        : No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
2015-10-27 17:55:34.022  INFO 38026 --- [trace=,span=] [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
2015-10-27 17:55:34.177  INFO 38026 --- [trace=,span=] [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'managementServletContext' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.actuate.autoconfigure.EndpointWebMvcHypermediaManagementContextConfiguration; factoryMethodName=managementServletContext; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/actuate/autoconfigure/EndpointWebMvcHypermediaManagementContextConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration; factoryMethodName=managementServletContext; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/actuate/autoconfigure/EndpointWebMvcAutoConfiguration.class]]
2015-10-27 17:55:34.511  INFO 38026 --- [trace=,span=] [           main] faultConfiguringBeanFactoryPostProcessor : No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
2015-10-27 17:55:34.513  INFO 38026 --- [trace=,span=] [           main] faultConfiguringBeanFactoryPostProcessor : No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created.
2015-10-27 17:55:34.527  INFO 38026 --- [trace=,span=] [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=be5c2cc2-5739-3501-ae6a-c3d200ff4ad9
2015-10-27 17:55:34.537  INFO 38026 --- [trace=,span=] [           main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2015-10-27 17:55:34.597  INFO 38026 --- [trace=,span=] [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.sleuth.instrument.async.AsyncDefaultAutoConfiguration' of type [class org.springframework.cloud.sleuth.instrument.async.AsyncDefaultAutoConfiguration$$EnhancerBySpringCGLIB$$69908469] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-10-27 17:55:34.628  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:34.864  INFO 38026 --- [trace=,span=] [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$4543f02a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-10-27 17:55:34.901  INFO 38026 --- [trace=,span=] [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.stream.config.ChannelBindingServiceConfiguration$PostProcessorConfiguration' of type [class org.springframework.cloud.stream.config.ChannelBindingServiceConfiguration$PostProcessorConfiguration$$EnhancerBySpringCGLIB$$26966736] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-10-27 17:55:34.957  INFO 38026 --- [trace=,span=] [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.RefreshAutoConfiguration$ConfigurationPropertiesRebinderConfiguration' of type [class org.springframework.cloud.autoconfigure.RefreshAutoConfiguration$ConfigurationPropertiesRebinderConfiguration$$EnhancerBySpringCGLIB$$3646dd40] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-10-27 17:55:35.331  INFO 38026 --- [trace=,span=] [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8000 (http)
2015-10-27 17:55:35.526  INFO 38026 --- [trace=,span=] [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2015-10-27 17:55:35.527  INFO 38026 --- [trace=,span=] [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.0.28
2015-10-27 17:55:35.629  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2015-10-27 17:55:35.629  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2668 ms
2015-10-27 17:55:36.828  INFO 38026 --- [trace=,span=] [ost-startStop-1] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2015-10-27 17:55:36.836  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
2015-10-27 17:55:36.900  INFO 38026 --- [trace=,span=] [ost-startStop-1] org.hibernate.Version                    : HHH000412: Hibernate Core {4.3.11.Final}
2015-10-27 17:55:36.902  INFO 38026 --- [trace=,span=] [ost-startStop-1] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2015-10-27 17:55:36.903  INFO 38026 --- [trace=,span=] [ost-startStop-1] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2015-10-27 17:55:37.094  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
2015-10-27 17:55:37.181  INFO 38026 --- [trace=,span=] [ost-startStop-1] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2015-10-27 17:55:37.286  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.h.h.i.ast.ASTQueryTranslatorFactory    : HHH000397: Using ASTQueryTranslatorFactory
2015-10-27 17:55:37.547  INFO 38026 --- [trace=,span=] [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000227: Running hbm2ddl schema export
2015-10-27 17:55:37.556  INFO 38026 --- [trace=,span=] [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000230: Schema export complete
2015-10-27 17:55:37.899  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.f.config.PropertiesFactoryBean     : Loading properties file from class path resource [rest-default-messages.properties]
2015-10-27 17:55:38.355  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2015-10-27 17:55:38.360  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'metricFilter' to: [/*]
2015-10-27 17:55:38.360  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'characterEncodingFilter' to: [/*]
2015-10-27 17:55:38.360  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2015-10-27 17:55:38.360  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2015-10-27 17:55:38.361  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'requestContextFilter' to: [/*]
2015-10-27 17:55:38.361  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'webRequestLoggingFilter' to: [/*]
2015-10-27 17:55:38.361  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'traceFilter' to: [/*]
2015-10-27 17:55:38.361  INFO 38026 --- [trace=,span=] [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'applicationContextIdFilter' to: [/*]
2015-10-27 17:55:38.610  INFO 38026 --- [trace=,span=] [           main] o.s.c.n.eureka.InstanceInfoFactory       : Setting initial instance status as: STARTING
2015-10-27 17:55:38.667  WARN 38026 --- [trace=,span=] [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.
2015-10-27 17:55:38.667  INFO 38026 --- [trace=,span=] [           main] c.n.c.sources.URLConfigurationSource     : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2015-10-27 17:55:38.679  INFO 38026 --- [trace=,span=] [           main] c.netflix.config.DynamicPropertyFactory  : DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@42d7e8bc
2015-10-27 17:55:39.396  INFO 38026 --- [trace=,span=] [           main] o.s.b.f.config.PropertiesFactoryBean     : Loading properties file from URL [jar:file:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-core/4.2.0.RELEASE/spring-integration-core-4.2.0.RELEASE.jar!/META-INF/spring.integration.default.properties]
2015-10-27 17:55:39.552  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:39.553  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:39.566  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:39.567  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:39.786  INFO 38026 --- [trace=,span=] [           main] o.s.i.codec.kryo.CompositeKryoRegistrar  : configured Kryo registration [40, java.io.File] with serializer org.springframework.integration.codec.kryo.FileSerializer
2015-10-27 17:55:40.065  INFO 38026 --- [trace=,span=] [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService  'taskScheduler'
2015-10-27 17:55:40.611  INFO 38026 --- [trace=,span=] [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@30272916: startup date [Tue Oct 27 17:55:32 PDT 2015]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@7eecb5b8
2015-10-27 17:55:40.614  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.615  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.622  INFO 38026 --- [trace=,span=] [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Detected ResponseBodyAdvice bean in org.springframework.boot.actuate.autoconfigure.EndpointWebMvcHypermediaManagementContextConfiguration$MvcEndpointAdvice
2015-10-27 17:55:40.622  INFO 38026 --- [trace=,span=] [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Detected ResponseBodyAdvice bean in org.springframework.boot.actuate.autoconfigure.EndpointWebMvcHypermediaManagementContextConfiguration$ActuatorEndpointLinksAdvice
2015-10-27 17:55:40.705  INFO 38026 --- [trace=,span=] [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hi]}" onto java.lang.String com.example.GreetingsRestController.hi()
2015-10-27 17:55:40.706  INFO 38026 --- [trace=,span=] [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/message]}" onto java.lang.String com.example.MessageRestController.msg()
2015-10-27 17:55:40.708  INFO 38026 --- [trace=,span=] [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2015-10-27 17:55:40.708  INFO 38026 --- [trace=,span=] [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest)
2015-10-27 17:55:40.709  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.709  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.761  INFO 38026 --- [trace=,span=] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/actuator/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-10-27 17:55:40.761  INFO 38026 --- [trace=,span=] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/actuator/] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-10-27 17:55:40.761  INFO 38026 --- [trace=,span=] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/browser/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-10-27 17:55:40.761  INFO 38026 --- [trace=,span=] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-10-27 17:55:40.761  INFO 38026 --- [trace=,span=] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/docs/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-10-27 17:55:40.761  INFO 38026 --- [trace=,span=] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-10-27 17:55:40.778  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.778  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.782  INFO 38026 --- [trace=,span=] [           main] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in repositoryRestExceptionHandler
2015-10-27 17:55:40.782  INFO 38026 --- [trace=,span=] [           main] .m.m.a.ExceptionHandlerExceptionResolver : Detected ResponseBodyAdvice implementation in org.springframework.boot.actuate.autoconfigure.EndpointWebMvcHypermediaManagementContextConfiguration$MvcEndpointAdvice
2015-10-27 17:55:40.782  INFO 38026 --- [trace=,span=] [           main] .m.m.a.ExceptionHandlerExceptionResolver : Detected ResponseBodyAdvice implementation in org.springframework.boot.actuate.autoconfigure.EndpointWebMvcHypermediaManagementContextConfiguration$ActuatorEndpointLinksAdvice
2015-10-27 17:55:40.811  INFO 38026 --- [trace=,span=] [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-10-27 17:55:40.841  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.844  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.844  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.845  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.846  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.847  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.847  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.847  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.848  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.849  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.849  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.850  INFO 38026 --- [trace=,span=] [           main] o.s.core.annotation.AnnotationUtils      : Failed to introspect annotations on [class org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration$$EnhancerBySpringCGLIB$$2515259]: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
2015-10-27 17:55:40.857  WARN 38026 --- [trace=,span=] [           main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration': Initialization of bean failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
    at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:356)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:295)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1085)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1074)
    at com.example.ReservationServiceApplication.main(ReservationServiceApplication.java:49)
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
    at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
    at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
    at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
    at java.lang.Class.createAnnotationData(Class.java:3521)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.createAnnotationData(Class.java:3526)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.getAnnotation(Class.java:3415)
    at org.aspectj.internal.lang.reflect.AjTypeImpl.isAspect(AjTypeImpl.java:1135)
    at org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate.isAspect(Java15ReflectionBasedReferenceTypeDelegate.java:357)
    at org.aspectj.weaver.ReferenceType.isAspect(ReferenceType.java:300)
    at org.aspectj.weaver.patterns.KindedPointcut.fastMatch(KindedPointcut.java:107)
    at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.couldMatchJoinPointsInType(PointcutExpressionImpl.java:91)
    at org.springframework.aop.aspectj.AspectJExpressionPointcut.matches(AspectJExpressionPointcut.java:250)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:194)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:248)
    at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:280)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:118)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:88)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69)
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:330)
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:293)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:422)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
    ... 15 common frames omitted

2015-10-27 17:55:40.859  INFO 38026 --- [trace=,span=] [           main] o.s.s.c.ThreadPoolTaskScheduler          : Shutting down ExecutorService 'taskScheduler'
2015-10-27 17:55:40.876  INFO 38026 --- [trace=,span=] [           main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2015-10-27 17:55:40.876  INFO 38026 --- [trace=,span=] [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000227: Running hbm2ddl schema export
2015-10-27 17:55:40.881  INFO 38026 --- [trace=,span=] [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000230: Schema export complete
2015-10-27 17:55:40.885  INFO 38026 --- [trace=,span=] [           main] o.apache.catalina.core.StandardService   : Stopping service Tomcat
2015-10-27 17:55:40.893  INFO 38026 --- [trace=,span=] [           main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/ant-javafx.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/dt.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/javafx-mx.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/jconsole.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/packager.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/sa-jdi.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/tools.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/charsets.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/deploy.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/javaws.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jce.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfr.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfxswt.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jsse.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/management-agent.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/plugin.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/resources.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/rt.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/cldrdata.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/dnsns.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/jfxrt.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/localedata.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/nashorn.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunec.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar, file:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/zipfs.jar, file:/Users/jlong/Downloads/reservation-service/target/classes/, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-web/1.3.0.RC1/spring-boot-starter-web-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter/1.3.0.RC1/spring-boot-starter-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot/1.3.0.RC1/spring-boot-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.3.0.RC1/spring-boot-autoconfigure-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.3.0.RC1/spring-boot-starter-logging-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar, file:/Users/jlong/.m2/repository/ch/qos/logback/logback-core/1.1.3/logback-core-1.1.3.jar, file:/Users/jlong/.m2/repository/org/slf4j/jul-to-slf4j/1.7.12/jul-to-slf4j-1.7.12.jar, file:/Users/jlong/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.12/log4j-over-slf4j-1.7.12.jar, file:/Users/jlong/.m2/repository/org/yaml/snakeyaml/1.16/snakeyaml-1.16.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/1.3.0.RC1/spring-boot-starter-tomcat-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.0.28/tomcat-embed-core-8.0.28.jar, file:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.0.28/tomcat-embed-el-8.0.28.jar, file:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-logging-juli/8.0.28/tomcat-embed-logging-juli-8.0.28.jar, file:/Users/jlong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.0.28/tomcat-embed-websocket-8.0.28.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-validation/1.3.0.RC1/spring-boot-starter-validation-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/hibernate/hibernate-validator/5.2.2.Final/hibernate-validator-5.2.2.Final.jar, file:/Users/jlong/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar, file:/Users/jlong/.m2/repository/com/fasterxml/classmate/1.1.0/classmate-1.1.0.jar, file:/Users/jlong/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.6.1/jackson-databind-2.6.1.jar, file:/Users/jlong/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.6.1/jackson-annotations-2.6.1.jar, file:/Users/jlong/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.6.1/jackson-core-2.6.1.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-web/4.2.1.RELEASE/spring-web-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-aop/4.2.1.RELEASE/spring-aop-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-beans/4.2.1.RELEASE/spring-beans-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-context/4.2.1.RELEASE/spring-context-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-webmvc/4.2.1.RELEASE/spring-webmvc-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-expression/4.2.1.RELEASE/spring-expression-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/1.3.0.RC1/spring-boot-starter-actuator-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-actuator/1.3.0.RC1/spring-boot-actuator-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-actuator-docs/1.3.0.RC1/spring-boot-actuator-docs-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/hateoas/spring-hateoas/0.19.0.RELEASE/spring-hateoas-0.19.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/1.3.0.RC1/spring-boot-starter-data-jpa-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-aop/1.3.0.RC1/spring-boot-starter-aop-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/aspectj/aspectjweaver/1.8.7/aspectjweaver-1.8.7.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/1.3.0.RC1/spring-boot-starter-jdbc-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/apache/tomcat/tomcat-jdbc/8.0.28/tomcat-jdbc-8.0.28.jar, file:/Users/jlong/.m2/repository/org/apache/tomcat/tomcat-juli/8.0.28/tomcat-juli-8.0.28.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-jdbc/4.2.1.RELEASE/spring-jdbc-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/hibernate/hibernate-entitymanager/4.3.11.Final/hibernate-entitymanager-4.3.11.Final.jar, file:/Users/jlong/.m2/repository/org/jboss/logging/jboss-logging/3.3.0.Final/jboss-logging-3.3.0.Final.jar, file:/Users/jlong/.m2/repository/org/jboss/logging/jboss-logging-annotations/1.2.0.Beta1/jboss-logging-annotations-1.2.0.Beta1.jar, file:/Users/jlong/.m2/repository/org/hibernate/hibernate-core/4.3.11.Final/hibernate-core-4.3.11.Final.jar, file:/Users/jlong/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar, file:/Users/jlong/.m2/repository/org/jboss/jandex/1.1.0.Final/jandex-1.1.0.Final.jar, file:/Users/jlong/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar, file:/Users/jlong/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar, file:/Users/jlong/.m2/repository/org/hibernate/common/hibernate-commons-annotations/4.0.5.Final/hibernate-commons-annotations-4.0.5.Final.jar, file:/Users/jlong/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/1.0.0.Final/hibernate-jpa-2.1-api-1.0.0.Final.jar, file:/Users/jlong/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar, file:/Users/jlong/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar, file:/Users/jlong/.m2/repository/org/springframework/data/spring-data-jpa/1.9.0.RELEASE/spring-data-jpa-1.9.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/data/spring-data-commons/1.11.0.RELEASE/spring-data-commons-1.11.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-orm/4.2.1.RELEASE/spring-orm-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-tx/4.2.1.RELEASE/spring-tx-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-aspects/4.2.1.RELEASE/spring-aspects-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-zipkin/1.0.0.M1/spring-cloud-starter-zipkin-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-sleuth/1.0.0.M1/spring-cloud-starter-sleuth-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-sleuth-core/1.0.0.M1/spring-cloud-sleuth-core-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-sleuth-zipkin/1.0.0.M1/spring-cloud-sleuth-zipkin-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/com/github/kristofa/brave-core/3.0.0-rc-1/brave-core-3.0.0-rc-1.jar, file:/Users/jlong/.m2/repository/org/apache/thrift/libthrift/0.9.0/libthrift-0.9.0.jar, file:/Users/jlong/.m2/repository/com/github/kristofa/brave-http/3.0.0-rc-1/brave-http-3.0.0-rc-1.jar, file:/Users/jlong/.m2/repository/com/github/kristofa/brave-core-spring/3.0.0-rc-1/brave-core-spring-3.0.0-rc-1.jar, file:/Users/jlong/.m2/repository/com/github/kristofa/brave-zipkin-spancollector/3.0.0-rc-1/brave-zipkin-spancollector-3.0.0-rc-1.jar, file:/Users/jlong/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-stream-redis/1.0.0.M1/spring-cloud-starter-stream-redis-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream-binder-redis/1.0.0.M1/spring-cloud-stream-binder-redis-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream-binder-spi/1.0.0.M1/spring-cloud-stream-binder-spi-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/retry/spring-retry/1.1.2.RELEASE/spring-retry-1.1.2.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream-codec/1.0.0.M1/spring-cloud-stream-codec-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/com/esotericsoftware/kryo-shaded/3.0.3/kryo-shaded-3.0.3.jar, file:/Users/jlong/.m2/repository/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar, file:/Users/jlong/.m2/repository/org/springframework/boot/spring-boot-starter-redis/1.3.0.RC1/spring-boot-starter-redis-1.3.0.RC1.jar, file:/Users/jlong/.m2/repository/org/springframework/data/spring-data-redis/1.6.0.RELEASE/spring-data-redis-1.6.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-context-support/4.2.1.RELEASE/spring-context-support-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/redis/clients/jedis/2.7.3/jedis-2.7.3.jar, file:/Users/jlong/.m2/repository/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar, file:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-redis/4.2.0.RELEASE/spring-integration-redis-4.2.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-jmx/4.2.0.RELEASE/spring-integration-jmx-4.2.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/integration/spring-integration-core/4.2.0.RELEASE/spring-integration-core-4.2.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter/1.1.0.M1/spring-cloud-starter-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-context/1.1.0.M1/spring-cloud-context-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/security/spring-security-crypto/4.0.2.RELEASE/spring-security-crypto-4.0.2.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-commons/1.1.0.M1/spring-cloud-commons-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-stream/1.0.0.M1/spring-cloud-stream-1.0.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-messaging/4.2.1.RELEASE/spring-messaging-4.2.1.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-config/1.1.0.M1/spring-cloud-starter-config-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-config-client/1.1.0.M1/spring-cloud-config-client-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-eureka/1.1.0.M1/spring-cloud-starter-eureka-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-netflix-core/1.1.0.M1/spring-cloud-netflix-core-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/com/netflix/eureka/eureka-client/1.2.0/eureka-client-1.2.0.jar, file:/Users/jlong/.m2/repository/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar, file:/Users/jlong/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar, file:/Users/jlong/.m2/repository/com/netflix/netflix-commons/netflix-eventbus/0.1.2/netflix-eventbus-0.1.2.jar, file:/Users/jlong/.m2/repository/com/netflix/archaius/archaius-core/0.6.5/archaius-core-0.6.5.jar, file:/Users/jlong/.m2/repository/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar, file:/Users/jlong/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar, file:/Users/jlong/.m2/repository/com/netflix/servo/servo-core/0.9.4/servo-core-0.9.4.jar, file:/Users/jlong/.m2/repository/com/netflix/servo/servo-internal/0.9.4/servo-internal-0.9.4.jar, file:/Users/jlong/.m2/repository/com/sun/jersey/jersey-core/1.13/jersey-core-1.13.jar, file:/Users/jlong/.m2/repository/com/sun/jersey/jersey-client/1.13/jersey-client-1.13.jar, file:/Users/jlong/.m2/repository/com/sun/jersey/contribs/jersey-apache-client4/1.11/jersey-apache-client4-1.11.jar, file:/Users/jlong/.m2/repository/org/apache/httpcomponents/httpclient/4.5.1/httpclient-4.5.1.jar, file:/Users/jlong/.m2/repository/org/apache/httpcomponents/httpcore/4.4.3/httpcore-4.4.3.jar, file:/Users/jlong/.m2/repository/commons-codec/commons-codec/1.9/commons-codec-1.9.jar, file:/Users/jlong/.m2/repository/com/google/inject/guice/4.0/guice-4.0.jar, file:/Users/jlong/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar, file:/Users/jlong/.m2/repository/com/netflix/governator/governator-annotations/1.7.5/governator-annotations-1.7.5.jar, file:/Users/jlong/.m2/repository/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.jar, file:/Users/jlong/.m2/repository/org/springframework/cloud/spring-cloud-starter-ribbon/1.1.0.M1/spring-cloud-starter-ribbon-1.1.0.M1.jar, file:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon/2.1.0/ribbon-2.1.0.jar, file:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-transport/2.1.0/ribbon-transport-2.1.0.jar, file:/Users/jlong/.m2/repository/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar, file:/Users/jlong/.m2/repository/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar, file:/Users/jlong/.m2/repository/com/netflix/hystrix/hystrix-core/1.4.13/hystrix-core-1.4.13.jar, file:/Users/jlong/.m2/repository/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar, file:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-core/2.1.0/ribbon-core-2.1.0.jar, file:/Users/jlong/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar, file:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-httpclient/2.1.0/ribbon-httpclient-2.1.0.jar, file:/Users/jlong/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar, file:/Users/jlong/.m2/repository/com/netflix/netflix-commons/netflix-commons-util/0.1.1/netflix-commons-util-0.1.1.jar, file:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-loadbalancer/2.1.0/ribbon-loadbalancer-2.1.0.jar, file:/Users/jlong/.m2/repository/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar, file:/Users/jlong/.m2/repository/io/reactivex/rxjava/1.0.14/rxjava-1.0.14.jar, file:/Users/jlong/.m2/repository/com/netflix/ribbon/ribbon-eureka/2.1.0/ribbon-eureka-2.1.0.jar, file:/Users/jlong/.m2/repository/com/netflix/eureka/eureka2-client-shaded/2.0.0-rc.2/eureka2-client-shaded-2.0.0-rc.2.jar, file:/Users/jlong/.m2/repository/io/netty/netty-codec-http/4.0.25.Final/netty-codec-http-4.0.25.Final.jar, file:/Users/jlong/.m2/repository/io/netty/netty-codec/4.0.25.Final/netty-codec-4.0.25.Final.jar, file:/Users/jlong/.m2/repository/io/netty/netty-handler/4.0.25.Final/netty-handler-4.0.25.Final.jar, file:/Users/jlong/.m2/repository/io/netty/netty-transport-native-epoll/4.0.25.Final/netty-transport-native-epoll-4.0.25.Final.jar, file:/Users/jlong/.m2/repository/io/netty/netty-common/4.0.25.Final/netty-common-4.0.25.Final.jar, file:/Users/jlong/.m2/repository/io/netty/netty-buffer/4.0.25.Final/netty-buffer-4.0.25.Final.jar, file:/Users/jlong/.m2/repository/io/netty/netty-transport/4.0.25.Final/netty-transport-4.0.25.Final.jar, file:/Users/jlong/.m2/repository/com/thoughtworks/xstream/xstream/1.4.2/xstream-1.4.2.jar, file:/Users/jlong/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar, file:/Users/jlong/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar, file:/Users/jlong/.m2/repository/org/springframework/data/spring-data-rest-hal-browser/2.4.0.RELEASE/spring-data-rest-hal-browser-2.4.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/data/spring-data-rest-webmvc/2.4.0.RELEASE/spring-data-rest-webmvc-2.4.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/data/spring-data-rest-core/2.4.0.RELEASE/spring-data-rest-core-2.4.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar, file:/Users/jlong/.m2/repository/org/atteo/evo-inflector/1.2.1/evo-inflector-1.2.1.jar, file:/Users/jlong/.m2/repository/com/github/fge/json-patch/1.7/json-patch-1.7.jar, file:/Users/jlong/.m2/repository/com/github/fge/jackson-coreutils/1.6/jackson-coreutils-1.6.jar, file:/Users/jlong/.m2/repository/com/github/fge/msg-simple/1.1/msg-simple-1.1.jar, file:/Users/jlong/.m2/repository/com/github/fge/btf/1.2/btf-1.2.jar, file:/Users/jlong/.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar, file:/Users/jlong/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.12/jcl-over-slf4j-1.7.12.jar, file:/Users/jlong/.m2/repository/com/h2database/h2/1.4.190/h2-1.4.190.jar, file:/Users/jlong/.m2/repository/org/objenesis/objenesis/2.1/objenesis-2.1.jar, file:/Users/jlong/.m2/repository/org/springframework/spring-core/4.2.2.RELEASE/spring-core-4.2.2.RELEASE.jar, file:/Applications/IntelliJ%20IDEA%2014.app/Contents/lib/idea_rt.jar]
2015-10-27 17:55:40.893 ERROR 38026 --- [trace=,span=] [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration': Initialization of bean failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
    at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:356)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:295)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1085)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1074)
    at com.example.ReservationServiceApplication.main(ReservationServiceApplication.java:49)
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
    at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
    at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
    at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
    at java.lang.Class.createAnnotationData(Class.java:3521)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.createAnnotationData(Class.java:3526)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.getAnnotation(Class.java:3415)
    at org.aspectj.internal.lang.reflect.AjTypeImpl.isAspect(AjTypeImpl.java:1135)
    at org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate.isAspect(Java15ReflectionBasedReferenceTypeDelegate.java:357)
    at org.aspectj.weaver.ReferenceType.isAspect(ReferenceType.java:300)
    at org.aspectj.weaver.patterns.KindedPointcut.fastMatch(KindedPointcut.java:107)
    at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.couldMatchJoinPointsInType(PointcutExpressionImpl.java:91)
    at org.springframework.aop.aspectj.AspectJExpressionPointcut.matches(AspectJExpressionPointcut.java:250)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:194)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:248)
    at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:280)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:118)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:88)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69)
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:330)
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:293)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:422)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
    ... 15 common frames omitted

2015-10-27 17:55:40.895  INFO 38026 --- [trace=,span=] [       Thread-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@7eecb5b8: startup date [Tue Oct 27 17:55:31 PDT 2015]; root of context hierarchy
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cloud.stream.binder.redis.config.RedisServiceAutoConfiguration': Initialization of bean failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
    at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:356)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:295)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1085)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1074)
    at com.example.ReservationServiceApplication.main(ReservationServiceApplication.java:49)
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
    at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
    at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
    at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
    at java.lang.Class.createAnnotationData(Class.java:3521)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.createAnnotationData(Class.java:3526)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.getAnnotation(Class.java:3415)
    at org.aspectj.internal.lang.reflect.AjTypeImpl.isAspect(AjTypeImpl.java:1135)
    at org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate.isAspect(Java15ReflectionBasedReferenceTypeDelegate.java:357)
    at org.aspectj.weaver.ReferenceType.isAspect(ReferenceType.java:300)
    at org.aspectj.weaver.patterns.KindedPointcut.fastMatch(KindedPointcut.java:107)
    at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.couldMatchJoinPointsInType(PointcutExpressionImpl.java:91)
    at org.springframework.aop.aspectj.AspectJExpressionPointcut.matches(AspectJExpressionPointcut.java:250)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:194)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:248)
    at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:280)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:118)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:88)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69)
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:330)
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:293)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:422)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
    ... 15 more
Disconnected from the target VM, address: '127.0.0.1:59592', transport: 'socket'

Process finished with exit code 1

Errors when Kafka messages are waiting and SI DSL is used

If I set up an app that uses @EnableBinding(Sink.class) and inject that Sink into a @Bean method, then use IntegrationFlows.from to create a flow from the .input(), I immediately get error messages saying there are no subscribers. It seems that it's trying to deliver the messages from Kafka that are currently being published before all the appropriate consumers have been attached.

If I call Sink.input().subscribe() and pass my own MessageHandler, I don't see any errors. It seems like it's only when I use spring-cloud-stream in combination with the Java DSL that it creates problems.

Eager instantiation cascade caused by BinderAwareRouterBeanPostProcessor

It's really bad to have the BinderAwareRouterBeanPostProcessor depend directly on the Binder because the Binder might need "heavyweight" infrastructure (i.e. Redis, Rabbit, Kafka etc.) that is very sensitive to bean instantiation order. If it is needed in a BeanPostProcessor it forces Spring to instantiate the whole universe before it is needed, and things get missed out from other BPPs (e.g. proxy creation), leading to general havoc.

Dependency resolution support for modules with different versions

As a s-c-s developer, I'd like to add support for dependency resolution, so when two or more modules use different version of jars (ex: direct binding of two modules that include different versions of spring data), I have the capability to resolve and include the right bits at runtime.

Acceptance Criteria:

  • Best practices to include binding library is documented

Question: How to do Unit Testing on Sources and Sinks?

What would be the current best practice for unit testing apps that rely on cloud stream rabbit? Is there an easy way to disable all the cloud stream autoconfig, rabbit autoconfig, etc and mock the Sources/Sinks?

Changing the dependencies in test or depending on a local Rabbit server for unit testing doesn't seem like the best idea.

Add support to load Hadoop distribution of choice

As a s-c-s user, I'd like to have the option to choose Hadoop distribution of choice, so I can load the right Hadoop libraries in the CP.

Acceptance Criteria:

  • --hadoopDistro is an available option to bootstrap admin with right Hadoop distribution libraries (will likely be --include hadoop-phd30 when defining module)
  • create BOMs for the major distributions we want to support
  • Integration tests to simulate successful load

Create BinderFactory abstraction

As a developer, I want to have a BinderFactory abstraction, so that I can support multiple binder types in the future.

Acceptance Criteria:

  • Default binder support would be redis
  • Upon deployment with default binder type uses locally running redis instance for message transmission
  • Interface can be unit tested with different mock implementations

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.