Last active
June 1, 2018 23:46
-
-
Save misterikkit/16c7c36311f1f4029305348cc3f40654 to your computer and use it in GitHub Desktop.
Architecture diagram of the k8s scheduler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph scheduler { | |
graph [fontname = "helvetica", pad="0.5", nodesep="1", ranksep="2"]; | |
node [fontname = "mono", shape = "box"]; | |
edge [fontname = "helvetica"]; | |
label="\nA partial picture of the k8s scheduler architecture\n" | |
subgraph cluster_legend { | |
style=dashed; | |
label="legend" | |
structVal [shape="octagon",label="struct value"] | |
type [shape="box",label="struct type"] | |
interface [shape="box", style="dashed"] | |
funcObj [shape="ellipse",style="dashed",label="func value"] | |
funcType [shape="ellipse",style="dotted",label="func type"] | |
func [shape="ellipse"] | |
} | |
// Create subgraphs to group nodes. | |
subgraph cluster_predicate { | |
label="" | |
color="none" | |
} | |
subgraph cluster_priority { | |
label="" | |
color="none" | |
} | |
subgraph cluster_config { | |
label="" | |
color="none" | |
} | |
subgraph cluster_core { | |
label="" | |
color="none" | |
} | |
//---------------------------------------- | |
// scheduler.go | |
subgraph cluster_core { | |
Scheduler | |
} | |
Scheduler -> Config [label="has"] | |
NewFromConfigurator -> Scheduler [label="produces"] | |
subgraph cluster_config { | |
Config | |
} | |
Config -> Cache [label="has"] | |
Config -> eCache [label="has"] | |
Config -> ScheduleAlgorithm [label="has"] | |
Config -> GetBinder [label="has"] | |
Config -> PodConditionUpdater [label="has"] | |
Config -> PodPreemptor [label="has"] | |
// TODO: add other func fields | |
subgraph cluster_config { | |
Configurator [style="dashed"] | |
} | |
Configurator -> Config [label="produces"] | |
Binder [style="dashed"] | |
PodConditionUpdater [style="dashed"] | |
PodPreemptor [style="dashed"] | |
NewFromConfigurator [shape="ellipse"] | |
GetBinder [shape="ellipse",style="dashed"] | |
GetBinder -> Binder [label="produces"] | |
//---------------------------------------- | |
// factory/factory.go | |
subgraph cluster_config { | |
configFactory | |
} | |
configFactory -> listers [label="has"] | |
configFactory -> genericScheduler [label="creates"] // Keep this? | |
configFactory -> Configurator [label="implements"] | |
//configFactory -> Clientset [label="has"] | |
NewConfigFactory -> configFactory [label="produces"] | |
NewConfigFactory [shape="ellipse"] | |
listers [label="Various Listers",style="dashed"] | |
listers -> Cache [label="updates"] | |
listers -> eCache [label="updates"] | |
listers -> SchedulingQueue [label="updates"] | |
binder | |
binder -> Binder [label="implements"] | |
GetBinder->binder [label="has"] | |
GetBinder->SchedulerExtender [label="has"] | |
//---------------------------------------- | |
// factory/plugins.go | |
subgraph cluster_config { | |
AlgorithmProviderConfig | |
} | |
AlgorithmProviderConfig -> ScheduleAlgorithm [label="produces*"] | |
subgraph cluster_predicate{ | |
PredicateMetadataProducerFactory [shape="ellipse",style="dotted"] | |
} | |
PredicateMetadataProducerFactory -> PredicateMetadataProducer [label="produces"] | |
subgraph cluster_priority { | |
PriorityMetadataProducerFactory [shape="ellipse",style="dotted"] | |
} | |
PriorityMetadataProducerFactory -> PriorityMetadataProducer [label="produces"] | |
//---------------------------------------- | |
// algorithmprovider/defaults/defaults.go | |
subgraph cluster_config { | |
DefaultProvider [shape="octagon"] | |
ClusterAutoscaleProvider [shape="octagon"] | |
} | |
defaults [shape="ellipse",label="defaults.init()"] | |
//---------------------------------------- | |
// core/generic_scheduler.go | |
subgraph cluster_core { | |
genericScheduler | |
} | |
genericScheduler -> Cache [label="has"] | |
genericScheduler -> eCache [label="has"] | |
genericScheduler -> SchedulingQueue [label="has"] | |
genericScheduler -> PredicateMetadataProducer [label="has"] | |
genericScheduler -> PriorityMetadataProducer [label="has"] | |
genericScheduler -> SchedulerExtender [label="has many"] | |
genericScheduler -> ScheduleAlgorithm [label="implements"] | |
//---------------------------------------- | |
// core/extender.go | |
HTTPExtender -> SchedulerExtender [label="implements"] | |
//---------------------------------------- | |
// core/scheduling_queue.go | |
subgraph cluster_core { | |
SchedulingQueue [style="dashed"] | |
// hide queue detail | |
//FIFO -> SchedulingQueue [label="implements"] | |
//PriorityQueue -> SchedulingQueue [label="implements"] | |
} | |
//---------------------------------------- | |
// core/equivalence/equivalence.go | |
subgraph cluster_core { | |
eCache [label="equivalence.Cache"] | |
} | |
//---------------------------------------- | |
// algorithm/types.go | |
subgraph cluster_predicate { | |
PredicateMetadataProducer [shape="ellipse",style="dashed"] | |
} | |
PredicateMetadataProducer -> PredicateMetadata [label="produces"] | |
subgraph cluster_priority { | |
PriorityMetadataProducer [shape="ellipse",style="dashed"] | |
} | |
PriorityMetadataProducer -> PriorityMetadata [label="produces"] | |
subgraph cluster_predicate { | |
PredicateMetadata [style="dashed"] | |
} | |
subgraph cluster_priority { | |
PriorityMetadata [style="dashed",label="PriorityMetadata\n(actually interface{})"] | |
} | |
//---------------------------------------- | |
// algorithm/scheduler_interface.go (algorithm) | |
subgraph cluster_core { | |
ScheduleAlgorithm [style="dashed"] | |
} | |
SchedulerExtender [style="dashed"] | |
SchedulerExtender -> Binder [label="implements"] | |
//---------------------------------------- | |
// algorithm/predicates/metadata.go | |
subgraph cluster_predicate { | |
PredicateMetadataFactory | |
predicateMetadata | |
} | |
PredicateMetadataFactory -> PredicateMetadataProducer [label="implements*"] | |
PredicateMetadataFactory -> predicateMetadata [label="produces"] | |
predicateMetadata -> PredicateMetadata [label="implements"] | |
// algorithm/priorities/metadata.go | |
subgraph cluster_priority { | |
PriorityMetadataFactory | |
priorityMetadata | |
listers2 [label="Various Listers",style="dashed"] | |
} | |
PriorityMetadataFactory -> PriorityMetadataProducer [label="implements*"] | |
PriorityMetadataFactory -> priorityMetadata [label="produces"] | |
PriorityMetadataFactory -> listers2 [label="has"] | |
priorityMetadata -> PriorityMetadata [label="implements"] | |
//---------------------------------------- | |
// cache/interface.go | |
subgraph cluster_core { | |
Cache [label="cache.Cache",style="dashed"] | |
} | |
// REGISTERS | |
DefaultProvider -> AlgorithmProviderConfig [label="RegisterAlgorithmProvider"] | |
ClusterAutoscaleProvider -> AlgorithmProviderConfig [label="RegisterAlgorithmProvider"] | |
configFactory->AlgorithmProviderConfig [label="GetAlgorithmProvider"] // TODO: maybe delete this edge | |
defaults->PredicateMetadataProducerFactory[label="RegisterPredicateMetadataProducerFactory"] | |
defaults->PriorityMetadataProducerFactory[label="RegisterPriorityMetadataProducerFactory"] | |
configFactory->PredicateMetadataProducer [label="GetPredicateMetadataProducer"] | |
configFactory->PriorityMetadataProducer [label="GetPriorityMetadataProducer"] | |
} | |
// TODO: informers & clientset | |
// TODO: volumebinder? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | |
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |
<!-- Generated by graphviz version 2.38.0 (20140413.2041) | |
--> | |
<!-- Title: scheduler Pages: 1 --> | |
<svg width="4051pt" height="1381pt" | |
viewBox="0.00 0.00 4051.00 1381.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 1345)"> | |
<title>scheduler</title> | |
<polygon fill="white" stroke="none" points="-36,36 -36,-1345 4015,-1345 4015,36 -36,36"/> | |
<text text-anchor="middle" x="1989.5" y="-7.8" font-family="Helvetica,sans-Serif" font-size="14.00">A partial picture of the k8s scheduler architecture</text> | |
<g id="clust1" class="cluster"><title>cluster_legend</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="8,-1203 8,-1301 1057,-1301 1057,-1203 8,-1203"/> | |
<text text-anchor="middle" x="532.5" y="-1285.8" font-family="Helvetica,sans-Serif" font-size="14.00">legend</text> | |
</g> | |
<g id="clust2" class="cluster"><title>cluster_predicate</title> | |
<polygon fill="none" stroke="none" points="2444,-227 2444,-670 3113,-670 3113,-227 2444,-227"/> | |
</g> | |
<g id="clust3" class="cluster"><title>cluster_priority</title> | |
<polygon fill="none" stroke="none" points="3121,-226 3121,-670 3850,-670 3850,-226 3121,-226"/> | |
</g> | |
<g id="clust4" class="cluster"><title>cluster_config</title> | |
<polygon fill="none" stroke="none" points="438,-618 438,-1060 1287,-1060 1287,-618 438,-618"/> | |
</g> | |
<g id="clust5" class="cluster"><title>cluster_core</title> | |
<polygon fill="none" stroke="none" points="1443,-423 1443,-670 2237,-670 2237,-423 1443,-423"/> | |
</g> | |
<!-- structVal --> | |
<g id="node1" class="node"><title>structVal</title> | |
<polygon fill="none" stroke="black" points="1048.71,-1221.54 1048.71,-1236.46 1000.85,-1247 933.154,-1247 885.29,-1236.46 885.29,-1221.54 933.154,-1211 1000.85,-1211 1048.71,-1221.54"/> | |
<text text-anchor="middle" x="967" y="-1225.3" font-family="mono" font-size="14.00">struct value</text> | |
</g> | |
<!-- type --> | |
<g id="node2" class="node"><title>type</title> | |
<polygon fill="none" stroke="black" points="813.5,-1247 706.5,-1247 706.5,-1211 813.5,-1211 813.5,-1247"/> | |
<text text-anchor="middle" x="760" y="-1225.3" font-family="mono" font-size="14.00">struct type</text> | |
</g> | |
<!-- interface --> | |
<g id="node3" class="node"><title>interface</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="634.5,-1247 543.5,-1247 543.5,-1211 634.5,-1211 634.5,-1247"/> | |
<text text-anchor="middle" x="589" y="-1225.3" font-family="mono" font-size="14.00">interface</text> | |
</g> | |
<!-- funcObj --> | |
<g id="node4" class="node"><title>funcObj</title> | |
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="407" cy="-1229" rx="64.189" ry="18"/> | |
<text text-anchor="middle" x="407" y="-1225.3" font-family="mono" font-size="14.00">func value</text> | |
</g> | |
<!-- funcType --> | |
<g id="node5" class="node"><title>funcType</title> | |
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="212" cy="-1229" rx="59.2899" ry="18"/> | |
<text text-anchor="middle" x="212" y="-1225.3" font-family="mono" font-size="14.00">func type</text> | |
</g> | |
<!-- func --> | |
<g id="node6" class="node"><title>func</title> | |
<ellipse fill="none" stroke="black" cx="48" cy="-1229" rx="32.4942" ry="18"/> | |
<text text-anchor="middle" x="48" y="-1225.3" font-family="mono" font-size="14.00">func</text> | |
</g> | |
<!-- Scheduler --> | |
<g id="node7" class="node"><title>Scheduler</title> | |
<polygon fill="none" stroke="black" points="2150.5,-662 2059.5,-662 2059.5,-626 2150.5,-626 2150.5,-662"/> | |
<text text-anchor="middle" x="2105" y="-640.3" font-family="mono" font-size="14.00">Scheduler</text> | |
</g> | |
<!-- Config --> | |
<g id="node8" class="node"><title>Config</title> | |
<polygon fill="none" stroke="black" points="1015,-662 949,-662 949,-626 1015,-626 1015,-662"/> | |
<text text-anchor="middle" x="982" y="-640.3" font-family="mono" font-size="14.00">Config</text> | |
</g> | |
<!-- Scheduler->Config --> | |
<g id="edge1" class="edge"><title>Scheduler->Config</title> | |
<path fill="none" stroke="black" d="M2059.07,-660.555C2047.44,-664.195 2034.87,-667.658 2023,-670 1851.74,-703.794 1412.16,-761.86 1240,-733 1161.42,-719.827 1074.75,-685.557 1024.52,-663.591"/> | |
<polygon fill="black" stroke="black" points="1025.84,-660.346 1015.28,-659.506 1023.01,-666.749 1025.84,-660.346"/> | |
<text text-anchor="middle" x="1251" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- Cache --> | |
<g id="node10" class="node"><title>Cache</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2016.5,-467 1909.5,-467 1909.5,-431 2016.5,-431 2016.5,-467"/> | |
<text text-anchor="middle" x="1963" y="-445.3" font-family="mono" font-size="14.00">cache.Cache</text> | |
</g> | |
<!-- Config->Cache --> | |
<g id="edge3" class="edge"><title>Config->Cache</title> | |
<path fill="none" stroke="black" d="M1015.38,-629.973C1073.37,-607.859 1196.89,-563.039 1305,-539 1553.4,-483.768 1621.64,-506.633 1873,-467 1881.56,-465.65 1890.55,-464.105 1899.41,-462.509"/> | |
<polygon fill="black" stroke="black" points="1900.11,-465.938 1909.31,-460.692 1898.85,-459.053 1900.11,-465.938"/> | |
<text text-anchor="middle" x="1316" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- eCache --> | |
<g id="node11" class="node"><title>eCache</title> | |
<polygon fill="none" stroke="black" points="1837.5,-467 1680.5,-467 1680.5,-431 1837.5,-431 1837.5,-467"/> | |
<text text-anchor="middle" x="1759" y="-445.3" font-family="mono" font-size="14.00">equivalence.Cache</text> | |
</g> | |
<!-- Config->eCache --> | |
<g id="edge4" class="edge"><title>Config->eCache</title> | |
<path fill="none" stroke="black" d="M991.914,-625.904C1006.81,-601.971 1037.38,-559.155 1076,-539 1301.59,-421.274 1391.9,-501.608 1644,-467 1652.57,-465.823 1661.5,-464.564 1670.42,-463.283"/> | |
<polygon fill="black" stroke="black" points="1671.07,-466.725 1680.47,-461.83 1670.07,-459.797 1671.07,-466.725"/> | |
<text text-anchor="middle" x="1087" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- ScheduleAlgorithm --> | |
<g id="node12" class="node"><title>ScheduleAlgorithm</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1608.5,-467 1451.5,-467 1451.5,-431 1608.5,-431 1608.5,-467"/> | |
<text text-anchor="middle" x="1530" y="-445.3" font-family="mono" font-size="14.00">ScheduleAlgorithm</text> | |
</g> | |
<!-- Config->ScheduleAlgorithm --> | |
<g id="edge5" class="edge"><title>Config->ScheduleAlgorithm</title> | |
<path fill="none" stroke="black" d="M974.796,-625.974C966.468,-603.292 956.368,-563.218 977,-539 1006.72,-504.109 1292.63,-472.336 1441.24,-458.014"/> | |
<polygon fill="black" stroke="black" points="1441.64,-461.492 1451.26,-457.055 1440.97,-454.524 1441.64,-461.492"/> | |
<text text-anchor="middle" x="988" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- GetBinder --> | |
<g id="node13" class="node"><title>GetBinder</title> | |
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="1012" cy="-449" rx="59.2899" ry="18"/> | |
<text text-anchor="middle" x="1012" y="-445.3" font-family="mono" font-size="14.00">GetBinder</text> | |
</g> | |
<!-- Config->GetBinder --> | |
<g id="edge6" class="edge"><title>Config->GetBinder</title> | |
<path fill="none" stroke="black" d="M948.723,-629.101C911.012,-611.151 857.303,-577.592 878,-539 896.421,-504.651 934.583,-481.303 965.486,-467.169"/> | |
<polygon fill="black" stroke="black" points="967.063,-470.3 974.814,-463.077 964.25,-463.889 967.063,-470.3"/> | |
<text text-anchor="middle" x="889" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- PodConditionUpdater --> | |
<g id="node14" class="node"><title>PodConditionUpdater</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="660.5,-467 487.5,-467 487.5,-431 660.5,-431 660.5,-467"/> | |
<text text-anchor="middle" x="574" y="-445.3" font-family="mono" font-size="14.00">PodConditionUpdater</text> | |
</g> | |
<!-- Config->PodConditionUpdater --> | |
<g id="edge7" class="edge"><title>Config->PodConditionUpdater</title> | |
<path fill="none" stroke="black" d="M948.895,-628.572C909.436,-611.271 841.595,-581.194 784,-554 725.684,-526.465 659.073,-493.156 616.797,-471.78"/> | |
<polygon fill="black" stroke="black" points="618.139,-468.537 607.636,-467.142 614.977,-474.782 618.139,-468.537"/> | |
<text text-anchor="middle" x="795" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- PodPreemptor --> | |
<g id="node15" class="node"><title>PodPreemptor</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="849,-467 733,-467 733,-431 849,-431 849,-467"/> | |
<text text-anchor="middle" x="791" y="-445.3" font-family="mono" font-size="14.00">PodPreemptor</text> | |
</g> | |
<!-- Config->PodPreemptor --> | |
<g id="edge8" class="edge"><title>Config->PodPreemptor</title> | |
<path fill="none" stroke="black" d="M948.993,-630.442C915.91,-616.354 865.492,-590.585 834,-554 814.854,-531.757 803.372,-499.811 797.151,-477.206"/> | |
<polygon fill="black" stroke="black" points="800.469,-476.054 794.583,-467.245 793.691,-477.802 800.469,-476.054"/> | |
<text text-anchor="middle" x="845" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- NewFromConfigurator --> | |
<g id="node9" class="node"><title>NewFromConfigurator</title> | |
<ellipse fill="none" stroke="black" cx="2105" cy="-839" rx="112.38" ry="18"/> | |
<text text-anchor="middle" x="2105" y="-835.3" font-family="mono" font-size="14.00">NewFromConfigurator</text> | |
</g> | |
<!-- NewFromConfigurator->Scheduler --> | |
<g id="edge2" class="edge"><title>NewFromConfigurator->Scheduler</title> | |
<path fill="none" stroke="black" d="M2105,-820.873C2105,-787.323 2105,-712.707 2105,-672.287"/> | |
<polygon fill="black" stroke="black" points="2108.5,-672.089 2105,-662.089 2101.5,-672.089 2108.5,-672.089"/> | |
<text text-anchor="middle" x="2134.5" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- Binder --> | |
<g id="node17" class="node"><title>Binder</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1077,-75 1011,-75 1011,-39 1077,-39 1077,-75"/> | |
<text text-anchor="middle" x="1044" y="-53.3" font-family="mono" font-size="14.00">Binder</text> | |
</g> | |
<!-- GetBinder->Binder --> | |
<g id="edge10" class="edge"><title>GetBinder->Binder</title> | |
<path fill="none" stroke="black" d="M1013.4,-430.991C1018.42,-369.787 1035.6,-160.416 1041.77,-85.1901"/> | |
<polygon fill="black" stroke="black" points="1045.27,-85.3509 1042.6,-75.0981 1038.29,-84.7784 1045.27,-85.3509"/> | |
<text text-anchor="middle" x="1060.5" y="-249.3" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- binder --> | |
<g id="node23" class="node"><title>binder</title> | |
<polygon fill="none" stroke="black" points="900,-271 834,-271 834,-235 900,-235 900,-271"/> | |
<text text-anchor="middle" x="867" y="-249.3" font-family="mono" font-size="14.00">binder</text> | |
</g> | |
<!-- GetBinder->binder --> | |
<g id="edge19" class="edge"><title>GetBinder->binder</title> | |
<path fill="none" stroke="black" d="M999.386,-431.123C973.902,-397.027 916.152,-319.762 886.052,-279.49"/> | |
<polygon fill="black" stroke="black" points="888.686,-277.169 879.896,-271.254 883.079,-281.359 888.686,-277.169"/> | |
<text text-anchor="middle" x="955" y="-347.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- SchedulerExtender --> | |
<g id="node24" class="node"><title>SchedulerExtender</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1333.5,-271 1176.5,-271 1176.5,-235 1333.5,-235 1333.5,-271"/> | |
<text text-anchor="middle" x="1255" y="-249.3" font-family="mono" font-size="14.00">SchedulerExtender</text> | |
</g> | |
<!-- GetBinder->SchedulerExtender --> | |
<g id="edge20" class="edge"><title>GetBinder->SchedulerExtender</title> | |
<path fill="none" stroke="black" d="M1032.3,-431.793C1075.3,-397.46 1175.73,-317.288 1225.69,-277.399"/> | |
<polygon fill="black" stroke="black" points="1227.92,-280.102 1233.55,-271.127 1223.55,-274.631 1227.92,-280.102"/> | |
<text text-anchor="middle" x="1152" y="-347.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- Configurator --> | |
<g id="node16" class="node"><title>Configurator</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1158,-857 1042,-857 1042,-821 1158,-821 1158,-857"/> | |
<text text-anchor="middle" x="1100" y="-835.3" font-family="mono" font-size="14.00">Configurator</text> | |
</g> | |
<!-- Configurator->Config --> | |
<g id="edge9" class="edge"><title>Configurator->Config</title> | |
<path fill="none" stroke="black" d="M1089.53,-820.873C1068.75,-786.894 1022.22,-710.792 997.745,-670.752"/> | |
<polygon fill="black" stroke="black" points="1000.65,-668.795 992.448,-662.089 994.678,-672.447 1000.65,-668.795"/> | |
<text text-anchor="middle" x="1074.5" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- configFactory --> | |
<g id="node18" class="node"><title>configFactory</title> | |
<polygon fill="none" stroke="black" points="1279,-1052 1155,-1052 1155,-1016 1279,-1016 1279,-1052"/> | |
<text text-anchor="middle" x="1217" y="-1030.3" font-family="mono" font-size="14.00">configFactory</text> | |
</g> | |
<!-- configFactory->Configurator --> | |
<g id="edge13" class="edge"><title>configFactory->Configurator</title> | |
<path fill="none" stroke="black" d="M1206.62,-1015.87C1186.02,-981.894 1139.88,-905.792 1115.61,-865.752"/> | |
<polygon fill="black" stroke="black" points="1118.54,-863.826 1110.36,-857.089 1112.55,-867.455 1118.54,-863.826"/> | |
<text text-anchor="middle" x="1198" y="-932.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements</text> | |
</g> | |
<!-- listers --> | |
<g id="node19" class="node"><title>listers</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="1435,-662 1295,-662 1295,-626 1435,-626 1435,-662"/> | |
<text text-anchor="middle" x="1365" y="-640.3" font-family="mono" font-size="14.00">Various Listers</text> | |
</g> | |
<!-- configFactory->listers --> | |
<g id="edge11" class="edge"><title>configFactory->listers</title> | |
<path fill="none" stroke="black" d="M1223.52,-1015.94C1230.37,-998.025 1241.45,-969.034 1251,-944 1289.35,-843.519 1334.89,-724.019 1354.82,-671.729"/> | |
<polygon fill="black" stroke="black" points="1358.16,-672.783 1358.45,-662.192 1351.62,-670.29 1358.16,-672.783"/> | |
<text text-anchor="middle" x="1308" y="-835.3" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- genericScheduler --> | |
<g id="node20" class="node"><title>genericScheduler</title> | |
<polygon fill="none" stroke="black" points="1987.5,-662 1838.5,-662 1838.5,-626 1987.5,-626 1987.5,-662"/> | |
<text text-anchor="middle" x="1913" y="-640.3" font-family="mono" font-size="14.00">genericScheduler</text> | |
</g> | |
<!-- configFactory->genericScheduler --> | |
<g id="edge12" class="edge"><title>configFactory->genericScheduler</title> | |
<path fill="none" stroke="black" d="M1247.8,-1015.83C1360.09,-953.23 1747.44,-737.296 1873.21,-667.179"/> | |
<polygon fill="black" stroke="black" points="1875.13,-670.12 1882.16,-662.194 1871.72,-664.006 1875.13,-670.12"/> | |
<text text-anchor="middle" x="1612" y="-835.3" font-family="Helvetica,sans-Serif" font-size="14.00">creates</text> | |
</g> | |
<!-- AlgorithmProviderConfig --> | |
<g id="node25" class="node"><title>AlgorithmProviderConfig</title> | |
<polygon fill="none" stroke="black" points="915,-857 709,-857 709,-821 915,-821 915,-857"/> | |
<text text-anchor="middle" x="812" y="-835.3" font-family="mono" font-size="14.00">AlgorithmProviderConfig</text> | |
</g> | |
<!-- configFactory->AlgorithmProviderConfig --> | |
<g id="edge44" class="edge"><title>configFactory->AlgorithmProviderConfig</title> | |
<path fill="none" stroke="black" d="M1172.14,-1015.92C1128.42,-998.915 1060.35,-971.445 1003,-944 948.611,-917.97 887.753,-883.945 849.661,-862.029"/> | |
<polygon fill="black" stroke="black" points="851.364,-858.971 840.954,-857.002 847.864,-865.033 851.364,-858.971"/> | |
<text text-anchor="middle" x="1070" y="-932.8" font-family="Helvetica,sans-Serif" font-size="14.00">GetAlgorithmProvider</text> | |
</g> | |
<!-- PredicateMetadataProducer --> | |
<g id="node27" class="node"><title>PredicateMetadataProducer</title> | |
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="2648" cy="-449" rx="144.874" ry="18"/> | |
<text text-anchor="middle" x="2648" y="-445.3" font-family="mono" font-size="14.00">PredicateMetadataProducer</text> | |
</g> | |
<!-- configFactory->PredicateMetadataProducer --> | |
<g id="edge47" class="edge"><title>configFactory->PredicateMetadataProducer</title> | |
<path fill="none" stroke="black" d="M1279.28,-1028.78C1477.28,-1014.38 2088.97,-962.199 2253,-857 2361.23,-787.589 2326.37,-710.188 2416,-618 2476.05,-556.237 2561.05,-501.14 2609.75,-471.965"/> | |
<polygon fill="black" stroke="black" points="2611.59,-474.939 2618.4,-466.823 2608.02,-468.921 2611.59,-474.939"/> | |
<text text-anchor="middle" x="2444" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">GetPredicateMetadataProducer</text> | |
</g> | |
<!-- PriorityMetadataProducer --> | |
<g id="node29" class="node"><title>PriorityMetadataProducer</title> | |
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="3702" cy="-449" rx="139.976" ry="18"/> | |
<text text-anchor="middle" x="3702" y="-445.3" font-family="mono" font-size="14.00">PriorityMetadataProducer</text> | |
</g> | |
<!-- configFactory->PriorityMetadataProducer --> | |
<g id="edge48" class="edge"><title>configFactory->PriorityMetadataProducer</title> | |
<path fill="none" stroke="black" d="M1279.28,-1032.56C1537.04,-1029.78 2544.69,-1009.19 3355,-857 3584.09,-813.972 3731.78,-873.757 3845,-670 3886.48,-595.349 3790.52,-512.053 3736.17,-472.807"/> | |
<polygon fill="black" stroke="black" points="3738.02,-469.824 3727.83,-466.894 3733.97,-475.534 3738.02,-469.824"/> | |
<text text-anchor="middle" x="3888.5" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">GetPriorityMetadataProducer</text> | |
</g> | |
<!-- listers->Cache --> | |
<g id="edge15" class="edge"><title>listers->Cache</title> | |
<path fill="none" stroke="black" d="M1378.4,-625.817C1397.85,-602.184 1436.27,-560.177 1479,-539 1638.5,-459.948 1697.98,-499.52 1873,-467 1881.52,-465.417 1890.49,-463.738 1899.33,-462.075"/> | |
<polygon fill="black" stroke="black" points="1900.05,-465.501 1909.23,-460.21 1898.76,-458.622 1900.05,-465.501"/> | |
<text text-anchor="middle" x="1504" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">updates</text> | |
</g> | |
<!-- listers->eCache --> | |
<g id="edge16" class="edge"><title>listers->eCache</title> | |
<path fill="none" stroke="black" d="M1355.92,-625.803C1345.44,-603.296 1332.03,-563.805 1352,-539 1371.95,-514.217 1556.72,-481.462 1670.33,-463.398"/> | |
<polygon fill="black" stroke="black" points="1671.09,-466.822 1680.42,-461.803 1670,-459.908 1671.09,-466.822"/> | |
<text text-anchor="middle" x="1377" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">updates</text> | |
</g> | |
<!-- SchedulingQueue --> | |
<g id="node22" class="node"><title>SchedulingQueue</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2229,-467 2089,-467 2089,-431 2229,-431 2229,-467"/> | |
<text text-anchor="middle" x="2159" y="-445.3" font-family="mono" font-size="14.00">SchedulingQueue</text> | |
</g> | |
<!-- listers->SchedulingQueue --> | |
<g id="edge17" class="edge"><title>listers->SchedulingQueue</title> | |
<path fill="none" stroke="black" d="M1403.83,-625.822C1456.89,-602.969 1555.46,-562.7 1643,-539 1684.32,-527.814 1944.14,-484.914 2078.59,-463.019"/> | |
<polygon fill="black" stroke="black" points="2079.52,-466.413 2088.83,-461.352 2078.4,-459.504 2079.52,-466.413"/> | |
<text text-anchor="middle" x="1668" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">updates</text> | |
</g> | |
<!-- genericScheduler->Cache --> | |
<g id="edge24" class="edge"><title>genericScheduler->Cache</title> | |
<path fill="none" stroke="black" d="M1917.44,-625.873C1926.17,-592.18 1945.62,-517.07 1956.06,-476.771"/> | |
<polygon fill="black" stroke="black" points="1959.45,-477.647 1958.57,-467.089 1952.68,-475.892 1959.45,-477.647"/> | |
<text text-anchor="middle" x="1951" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- genericScheduler->eCache --> | |
<g id="edge25" class="edge"><title>genericScheduler->eCache</title> | |
<path fill="none" stroke="black" d="M1899.33,-625.873C1872.05,-591.68 1810.73,-514.829 1778.95,-474.998"/> | |
<polygon fill="black" stroke="black" points="1781.61,-472.723 1772.64,-467.089 1776.14,-477.089 1781.61,-472.723"/> | |
<text text-anchor="middle" x="1852" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- genericScheduler->ScheduleAlgorithm --> | |
<g id="edge30" class="edge"><title>genericScheduler->ScheduleAlgorithm</title> | |
<path fill="none" stroke="black" d="M1879.01,-625.873C1809.17,-590.678 1649.64,-510.29 1572.86,-471.595"/> | |
<polygon fill="black" stroke="black" points="1574.42,-468.464 1563.91,-467.089 1571.27,-474.715 1574.42,-468.464"/> | |
<text text-anchor="middle" x="1768" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements</text> | |
</g> | |
<!-- genericScheduler->SchedulingQueue --> | |
<g id="edge26" class="edge"><title>genericScheduler->SchedulingQueue</title> | |
<path fill="none" stroke="black" d="M1934.83,-625.873C1979.05,-591.179 2079.25,-512.569 2129.34,-473.272"/> | |
<polygon fill="black" stroke="black" points="2131.51,-476.015 2137.22,-467.089 2127.19,-470.508 2131.51,-476.015"/> | |
<text text-anchor="middle" x="2055" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- genericScheduler->SchedulerExtender --> | |
<g id="edge29" class="edge"><title>genericScheduler->SchedulerExtender</title> | |
<path fill="none" stroke="black" d="M1961.53,-625.962C2049.76,-593.898 2230.52,-522.795 2265,-467 2275.28,-450.365 2277.64,-437.925 2265,-423 2146.99,-283.6 1567.79,-259.101 1343.73,-254.86"/> | |
<polygon fill="black" stroke="black" points="1343.72,-251.36 1333.65,-254.679 1343.59,-258.359 1343.72,-251.36"/> | |
<text text-anchor="middle" x="2303" y="-445.3" font-family="Helvetica,sans-Serif" font-size="14.00">has many</text> | |
</g> | |
<!-- genericScheduler->PredicateMetadataProducer --> | |
<g id="edge27" class="edge"><title>genericScheduler->PredicateMetadataProducer</title> | |
<path fill="none" stroke="black" d="M1973.94,-625.959C2049.08,-605.041 2180.75,-568.689 2294,-539 2391.33,-513.483 2504.11,-485.381 2575.73,-467.717"/> | |
<polygon fill="black" stroke="black" points="2576.68,-471.087 2585.55,-465.296 2575.01,-464.29 2576.68,-471.087"/> | |
<text text-anchor="middle" x="2305" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- genericScheduler->PriorityMetadataProducer --> | |
<g id="edge28" class="edge"><title>genericScheduler->PriorityMetadataProducer</title> | |
<path fill="none" stroke="black" d="M1986.92,-625.997C1998.97,-623.284 2011.33,-620.537 2023,-618 2033.56,-615.705 2393.29,-540.447 2404,-539 2899.19,-472.109 3027.91,-507.026 3526,-467 3545.37,-465.443 3565.92,-463.617 3585.89,-461.75"/> | |
<polygon fill="black" stroke="black" points="3586.32,-465.224 3595.95,-460.801 3585.67,-458.255 3586.32,-465.224"/> | |
<text text-anchor="middle" x="2415" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- NewConfigFactory --> | |
<g id="node21" class="node"><title>NewConfigFactory</title> | |
<ellipse fill="none" stroke="black" cx="1217" cy="-1229" rx="96.6831" ry="18"/> | |
<text text-anchor="middle" x="1217" y="-1225.3" font-family="mono" font-size="14.00">NewConfigFactory</text> | |
</g> | |
<!-- NewConfigFactory->configFactory --> | |
<g id="edge14" class="edge"><title>NewConfigFactory->configFactory</title> | |
<path fill="none" stroke="black" d="M1217,-1210.87C1217,-1177.32 1217,-1102.71 1217,-1062.29"/> | |
<polygon fill="black" stroke="black" points="1220.5,-1062.09 1217,-1052.09 1213.5,-1062.09 1220.5,-1062.09"/> | |
<text text-anchor="middle" x="1246.5" y="-1127.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- binder->Binder --> | |
<g id="edge18" class="edge"><title>binder->Binder</title> | |
<path fill="none" stroke="black" d="M872.52,-234.873C880.267,-212.763 896.037,-173.936 919,-147 942.524,-119.406 976.37,-95.9947 1002.91,-80.1194"/> | |
<polygon fill="black" stroke="black" points="1004.75,-83.1017 1011.61,-75.0294 1001.21,-77.0606 1004.75,-83.1017"/> | |
<text text-anchor="middle" x="954" y="-150.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements</text> | |
</g> | |
<!-- SchedulerExtender->Binder --> | |
<g id="edge34" class="edge"><title>SchedulerExtender->Binder</title> | |
<path fill="none" stroke="black" d="M1236.28,-234.784C1198.58,-200.126 1113.47,-121.869 1070.24,-82.1302"/> | |
<polygon fill="black" stroke="black" points="1072.41,-79.3695 1062.68,-75.1776 1067.68,-84.5224 1072.41,-79.3695"/> | |
<text text-anchor="middle" x="1191" y="-150.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements</text> | |
</g> | |
<!-- AlgorithmProviderConfig->ScheduleAlgorithm --> | |
<g id="edge21" class="edge"><title>AlgorithmProviderConfig->ScheduleAlgorithm</title> | |
<path fill="none" stroke="black" d="M915.101,-827.523C978.995,-816.611 1059.71,-794.357 1118,-749 1171.3,-707.528 1147.43,-665.943 1195,-618 1243.15,-569.464 1266.24,-570.344 1327,-539 1376.97,-513.222 1436.03,-487.876 1477.53,-470.867"/> | |
<polygon fill="black" stroke="black" points="1478.95,-474.066 1486.89,-467.048 1476.31,-467.584 1478.95,-474.066"/> | |
<text text-anchor="middle" x="1227" y="-640.3" font-family="Helvetica,sans-Serif" font-size="14.00">produces*</text> | |
</g> | |
<!-- PredicateMetadataProducerFactory --> | |
<g id="node26" class="node"><title>PredicateMetadataProducerFactory</title> | |
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="2635" cy="-644" rx="182.768" ry="18"/> | |
<text text-anchor="middle" x="2635" y="-640.3" font-family="mono" font-size="14.00">PredicateMetadataProducerFactory</text> | |
</g> | |
<!-- PredicateMetadataProducerFactory->PredicateMetadataProducer --> | |
<g id="edge22" class="edge"><title>PredicateMetadataProducerFactory->PredicateMetadataProducer</title> | |
<path fill="none" stroke="black" d="M2636.15,-625.873C2638.41,-592.323 2643.44,-517.707 2646.16,-477.287"/> | |
<polygon fill="black" stroke="black" points="2649.67,-477.302 2646.85,-467.089 2642.68,-476.831 2649.67,-477.302"/> | |
<text text-anchor="middle" x="2671.5" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- PredicateMetadata --> | |
<g id="node34" class="node"><title>PredicateMetadata</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="2834.5,-271 2677.5,-271 2677.5,-235 2834.5,-235 2834.5,-271"/> | |
<text text-anchor="middle" x="2756" y="-249.3" font-family="mono" font-size="14.00">PredicateMetadata</text> | |
</g> | |
<!-- PredicateMetadataProducer->PredicateMetadata --> | |
<g id="edge32" class="edge"><title>PredicateMetadataProducer->PredicateMetadata</title> | |
<path fill="none" stroke="black" d="M2657.58,-430.784C2676.56,-396.701 2719,-320.454 2741.45,-280.14"/> | |
<polygon fill="black" stroke="black" points="2744.63,-281.617 2746.44,-271.178 2738.52,-278.213 2744.63,-281.617"/> | |
<text text-anchor="middle" x="2735.5" y="-347.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- PriorityMetadataProducerFactory --> | |
<g id="node28" class="node"><title>PriorityMetadataProducerFactory</title> | |
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="3632" cy="-644" rx="176.569" ry="18"/> | |
<text text-anchor="middle" x="3632" y="-640.3" font-family="mono" font-size="14.00">PriorityMetadataProducerFactory</text> | |
</g> | |
<!-- PriorityMetadataProducerFactory->PriorityMetadataProducer --> | |
<g id="edge23" class="edge"><title>PriorityMetadataProducerFactory->PriorityMetadataProducer</title> | |
<path fill="none" stroke="black" d="M3638.21,-625.873C3650.46,-592.109 3677.79,-516.751 3692.38,-476.515"/> | |
<polygon fill="black" stroke="black" points="3695.68,-477.683 3695.8,-467.089 3689.1,-475.296 3695.68,-477.683"/> | |
<text text-anchor="middle" x="3699.5" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- PriorityMetadata --> | |
<g id="node35" class="node"><title>PriorityMetadata</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3482,-272 3284,-272 3284,-234 3482,-234 3482,-272"/> | |
<text text-anchor="middle" x="3383" y="-256.8" font-family="mono" font-size="14.00">PriorityMetadata</text> | |
<text text-anchor="middle" x="3383" y="-241.8" font-family="mono" font-size="14.00">(actually interface{})</text> | |
</g> | |
<!-- PriorityMetadataProducer->PriorityMetadata --> | |
<g id="edge33" class="edge"><title>PriorityMetadataProducer->PriorityMetadata</title> | |
<path fill="none" stroke="black" d="M3674.53,-431.292C3617.66,-396.706 3486.91,-317.191 3421.6,-277.472"/> | |
<polygon fill="black" stroke="black" points="3423.19,-274.346 3412.83,-272.14 3419.55,-280.327 3423.19,-274.346"/> | |
<text text-anchor="middle" x="3582.5" y="-347.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- DefaultProvider --> | |
<g id="node30" class="node"><title>DefaultProvider</title> | |
<polygon fill="none" stroke="black" points="1017.48,-1026.54 1017.48,-1041.46 959.791,-1052 878.209,-1052 820.522,-1041.46 820.522,-1026.54 878.209,-1016 959.791,-1016 1017.48,-1026.54"/> | |
<text text-anchor="middle" x="919" y="-1030.3" font-family="mono" font-size="14.00">DefaultProvider</text> | |
</g> | |
<!-- DefaultProvider->AlgorithmProviderConfig --> | |
<g id="edge42" class="edge"><title>DefaultProvider->AlgorithmProviderConfig</title> | |
<path fill="none" stroke="black" d="M858.61,-1019.43C818.794,-1007.01 769.612,-984.233 745,-944 727.908,-916.06 754.954,-884.503 779.617,-863.553"/> | |
<polygon fill="black" stroke="black" points="781.943,-866.173 787.482,-857.142 777.52,-860.747 781.943,-866.173"/> | |
<text text-anchor="middle" x="826.5" y="-932.8" font-family="Helvetica,sans-Serif" font-size="14.00">RegisterAlgorithmProvider</text> | |
</g> | |
<!-- ClusterAutoscaleProvider --> | |
<g id="node31" class="node"><title>ClusterAutoscaleProvider</title> | |
<polygon fill="none" stroke="black" points="748.002,-1026.54 748.002,-1041.46 659.547,-1052 534.453,-1052 445.998,-1041.46 445.998,-1026.54 534.453,-1016 659.547,-1016 748.002,-1026.54"/> | |
<text text-anchor="middle" x="597" y="-1030.3" font-family="mono" font-size="14.00">ClusterAutoscaleProvider</text> | |
</g> | |
<!-- ClusterAutoscaleProvider->AlgorithmProviderConfig --> | |
<g id="edge43" class="edge"><title>ClusterAutoscaleProvider->AlgorithmProviderConfig</title> | |
<path fill="none" stroke="black" d="M581.545,-1015.85C563.89,-994.092 539.778,-956.138 559,-929 590.857,-884.023 647.345,-861.611 698.875,-850.513"/> | |
<polygon fill="black" stroke="black" points="699.665,-853.924 708.769,-848.505 698.272,-847.064 699.665,-853.924"/> | |
<text text-anchor="middle" x="640.5" y="-932.8" font-family="Helvetica,sans-Serif" font-size="14.00">RegisterAlgorithmProvider</text> | |
</g> | |
<!-- defaults --> | |
<g id="node32" class="node"><title>defaults</title> | |
<ellipse fill="none" stroke="black" cx="3228" cy="-839" rx="90.9839" ry="18"/> | |
<text text-anchor="middle" x="3228" y="-835.3" font-family="mono" font-size="14.00">defaults.init()</text> | |
</g> | |
<!-- defaults->PredicateMetadataProducerFactory --> | |
<g id="edge45" class="edge"><title>defaults->PredicateMetadataProducerFactory</title> | |
<path fill="none" stroke="black" d="M3182.94,-823.335C3077.39,-788.982 2814.08,-703.284 2695.07,-664.552"/> | |
<polygon fill="black" stroke="black" points="2695.98,-661.166 2685.39,-661.399 2693.81,-667.822 2695.98,-661.166"/> | |
<text text-anchor="middle" x="3085.5" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">RegisterPredicateMetadataProducerFactory</text> | |
</g> | |
<!-- defaults->PriorityMetadataProducerFactory --> | |
<g id="edge46" class="edge"><title>defaults->PriorityMetadataProducerFactory</title> | |
<path fill="none" stroke="black" d="M3261.06,-822.206C3333.41,-787.645 3505.8,-705.288 3587.54,-666.239"/> | |
<polygon fill="black" stroke="black" points="3589.53,-669.166 3597.05,-661.697 3586.52,-662.85 3589.53,-669.166"/> | |
<text text-anchor="middle" x="3571.5" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">RegisterPriorityMetadataProducerFactory</text> | |
</g> | |
<!-- HTTPExtender --> | |
<g id="node33" class="node"><title>HTTPExtender</title> | |
<polygon fill="none" stroke="black" points="1315,-467 1199,-467 1199,-431 1315,-431 1315,-467"/> | |
<text text-anchor="middle" x="1257" y="-445.3" font-family="mono" font-size="14.00">HTTPExtender</text> | |
</g> | |
<!-- HTTPExtender->SchedulerExtender --> | |
<g id="edge31" class="edge"><title>HTTPExtender->SchedulerExtender</title> | |
<path fill="none" stroke="black" d="M1256.82,-430.784C1256.47,-397.061 1255.7,-322.058 1255.28,-281.428"/> | |
<polygon fill="black" stroke="black" points="1258.78,-281.141 1255.18,-271.178 1251.78,-281.213 1258.78,-281.141"/> | |
<text text-anchor="middle" x="1292" y="-347.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements</text> | |
</g> | |
<!-- PredicateMetadataFactory --> | |
<g id="node36" class="node"><title>PredicateMetadataFactory</title> | |
<polygon fill="none" stroke="black" points="3104.5,-662 2889.5,-662 2889.5,-626 3104.5,-626 3104.5,-662"/> | |
<text text-anchor="middle" x="2997" y="-640.3" font-family="mono" font-size="14.00">PredicateMetadataFactory</text> | |
</g> | |
<!-- PredicateMetadataFactory->PredicateMetadataProducer --> | |
<g id="edge35" class="edge"><title>PredicateMetadataFactory->PredicateMetadataProducer</title> | |
<path fill="none" stroke="black" d="M2966.03,-625.873C2902.49,-590.733 2757.47,-510.54 2687.38,-471.776"/> | |
<polygon fill="black" stroke="black" points="2688.85,-468.59 2678.4,-466.814 2685.46,-474.716 2688.85,-468.59"/> | |
<text text-anchor="middle" x="2870.5" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements*</text> | |
</g> | |
<!-- predicateMetadata --> | |
<g id="node37" class="node"><title>predicateMetadata</title> | |
<polygon fill="none" stroke="black" points="3033.5,-467 2876.5,-467 2876.5,-431 3033.5,-431 3033.5,-467"/> | |
<text text-anchor="middle" x="2955" y="-445.3" font-family="mono" font-size="14.00">predicateMetadata</text> | |
</g> | |
<!-- PredicateMetadataFactory->predicateMetadata --> | |
<g id="edge36" class="edge"><title>PredicateMetadataFactory->predicateMetadata</title> | |
<path fill="none" stroke="black" d="M2993.27,-625.873C2985.96,-592.252 2969.66,-517.389 2960.88,-477.029"/> | |
<polygon fill="black" stroke="black" points="2964.27,-476.116 2958.72,-467.089 2957.43,-477.605 2964.27,-476.116"/> | |
<text text-anchor="middle" x="3007.5" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- predicateMetadata->PredicateMetadata --> | |
<g id="edge37" class="edge"><title>predicateMetadata->PredicateMetadata</title> | |
<path fill="none" stroke="black" d="M2937.34,-430.784C2901.86,-396.198 2821.85,-318.193 2781.01,-278.378"/> | |
<polygon fill="black" stroke="black" points="2783.22,-275.652 2773.62,-271.178 2778.34,-280.664 2783.22,-275.652"/> | |
<text text-anchor="middle" x="2897" y="-347.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements</text> | |
</g> | |
<!-- PriorityMetadataFactory --> | |
<g id="node38" class="node"><title>PriorityMetadataFactory</title> | |
<polygon fill="none" stroke="black" points="3383,-662 3177,-662 3177,-626 3383,-626 3383,-662"/> | |
<text text-anchor="middle" x="3280" y="-640.3" font-family="mono" font-size="14.00">PriorityMetadataFactory</text> | |
</g> | |
<!-- PriorityMetadataFactory->PriorityMetadataProducer --> | |
<g id="edge38" class="edge"><title>PriorityMetadataFactory->PriorityMetadataProducer</title> | |
<path fill="none" stroke="black" d="M3317.45,-625.873C3395.05,-590.385 3573.11,-508.946 3656.88,-470.636"/> | |
<polygon fill="black" stroke="black" points="3658.49,-473.746 3666.13,-466.404 3655.58,-467.38 3658.49,-473.746"/> | |
<text text-anchor="middle" x="3541.5" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements*</text> | |
</g> | |
<!-- priorityMetadata --> | |
<g id="node39" class="node"><title>priorityMetadata</title> | |
<polygon fill="none" stroke="black" points="3277.5,-467 3128.5,-467 3128.5,-431 3277.5,-431 3277.5,-467"/> | |
<text text-anchor="middle" x="3203" y="-445.3" font-family="mono" font-size="14.00">priorityMetadata</text> | |
</g> | |
<!-- PriorityMetadataFactory->priorityMetadata --> | |
<g id="edge39" class="edge"><title>PriorityMetadataFactory->priorityMetadata</title> | |
<path fill="none" stroke="black" d="M3270.61,-625.961C3261.1,-608.304 3246.38,-579.738 3236,-554 3225.65,-528.333 3216.37,-498.091 3210.3,-476.855"/> | |
<polygon fill="black" stroke="black" points="3213.67,-475.893 3207.59,-467.213 3206.93,-477.787 3213.67,-475.893"/> | |
<text text-anchor="middle" x="3265.5" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">produces</text> | |
</g> | |
<!-- listers2 --> | |
<g id="node40" class="node"><title>listers2</title> | |
<polygon fill="none" stroke="black" stroke-dasharray="5,2" points="3490,-467 3350,-467 3350,-431 3490,-431 3490,-467"/> | |
<text text-anchor="middle" x="3420" y="-445.3" font-family="mono" font-size="14.00">Various Listers</text> | |
</g> | |
<!-- PriorityMetadataFactory->listers2 --> | |
<g id="edge40" class="edge"><title>PriorityMetadataFactory->listers2</title> | |
<path fill="none" stroke="black" d="M3292.42,-625.873C3317.18,-591.751 3372.74,-515.15 3401.69,-475.248"/> | |
<polygon fill="black" stroke="black" points="3404.57,-477.239 3407.6,-467.089 3398.9,-473.129 3404.57,-477.239"/> | |
<text text-anchor="middle" x="3366" y="-542.8" font-family="Helvetica,sans-Serif" font-size="14.00">has</text> | |
</g> | |
<!-- priorityMetadata->PriorityMetadata --> | |
<g id="edge41" class="edge"><title>priorityMetadata->PriorityMetadata</title> | |
<path fill="none" stroke="black" d="M3218.97,-430.784C3250.76,-396.531 3322.05,-319.69 3359.31,-279.538"/> | |
<polygon fill="black" stroke="black" points="3362.04,-281.731 3366.28,-272.02 3356.91,-276.97 3362.04,-281.731"/> | |
<text text-anchor="middle" x="3334" y="-347.8" font-family="Helvetica,sans-Serif" font-size="14.00">implements</text> | |
</g> | |
</g> | |
</svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment