diff --git a/_config.yml b/_config.yml index 4fa66a78b..65d7d2be9 100644 --- a/_config.yml +++ b/_config.yml @@ -16,20 +16,20 @@ gems: ### 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-function # Name of the project for display in places like page titles -name: Spring Framework +name: Spring Cloud Function # 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-function # Project github URL -github_repo_url: http://github.com/spring-projects/spring-framework +github_repo_url: https://github.com/spring-cloud/spring-cloud-function # Project forum URL -forum: http://forum.spring.io/forum/spring-projects/container +forum: https://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 diff --git a/index.html b/index.html new file mode 100644 index 000000000..7727667e8 --- /dev/null +++ b/index.html @@ -0,0 +1,92 @@ +--- +# The name of your project +title: Spring Cloud Function + +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-function + 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 Function is a project with the following high-level goals: + +* Promote the implementation of business logic via functions. +* Decouple the development lifecycle of business logic from any specific runtime target so that the same code can run as a web endpoint, a stream processor, or a task. +* Support a uniform programming model across serverless providers, as well as the ability to run standalone (locally or in a PaaS). +* Enable Spring Boot features (auto-configuration, dependency injection, metrics) on serverless providers. + +It abstracts away all of the transport details and infrastructure, allowing the developer to keep all the familiar tools and processes, and focus firmly on business logic. + +{% endcapture %} + +{% capture main_content %} + +## Features + +Spring Cloud Function features: + +1. Wrappers for `@Beans` of type `Function`, `Consumer` and +`Supplier`, exposing them to the outside world as either HTTP +endpoints and/or message stream listeners/publishers with RabbitMQ, Kafka etc. + +2. Compiling strings which are Java function bodies into bytecode, and +then turning them into `@Beans` that can be wrapped as above. + +3. Deploying a JAR file containing such an application context with an +isolated classloader, so that you can pack them together in a single +JVM. + +4. Adapters for https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-adapters/spring-cloud-function-adapter-aws[AWS Lambda], https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-adapters/spring-cloud-function-adapter-openwhisk[Apache OpenWhisk] and possibly other "serverless" service providers. + + +Here's a complete, executable, testable Spring Boot application (implementing a simple string manipulation): + +```java +@SpringBootApplication +public class Application { + + @Bean + public Function, Flux> uppercase() { + return flux -> flux.map(value -> value.toUpperCase()); + } + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} +``` + +{% endcapture %} + + +{% capture related_resources %} + +### Sample Projects + +* [Vanilla](https://github.com/spring-cloud/spring-cloud-function/blob/master/spring-cloud-function-samples/spring-cloud-function-sample) +* [Plain Old Function](https://github.com/spring-cloud/spring-cloud-function/blob/master/spring-cloud-function-samples/spring-cloud-function-sample-pof) +* [AWS Lambda](https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-adapters/spring-cloud-function-adapter-samples/spring-cloud-function-adapter-sample) +* [Openwhisk](https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-adapters/spring-cloud-function-adapter-openwhisk) + +{% endcapture %} + +{% include project_page.html %} +