Spring Cloud Stream App Starters Reference Guide

Authors

Sabby Anandan, Artem Bilan, Marius Bogoevici, Eric Bottard, Mark Fisher, Ilayaperumal Gopinathan, Gunnar Hillert, Mark Pollack, Patrick Peralta, Glenn Renfro, Gary Russell, Thomas Risberg, David Turanski, Janne Valkealahti, Soby Chacko, Christian Tzolov

Einstein.SR9

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

I. Reference Guide
1. Introduction
1.1. Pre-built applications
1.2. Classification
1.3. Using the Artifacts
1.3.1. Maven and Docker access
1.3.2. Building the Artifacts
1.4. Custom Artifacts
1.4.1. Using a different binder
1.4.2. New Applications
Generic Applications
Customize Starter Applications
1.5. Patching Pre-built Applications
1.6. Creating New Stream Application Starters and Generating Artifacts
1.7. General FAQ on Spring Cloud Stream App Starters
II. Starters
2. Sources
2.1. File Source
2.1.1. Input
2.1.2. Output
mode = contents
mode = lines
mode = ref
2.1.3. Options
2.1.4. Build
2.1.5. Examples
2.2. FTP Source
2.2.1. Input
2.2.2. Output
mode = contents
mode = lines
mode = ref
2.2.3. Options
2.2.4. Build
2.2.5. Examples
2.3. Gemfire Source
2.3.1. Input
2.3.2. Output
Headers
Payload
2.3.3. Options
2.3.4. Build
2.3.5. Examples
2.4. Gemfire-CQ Source
2.4.1. Input
2.4.2. Output
Headers
Payload
2.4.3. Options
2.4.4. Build
2.4.5. Examples
2.5. Http Source
2.5.1. Input
2.5.2. Output
Headers:
Payload:
2.5.3. Options
2.5.4. Build
2.5.5. Examples
2.6. JDBC Source
2.6.1. Input
2.6.2. Output
Headers
Payload
2.6.3. Options
2.6.4. Build
2.6.5. Examples
2.7. JMS Source
2.7.1. Input
2.7.2. Output
Headers
Payload
Headers
Payload
Headers
Payload
Headers
Payload
2.7.3. Options
2.7.4. Build
2.7.5. Examples
2.8. Load Generator Source
2.8.1. Input
2.8.2. Output
Headers:
Payload:
2.8.3. Options
2.8.4. Build
2.8.5. Examples
2.9. Loggregator Source
2.9.1. Input
2.9.2. Output
Headers:
Payload:
2.9.3. Options
2.9.4. Build
2.9.5. Examples
2.10. Mail Source
2.10.1. Input
2.10.2. Output
Headers
Payload
2.10.3. Options
2.10.4. Build
2.10.5. Examples
2.11. MongoDB Source
2.11.1. Input
2.11.2. Output
Headers:
Payload:
2.11.3. Options
2.11.4. Build
2.11.5. Examples
2.12. MQTT Source
2.12.1. Input
2.12.2. Output
Headers:
Payload:
2.12.3. Options
2.12.4. Build
2.12.5. Examples
2.13. RabbitMQ Source
2.13.1. Input
2.13.2. Output
Headers
Payload
Headers
Payload
Headers
Payload
2.13.3. Options
A Note About Retry
2.13.4. Build
2.13.5. Examples
2.14. Amazon S3 Source
2.14.1. Input
2.14.2. Output
mode = contents
mode = lines
mode = ref
2.14.3. Options
2.14.4. Amazon AWS common options
2.14.5. Build
2.14.6. Examples
2.15. SFTP Source
2.15.1. Multiple SFTP Servers
2.15.2. Input
2.15.3. Output
mode = contents
mode = lines
mode = ref
task-launcher-output = true
2.15.4. Options
2.15.5. Build
2.15.6. Examples
2.16. SFTP Data Flow Source
2.16.1. Multiple SFTP Servers
Multi-source task names
2.16.2. Input
2.16.3. Output
Headers:
Payload:
2.16.4. Options
2.16.5. Build
2.16.6. Examples
2.17. SYSLOG Source
2.17.1. Input
2.17.2. Output
Headers
Payload
2.17.3. Options
2.17.4. Build
2.17.5. Examples
2.18. TCP
2.18.1. Input
2.18.2. Output
Headers:
Payload:
2.18.3. Options
2.18.4. Available Decoders
2.18.5. Build
2.18.6. Examples
2.19. TCP Client as a Source which connects to a TCP server and receives data
2.19.1. Input
2.19.2. Output
Headers:
Payload:
2.19.3. Options
2.19.4. Build
2.19.5. Examples
2.20. Time Source
2.20.1. Input
2.20.2. Output
Headers:
Payload:
2.20.3. Options
2.20.4. Build
2.20.5. Examples
2.21. Trigger Source
2.21.1. Input
2.21.2. Output
Headers:
Payload:
2.21.3. Options
2.21.4. Build
2.21.5. Examples
2.22. Twitter Stream Source
2.22.1. Input
2.22.2. Output
Headers
Payload
2.22.3. Options
2.22.4. Build
2.22.5. Examples
2.23. CDC Source
2.23.1. Options
MySQL
PostgreSQL
MongoDB
SQL Server
Oracle
3. Processors
3.1. Aggregator Processor
3.1.1. Input
Headers
Payload
3.1.2. Output
Headers
Payload
3.1.3. Options
3.1.4. Build
3.1.5. Examples
3.1.6. Code of Conduct
3.2. Bridge Processor
3.2.1. Input
Headers
Payload
3.2.2. Output
Headers
Payload
3.2.3. Options
3.2.4. Build
3.2.5. Examples
3.3. Counter Processor
3.3.1. Options
3.4. Filter Processor
3.4.1. Input
Headers
Payload
3.4.2. Output
Headers
Payload
3.4.3. Options
3.4.4. Build
3.4.5. Examples
3.5. Groovy Filter Processor
3.5.1. Input
Headers
Payload
3.5.2. Output
Headers
Payload
3.5.3. Options
3.5.4. Build
3.5.5. Examples
3.6. Groovy Transform Processor
3.6.1. Input
Headers
Payload
3.6.2. Output
Headers
Payload
3.6.3. Options
3.6.4. Build
3.6.5. Examples
3.7. gRPC Processor
3.7.1. Input
Headers
Payload
3.7.2. Output
Headers
Payload
3.7.3. Options
3.8. Header Enricher Processor
3.8.1. Input
Headers
Payload
3.8.2. Output
Headers
Payload
3.8.3. Options
3.8.4. Build
3.8.5. Examples
3.8.6. Code of Conduct
3.9. Http Client Processor
3.9.1. Input
Headers
Payload
3.9.2. Output
Headers
Payload
3.9.3. Options
3.9.4. Build
3.9.5. Examples
3.10. PMML Processor
3.10.1. Input
Headers
Payload
3.10.2. Output
Headers
Payload
3.10.3. Options
3.10.4. Build
3.10.5. Examples
3.11. Python Http Processor
3.11.1. Input
Headers
Payload
3.11.2. Output
Headers
Payload
3.11.3. Options
3.11.4. Build
3.11.5. Examples
3.12. Jython Processor
3.12.1. Input
Headers
Payload
3.12.2. Output
Headers
Payload
3.12.3. Options
3.12.4. Build
3.12.5. Examples
3.13. Scripable Transform Processor
3.13.1. Input
Headers
Payload
3.13.2. Output
Headers
Payload
3.13.3. Options
3.13.4. Build
3.13.5. Examples
3.14. Splitter Processor
3.14.1. Input
Headers
Payload
3.14.2. Output
Headers
Payload
3.14.3. Options
3.14.4. JSON Example
3.14.5. Build
3.14.6. Examples
3.15. TCP Client as a processor which connects to a TCP server, sends data to it and also receives data.
3.15.1. Input
Headers:
Payload:
Headers:
Payload:
3.15.2. Output
Headers:
Payload:
3.15.3. Options
3.15.4. Build
3.15.5. Examples
3.16. Transform Processor
3.16.1. Input
Headers
Payload
3.16.2. Output
Headers
Payload
3.16.3. Options
3.16.4. Build
3.16.5. Examples
3.17. TensorFlow Processor
3.17.1. Input
Headers
Payload
3.17.2. Output
Headers
Payload
3.17.3. Options
3.17.4. Build
3.17.5. Examples
3.18. Twitter Sentiment Analysis Processor
3.18.1. Input
Headers
Payload
3.18.2. Output
Headers
Payload
Payload
3.18.3. Options
3.18.4. Build
3.18.5. Examples
3.19. Image Recognition Processor
3.19.1. Options
3.20. Object Detection Processor
3.20.1. Options
3.21. Pose Estimation Processor
3.21.1. Options
4. Sinks
4.1. Cassandra Sink
4.1.1. Input
4.1.2. Output
4.1.3. Options
4.1.4. Build
4.1.5. Examples
4.2. Counter Sink
4.2.1. Options
4.3. File Sink
4.3.1. Input
Headers
Payload
4.3.2. Output
4.3.3. Options
4.3.4. Build
Examples
4.4. FTP Sink
4.4.1. Input
Headers
Payload
4.4.2. Output
4.4.3. Options
4.4.4. Build
Examples
4.5. Gemfire Sink
4.5.1. Input
Headers
Payload
Headers
Payload
4.5.2. Output
4.5.3. Options
4.5.4. Build
4.5.5. Examples
4.6. Gpfdist Sink
4.6.1. Input
Headers:
Payload:
4.6.2. Output
4.6.3. Options
4.6.4. Implementation Notes
4.6.5. Detailed Option Descriptions
4.6.6. How Data Is Sent Into Segments
4.6.7. Example Usage
4.6.8. Tuning Transfer Rate
4.6.9. Build
4.6.10. Examples
4.7. HDFS Sink
4.7.1. Input
Headers
Payload
4.7.2. Output
4.7.3. Options
4.7.4. Build
4.7.5. Examples
4.8. Jdbc Sink
4.8.1. Input
Headers
Payload
4.8.2. Output
4.8.3. Options
4.8.4. Build
4.8.5. Examples
4.9. Log Sink
4.9.1. Input
Headers
Payload
4.9.2. Output
4.9.3. Options
4.9.4. Build
4.9.5. Examples
4.10. RabbitMQ Sink
4.10.1. Input
Headers
Payload
4.10.2. Output
4.10.3. Options
4.10.4. Build
4.10.5. Examples
4.11. MongoDB Sink
4.11.1. Input
Headers
Payload
4.11.2. Output
4.11.3. Options
4.11.4. Build
4.11.5. Examples
4.12. MQTT Sink
4.12.1. Input
Headers:
Payload:
4.12.2. Output
4.12.3. Options
4.12.4. Build
4.12.5. Examples
4.13. Pgcopy Sink
4.13.1. Input
Headers
Payload
4.13.2. Output
4.13.3. Options
4.13.4. Build
4.13.5. Examples
4.14. Redis Sink
4.14.1. Input
Headers
Payload
Headers
Payload
4.14.2. Output
4.14.3. Options
4.14.4. Build
4.14.5. Examples
4.15. Router Sink
4.15.1. Input
Headers
Payload
4.15.2. Output
4.15.3. Options
4.15.4. Options
4.15.5. SpEL-based Routing
4.15.6. Groovy-based Routing
4.15.7. Build
4.15.8. Examples
4.16. Amazon S3 Sink
4.16.1. Input
Headers
Payload
4.16.2. Output
4.16.3. Options
4.16.4. Amazon AWS common options
4.16.5. Build
Examples
4.17. SFTP Sink
4.17.1. Input
Headers
Payload
4.17.2. Output
4.17.3. Options
4.17.4. Build
Examples
4.18. TCP Sink
4.18.1. Input
Headers:
Payload:
Headers:
Payload:
4.18.2. Output
4.18.3. Options
4.18.4. Available Encoders
4.18.5. Build
4.18.6. Examples
4.19. Throughput Sink
4.19.1. Input
Headers
Payload
4.19.2. Output
4.19.3. Options
4.19.4. Build
4.19.5. Examples
4.20. Websocket Sink
4.20.1. Input
Headers
Payload
4.20.2. Output
4.20.3. Options
4.20.4. Build
4.20.5. Examples
Step 1: Start Rabbitmq
Step 2: Deploy a time-source
Step 3: Deploy a websocket-sink (the app that contains this starter jar)
4.20.6. Actuators
4.21. TaskLauncher Data Flow Sink
4.21.1. Input
Headers:
Payload:
4.21.2. Output
Options
4.21.3. Using the TaskLauncher
Client Authentication
4.21.4. Build
Examples
III. Appendices
A. Building
A.1. Basic Compile and Test
A.2. Documentation
A.3. Working with the code
A.3.1. Importing into eclipse with m2eclipse
A.3.2. Importing into eclipse without m2eclipse
B. App Starter POM Dependencies
C. App Starter Naming Conventions
5. Contributing
5.1. Sign the Contributor License Agreement
5.2. Code Conventions and Housekeeping