Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
None
-
None
-
None
-
Unknown
Description
When the user executes "kamel run Source.java", he might be using some components not available in camel-core.
In this case, the "kamel" script should create the resource as usual (do not put too much logic into the client), while the operator in the "Initialize" action should scan the source file to find declaration of external maven dependencies.
We can use a simplified way to declare dependencies, such as declaring them in a comment, e.g.
// k-include: camel-mail
This way we let the user specify everything in a single file. We can switch to something better later (best if recognized by the tooling).
The initializer will add "org.apache.camel:camel-mail" to the list of dependencies in the CR (custom resource).
We should enable the following ways to include dependencies:
- Comment in the source file
- kamel run --dependency camel-mail Source.java
- Putting it direcly in spec->dependency->items by editing the custom resource
We should also allow to disable the auto-discovery via a flag in "spec->dependency->autoDiscovery", controlled by a "kamel --dependency-auto-discovery false" client flag.