org.eclipse.gemini.blueprint.extender.internal.dependencies.shutdown
Class ComparatorServiceDependencySorter.TarganStronglyConnectedSorter
java.lang.Object
org.eclipse.gemini.blueprint.extender.internal.dependencies.shutdown.ComparatorServiceDependencySorter.TarganStronglyConnectedSorter
- Enclosing class:
- ComparatorServiceDependencySorter
public static class ComparatorServiceDependencySorter.TarganStronglyConnectedSorter
- extends Object
Strongly Connected Component graph algorithm due to R. E. Targan, 1972. The implementation
is adapted from "Algorithms in C" by Robert Sedgewick. In particular we make use of the property that
non-connected components are traversed depth-first and so provide us with a regular dependency graph.
Strongly connected components (a.k.a cycles) are gathered in a batch which gives us an opportunity to do
futher sorting before output.
Method Summary |
org.osgi.framework.Bundle[] |
computeServiceDependencyGraph()
|
protected static boolean |
references(org.osgi.framework.Bundle a,
org.osgi.framework.Bundle b)
Answer whether Bundle b is directly referenced by Bundle a |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ComparatorServiceDependencySorter.TarganStronglyConnectedSorter
public ComparatorServiceDependencySorter.TarganStronglyConnectedSorter(org.osgi.framework.Bundle[] bundles)
computeServiceDependencyGraph
public org.osgi.framework.Bundle[] computeServiceDependencyGraph()
references
protected static boolean references(org.osgi.framework.Bundle a,
org.osgi.framework.Bundle b)
- Answer whether Bundle b is directly referenced by Bundle a
Copyright © 2006-2012. All Rights Reserved.