Commit Graph

176 Commits

Author SHA1 Message Date
Oleg Zhurakousky
ee13ef4e09 Fixed docs home page
fixed some formatting issues
2019-03-19 08:44:01 +01:00
Oleg Zhurakousky
87a878879c GH-293 Enhanced endpoint mapping support for functional form context configuration
- Enhanced HTTP endpoint mapping support for 'functional form' context configuration ensuring it can register multiple endpoint to maintain the same behaviour as with regular application context
- Additional consolidation around Function Catalog
- Added identical test for functional and non-functional form endpoint configuration.

Resolves #293
2019-03-19 08:17:13 +01:00
Dave Syer
138e1cf3c2 Deeper support for custom AWS Lambda runtime
Adds an EnvironmentPostProcessor so the user ony has to set one
property (spring.cloud.function.web.export.enabled=true).
2019-02-28 10:05:13 -05:00
Oleg Zhurakousky
5f86e3ea1a Additional changes and fixes related to the previous GH-268 commit
- Fixed issue which was causing one of the new tests to fail *only* when running as ‘mvn install’
- Modified HttpSupplier to return a delayed Mono for non2xx responses. Add javadoc
- Added conditional retry ability to the SupplierExporter to handle both ConnectionException for cases when connection may not be available or disappears during subscription.
- Polished error handling and lifecycle logic in SupplierExporter
- Added test demonstrating both retries as well as lifecycle control

Resolves #268
2019-02-28 09:55:51 +01:00
Dave Syer
428243ce48 Add new feature to initialize a Supplier from a remote HTTP endpoint
Kind of like the SupplierExporter but to create the Supplier itself.
With this in place you can define the templateUrl (destination) and
the originaUrl (source) and use the app as a pipeline for events
from/to HTTP.

Provide functional bean support for HTTP export

Add autoconfig to AWS adapter for custom runtime

Fix HttpSupplier to always supply Message if headers are included

Fix registration of origin supplier in functional beans

Add docs on new AWS features

Add custom runtime sample
2019-02-28 09:55:51 +01:00
Dave Syer
6865d53c91 Update to 2.1.0 snapshots in all the other places 2019-02-20 13:19:03 +00:00
Dave Syer
16fb340de5 Alternative strategy for failing HTTP request in test 2019-02-19 10:43:13 +00:00
Oleg Zhurakousky
805b85b102 GH-243, GH-257 Added reactive consumer wrapper
- Added wrapper for an already reactive consumer to ensure that consumers can be consistently represented as Function<Flux, Mono>
- Fixed the big that deal with inconsistent result in web environments due to inconsistent representation of the Consumers
- Polished tests

Resolves #243
Resolves #257
2019-02-11 15:30:08 +01:00
Marcin Grzejszczak
c6ddfe1af4 Added checkstyle for tests 2019-02-03 15:34:10 +01:00
Marcin Grzejszczak
e4b08a083c Turned on checkstyle 2019-02-01 15:48:32 +01:00
buildmaster
94e9b8f2f8 Bumping versions to 2.0.2.BUILD-SNAPSHOT after release 2019-01-31 14:48:58 +00:00
buildmaster
036e0c4090 Going back to snapshots 2019-01-31 14:48:57 +00:00
buildmaster
eaf519b82a Update SNAPSHOT to 2.0.1.RELEASE 2019-01-31 14:34:17 +00:00
Oleg Zhurakousky
589e451d14 GH-247 Added spring.cloud.function.definition property
Added spring.cloud.function.definition property which is used by FunctionRegistry as a supplement instruction to resolve nameless lookups.
It is used by web module to map single or multiple (composed) functions to the root path (/)

Resolves #247
2019-01-28 18:47:18 +01:00
Oleg Zhurakousky
3196a2ee8b Fixed exception handling in RequestProcessor
Fixed exception handling in the RequestProcessor for cases where input can not be determined before function invocation
2019-01-28 16:24:45 +01:00
Oleg Zhurakousky
9729f26397 Fixed failing webflux test 2019-01-09 17:15:53 +01:00
buildmaster
9cf4b72ef3 Bumping versions to 2.0.1.BUILD-SNAPSHOT after release 2019-01-08 11:32:36 +00:00
buildmaster
5b2345c7d4 Going back to snapshots 2019-01-08 11:32:36 +00:00
buildmaster
612d37616d Update SNAPSHOT to 2.0.0.RELEASE 2019-01-08 10:44:55 +00:00
buildmaster
43a886b7b7 Going back to snapshots 2018-12-20 19:14:43 +00:00
buildmaster
291aafd94a Update SNAPSHOT to 2.0.0.RC3 2018-12-20 19:10:34 +00:00
Dave Syer
62b11a4a26 Add global escape hatch for switching off functional beans
This is useful for example if the user is taking care of the
functional bean registration in some other way, and still wants to
use spring.functional.enabled=false to control that.
2018-12-13 09:33:19 +00:00
buildmaster
f0f957b96a Going back to snapshots 2018-11-19 11:23:25 +00:00
buildmaster
241652d9b8 Update SNAPSHOT to 2.0.0.RC2 2018-11-19 11:19:40 +00:00
Filip Hrisafov
c6e4d1aaf6 Fix possible NPE in FunctionHandlerMapping
Resolves #233

