001 /* 002 * Util.java 003 * 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, software 015 * distributed under the License is distributed on an "AS IS" BASIS, 016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 017 * See the License for the specific language governing permissions and 018 * limitations under the License. 019 */ 020 021 022 package org.apache.hadoop.metrics.spi; 023 024 import java.net.InetSocketAddress; 025 import java.util.ArrayList; 026 import java.util.List; 027 028 import org.apache.hadoop.classification.InterfaceAudience; 029 import org.apache.hadoop.classification.InterfaceStability; 030 import org.apache.hadoop.net.NetUtils; 031 032 /** 033 * Static utility methods 034 */ 035 @InterfaceAudience.Public 036 @InterfaceStability.Evolving 037 public class Util { 038 039 /** 040 * This class is not intended to be instantiated 041 */ 042 private Util() {} 043 044 /** 045 * Parses a space and/or comma separated sequence of server specifications 046 * of the form <i>hostname</i> or <i>hostname:port</i>. If 047 * the specs string is null, defaults to localhost:defaultPort. 048 * 049 * @return a list of InetSocketAddress objects. 050 */ 051 public static List<InetSocketAddress> parse(String specs, int defaultPort) { 052 List<InetSocketAddress> result = new ArrayList<InetSocketAddress>(1); 053 if (specs == null) { 054 result.add(new InetSocketAddress("localhost", defaultPort)); 055 } 056 else { 057 String[] specStrings = specs.split("[ ,]+"); 058 for (String specString : specStrings) { 059 result.add(NetUtils.createSocketAddr(specString, defaultPort)); 060 } 061 } 062 return result; 063 } 064 065 }