public class org.apache.cassandra.utils.Mx4jTool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.utils.Mx4jTool
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 33
            ldc Lorg/apache/cassandra/utils/Mx4jTool;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.utils.Mx4jTool.logger:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.Mx4jTool this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.utils.Mx4jTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/Mx4jTool;

  public static boolean maybeLoad();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=0
         0: .line 43
            getstatic org.apache.cassandra.utils.Mx4jTool.logger:Lorg/slf4j/Logger;
            ldc "Will try to load mx4j now, if it's in the classpath"
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
         1: .line 44
            getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
            astore 0 /* mbs */
        start local 0 // org.apache.cassandra.utils.MBeanWrapper mbs
         2: .line 45
            new javax.management.ObjectName
            dup
            ldc "Server:name=XSLTProcessor"
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 1 /* processorName */
        start local 1 // javax.management.ObjectName processorName
         3: .line 47
            ldc "mx4j.tools.adaptor.http.HttpAdaptor"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* httpAdaptorClass */
        start local 2 // java.lang.Class httpAdaptorClass
         4: .line 48
            aload 2 /* httpAdaptorClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            astore 3 /* httpAdaptor */
        start local 3 // java.lang.Object httpAdaptor
         5: .line 49
            aload 2 /* httpAdaptorClass */
            ldc "setHost"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            aload 3 /* httpAdaptor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            invokestatic org.apache.cassandra.utils.Mx4jTool.getAddress:()Ljava/lang/String;
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 50
            aload 2 /* httpAdaptorClass */
            ldc "setPort"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            aload 3 /* httpAdaptor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            invokestatic org.apache.cassandra.utils.Mx4jTool.getPort:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 52
            new javax.management.ObjectName
            dup
            ldc "system:name=http"
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 4 /* httpName */
        start local 4 // javax.management.ObjectName httpName
         8: .line 53
            aload 0 /* mbs */
            aload 3 /* httpAdaptor */
            aload 4 /* httpName */
            invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
         9: .line 55
            ldc "mx4j.tools.adaptor.http.XSLTProcessor"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* xsltProcessorClass */
        start local 5 // java.lang.Class xsltProcessorClass
        10: .line 56
            aload 5 /* xsltProcessorClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            astore 6 /* xsltProcessor */
        start local 6 // java.lang.Object xsltProcessor
        11: .line 57
            aload 2 /* httpAdaptorClass */
            ldc "setProcessor"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc "mx4j.tools.adaptor.http.ProcessorMBean"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        12: .line 58
            aload 3 /* httpAdaptor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* xsltProcessor */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 59
            aload 0 /* mbs */
            aload 6 /* xsltProcessor */
            aload 1 /* processorName */
            invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
        14: .line 60
            aload 2 /* httpAdaptorClass */
            ldc "start"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            aload 3 /* httpAdaptor */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 61
            getstatic org.apache.cassandra.utils.Mx4jTool.logger:Lorg/slf4j/Logger;
            ldc "mx4j successfuly loaded"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        16: .line 62
            iconst_1
            ireturn
        end local 6 // java.lang.Object xsltProcessor
        end local 5 // java.lang.Class xsltProcessorClass
        end local 4 // javax.management.ObjectName httpName
        end local 3 // java.lang.Object httpAdaptor
        end local 2 // java.lang.Class httpAdaptorClass
        end local 1 // javax.management.ObjectName processorName
        end local 0 // org.apache.cassandra.utils.MBeanWrapper mbs
        17: .line 64
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        18: .line 66
            getstatic org.apache.cassandra.utils.Mx4jTool.logger:Lorg/slf4j/Logger;
            ldc "Will not load MX4J, mx4j-tools.jar is not in the classpath"
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
            goto 21
        19: .line 68
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* e */
        start local 0 // java.lang.Exception e
        20: .line 70
            getstatic org.apache.cassandra.utils.Mx4jTool.logger:Lorg/slf4j/Logger;
            ldc "Could not start register mbean in JMX"
            aload 0 /* e */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 0 // java.lang.Exception e
        21: .line 72
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            2   17     0                 mbs  Lorg/apache/cassandra/utils/MBeanWrapper;
            3   17     1       processorName  Ljavax/management/ObjectName;
            4   17     2    httpAdaptorClass  Ljava/lang/Class<*>;
            5   17     3         httpAdaptor  Ljava/lang/Object;
            8   17     4            httpName  Ljavax/management/ObjectName;
           10   17     5  xsltProcessorClass  Ljava/lang/Class<*>;
           11   17     6       xsltProcessor  Ljava/lang/Object;
           20   21     0                   e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    16      17  Class java.lang.ClassNotFoundException
           0    16      19  Class java.lang.Exception

  private static java.lang.String getAddress();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 77
            ldc "mx4jaddress"
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int getPort();
    descriptor: ()I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 82
            sipush 8081
            istore 0 /* port */
        start local 0 // int port
         1: .line 83
            ldc "mx4jport"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* sPort */
        start local 1 // java.lang.String sPort
         2: .line 84
            aload 1 /* sPort */
            ifnull 4
            aload 1 /* sPort */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 86
            aload 1 /* sPort */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 0 /* port */
         4: .line 88
      StackMap locals: int java.lang.String
      StackMap stack:
            iload 0 /* port */
            ireturn
        end local 1 // java.lang.String sPort
        end local 0 // int port
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    5     0   port  I
            2    5     1  sPort  Ljava/lang/String;
}
SourceFile: "Mx4jTool.java"