in modules/frontend/app/configuration/generator/generator/ConfigurationGenerator.js [1415:1503]
static clusterLoadBalancing(cluster, cfg = this.igniteConfigurationBean(cluster)) {
const spis = [];
_.forEach(cluster.loadBalancingSpi, (spi) => {
let loadBalancingSpi;
switch (_.get(spi, 'kind')) {
case 'RoundRobin':
loadBalancingSpi = new Bean('org.apache.ignite.spi.loadbalancing.roundrobin.RoundRobinLoadBalancingSpi', 'loadBalancingSpiRR', spi.RoundRobin, clusterDflts.loadBalancingSpi.RoundRobin);
loadBalancingSpi.boolProperty('perTask');
break;
case 'Adaptive':
loadBalancingSpi = new Bean('org.apache.ignite.spi.loadbalancing.adaptive.AdaptiveLoadBalancingSpi', 'loadBalancingSpiAdaptive', spi.Adaptive);
let probeBean;
switch (_.get(spi, 'Adaptive.loadProbe.kind')) {
case 'Job':
probeBean = new Bean('org.apache.ignite.spi.loadbalancing.adaptive.AdaptiveJobCountLoadProbe', 'jobProbe', spi.Adaptive.loadProbe.Job, clusterDflts.loadBalancingSpi.Adaptive.loadProbe.Job);
probeBean.boolProperty('useAverage');
break;
case 'CPU':
probeBean = new Bean('org.apache.ignite.spi.loadbalancing.adaptive.AdaptiveCpuLoadProbe', 'cpuProbe', spi.Adaptive.loadProbe.CPU, clusterDflts.loadBalancingSpi.Adaptive.loadProbe.CPU);
probeBean.boolProperty('useAverage')
.boolProperty('useProcessors')
.intProperty('processorCoefficient');
break;
case 'ProcessingTime':
probeBean = new Bean('org.apache.ignite.spi.loadbalancing.adaptive.AdaptiveProcessingTimeLoadProbe', 'timeProbe', spi.Adaptive.loadProbe.ProcessingTime, clusterDflts.loadBalancingSpi.Adaptive.loadProbe.ProcessingTime);
probeBean.boolProperty('useAverage');
break;
case 'Custom':
const className = _.get(spi, 'Adaptive.loadProbe.Custom.className');
if (className)
probeBean = new Bean(className, 'probe', spi.Adaptive.loadProbe.Job.Custom);
break;
default:
// No-op.
}
if (probeBean)
loadBalancingSpi.beanProperty('loadProbe', probeBean);
break;
case 'WeightedRandom':
loadBalancingSpi = new Bean('org.apache.ignite.spi.loadbalancing.weightedrandom.WeightedRandomLoadBalancingSpi', 'loadBalancingSpiRandom', spi.WeightedRandom, clusterDflts.loadBalancingSpi.WeightedRandom);
loadBalancingSpi.intProperty('nodeWeight')
.boolProperty('useWeights');
break;
case 'Custom':
const cusClassName = _.get(spi, 'Custom.className');
if (cusClassName)
loadBalancingSpi = new Bean(cusClassName, 'loadBalancingSpiCustom', spi.Custom);
break;
default:
// No-op.
}
if (loadBalancingSpi)
spis.push(loadBalancingSpi);
});
if (spis.length)
cfg.varArgProperty('loadBalancingSpi', 'loadBalancingSpi', spis, 'org.apache.ignite.spi.loadbalancing.LoadBalancingSpi');
return cfg;
}