fnproject/fdk-java

Make fdk-java runtime modular

Opened this issue · 2 comments

panga commented

Currently, a simple Java Hello world function has 2.2mb of jars in the classpath in which almost 2mb are for optional thirdparty libraries.

1.5mb for Jackson Databind
316kb for Commons HTTP core.

Jackson Databind can be completely removed if we use JSON-B standard API in #98, so the user can choose to add the JSON-B implementation of choise if he needs to support JSON coersion or JSON events format.

Commons HTTP can be optional if user needs to support func.yaml http format.
I think in future this format should be deprecated in favor of Default, JSON & Cloud Events

This improvement also need #133 to be handled.

Ack I'm making Flow a separate module would like to do the same with Jackson later - that would remove the need for JSON in a simple function.

The Apache commons HTTP dependency is still required for http (and for forthcoming UDS/http protocol) so the best we could do there is shade it.

relates #98