-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate dependecy conflicts between worker and user code #183
Comments
At the moment, we have the following runtime dependencies for the language worker:
|
From @brunoborges - Only way I can think of is if you ensure user-defined dependencies are loaded first in the clasapath. But that may break the worker if user chooses an incompatible version of a dependency. In other words: I don't think it is possible. As I mentioned couple months ago, right now the architecture has worker and user code tightly coupled. The ideal solution is to have user code running in one Java process, and the worker in another one. This is how OpenFaaS and FN Project are designed. |
Just to provide more details: the other option is to isolate user code with a different ClassLoader. But that imposes several other challenges. |
This issue becomes more important when we start supporting rich types as that would require worker to take dependency on azure libraries for each component |
Related issue #117 |
Following are is complete list that is included in the azure-functions-java-worker
@asavaritayal / @rloutlaw - Any ideas where we should document this? As these are brought in at runtime it is not transparent to use. I will update the readme on azure-functions-java-library repo. |
Hello, I'm suffering from similar problem where I want to use lib A which depends on Jackson 2.9.6 (annotations, binding, core) and lib 8 which depends on Jackson 2.4.0 (annotations). If i force version 2.9.6 in the pom and use my code in a "console" app, it works fine, but in a function it always complains with error "NoSuchFieldError: USE_DEFAULTS" which only exists after 2.6.0 in jackson annotations. My work around, so far, was to force jackson annotations to 2.5.5 (the lowest maximum version i managed to make it work with) which was fine to work with lib A, but now this causes issues with lib azure-identity which needs 2.7.0 of jackson otherwise I get other errors... Am I supposed to set something on the host.json file for the function? |
An example of conflict #182
Need to investigate how users can bring in their dependencies that conflict with Java worker
The text was updated successfully, but these errors were encountered: