@InterfaceAudience.Public @InterfaceStability.Evolving public class ServerName extends java.lang.Object implements java.lang.Comparable<ServerName>, java.io.Serializable
toString()
format of ServerName is safe to use in the filesystem and as znode name
up in ZooKeeper. Its format is:
<hostname> 'SERVERNAME_SEPARATOR
' <port> 'SERVERNAME_SEPARATOR
' <startcode>
.
For example, if hostname is www.example.org
, port is 1234
,
and the startcode for the regionserver is 1212121212
, then
the toString()
would be www.example.org,1234,1212121212
.
You can obtain a versioned serialized form of this class by calling
getVersionedBytes()
. To deserialize, call parseVersionedServerName(byte[])
Immutable.
Modifier and Type | Field and Description |
---|---|
static java.util.List<ServerName> |
EMPTY_SERVER_LIST |
static int |
NON_STARTCODE
What to use if no startcode supplied.
|
static java.util.regex.Pattern |
SERVERNAME_PATTERN |
static java.lang.String |
SERVERNAME_SEPARATOR
This character is used as separator between server hostname, port and
startcode.
|
static java.lang.String |
UNKNOWN_SERVERNAME
What to use if server name is unknown.
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(ServerName other) |
boolean |
equals(java.lang.Object o) |
java.lang.String |
getHostAndPort() |
java.lang.String |
getHostname() |
HostAndPort |
getHostPort() |
int |
getPort() |
java.lang.String |
getServerName() |
static java.lang.String |
getServerName(java.lang.String hostAndPort,
long startcode) |
static java.lang.String |
getServerNameLessStartCode(java.lang.String inServerName)
Utility method to excise the start code from a server name
|
static long |
getServerStartcodeFromServerName(java.lang.String serverName) |
long |
getStartcode() |
byte[] |
getVersionedBytes() |
int |
hashCode() |
static boolean |
isFullServerName(java.lang.String str) |
static boolean |
isSameHostnameAndPort(ServerName left,
ServerName right) |
static ServerName |
parseFrom(byte[] data)
Get a ServerName from the passed in data bytes.
|
static java.lang.String |
parseHostname(java.lang.String serverName) |
static int |
parsePort(java.lang.String serverName) |
static ServerName |
parseServerName(java.lang.String str) |
static long |
parseStartcode(java.lang.String serverName) |
static ServerName |
parseVersionedServerName(byte[] versionedBytes)
Use this method instantiating a
ServerName from bytes
gotten from a call to getVersionedBytes() . |
java.lang.String |
toShortString() |
java.lang.String |
toString() |
static ServerName |
valueOf(java.lang.String serverName)
Retrieve an instance of ServerName.
|
static ServerName |
valueOf(java.lang.String hostname,
int port,
long startcode)
Retrieve an instance of ServerName.
|
static ServerName |
valueOf(java.lang.String hostAndPort,
long startCode)
Retrieve an instance of ServerName.
|
public static final int NON_STARTCODE
public static final java.lang.String SERVERNAME_SEPARATOR
public static final java.util.regex.Pattern SERVERNAME_PATTERN
public static final java.lang.String UNKNOWN_SERVERNAME
public static final java.util.List<ServerName> EMPTY_SERVER_LIST
public static java.lang.String parseHostname(java.lang.String serverName)
public static int parsePort(java.lang.String serverName)
public static long parseStartcode(java.lang.String serverName)
public static ServerName valueOf(java.lang.String hostname, int port, long startcode)
public static ServerName valueOf(java.lang.String serverName)
public static ServerName valueOf(java.lang.String hostAndPort, long startCode)
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toShortString()
toString()
, one that has the host only,
minus the domain, and the port only -- no start code; the String is for us internally mostly
tying threads to their server. Not for external use. It is lossy and will not work in
in compares, etc.public byte[] getVersionedBytes()
getServerName()
as bytes with a short-sized prefix with
the ServerName#VERSION of this class.public java.lang.String getServerName()
public java.lang.String getHostname()
public int getPort()
public long getStartcode()
public static java.lang.String getServerName(java.lang.String hostAndPort, long startcode)
hostAndPort
- String in form of <hostname> ':' <port>startcode
- <hostname> ',' <port> ',' <startcode>
public java.lang.String getHostAndPort()
Addressing.createHostAndPortStr(String, int)
public HostAndPort getHostPort()
public static long getServerStartcodeFromServerName(java.lang.String serverName)
serverName
- ServerName in form specified by getServerName()
servername
public static java.lang.String getServerNameLessStartCode(java.lang.String inServerName)
inServerName
- full server namepublic int compareTo(ServerName other)
compareTo
in interface java.lang.Comparable<ServerName>
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public static boolean isSameHostnameAndPort(ServerName left, ServerName right)
left
- right
- other
has same hostname and port.public static ServerName parseVersionedServerName(byte[] versionedBytes)
ServerName
from bytes
gotten from a call to getVersionedBytes()
. Will take care of the
case where bytes were written by an earlier version of hbase.versionedBytes
- Pass bytes gotten from a call to getVersionedBytes()
getVersionedBytes()
public static ServerName parseServerName(java.lang.String str)
str
- Either an instance of toString()
or a
"'public static boolean isFullServerName(java.lang.String str)
toString()
, false
otherwise.public static ServerName parseFrom(byte[] data) throws DeserializationException
data
- Data with a serialize server name in it; can handle the old style
servername where servername was host and port. Works too with data that
begins w/ the pb 'PBUF' magic and that is then followed by a protobuf that
has a serialized ServerName
in it.data
is null else converts passed data
to a ServerName instance.DeserializationException