Commit Graph

316 Commits

Author SHA1 Message Date
Dave Syer
c2568ccabe Compiler warnings 2018-04-16 16:39:37 +01:00
Dave Syer
98cf4dc06e Revert to snapshots 2018-04-16 16:22:02 +01:00
Dave Syer
d1bcb7d142 Update to 1.0.0.M6 2018-04-16 16:04:31 +01:00
Dave Syer
74b80c069c Update to thin launcher 1.0.10 2018-04-16 15:51:41 +01:00
Dave Syer
f61c31512c Remove AWS BOM
We can revisit this later, but I don't like the way it works at the
moment (too many dependencies in there and we only use a handful).
2018-04-16 14:30:13 +01:00
Halvdan Hoem Grelland
2c6f71d275 Add support for aggregated Kinesis records in SpringBootKinesisEventHandler
The current implementation of SpringBootKinesisEventHandler only handles
non-aggregated events. Attempting to process aggregated events caused
ungraceful failure.
This commit fixes that by de-aggregating any events before performing
conversion. Non-aggregated events are still handled transparently.
In addition, detection of Message<T> input is performed, and
output messages are wrapped accordingly.
2018-04-16 11:40:36 +01:00
trisberg
344ee9a689 Upgrade boot versions
- 1.5.10 to 1.5.11

