Commit Graph

120 Commits

Author SHA1 Message Date
Marcin Grzejszczak
b28e22d255 Going back to snapshots 2018-08-22 18:03:37 +02:00
Marcin Grzejszczak
aca771fb8b Update SNAPSHOT to 2.0.0.M1 2018-08-22 17:54:29 +02:00
Marcin Grzejszczak
48da16ff51 Removed snapshot of stream and wrong test dependency 2018-08-22 17:36:02 +02:00
Oleg Zhurakousky
30187b583b GH-199 Added support for typeless lookup in FunctionCatalog
Updated both the interface as well as InMemoryFunctionCatalog BeanFactoryFunctionCatalog and SingleEntryFunctionRegistry implementations
Added tests

Resolves #199
2018-08-15 17:56:29 +02:00
Oleg Zhurakousky
ed14474b9f GH-191 Made 'name' required in FunctionRegistration 2018-07-30 13:48:48 +02:00
Oleg Zhurakousky
32ee27165b GH-190 Added null check for publisher
Resolves #190
2018-07-27 16:07:57 +02:00
Oleg Zhurakousky
e1a7e16c18 ContextFunctionCatalogAutoConfiguration improvements
Removed FunctionEntry as it was no longer referenced by anything
2018-07-12 16:29:47 +02:00
Dave Syer
10b0413696 Omit optional generic information in tests 2018-07-05 14:02:25 +01:00
Oleg Zhurakousky
377c4d93f0 Code polishing and general cleanup 2018-06-27 08:43:28 -04:00
Oleg Zhurakousky
bb397c6a07 General polishing in InMemoryFunctionCatalog 2018-06-25 23:49:47 -04:00
Dave Syer
94b1e56d55 Allow user to provide own Gson or ObjectMapper 2018-06-22 16:06:39 +01:00
Dave Syer
4c9627aee3 Fix Build and upgrade fully to Boot 2.0
Some tests still ignored.

Also adds draft functional bean registration support. The AWS sample
is using that now (it starts up 4x faster in AWS). To activate the
functional beans user has to supply a main class of type
ApplicationContextInitializer.
2018-06-21 17:57:50 +01:00
Dave Syer
00e2b749d2 First step in 2.0.0. Remove Stream dependencies 2018-06-21 06:35:41 +01:00
Dave Syer
068b9ef7e9 Revert to snapshots 2018-06-18 11:49:02 +01:00
Dave Syer
ac3ea7db36 Update to 1.0.0 2018-06-15 12:27:30 +01:00
Oleg Zhurakousky
8c7c8f9a1c GH-180 added null assertion to FunctionRegistration
Resolves #180
2018-06-12 15:32:22 -04:00
Dave Syer
9dc569837a Revert to snapshots 2018-05-26 09:42:34 +01:00
Dave Syer
b20cb700ea Update to RC2 2018-05-26 09:34:02 +01:00
Dave Syer
8e9a5504cb Revert to snapshots 2018-05-21 10:05:42 +01:00
Dave Syer
c29f800380 Update to 1.0.0.RC1 2018-05-21 10:04:54 +01:00
Dave Syer
8599be2255 Make Jackson and Gson beans conditional 2018-05-21 09:05:08 +01:00
Dave Syer
66476559ed Move JsonMapper to spring-cloud-function-context
...in case it is needed elsewhere (see gh-151)
2018-05-21 08:50:35 +01:00
Dave Syer
e34324b5b4 Double check that a Function can return a Mono 2018-05-15 08:43:58 +01:00
Dave Syer
eaea89532c Add documentation for compiler configuration properties 2018-05-02 06:17:28 -04:00
Dave Syer
b59b43ddc5 Only expose Publisher via FunctionCatalog
Flux.from() is cheap and can be used to marshal the inputs everywhere
internally. With this change users ought to be able to register any
function of any Publisher type.
2018-05-01 12:06:34 -04:00
Dave Syer
fb04324ac9 Factor out a new strategy for wrapper type detection
Using this strategy libraries could be developed for supporting
Flux-like libraries (e.g. kstreams) that are not actually
reactive streams implementations.
2018-05-01 12:06:29 -04:00
Dave Syer
59f94c1533 Fix potential issue when Message is not available but not needed
If an isolated function doesn't have Message in its classpath, we
will never actually need to instantiate that class. This change
makes sure we check first.
2018-04-25 07:27:33 +01:00
Dave Syer
57c05970e5 Use concurrent hash map in function catalog 2018-04-24 10:23:22 +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
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
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
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
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
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
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
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