Class AbstractCompositeServiceBuilder<T extends Service<?,​?>>

java.lang.Object
com.linecorp.armeria.server.composition.AbstractCompositeServiceBuilder<T>
Direct Known Subclasses:
SimpleCompositeRpcServiceBuilder, SimpleCompositeServiceBuilder

public abstract class AbstractCompositeServiceBuilder<T extends Service<?,​?>>
extends Object
A skeletal builder implementation for AbstractCompositeService and its subclasses. Extend this class to implement your own Service builder. e.g.

 public class MyServiceBuilder extends AbstractCompositeServiceBuilder<MyServiceBuilder> {

     private int propertyA;
     private String propertyB;

     public MyServiceBuilder propertyA(int propertyA) {
         this.propertyA = propertyA;
         return this;
     }

     public MyServiceBuilder propertyB(String propertyB) {
         this.propertyB = propertyB;
         return this;
     }

     public MyService build() {
         serviceUnder("/foo/", new FooService(propertyA));
         serviceUnder("/bar/", new BarService(propertyB));
         serviceUnder("/", new OtherService());

         List<CompositeServiceEntry> services = services();
         return new MyService(services);
     }
 }

 public class MyService extends AbstractCompositeService {
     MyService(Iterable<CompositeServiceEntry> services) {
         super(services);
         ...
     }
 }
 
See Also:
CompositeServiceEntry