All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.cli.connection.jmx.rmi.JMXRMIUrl Maven / Gradle / Ivy

There is a newer version: 9.1.7.Final
Show newest version
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