anchor.diff:        outputChannelName: ${spring.application.name:ticker}
   ----
   
  -To be deployable as an XD module in a "traditional" way you need `/config/*.properties` to point to any available Java config classes (via `base_packages` or `options_class`), or else you can put traditional XML configuration in `/config/*.xml`. You don't need those things to run as a consumer or producer to an existing XD system, but you do need to replace the `outputChannelName` with `group`, `module` and `index` (the index is a sequential counter that XD uses to label the modules in a stream from left to right). There's an XML version of the same sample (a "timer" source).
  -
   == Multiple Input or Output Channels
   
   A module can have multiple input or output channels. Instead of just one channel named "input" or "output" you can add multiple `MessageChannel` beans named `input.*` or `output.*` and the names are converted to external channel names on the broker. The external channel names are the `spring.cloud.streams.[input|output]ChannelName` plus the `MessageChannel` bean name, period separated. In addition, the bean name can be `input.[queue|topic|tap]:*` or `output.[queue|topic]:*` (i.e. with a channel type as a colon-separated prefix), and the semantics of the external bus channel changes accordingly (a tap is like a topic). For example, you can have two `MessageChannels` called "output" and "output.topic:foo" in a module with `outputChannelName=bar`, and the result is 2 external channels called "bar" and "topic:foo.bar".
  
positive.code: 
  There are several samples, all running on the redis transport (so you need redis running locally to test them).
  
  === Vanilla Module Samples
  
  NOTE: The main set of samples are "vanilla" in the sense that they are not deployable as XD modules by the current generation (1.x) of XD. You can still interact with an XD system using the appropriate naming convention for input and output channel names (`<stream>.<index>` format).
  
  
negative.code: This project allows a user to develop and run messaging microservices using Spring Integration and run them locally, or in the cloud, or even on Spring XD. Just create `MessageChannels` "input" and/or "output" and add `@EnableModule` and run your app as a Spring Boot app (single application context). You just need to connect to the physical broker for the bus, which is automatic if the relevant bus implementation is available on the classpath. The sample uses Redis.
  
  Here's a sample source module (output channel only):
  
  [source,java]
  ----
  @SpringBootApplication
  @EnableModule
  @ComponentScan(basePackageClasses=ModuleDefinition.class)
  public class ModuleApplication {
  
  