| 118 | } |
| 119 | |
| 120 | @Override |
| 121 | public Server build() { |
| 122 | checkState(isServerBuilt.compareAndSet(false, true), "Server already built!"); |
| 123 | FilterChainSelectorManager filterChainSelectorManager = new FilterChainSelectorManager(); |
| 124 | Attributes.Builder builder = Attributes.newBuilder() |
| 125 | .set(ATTR_FILTER_CHAIN_SELECTOR_MANAGER, filterChainSelectorManager); |
| 126 | if (drainGraceTimeUnit != null) { |
| 127 | builder.set(ATTR_DRAIN_GRACE_NANOS, drainGraceTimeUnit.toNanos(drainGraceTime)); |
| 128 | } |
| 129 | InternalNettyServerBuilder.eagAttributes(delegate, builder.build()); |
| 130 | return new XdsServerWrapper("0.0.0.0:" + port, delegate, xdsServingStatusListener, |
| 131 | filterChainSelectorManager, xdsClientPoolFactory, bootstrapOverride, filterRegistry); |
| 132 | } |
| 133 | |
| 134 | @VisibleForTesting |
| 135 | XdsServerBuilder xdsClientPoolFactory(XdsClientPoolFactory xdsClientPoolFactory) { |