org.infinispan.cli.connection.jmx.rmi.JMXRMIUrl Maven / Gradle / Ivy
package org.infinispan.cli.connection.jmx.rmi;
import static org.infinispan.cli.util.Utils.nullIfEmpty;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.infinispan.cli.connection.jmx.AbstractJMXUrl;
public class JMXRMIUrl extends AbstractJMXUrl {
private static final Pattern JMX_URL = Pattern.compile("^(?:(?![^:@]+:[^:@/]*@)(jmx):)?(?://)?((?:(([^:@]*):?([^:@]*))?@)?(\\[[0-9A-Fa-f:]+\\]|[^:/?#]*)(?::(\\d*))?)(?:/([^/]*)(?:/(.*))?)?");
public JMXRMIUrl(String connectionString) {
Matcher matcher = JMX_URL.matcher(connectionString);
if (!matcher.matches()) {
throw new IllegalArgumentException(connectionString);
}
username = nullIfEmpty(matcher.group(4));
password = nullIfEmpty(matcher.group(5));
hostname = nullIfEmpty(matcher.group(6));
port = Integer.parseInt(matcher.group(7));
container = nullIfEmpty(matcher.group(8));
cache = nullIfEmpty(matcher.group(9));
}
@Override
public String getJMXServiceURL() {
return "service:jmx:rmi:///jndi/rmi://" + hostname + ":" + port + "/jmxrmi";
}
@Override
public String toString() {
return "jmx://" + (username == null ? "" : username + "@") + hostname + ":" + port;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy