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 022package org.apache.hadoop.metrics.spi; 023 024import java.net.InetSocketAddress; 025import java.net.SocketAddress; 026import java.util.ArrayList; 027import java.util.List; 028 029import org.apache.hadoop.classification.InterfaceAudience; 030import org.apache.hadoop.classification.InterfaceStability; 031import org.apache.hadoop.net.NetUtils; 032 033/** 034 * Static utility methods 035 */ 036@InterfaceAudience.Public 037@InterfaceStability.Evolving 038public class Util { 039 040 /** 041 * This class is not intended to be instantiated 042 */ 043 private Util() {} 044 045 /** 046 * Parses a space and/or comma separated sequence of server specifications 047 * of the form <i>hostname</i> or <i>hostname:port</i>. If 048 * the specs string is null, defaults to localhost:defaultPort. 049 * 050 * @return a list of InetSocketAddress objects. 051 */ 052 public static List<InetSocketAddress> parse(String specs, int defaultPort) { 053 List<InetSocketAddress> result = new ArrayList<InetSocketAddress>(1); 054 if (specs == null) { 055 result.add(new InetSocketAddress("localhost", defaultPort)); 056 } 057 else { 058 String[] specStrings = specs.split("[ ,]+"); 059 for (String specString : specStrings) { 060 result.add(NetUtils.createSocketAddr(specString, defaultPort)); 061 } 062 } 063 return result; 064 } 065 066}