public class JMXServiceURL extends Object implements Serializable
The address of a JMX API connector server. Instances of this class are immutable.
The address is an Abstract Service URL for SLP, as defined in RFC 2609 and amended by RFC 3111. It must look like this:
service:jmx:protocol:sap
Here, protocol
is the transport
protocol to be used to connect to the connector server. It is
a string of one or more ASCII characters, each of which is a
letter, a digit, or one of the characters +
or
-
. The first character must be a letter.
Uppercase letters are converted into lowercase ones.
sap
is the address at which the connector
server is found. This address uses a subset of the syntax defined
by RFC 2609 for IP-based protocols. It is a subset because the
user@host
syntax is not supported.
The other syntaxes defined by RFC 2609 are not currently supported by this class.
The supported syntax is:
//[host[:port]][url-path]
Square brackets []
indicate optional parts of
the address. Not all protocols will recognize all optional
parts.
The host
is a host name, an IPv4 numeric
host address, or an IPv6 numeric address enclosed in square
brackets.
The port
is a decimal port number. 0
means a default or anonymous port, depending on the protocol.
The host
and port
can be omitted. The port
cannot be supplied
without a host
.
The url-path
, if any, begins with a slash
(/
) or a semicolon (;
) and continues to
the end of the address. It can contain attributes using the
semicolon syntax specified in RFC 2609. Those attributes are not
parsed by this class and incorrect attribute syntax is not
detected.
Although it is legal according to RFC 2609 to have a
url-path
that begins with a semicolon, not
all implementations of SLP allow it, so it is recommended to avoid
that syntax.
Case is not significant in the initial
service:jmx:protocol
string or in the host
part of the address. Depending on the protocol, case can be
significant in the url-path
.
Constructor and Description |
---|
JMXServiceURL(String serviceURL)
Constructs a
JMXServiceURL by parsing a Service URL
string. |
JMXServiceURL(String protocol,
String host,
int port)
Constructs a
JMXServiceURL with the given protocol,
host, and port. |
JMXServiceURL(String protocol,
String host,
int port,
String urlPath)
Constructs a
JMXServiceURL with the given parts. |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
Indicates whether some other object is equal to this one.
|
String |
getHost()
The host part of the Service URL.
|
int |
getPort()
The port of the Service URL.
|
String |
getProtocol()
The protocol part of the Service URL.
|
String |
getURLPath()
The URL Path part of the Service URL.
|
int |
hashCode()
Returns a hash code value for the object.
|
String |
toString()
The string representation of this Service URL.
|
public JMXServiceURL(String serviceURL) throws MalformedURLException
Constructs a JMXServiceURL
by parsing a Service URL
string.
serviceURL
- the URL string to be parsed.NullPointerException
- if serviceURL
is
null.MalformedURLException
- if serviceURL
does not conform to the syntax for an Abstract Service URL or
if it is not a valid name for a JMX Remote API service. A
JMXServiceURL
must begin with the string
"service:jmx:"
(case-insensitive). It must not
contain any characters that are not printable ASCII characters.public JMXServiceURL(String protocol, String host, int port) throws MalformedURLException
Constructs a JMXServiceURL
with the given protocol,
host, and port. This constructor is equivalent to
JMXServiceURL(protocol, host, port, null)
.
protocol
- the protocol part of the URL. If null, defaults
to jmxmp
.host
- the host part of the URL. If null, defaults to the
local host name, as determined by
InetAddress.getLocalHost().getHostName()
. If it
is a numeric IPv6 address, it can optionally be enclosed in
square brackets []
.port
- the port part of the URL.MalformedURLException
- if one of the parts is
syntactically incorrect, or if host
is null and it
is not possible to find the local host name, or if
port
is negative.public JMXServiceURL(String protocol, String host, int port, String urlPath) throws MalformedURLException
Constructs a JMXServiceURL
with the given parts.
protocol
- the protocol part of the URL. If null, defaults
to jmxmp
.host
- the host part of the URL. If null, defaults to the
local host name, as determined by
InetAddress.getLocalHost().getHostName()
. If it
is a numeric IPv6 address, it can optionally be enclosed in
square brackets []
.port
- the port part of the URL.urlPath
- the URL path part of the URL. If null, defaults to
the empty string.MalformedURLException
- if one of the parts is
syntactically incorrect, or if host
is null and it
is not possible to find the local host name, or if
port
is negative.public String getProtocol()
The protocol part of the Service URL.
public String getHost()
The host part of the Service URL. If the Service URL was
constructed with the constructor that takes a URL string
parameter, the result is the substring specifying the host in
that URL. If the Service URL was constructed with a
constructor that takes a separate host parameter, the result is
the string that was specified. If that string was null, the
result is
InetAddress.getLocalHost().getHostName()
.
In either case, if the host was specified using the
[...]
syntax for numeric IPv6 addresses, the
square brackets are not included in the return value here.
public int getPort()
The port of the Service URL. If no port was specified, the returned value is 0.
public String getURLPath()
The URL Path part of the Service URL. This is an empty
string, or a string beginning with a slash (/
), or
a string beginning with a semicolon (;
).
public String toString()
The string representation of this Service URL. If the value
returned by this method is supplied to the
JMXServiceURL
constructor, the resultant object is
equal to this one.
The host
part of the returned string
is the value returned by getHost()
. If that value
specifies a numeric IPv6 address, it is surrounded by square
brackets []
.
The port
part of the returned string
is the value returned by getPort()
in its shortest
decimal form. If the value is zero, it is omitted.
public boolean equals(Object obj)
Indicates whether some other object is equal to this one.
This method returns true if and only if obj
is an
instance of JMXServiceURL
whose getProtocol()
, getHost()
, getPort()
, and
getURLPath()
methods return the same values as for
this object. The values for getProtocol()
and getHost()
can differ in case without affecting equality.
equals
in class Object
obj
- the reference object with which to compare.true
if this object is the same as the
obj
argument; false
otherwise.Object.hashCode()
,
HashMap
public int hashCode()
Object
HashMap
.
The general contract of hashCode
is:
hashCode
method
must consistently return the same integer, provided no information
used in equals
comparisons on the object is modified.
This integer need not remain consistent from one execution of an
application to another execution of the same application.
equals(Object)
method, then calling the hashCode
method on each of
the two objects must produce the same integer result.
Object.equals(java.lang.Object)
method, then calling the hashCode
method on each of the
two objects must produce distinct integer results. However, the
programmer should be aware that producing distinct integer results
for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by
class Object
does return distinct integers for distinct
objects. (This is typically implemented by converting the internal
address of the object into an integer, but this implementation
technique is not required by the
Java™ programming language.)
hashCode
in class Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.