From 23d8ff4da51ccd117f80e65870b915ec56927994 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Fri, 10 Jul 2015 10:28:31 +0100 Subject: [PATCH] Add project specific content --- _config.yml | 14 +++--- _includes/build.gradle | 19 ++++++++ _includes/pom.xml | 25 +++++++++++ img/project-icon-large.png | Bin 0 -> 7597 bytes index.html | 90 +++++++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+), 7 deletions(-) create mode 100644 _includes/build.gradle create mode 100644 _includes/pom.xml create mode 100644 img/project-icon-large.png create mode 100644 index.html diff --git a/_config.yml b/_config.yml index ddc41fb5d..1e27c6bc8 100644 --- a/_config.yml +++ b/_config.yml @@ -10,24 +10,24 @@ redcarpet: ### The following properties will change on a project-by-project basis # Context path in the remote website (usually /), will be prepended to absolute URLs for static resources -baseurl: /gh-pages +baseurl: /spring-cloud-streams # Name of the project for display in places like page titles -name: Spring Framework +name: Spring Cloud Streams # ID of the project in the metadata API at spring.io (if this is not a # valid project ID the javascript widgets in the home page will not work) -project: spring-framework +project: spring-cloud-streams # Project github URL -github_repo_url: http://github.com/spring-projects/spring-framework +github_repo_url: http://github.com/spring-cloud/spring-cloud-streams # Project forum URL -forum: http://forum.spring.io/forum/spring-projects/container +forum: http://stackoverflow.com/questions/tagged/spring-cloud # If you want to include a custom pom.xml or gradle template set these value to true and add _include files -custom_pom_template: false -custom_gradle_template: false +custom_pom_template: true +custom_gradle_template: true ### The following properties are constant for most projects diff --git a/_includes/build.gradle b/_includes/build.gradle new file mode 100644 index 000000000..549c268b3 --- /dev/null +++ b/_includes/build.gradle @@ -0,0 +1,19 @@ +buildscript { + dependencies { + classpath "io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE" + } +} + +apply plugin: "io.spring.dependency-management" + +dependencyManagement { + imports { + mavenBom '{@= groupId @}:spring-cloud-streams-parent:{@= version @}' + } +} + +dependencies { + compile '{@= groupId @}:spring-cloud-streams' + compile 'org.springframework.boot:spring-boot-starter-redis' + compile 'org.springframework.xd:spring-xd-messagebus-redis' +} \ No newline at end of file diff --git a/_includes/pom.xml b/_includes/pom.xml new file mode 100644 index 000000000..b39ffb8c8 --- /dev/null +++ b/_includes/pom.xml @@ -0,0 +1,25 @@ + + + + {@= groupId @} + spring-cloud-streams-parent + {@= version @} + pom + import + + + + + + {@= groupId @} + {@= artifactId @} + + + org.springframework.xd + spring-xd-messagebus-redis + + + org.springframework.boot + spring-boot-starter-redis + + diff --git a/img/project-icon-large.png b/img/project-icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..ec935d11836264479eed3a804dffa84545555fed GIT binary patch literal 7597 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 NRFyOp%jGSC{s+v>sfPdn literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 000000000..3ff2add7a --- /dev/null +++ b/index.html @@ -0,0 +1,90 @@ +--- +# The name of your project +title: Spring Cloud Streams + +badges: + + # Customize your project's badges. Delete any entries that do not apply. + custom: + - name: Source (GitHub) + url: https://github.com/spring-cloud/spring-cloud-streams + icon: github + + - name: StackOverflow + url: http://stackoverflow.com/questions/tagged/spring-cloud + icon: stackoverflow + +--- + + + + +{% capture parent_link %} +[Spring Cloud]({{ site.projects_site_url }}/spring-cloud) +{% endcapture %} + + +{% capture billboard_description %} + +Spring Cloud Streams 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 `@EnableChannelBinding` 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. + +{% endcapture %} + +{% capture main_content %} + + +## Quick Start + +{% include download_widget.md %} + +As long as Spring Cloud Streams and a Spring XD Message Bus is on the +classpath any Spring Boot application with `@EnableChannelBinding` will bind to an external broker provided by the bus (e.g. redis, rabbit, kafka, depending on the implementation you choose). Sample application: + +```java +@SpringBootApplication +@EnableChannelBinding +@ComponentScan(basePackageClasses=ModuleDefinition.class) +public class ModuleApplication { + + public static void main(String[] args) throws InterruptedException { + SpringApplication.run(ModuleApplication.class, args); + } + +} + +@Configuration +public class ModuleDefinition { + + @Value("${format}") + private String format; + + @Bean + public MessageChannel output() { + return new DirectChannel(); + } + + @Bean + @InboundChannelAdapter(value = "output", autoStartup = "false", poller = @Poller(fixedDelay = "${fixedDelay}", maxMessagesPerPoll = "1")) + public MessageSource timerMessageSource() { + return () -> new GenericMessage<>(new SimpleDateFormat(format).format(new Date())); + } + +} +``` + +{% endcapture %} + +{% capture related_resources %} + +### Sample Projects + +* [Source](https://github.com/spring-cloud/spring-cloud-streams/tree/master/spring-cloud-streams-samples/source) +* [Sink](https://github.com/spring-cloud/spring-cloud-streams/tree/master/spring-cloud-streams-samples/sink) +* [Transformer](https://github.com/spring-cloud/spring-cloud-streams/tree/master/spring-cloud-streams-samples/transformer) +* [Mashup](https://github.com/spring-cloud/spring-cloud-streams/tree/master/spring-cloud-streams-samples/extended) + +{% endcapture %} + + +{% include project_page.html %} +