- 2.0.0 to 2.0.1
2018-04-06 21:07:21 +01:00
Dave Syer
7e53a74474 Update README 2018-03-26 10:09:54 +01:00
Dave Syer
5aeba1ea96 Convert Consumer<Foo> to Function<Flux<Foo>,Mono<Void>>
This results in a better experience for users because the consumer
that they write is only applied to a Flux that is subscribed to
by the framework once. It gives better control over the flow of
foos, e.g. if some component wants to subscribe on a thread.
2018-03-26 10:06:13 +01:00
Dave Syer
a1b624b28a Inspect bean class if it is available
Avoids instantiating beans if not necessary, and allows user to
provide Function as a @SpringBootApplication (for instance), or
more generally as a source to the application context (as opposed
to being component scanned).
2018-03-21 11:09:57 +00:00
Dave Syer
0bd71e61e0 Extract common logic in invokers into base class 2018-03-20 17:40:06 +00:00
Dave Syer
9012143093 Share unrouted messages amongst consumers and functions 2018-03-20 16:42:01 +00:00
Dave Syer
0be5f14766 Provide new config options for streams enabling composition
User can switch off source or sink behaviour (the default is to bind
to input and output streams), and then configure the name of a
supplier (for a source) or consumer (for a sink).
2018-03-18 14:19:51 +00:00
Dave Syer
efc99d2af0 Revert to snaphots 2018-03-16 11:40:12 -04:00
Dave Syer
feb8f51c41 Update to 1.0.0.M5 2018-03-16 11:28:53 -04:00
Dave Syer
4272ce2f36 Fix surefire version so CI build works 2018-03-16 09:53:29 -04:00
Dave Syer
773dddbe68 Ensure composite wrapper type reflects reality
When a Supplier<Flux<Foo>> is composed with a Function<Foo,Bar>
the resulting handler (supplier) should have Flux as its output
wrapper still (the most general output wrapper type in the chain).
2018-03-16 08:35:21 -04:00
Dave Syer
47f86671ca Allow pipe as well as comma in function composition 2018-03-16 08:05:29 -04:00
Dave Syer
8ab4d61bb4 Align MVC handling between Spring 4 and Spring 5
A Spring Boot 2.0 app should behave the same as a Spering Boot 1.5
app with this change. The key thing was to change the return type
of the FunctionController and move the computation of single
valuedness for the output there (instead of trying to do it in the
return value handler, which isn't used in Spring 5).
2018-03-16 07:08:43 -04:00
Dave Syer
43e3cb4f27 Fix deployer tests to not use the Boot 2.0 sample 2018-03-15 09:22:51 -04:00
Dave Syer
9a2f21e051 Upgrade pojo sample to Boot 2.0 as integration test 2018-03-15 06:45:58 -04:00
Dave Syer
740a94b202 Make Gson special config conditional on Boot 1.5
That was the samples still work with Spring Boot 2.0.0.

Fixes gh-157 (but we should add some tests)
2018-03-09 12:17:24 +00:00
Dave Syer
5528659b4b Inspect bean definition more thoroughly for factory arguments
Fixes gh-153
2018-03-02 11:28:33 +00:00
Dave Syer
dc008cc24d Ensure a function is inspectable as itself and its wrapper
Since a function is wrapper in a FluxWrapper (and possibly also
an Isolated), the link is lost between the bean and the type
metadata without this change.
2018-03-01 09:10:14 +00:00
Dave Syer
955e99bfe3 Re-org so that default methods are used everywhere 2018-02-28 14:18:09 +00:00
Dave Syer
33b33adb4b Change FunctionCatalog to key off Class<?>
Makes it possible to support other "function" types in the future.
The user is always taking a risk with the lookup that the object
returned has the generic type desired (but that hasn't changed
with this commit). FunctionCatalog is a lot simpler as a result
and also a lot more flexible.
2018-02-28 14:18:09 +00:00
Kamesh Sampath
c11a4454ff Added links to OpenWhisk SCF examples
Signed-off-by: Kamesh Sampath <kamesh.sampath@hotmail.com>
2018-02-28 08:22:00 +00:00
Dave Syer
616e2825c6 Move FunctionCatalog into context module 2018-02-27 09:05:28 +00:00
Dave Syer
7bc6d7dfee Re-order type discovery and function wrapping
Otherwise the explicit types from the function registration are
not used.
2018-02-26 16:28:50 +00:00
Dave Syer
5203401e00 Use Void as input type for Supplier, etc. 2018-02-26 14:15:54 +00:00
Dave Syer
f9e4546070 Add convenience methods to FunctionType 2018-02-26 11:45:01 +00:00
Dave Syer
d95ab8f173 Migrate type computation logic to FunctionType 2018-02-26 10:57:45 +00:00
Dave Syer
38f6caf4dc Add FunctionType abstraction and test it 2018-02-26 09:56:02 +00:00
Dave Syer
42a7babb7d Remove unecessary thin plugin execution and tidy up dependencies
Fixes #109
2018-02-24 08:15:54 +00:00
trisberg
d515781d6a Some more updates to Boot 1.5.10 2018-02-23 20:00:30 +00:00
Dave Syer
dd7e529565 Update README adding Azure adapter 2018-02-23 13:20:58 +00:00
Dave Syer
bf41055dc7 Some dependency hygiene and update to Boot 1.5.10
The web module doesn't really need to depend on tomcat and all of
the Spring Boot web stack, but users need a way to grab that stuff
quickly if they want it (hence the new starter).

Also removed all spring-boot-starter dependencies from core and
context modules.
2018-02-23 12:12:06 +00:00
Dave Syer
b7d75c676e Exclude hibernate validator by default. Update Boot 2018-02-23 11:24:14 +00:00
Dave Syer
975398d30c Use Gson instead of Jackson by default 2018-02-23 11:19:23 +00:00
Dave Syer
a2a2932715 Revert to snapshots 2018-02-21 07:24:21 +00:00
Dave Syer
72efd58675 Update to 1.0.0.M4 2018-02-20 19:25:11 +00:00
Dave Syer
8cd2675986 Add tests for various scenarios of message conversion 2018-02-16 10:31:28 +00:00
Dave Syer
1b624c3531 Support for isolated class loaders extended to cover more functions
Functions with Flux and Message (as well as POJOs and Flux of POJO
which were already supported) should now work if they are created in
an isolated class loader. Preconditions:

* The class loaders must have the reactor-core (and reactive-streams)
shared between the app and the function. Practically speaking this means
there has to be a parent class loader with just reactive types, and
sibling children for the app and the function. This is not a new
requirement (it was needed for Flux of POJO anyway).

* Message types are handled reflectively, so they don't have to be in a
shared class loader. But they do have to be  on the class path on
both sides (obviously).
2018-02-16 08:16:55 +00:00
Dave Syer
ccd3953163 Cache result of isMessage() computation before function is wrapped
Otherwise you get the wrong result when you go back and ask later
(but only if the bean is a singleton with no bean definition).
2018-02-14 16:25:12 +00:00
Dave Syer
c728cd4c01 Support for Function<Publisher<...>,...> 2018-02-14 14:09:28 +00:00
Kamesh Sampath
5b84ae0d7e Resolved Issue #141 2018-02-09 14:41:37 +00:00
Dave Syer
54873b66d5 Fix test 2018-01-25 09:36:37 +00:00
Dave Syer
ab30b755ba Add test to azure sample 2018-01-25 09:20:20 +00:00
Dave Syer
b0bddd3160 Handler for azure sample calls super in different method
If FooHandler extends AzureSpringBootRequestHandler apparently
Azure cannot extract the generic types Foo and Bar.
2018-01-24 15:56:40 +00:00
Dave Syer
7604de3ca7 Attempt to write JSON by hand 2018-01-24 14:54:41 +00:00