Happens when HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTES is null
Can be seen when using spring-boot-starter-actuator with a scanned function
The path is null because the request wrapped by the WebMvcMetricsFilter is unmodifiable,
so setting the attribute in AbstractHandlerMethodMapping#handleMatch has no effect
2018-11-19 12:11:31 +01:00
Oleg Zhurakousky
417a6a75c1 Clean up tidy up RequestProcessor 2018-11-16 14:12:50 +01:00
Oleg Zhurakousky
c46f25a000 GH-228 Added support for treating text/* CT as a special case
Resolves #228
2018-11-16 12:47:27 +01:00
Dave Syer
aba50816f7 Add support for detecting FunctionRegistration or Function
User can now provide a Function or an ApplicationInitializer. Also
the initializer can create a FunctionRegistration with the handler
name instead of a bean with the handler name. Better control of
input and output types that way.

Fixes gh-231
2018-11-09 12:38:37 +00:00
Oleg Zhurakousky
159e2108a2 Upgraded Kotlin plugin 2018-10-31 11:19:42 +01:00
Dave Syer
c43af567ea Make ObjectMapper optional
Plain text will just be passed straight through.

Fixes gh-226
2018-10-29 09:24:44 +00:00
buildmaster
9cf723949b Going back to snapshots 2018-10-29 08:19:29 +00:00
buildmaster
e2f4d0a9e5 Update SNAPSHOT to 2.0.0.RC1 2018-10-29 08:15:29 +00:00
Dave Syer
1206acd6bf Use INFO instead of ERROR logger for JVM startup message 2018-10-28 08:20:21 +00:00
Oleg Zhurakousky
37e1f0a4da Polished collection support
Polished collection support tp ensure we can support various types of collection such as List, Set etc.
2018-10-27 13:34:06 +02:00
Oleg Zhurakousky
265a9d61aa general cleanup 2018-10-26 16:11:55 +02:00
Dave Syer
bf9ab3ac0a Fix multi-part form handling for WebFlux apps
In WebFlux (but not MVC) you have to explicitly ask for the multi-
part content separately from the form data.

Fixes gh-223
2018-10-26 09:53:17 +01:00
Dave Syer
a735f50daa Inspect FunctionType to extract collection item type
Resurrects some code from #222 (the test didn't go far enough
when that issue was closed).
2018-10-26 08:00:56 +01:00
Dave Syer
c1bce87771 Update POJO sample to use webflux 2018-10-25 16:35:17 +01:00
Dave Syer
f5b09e8d27 Switch back to MVC for pojo sample 2018-10-25 15:22:44 +01:00
Dave Syer
9b9df1e7dc Polish 2018-10-25 15:02:35 +01:00
Dave Syer
2691b20a4b Tighten up multi-valued inputs to "lite" HTTP endpoint
If the user function is single valued but the input is an array,
we should output an array (just like the full webflux version).
2018-10-25 14:06:34 +01:00
Oleg Zhurakousky
2e5c6d22b5 Added support for input Collection param
Added support for function parameter type Collection
Updated both Jackson and Gson mappers
Defined a new toObject() operation on JsonMapper and deprecated the old

Resolves #210
2018-10-25 12:47:41 +01:00
buildmaster
435e4d0438 Going back to snapshots 2018-10-23 13:35:10 +00:00
buildmaster
0c5ad6acbd Update SNAPSHOT to 2.0.0.M4 2018-10-23 13:31:46 +00:00
Dave Syer
c3b03a1b11 Use web-application-type=reactive by default if webflux present
We want the default application type to be REACTIVE if webflux is
present (formerly it was NONE). In AWS and Azure we also want
the webflux beans to be switched off in a "lite" application
context (formerly they were unconditional).
2018-10-23 14:03:43 +01:00
Oleg Zhurakousky
9e2cbf49dd Added POJO test for 'lite' server scenario
polishing
2018-10-22 20:23:29 +02:00
Dave Syer
263fe1c632 Add support for Function<Message,Message> in lite server
Fixes gh-221
2018-10-22 16:35:52 +01:00
Dave Syer
592889c0fb Pull BasicStringConverter out into top level class 2018-10-22 14:06:30 +01:00
Oleg Zhurakousky
af717e445d Polishing
Resolves #219
2018-10-22 14:26:59 +02:00
Dave Syer
ba34d4b81b Add @FunctionalSpringBootTest and mini web server
User can run a minimal HTTP app using an app that is a Function
or an ApplicationContextInitializer. Can also test using
@FunctionalSpringBootTest in place of @SpringBootTest.

Add some tests and documentation for functional beans

Make server.address configurable
2018-10-22 14:26:17 +02:00