org.eclipse.gemini.blueprint.extender.internal.dependencies.shutdown
Class ComparatorServiceDependencySorter.TarganStronglyConnectedSorter

java.lang.Object
  extended by 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.


Constructor Summary
ComparatorServiceDependencySorter.TarganStronglyConnectedSorter(org.osgi.framework.Bundle[] bundles)
           
 
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
 

Constructor Detail

ComparatorServiceDependencySorter.TarganStronglyConnectedSorter

public ComparatorServiceDependencySorter.TarganStronglyConnectedSorter(org.osgi.framework.Bundle[] bundles)
Method Detail

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.