I'd like to model a graph in GraphStream and render it with its Viewer, but my nodes need to have distinct input and output ports (preferably on the left-hand and right-hand side of the node box, respectively), and edges should connect with those ports rather than the node center.
Is that even possible in GraphStream? If not, is there another Java library that can be used? I know GraphViz Dot allows this, but I'd rather not call that by command line since that introduces an external dependency that's not part of my project.
EDIT: an example of the kind of thing I want to render (but for a very different domain):
I'm perfectly willing to do the rendering myself, but of course I still need routing and coordinates for the nodes and edges.