Community
Participate
Working Groups
This feature is to take the generic Tree in the Virgo util repository and copy and change it to create a generic DAG (we should keep the Tree too as it might be useful elsewhere - we can choose to delete it later). The basic difference is that a DAG has a getParents operation on a node rather than a getParent. The only juicy part of the implementation that I can think of is how to create shared subgraphs because the current tree creates subtrees by copying an input subtree, whereas in the shared case we don't want to end up with two copies. Therefore we'll probably need an alternative method to add a shared child. So the work would be to extend the node so it can hold record parents, change the API to match that, and then write additional test cases to create and test DAGs. The main other challenge is ensuring thread safety, but if the patterns in the Tree data structure are followed, that should be achievable.
Hi Glyn, at https://github.com/fwaibel/virgo.util/commit/d0db33ed1a47e4a8171e9ac0e1f63a1c1227cc86 you can find the DAG. This code is based on Tree / ThreadSafeArrayListTree / ThreadSafeArrayListTreeTests from org.eclipse.virgo.util.common. I wrote all modifications of the code and have the rights to contribute it to Eclipse under the eclipse.org web site terms of use.
All new Java files contain the appropriate license header now. https://github.com/fwaibel/virgo.util/commit/ffdd31369c465f2d9061da81d6b43298a64bc961
Thanks Florian. I have raised CQ 5775 and we'll need to wait for it to reach "checkintocvs" status before we can pull this code in to Eclipse git and start integrating it into the kernel. Meanwhile, assigning this bug to you as you have done the work.
Hi, I have pulled that commit from github and pushed to master. Thank you for the work. Chris.
*** Bug 358895 has been marked as a duplicate of this bug. ***