/** * Creates a new {@link VirtualHostBuilder} with the specified hostname pattern. */ AbstractVirtualHostBuilder(String hostnamePattern) { hostnamePattern = normalizeHostnamePattern(hostnamePattern); if ("*".equals(hostnamePattern)) { defaultHostname = LOCAL_HOSTNAME; } else if (hostnamePattern.startsWith("*.")) { defaultHostname = hostnamePattern.substring(2); } else { defaultHostname = hostnamePattern; } this.hostnamePattern = hostnamePattern; }
/** * Creates a new {@link VirtualHostBuilder} with * the default host name and the specified hostname pattern. */ AbstractVirtualHostBuilder(String defaultHostname, String hostnamePattern) { requireNonNull(defaultHostname, "defaultHostname"); defaultHostname = normalizeDefaultHostname(defaultHostname); hostnamePattern = normalizeHostnamePattern(hostnamePattern); ensureHostnamePatternMatchesDefaultHostname(hostnamePattern, defaultHostname); this.defaultHostname = defaultHostname; this.hostnamePattern = hostnamePattern; }
VirtualHost(String defaultHostname, String hostnamePattern, @Nullable SslContext sslContext, Iterable<ServiceConfig> serviceConfigs, MediaTypeSet producibleMediaTypes, RejectedPathMappingHandler rejectionHandler, Function<VirtualHost, Logger> accessLoggerMapper) { defaultHostname = normalizeDefaultHostname(defaultHostname); hostnamePattern = normalizeHostnamePattern(hostnamePattern); ensureHostnamePatternMatchesDefaultHostname(hostnamePattern, defaultHostname); this.defaultHostname = defaultHostname; this.hostnamePattern = hostnamePattern; this.sslContext = validateSslContext(sslContext); this.producibleMediaTypes = producibleMediaTypes; requireNonNull(serviceConfigs, "serviceConfigs"); final List<ServiceConfig> servicesCopy = new ArrayList<>(); for (ServiceConfig c : serviceConfigs) { c = c.build(this); servicesCopy.add(c); } services = Collections.unmodifiableList(servicesCopy); router = Routers.ofVirtualHost(this, services, rejectionHandler); if (accessLoggerMapper != null) { accessLogger = accessLoggerMapper.apply(this); checkState(accessLogger != null, "accessLoggerMapper.apply() has returned null for virtual host: %s.", hostnamePattern); } }