Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2014 Spotify AB.
   *
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 
 package com.spotify.helios.common;
 
 
 
 import java.net.URI;
 import java.util.List;
 
 import static java.lang.String.format;
 import static java.lang.System.getenv;
 
 public abstract class Resolver {
 
   private static final String SRV_FORMAT = env("HELIOS_SRV_FORMAT""_%s._http.%s");
 
   private static String env(final String namefinal String defaultValue) {
     return Optional.fromNullable(getenv(name)).or(defaultValue);
   }
 
   private static final Logger log = LoggerFactory.getLogger(Resolver.class);
 
   public static Supplier<List<URI>> supplier(final String srvNamefinal String domain) {
     return new Supplier<List<URI>>() {
       @Override
       public List<URIget() {
         return resolve(srvNamedomain);
       }
     };
   }
 
   public static List<URIresolve(final String srvNamefinal String domain) {
     final String name = srv(srvNamedomain);
     final Lookup lookup;
     try {
       lookup = new Lookup(name..);
     } catch (TextParseException e) {
       throw new IllegalArgumentException("unable to create lookup for name: " + namee);
     }
 
     Record[] queryResult = lookup.run();
 
     switch (lookup.getResult()) {
       case .:
         final ImmutableList.Builder<URIendpoints = ImmutableList.builder();
         for (Record record : queryResult) {
           if (record instanceof SRVRecord) {
             SRVRecord srv = (SRVRecordrecord;
             endpoints.add(http(srv.getTarget().toString(), srv.getPort()));
           }
         }
         return endpoints.build();
       case .:
         // fallthrough
       case .:
         .warn("No results returned for query '{}'"name);
         return ImmutableList.of();
       default:
         throw new HeliosRuntimeException(String.format("Lookup of '%s' failed with code: %d - %s ",
                                                        namelookup.getResult(),
                                                        lookup.getErrorString()));
     }
   }
 
   private static URI http(final String hostfinal int port) {
     final URI endpoint;
     try {
      endpoint = new URI("http"nullhostportnullnullnull);
    } catch (URISyntaxException e) {
      throw Throwables.propagate(e);
    }
    return endpoint;
  }
  private static String srv(final String namefinal String domain) {
    return format(namedomain);
  }
New to GrepCode? Check out our FAQ X