001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.camel.model.cloud; 018 019import javax.xml.bind.annotation.XmlAccessType; 020import javax.xml.bind.annotation.XmlAccessorType; 021import javax.xml.bind.annotation.XmlAttribute; 022import javax.xml.bind.annotation.XmlElement; 023import javax.xml.bind.annotation.XmlElements; 024import javax.xml.bind.annotation.XmlRootElement; 025import javax.xml.bind.annotation.XmlTransient; 026 027import org.apache.camel.ExchangePattern; 028import org.apache.camel.Expression; 029import org.apache.camel.builder.ExpressionClause; 030import org.apache.camel.cloud.ServiceChooser; 031import org.apache.camel.cloud.ServiceDiscovery; 032import org.apache.camel.cloud.ServiceFilter; 033import org.apache.camel.cloud.ServiceLoadBalancer; 034import org.apache.camel.model.NoOutputDefinition; 035import org.apache.camel.spi.Metadata; 036 037/** 038 * To call remote services 039 */ 040@Metadata(label = "eip,routing") 041@XmlRootElement(name = "serviceCall") 042@XmlAccessorType(XmlAccessType.FIELD) 043public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinition> { 044 @XmlAttribute 045 @Metadata(required = true) 046 private String name; 047 @XmlAttribute 048 private String uri; 049 @XmlAttribute 050 @Metadata(defaultValue = ServiceCallDefinitionConstants.DEFAULT_COMPONENT) 051 private String component; 052 @XmlAttribute 053 private ExchangePattern pattern; 054 @XmlAttribute 055 private String configurationRef; 056 @XmlAttribute 057 private String serviceDiscoveryRef; 058 @XmlTransient 059 private ServiceDiscovery serviceDiscovery; 060 @XmlAttribute 061 private String serviceFilterRef; 062 @XmlTransient 063 private ServiceFilter serviceFilter; 064 @XmlAttribute 065 private String serviceChooserRef; 066 @XmlTransient 067 private ServiceChooser serviceChooser; 068 @XmlAttribute 069 private String loadBalancerRef; 070 @XmlTransient 071 private ServiceLoadBalancer loadBalancer; 072 @XmlAttribute 073 private String expressionRef; 074 @XmlTransient 075 private Expression expression; 076 077 @XmlElements({@XmlElement(name = "cachingServiceDiscovery", type = CachingServiceCallServiceDiscoveryConfiguration.class), 078 @XmlElement(name = "combinedServiceDiscovery", type = CombinedServiceCallServiceDiscoveryConfiguration.class), 079 @XmlElement(name = "consulServiceDiscovery", type = ConsulServiceCallServiceDiscoveryConfiguration.class), 080 @XmlElement(name = "dnsServiceDiscovery", type = DnsServiceCallServiceDiscoveryConfiguration.class), 081 @XmlElement(name = "etcdServiceDiscovery", type = EtcdServiceCallServiceDiscoveryConfiguration.class), 082 @XmlElement(name = "kubernetesServiceDiscovery", type = KubernetesServiceCallServiceDiscoveryConfiguration.class), 083 @XmlElement(name = "staticServiceDiscovery", type = StaticServiceCallServiceDiscoveryConfiguration.class), 084 @XmlElement(name = "zookeeperServiceDiscovery", type = ZooKeeperServiceCallServiceDiscoveryConfiguration.class)}) 085 private ServiceCallServiceDiscoveryConfiguration serviceDiscoveryConfiguration; 086 087 @XmlElements({@XmlElement(name = "blacklistServiceFilter", type = BlacklistServiceCallServiceFilterConfiguration.class), 088 @XmlElement(name = "combinedServiceFilter", type = CombinedServiceCallServiceFilterConfiguration.class), 089 @XmlElement(name = "customServiceFilter", type = CustomServiceCallServiceFilterConfiguration.class), 090 @XmlElement(name = "healthyServiceFilter", type = HealthyServiceCallServiceFilterConfiguration.class), 091 @XmlElement(name = "passThroughServiceFilter", type = PassThroughServiceCallServiceFilterConfiguration.class)}) 092 private ServiceCallServiceFilterConfiguration serviceFilterConfiguration; 093 094 @XmlElements({@XmlElement(name = "ribbonLoadBalancer", type = RibbonServiceCallServiceLoadBalancerConfiguration.class), 095 @XmlElement(name = "defaultLoadBalancer", type = DefaultServiceCallServiceLoadBalancerConfiguration.class)}) 096 private ServiceCallServiceLoadBalancerConfiguration loadBalancerConfiguration; 097 098 @XmlElements({@XmlElement(name = "expressionConfiguration", type = ServiceCallExpressionConfiguration.class)}) 099 private ServiceCallExpressionConfiguration expressionConfiguration; 100 101 public ServiceCallDefinition() { 102 } 103 104 @Override 105 public String toString() { 106 return "ServiceCall[" + name + "]"; 107 } 108 109 @Override 110 public String getShortName() { 111 return "serviceCall"; 112 } 113 114 @Override 115 public String getLabel() { 116 return "serviceCall"; 117 } 118 119 // ***************************** 120 // Properties 121 // ***************************** 122 123 public String getName() { 124 return name; 125 } 126 127 /** 128 * Sets the name of the service to use 129 */ 130 public void setName(String name) { 131 this.name = name; 132 } 133 134 public ExchangePattern getPattern() { 135 return pattern; 136 } 137 138 /** 139 * Sets the optional {@link ExchangePattern} used to invoke this endpoint 140 */ 141 public void setPattern(ExchangePattern pattern) { 142 this.pattern = pattern; 143 } 144 145 public String getConfigurationRef() { 146 return configurationRef; 147 } 148 149 /** 150 * Refers to a ServiceCall configuration to use 151 */ 152 public void setConfigurationRef(String configurationRef) { 153 this.configurationRef = configurationRef; 154 } 155 156 public String getUri() { 157 return uri; 158 } 159 160 /** 161 * The uri of the endpoint to send to. The uri can be dynamic computed using 162 * the {@link org.apache.camel.language.simple.SimpleLanguage} expression. 163 */ 164 public void setUri(String uri) { 165 this.uri = uri; 166 } 167 168 public String getComponent() { 169 return component; 170 } 171 172 /** 173 * The component to use. 174 */ 175 public void setComponent(String component) { 176 this.component = component; 177 } 178 179 public String getServiceDiscoveryRef() { 180 return serviceDiscoveryRef; 181 } 182 183 /** 184 * Sets a reference to a custom {@link ServiceDiscovery} to use. 185 */ 186 public void setServiceDiscoveryRef(String serviceDiscoveryRef) { 187 this.serviceDiscoveryRef = serviceDiscoveryRef; 188 } 189 190 public ServiceDiscovery getServiceDiscovery() { 191 return serviceDiscovery; 192 } 193 194 /** 195 * Sets a custom {@link ServiceDiscovery} to use. 196 */ 197 public void setServiceDiscovery(ServiceDiscovery serviceDiscovery) { 198 this.serviceDiscovery = serviceDiscovery; 199 } 200 201 public String getServiceFilterRef() { 202 return serviceFilterRef; 203 } 204 205 /** 206 * Sets a reference to a custom {@link ServiceFilter} to use. 207 */ 208 public void setServiceFilterRef(String serviceFilterRef) { 209 this.serviceFilterRef = serviceFilterRef; 210 } 211 212 public ServiceFilter getServiceFilter() { 213 return serviceFilter; 214 } 215 216 /** 217 * Sets a custom {@link ServiceFilter} to use. 218 */ 219 public void setServiceFilter(ServiceFilter serviceFilter) { 220 this.serviceFilter = serviceFilter; 221 } 222 223 public String getServiceChooserRef() { 224 return serviceChooserRef; 225 } 226 227 /** 228 * Sets a reference to a custom {@link ServiceChooser} to use. 229 */ 230 public void setServiceChooserRef(String serviceChooserRef) { 231 this.serviceChooserRef = serviceChooserRef; 232 } 233 234 public ServiceChooser getServiceChooser() { 235 return serviceChooser; 236 } 237 238 /** 239 * Sets a custom {@link ServiceChooser} to use. 240 */ 241 public void setServiceChooser(ServiceChooser serviceChooser) { 242 this.serviceChooser = serviceChooser; 243 } 244 245 public String getLoadBalancerRef() { 246 return loadBalancerRef; 247 } 248 249 /** 250 * Sets a reference to a custom {@link ServiceLoadBalancer} to use. 251 */ 252 public void setLoadBalancerRef(String loadBalancerRef) { 253 this.loadBalancerRef = loadBalancerRef; 254 } 255 256 public ServiceLoadBalancer getLoadBalancer() { 257 return loadBalancer; 258 } 259 260 /** 261 * Sets a custom {@link ServiceLoadBalancer} to use. 262 */ 263 public void setLoadBalancer(ServiceLoadBalancer loadBalancer) { 264 this.loadBalancer = loadBalancer; 265 } 266 267 public String getExpressionRef() { 268 return expressionRef; 269 } 270 271 /** 272 * Set a reference to a custom {@link Expression} to use. 273 */ 274 public void setExpressionRef(String expressionRef) { 275 this.expressionRef = expressionRef; 276 } 277 278 public Expression getExpression() { 279 return expression; 280 } 281 282 /** 283 * Set a custom {@link Expression} to use. 284 */ 285 public void setExpression(Expression expression) { 286 this.expression = expression; 287 } 288 289 public ServiceCallServiceDiscoveryConfiguration getServiceDiscoveryConfiguration() { 290 return serviceDiscoveryConfiguration; 291 } 292 293 /** 294 * Configures the ServiceDiscovery using the given configuration. 295 */ 296 public void setServiceDiscoveryConfiguration(ServiceCallServiceDiscoveryConfiguration serviceDiscoveryConfiguration) { 297 this.serviceDiscoveryConfiguration = serviceDiscoveryConfiguration; 298 } 299 300 public ServiceCallServiceFilterConfiguration getServiceFilterConfiguration() { 301 return serviceFilterConfiguration; 302 } 303 304 /** 305 * Configures the ServiceFilter using the given configuration. 306 */ 307 public void setServiceFilterConfiguration(ServiceCallServiceFilterConfiguration serviceFilterConfiguration) { 308 this.serviceFilterConfiguration = serviceFilterConfiguration; 309 } 310 311 public ServiceCallServiceLoadBalancerConfiguration getLoadBalancerConfiguration() { 312 return loadBalancerConfiguration; 313 } 314 315 /** 316 * Configures the LoadBalancer using the given configuration. 317 */ 318 public void setLoadBalancerConfiguration(ServiceCallServiceLoadBalancerConfiguration loadBalancerConfiguration) { 319 this.loadBalancerConfiguration = loadBalancerConfiguration; 320 } 321 322 public ServiceCallExpressionConfiguration getExpressionConfiguration() { 323 return expressionConfiguration; 324 } 325 326 /** 327 * Configures the Expression using the given configuration. 328 */ 329 public void setExpressionConfiguration(ServiceCallExpressionConfiguration expressionConfiguration) { 330 this.expressionConfiguration = expressionConfiguration; 331 } 332 333 // ***************************** 334 // Fluent API 335 // ***************************** 336 337 /** 338 * Sets the optional {@link ExchangePattern} used to invoke this endpoint 339 */ 340 public ServiceCallDefinition pattern(ExchangePattern pattern) { 341 setPattern(pattern); 342 return this; 343 } 344 345 /** 346 * Sets the name of the service to use 347 */ 348 public ServiceCallDefinition name(String name) { 349 setName(name); 350 return this; 351 } 352 353 /** 354 * Sets the uri of the service to use 355 */ 356 public ServiceCallDefinition uri(String uri) { 357 setUri(uri); 358 return this; 359 } 360 361 /** 362 * Sets the component to use 363 */ 364 public ServiceCallDefinition component(String component) { 365 setComponent(component); 366 return this; 367 } 368 369 /** 370 * Refers to a ServiceCall configuration to use 371 */ 372 public ServiceCallDefinition serviceCallConfiguration(String ref) { 373 configurationRef = ref; 374 return this; 375 } 376 377 /** 378 * Sets a reference to a custom {@link ServiceDiscovery} to use. 379 */ 380 public ServiceCallDefinition serviceDiscovery(String serviceDiscoveryRef) { 381 setServiceDiscoveryRef(serviceDiscoveryRef); 382 return this; 383 } 384 385 /** 386 * Sets a custom {@link ServiceDiscovery} to use. 387 */ 388 public ServiceCallDefinition serviceDiscovery(ServiceDiscovery serviceDiscovery) { 389 setServiceDiscovery(serviceDiscovery); 390 return this; 391 } 392 393 /** 394 * Sets a reference to a custom {@link ServiceFilter} to use. 395 */ 396 public ServiceCallDefinition serviceFilter(String serviceFilterRef) { 397 setServiceDiscoveryRef(serviceDiscoveryRef); 398 return this; 399 } 400 401 /** 402 * Sets a custom {@link ServiceFilter} to use. 403 */ 404 public ServiceCallDefinition serviceFilter(ServiceFilter serviceFilter) { 405 setServiceFilter(serviceFilter); 406 return this; 407 } 408 409 /** 410 * Sets a reference to a custom {@link ServiceChooser} to use. 411 */ 412 public ServiceCallDefinition serviceChooser(String serviceChooserRef) { 413 setServiceChooserRef(serviceChooserRef); 414 return this; 415 } 416 417 /** 418 * Sets a custom {@link ServiceChooser} to use. 419 */ 420 public ServiceCallDefinition serviceChooser(ServiceChooser serviceChooser) { 421 setServiceChooser(serviceChooser); 422 return this; 423 } 424 425 /** 426 * Sets a reference to a custom {@link ServiceLoadBalancer} to use. 427 */ 428 public ServiceCallDefinition loadBalancer(String loadBalancerRef) { 429 setLoadBalancerRef(loadBalancerRef); 430 return this; 431 } 432 433 /** 434 * Sets a custom {@link ServiceLoadBalancer} to use. 435 */ 436 public ServiceCallDefinition loadBalancer(ServiceLoadBalancer loadBalancer) { 437 setLoadBalancer(loadBalancer); 438 return this; 439 } 440 441 /** 442 * Sets a reference to a custom {@link Expression} to use. 443 */ 444 public ServiceCallDefinition expression(String expressionRef) { 445 setExpressionRef(loadBalancerRef); 446 return this; 447 } 448 449 /** 450 * Sets a custom {@link Expression} to use. 451 */ 452 public ServiceCallDefinition expression(Expression expression) { 453 setExpression(expression); 454 return this; 455 } 456 457 /** 458 * Sets a custom {@link Expression} to use through an expression builder 459 * clause. 460 * 461 * @return a expression builder clause to set the body 462 */ 463 public ExpressionClause<ServiceCallDefinition> expression() { 464 ExpressionClause<ServiceCallDefinition> clause = new ExpressionClause<>(this); 465 setExpression(clause); 466 467 return clause; 468 } 469 470 /** 471 * Configures the ServiceDiscovery using the given configuration. 472 */ 473 public ServiceCallDefinition serviceDiscoveryConfiguration(ServiceCallServiceDiscoveryConfiguration serviceDiscoveryConfiguration) { 474 setServiceDiscoveryConfiguration(serviceDiscoveryConfiguration); 475 return this; 476 } 477 478 /** 479 * Configures the ServiceFilter using the given configuration. 480 */ 481 public ServiceCallDefinition serviceFilterConfiguration(ServiceCallServiceFilterConfiguration serviceFilterConfiguration) { 482 setServiceFilterConfiguration(serviceFilterConfiguration); 483 return this; 484 } 485 486 /** 487 * Configures the LoadBalancer using the given configuration. 488 */ 489 public ServiceCallDefinition loadBalancerConfiguration(ServiceCallServiceLoadBalancerConfiguration loadBalancerConfiguration) { 490 setLoadBalancerConfiguration(loadBalancerConfiguration); 491 return this; 492 } 493 494 /** 495 * Configures the Expression using the given configuration. 496 */ 497 public ServiceCallDefinition expressionConfiguration(ServiceCallExpressionConfiguration expressionConfiguration) { 498 setExpressionConfiguration(expressionConfiguration); 499 return this; 500 } 501 502 // ***************************** 503 // Shortcuts - ServiceDiscovery 504 // ***************************** 505 506 public CachingServiceCallServiceDiscoveryConfiguration cachingServiceDiscovery() { 507 CachingServiceCallServiceDiscoveryConfiguration conf = new CachingServiceCallServiceDiscoveryConfiguration(this); 508 setServiceDiscoveryConfiguration(conf); 509 510 return conf; 511 } 512 513 public ConsulServiceCallServiceDiscoveryConfiguration consulServiceDiscovery() { 514 ConsulServiceCallServiceDiscoveryConfiguration conf = new ConsulServiceCallServiceDiscoveryConfiguration(this); 515 setServiceDiscoveryConfiguration(conf); 516 517 return conf; 518 } 519 520 public ServiceCallDefinition consulServiceDiscovery(String url) { 521 ConsulServiceCallServiceDiscoveryConfiguration conf = new ConsulServiceCallServiceDiscoveryConfiguration(this); 522 conf.setUrl(url); 523 524 setServiceDiscoveryConfiguration(conf); 525 526 return this; 527 } 528 529 public DnsServiceCallServiceDiscoveryConfiguration dnsServiceDiscovery() { 530 DnsServiceCallServiceDiscoveryConfiguration conf = new DnsServiceCallServiceDiscoveryConfiguration(this); 531 setServiceDiscoveryConfiguration(conf); 532 533 return conf; 534 } 535 536 public ServiceCallDefinition dnsServiceDiscovery(String domain) { 537 DnsServiceCallServiceDiscoveryConfiguration conf = new DnsServiceCallServiceDiscoveryConfiguration(this); 538 conf.setDomain(domain); 539 540 setServiceDiscoveryConfiguration(conf); 541 542 return this; 543 } 544 545 public ServiceCallDefinition dnsServiceDiscovery(String domain, String protocol) { 546 DnsServiceCallServiceDiscoveryConfiguration conf = new DnsServiceCallServiceDiscoveryConfiguration(this); 547 conf.setDomain(domain); 548 conf.setProto(protocol); 549 550 setServiceDiscoveryConfiguration(conf); 551 552 return this; 553 } 554 555 public EtcdServiceCallServiceDiscoveryConfiguration etcdServiceDiscovery() { 556 EtcdServiceCallServiceDiscoveryConfiguration conf = new EtcdServiceCallServiceDiscoveryConfiguration(this); 557 setServiceDiscoveryConfiguration(conf); 558 559 return conf; 560 } 561 562 public ServiceCallDefinition etcdServiceDiscovery(String uris) { 563 EtcdServiceCallServiceDiscoveryConfiguration conf = new EtcdServiceCallServiceDiscoveryConfiguration(this); 564 conf.setUris(uris); 565 566 setServiceDiscoveryConfiguration(conf); 567 568 return this; 569 } 570 571 public ServiceCallDefinition etcdServiceDiscovery(String uris, String servicePath) { 572 EtcdServiceCallServiceDiscoveryConfiguration conf = new EtcdServiceCallServiceDiscoveryConfiguration(this); 573 conf.setUris(uris); 574 conf.setServicePath(servicePath); 575 576 setServiceDiscoveryConfiguration(conf); 577 578 return this; 579 } 580 581 public KubernetesServiceCallServiceDiscoveryConfiguration kubernetesServiceDiscovery() { 582 KubernetesServiceCallServiceDiscoveryConfiguration conf = new KubernetesServiceCallServiceDiscoveryConfiguration(this); 583 setServiceDiscoveryConfiguration(conf); 584 585 return conf; 586 } 587 588 public KubernetesServiceCallServiceDiscoveryConfiguration kubernetesClientServiceDiscovery() { 589 KubernetesServiceCallServiceDiscoveryConfiguration conf = new KubernetesServiceCallServiceDiscoveryConfiguration(this); 590 conf.setLookup("client"); 591 592 setServiceDiscoveryConfiguration(conf); 593 594 return conf; 595 } 596 597 public ServiceCallDefinition kubernetesEnvServiceDiscovery() { 598 KubernetesServiceCallServiceDiscoveryConfiguration conf = new KubernetesServiceCallServiceDiscoveryConfiguration(this); 599 conf.setLookup("environment"); 600 601 setServiceDiscoveryConfiguration(conf); 602 603 return this; 604 } 605 606 public ServiceCallDefinition kubernetesDnsServiceDiscovery(String namespace, String domain) { 607 KubernetesServiceCallServiceDiscoveryConfiguration conf = new KubernetesServiceCallServiceDiscoveryConfiguration(this); 608 conf.setLookup("dns"); 609 conf.setNamespace(namespace); 610 conf.setDnsDomain(domain); 611 612 setServiceDiscoveryConfiguration(conf); 613 614 return this; 615 } 616 617 public CombinedServiceCallServiceDiscoveryConfiguration combinedServiceDiscovery() { 618 CombinedServiceCallServiceDiscoveryConfiguration conf = new CombinedServiceCallServiceDiscoveryConfiguration(this); 619 setServiceDiscoveryConfiguration(conf); 620 621 return conf; 622 } 623 624 public StaticServiceCallServiceDiscoveryConfiguration staticServiceDiscovery() { 625 StaticServiceCallServiceDiscoveryConfiguration conf = new StaticServiceCallServiceDiscoveryConfiguration(this); 626 setServiceDiscoveryConfiguration(conf); 627 628 return conf; 629 } 630 631 public ZooKeeperServiceCallServiceDiscoveryConfiguration zookeeperServiceDiscovery() { 632 ZooKeeperServiceCallServiceDiscoveryConfiguration conf = new ZooKeeperServiceCallServiceDiscoveryConfiguration(this); 633 setServiceDiscoveryConfiguration(conf); 634 635 return conf; 636 } 637 638 public ServiceCallDefinition zookeeperServiceDiscovery(String nodes, String basePath) { 639 ZooKeeperServiceCallServiceDiscoveryConfiguration conf = new ZooKeeperServiceCallServiceDiscoveryConfiguration(this); 640 conf.setNodes(nodes); 641 conf.setBasePath(basePath); 642 643 setServiceDiscoveryConfiguration(conf); 644 645 return this; 646 } 647 648 // ***************************** 649 // Shortcuts - ServiceFilter 650 // ***************************** 651 652 public ServiceCallDefinition healthyFilter() { 653 HealthyServiceCallServiceFilterConfiguration conf = new HealthyServiceCallServiceFilterConfiguration(this); 654 setServiceFilterConfiguration(conf); 655 656 return this; 657 } 658 659 public ServiceCallDefinition passThroughFilter() { 660 PassThroughServiceCallServiceFilterConfiguration conf = new PassThroughServiceCallServiceFilterConfiguration(this); 661 setServiceFilterConfiguration(conf); 662 663 return this; 664 } 665 666 public CombinedServiceCallServiceFilterConfiguration combinedFilter() { 667 CombinedServiceCallServiceFilterConfiguration conf = new CombinedServiceCallServiceFilterConfiguration(this); 668 setServiceFilterConfiguration(conf); 669 670 return conf; 671 } 672 673 public BlacklistServiceCallServiceFilterConfiguration blacklistFilter() { 674 BlacklistServiceCallServiceFilterConfiguration conf = new BlacklistServiceCallServiceFilterConfiguration(); 675 setServiceFilterConfiguration(conf); 676 677 return conf; 678 } 679 680 public ServiceCallDefinition customFilter(String serviceFilter) { 681 CustomServiceCallServiceFilterConfiguration conf = new CustomServiceCallServiceFilterConfiguration(); 682 conf.setServiceFilterRef(serviceFilter); 683 684 setServiceFilterConfiguration(conf); 685 686 return this; 687 } 688 689 public ServiceCallDefinition customFilter(ServiceFilter serviceFilter) { 690 CustomServiceCallServiceFilterConfiguration conf = new CustomServiceCallServiceFilterConfiguration(); 691 conf.setServiceFilter(serviceFilter); 692 693 setServiceFilterConfiguration(conf); 694 695 return this; 696 } 697 698 // ***************************** 699 // Shortcuts - LoadBalancer 700 // ***************************** 701 702 public ServiceCallDefinition defaultLoadBalancer() { 703 DefaultServiceCallServiceLoadBalancerConfiguration conf = new DefaultServiceCallServiceLoadBalancerConfiguration(); 704 setLoadBalancerConfiguration(conf); 705 706 return this; 707 } 708 709 public ServiceCallDefinition ribbonLoadBalancer() { 710 RibbonServiceCallServiceLoadBalancerConfiguration conf = new RibbonServiceCallServiceLoadBalancerConfiguration(this); 711 setLoadBalancerConfiguration(conf); 712 713 return this; 714 } 715 716 public ServiceCallDefinition ribbonLoadBalancer(String clientName) { 717 RibbonServiceCallServiceLoadBalancerConfiguration conf = new RibbonServiceCallServiceLoadBalancerConfiguration(this); 718 conf.setClientName(clientName); 719 720 setLoadBalancerConfiguration(conf); 721 722 return this; 723 } 724 725}