1 package com.griddynamics.jagger.user.test.configurations;
3 import com.griddynamics.jagger.engine.e1.Provider;
4 import com.griddynamics.jagger.engine.e1.collector.ResponseValidatorProvider;
5 import com.griddynamics.jagger.engine.e1.collector.invocation.InvocationListener;
6 import com.griddynamics.jagger.invoker.Invoker;
7 import com.griddynamics.jagger.invoker.QueryPoolLoadBalancer;
8 import com.griddynamics.jagger.invoker.RoundRobinLoadBalancer;
9 import com.griddynamics.jagger.invoker.RoundRobinPairSupplierFactory;
10 import com.griddynamics.jagger.invoker.SimpleCircularLoadBalancer;
11 import com.griddynamics.jagger.invoker.v2.DefaultHttpInvoker;
12 import com.griddynamics.jagger.invoker.v2.DefaultInvokerProvider;
13 import com.griddynamics.jagger.user.test.configurations.auxiliary.Id;
15 import com.google.common.collect.Lists;
17 import java.util.List;
39 private final String id;
40 private final Iterable endpoints;
42 private final String comment;
43 private final Iterable queries;
44 private final Provider<Invoker> invoker;
45 private final List<ResponseValidatorProvider> validators;
46 private final List<Provider<InvocationListener>> listeners;
47 private final QueryPoolLoadBalancer loadBalancer;
50 this.
id = builder.id.
value();
51 this.endpoints = builder.endpointsProvider;
53 this.comment = (builder.comment == null) ?
"" : builder.comment;
54 this.queries = builder.queries;
55 this.invoker = builder.invoker;
56 this.validators = builder.validators;
57 this.listeners = builder.listeners;
58 this.loadBalancer = builder.loadBalancer;
71 return new Builder(
id, endpointsProvider);
76 private final Iterable endpointsProvider;
78 private String comment =
"";
79 private Iterable queries;
81 private List<ResponseValidatorProvider> validators = Lists.newArrayList();
82 private List<Provider<InvocationListener>> listeners = Lists.newArrayList();
83 private QueryPoolLoadBalancer loadBalancer;
85 private Builder(
Id id, Iterable endpointsProvider) {
87 this.endpointsProvider = endpointsProvider;
88 this.loadBalancer =
new SimpleCircularLoadBalancer() {{
89 setPairSupplierFactory(
new RoundRobinPairSupplierFactory());
99 this.comment = comment;
110 this.queries = queryProvider;
123 this.loadBalancer = loadBalancer;
137 this.invoker = invoker;
151 this.validators.addAll(validators);
166 this.validators.add(validator);
183 this.listeners.addAll(listeners);
200 this.listeners.add(listener);