I have two small question on the development process of knime nodes
1.) Is there a documentation how to develop custom ports? I found bit's and pieces but now details or structured tutorial
2.) Is there a way to develop multiple different nodes in one eclipse project?
Context: I intend to do something similar to the SQL or DL4J integration.
My idea is to have a bunch of model definition nodes and a few execution nodes.
For the definition nodes I want to use my custom port objects, where I send the model in serialized form.
As there are many different nodes which I need, it would be nice to develop all nodes in one one project and more specifically one package.
E.g. I need several nodes which take two models combine them with a function. So most nodes will share a large portion of code.
Last but not least is it possible to programatically exchange the icon of a Knime node based on the configuration?
- You can have multiple nodes per plugin
- You can have multiple nodes in one package but this would make it more difficult to navigate your code?
- The icon is defined in the xml file, so I wouldn't expect you could change this programatically unless you are changing the image itself.
> E.g. I need several nodes which take two models combine them with a function. So most nodes will share a large portion of code.
Could you node not create your own custom node model (extend NodeModel) with your shared methods/code and then the actual node would extend your CustomNodeModel rather than KNIME's NodeModel? A have my own internal implementation of NodeModel and SimpleStreamableNodeModel (may not be correct class name) that handle the repeated code they all all.
You'd still need to create a new node for each indepenent task but you can reuse your code.
W.r.t ports I don't recally if I read some documentation or just looked at existing implementations when I created mine.