public class org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent extends java.lang.Object implements org.apache.activemq.transport.discovery.DiscoveryAgent, java.lang.Runnable
{
public static final java.lang.String DEFAULT_DISCOVERY_URI_STRING;
public static final java.lang.String DEFAULT_HOST_STR;
public static final java.lang.String DEFAULT_HOST_IP;
public static final int DEFAULT_PORT;
private static final org.slf4j.Logger LOG;
private static final java.lang.String TYPE_SUFFIX;
private static final java.lang.String ALIVE;
private static final java.lang.String DEAD;
private static final java.lang.String DELIMITER;
private static final int BUFF_SIZE;
private static final int DEFAULT_IDLE_TIME;
private static final int HEARTBEAT_MISS_BEFORE_DEATH;
private long initialReconnectDelay;
private long maxReconnectDelay;
private long backOffMultiplier;
private boolean useExponentialBackOff;
private int maxReconnectAttempts;
private int timeToLive;
private boolean loopBackMode;
private java.util.Map brokersByService;
private java.lang.String group;
private java.net.URI discoveryURI;
private java.net.InetAddress inetAddress;
private java.net.SocketAddress sockAddress;
private org.apache.activemq.transport.discovery.DiscoveryListener discoveryListener;
private java.lang.String selfService;
private java.net.MulticastSocket mcast;
private java.lang.Thread runner;
private long keepAliveInterval;
private java.lang.String mcInterface;
private java.lang.String mcNetworkInterface;
private java.lang.String mcJoinNetworkInterface;
private long lastAdvertizeTime;
private java.util.concurrent.atomic.AtomicBoolean started;
private boolean reportAdvertizeFailed;
private java.util.concurrent.ExecutorService executor;
public void <init>()
{
java.util.concurrent.ConcurrentHashMap v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long initialReconnectDelay> = 5000L;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long maxReconnectDelay> = 30000L;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long backOffMultiplier> = 2L;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: int timeToLive> = 1;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.Map brokersByService> = v;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String group> = "default";
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long keepAliveInterval> = 500L;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started> = v;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean reportAdvertizeFailed> = 1;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService executor> = null;
return;
}
public void setDiscoveryListener(org.apache.activemq.transport.discovery.DiscoveryListener)
{
org.apache.activemq.transport.discovery.DiscoveryListener v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: org.apache.activemq.transport.discovery.DiscoveryListener;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.apache.activemq.transport.discovery.DiscoveryListener discoveryListener> = v;
return;
}
public void registerService(java.lang.String) throws java.io.IOException
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService> = v;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void doAdvertizeSelf()>();
label:
return;
}
public boolean isLoopBackMode()
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean loopBackMode>;
return v;
}
public void setLoopBackMode(boolean)
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: boolean;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean loopBackMode> = v;
return;
}
public int getTimeToLive()
{
int v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: int timeToLive>;
return v;
}
public void setTimeToLive(int)
{
int v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: int;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: int timeToLive> = v;
return;
}
public java.net.URI getDiscoveryURI()
{
java.net.URI v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.URI discoveryURI>;
return v;
}
public void setDiscoveryURI(java.net.URI)
{
java.net.URI v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.net.URI;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.URI discoveryURI> = v;
return;
}
public long getKeepAliveInterval()
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long keepAliveInterval>;
return v;
}
public void setKeepAliveInterval(long)
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: long;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long keepAliveInterval> = v;
return;
}
public void setInterface(java.lang.String)
{
java.lang.String v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcInterface> = v;
return;
}
public void setNetworkInterface(java.lang.String)
{
java.lang.String v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcNetworkInterface> = v;
return;
}
public void setJoinNetworkInterface(java.lang.String)
{
java.lang.String v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcJoinNetworkInterface> = v;
return;
}
public void start() throws java.lang.Exception
{
java.net.InetAddress v, v, v, v;
java.lang.Thread v, v, v, v, v;
java.net.NetworkInterface v, v, v;
java.lang.StringBuilder v, v, v;
long v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.io.IOException v;
java.net.SocketAddress v;
java.net.URI v, v, v, v, v;
boolean v, v, v, v, v, v;
java.net.InetSocketAddress v;
java.util.concurrent.atomic.AtomicBoolean v;
int v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.net.MulticastSocket v, v, v, v, v, v, v, v, v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String group>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String group>;
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 0 goto label;
label:
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("You must specify a group to discover");
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String getType()>();
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".");
if v != 0 goto label;
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The type \'\u0001\' should end with \'.\' to be a valid Discovery type");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(".");
virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.URI discoveryURI>;
if v != null goto label;
v = new java.net.URI;
specialinvoke v.<java.net.URI: void <init>(java.lang.String)>("multicast://239.255.2.3:6155");
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.URI discoveryURI> = v;
label:
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.URI discoveryURI>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.URI)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start - discoveryURI = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.URI discoveryURI>;
v = virtualinvoke v.<java.net.URI: java.lang.String getHost()>();
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.URI discoveryURI>;
v = virtualinvoke v.<java.net.URI: int getPort()>();
v = "default";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String DEFAULT_HOST_IP>;
label:
if v >= 0 goto label;
v = 6155;
label:
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start - myHost = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start - myPort = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String group>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start - group  = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcInterface>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start - interface  = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcNetworkInterface>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start - network interface  = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcJoinNetworkInterface>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("start - join network interface  = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = staticinvoke <java.net.InetAddress: java.net.InetAddress getByName(java.lang.String)>(v);
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.InetAddress inetAddress> = v;
v = new java.net.InetSocketAddress;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.InetAddress inetAddress>;
specialinvoke v.<java.net.InetSocketAddress: void <init>(java.net.InetAddress,int)>(v, v);
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.SocketAddress sockAddress> = v;
v = new java.net.MulticastSocket;
specialinvoke v.<java.net.MulticastSocket: void <init>(int)>(v);
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast> = v;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean loopBackMode>;
virtualinvoke v.<java.net.MulticastSocket: void setLoopbackMode(boolean)>(v);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: int getTimeToLive()>();
virtualinvoke v.<java.net.MulticastSocket: void setTimeToLive(int)>(v);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcJoinNetworkInterface>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.SocketAddress sockAddress>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcJoinNetworkInterface>;
v = staticinvoke <java.net.NetworkInterface: java.net.NetworkInterface getByName(java.lang.String)>(v);
virtualinvoke v.<java.net.MulticastSocket: void joinGroup(java.net.SocketAddress,java.net.NetworkInterface)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.NetworkInterface findNetworkInterface()>();
virtualinvoke v.<java.net.MulticastSocket: void setNetworkInterface(java.net.NetworkInterface)>(v);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.InetAddress inetAddress>;
virtualinvoke v.<java.net.MulticastSocket: void joinGroup(java.net.InetAddress)>(v);
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long keepAliveInterval>;
virtualinvoke v.<java.net.MulticastSocket: void setSoTimeout(int)>(v);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcInterface>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcInterface>;
v = staticinvoke <java.net.InetAddress: java.net.InetAddress getByName(java.lang.String)>(v);
virtualinvoke v.<java.net.MulticastSocket: void setInterface(java.net.InetAddress)>(v);
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcNetworkInterface>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String mcNetworkInterface>;
v = staticinvoke <java.net.NetworkInterface: java.net.NetworkInterface getByName(java.lang.String)>(v);
virtualinvoke v.<java.net.MulticastSocket: void setNetworkInterface(java.net.NetworkInterface)>(v);
label:
v = new java.lang.Thread;
specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable)>(v);
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.Thread runner> = v;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.Thread runner>;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String toString()>();
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.Thread runner>;
v = virtualinvoke v.<java.lang.Thread: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
virtualinvoke v.<java.lang.Thread: void setName(java.lang.String)>(v);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.Thread runner>;
virtualinvoke v.<java.lang.Thread: void setDaemon(boolean)>(1);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.Thread runner>;
virtualinvoke v.<java.lang.Thread: void start()>();
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void doAdvertizeSelf()>();
label:
return;
}
private java.net.NetworkInterface findNetworkInterface() throws java.net.SocketException
{
java.util.Enumeration v;
java.util.ArrayList v;
java.net.InetAddress v, v;
java.net.SocketException v;
int v, v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v, v;
java.util.Iterator v;
java.util.List v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.lang.Object v, v, v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = staticinvoke <java.net.NetworkInterface: java.util.Enumeration getNetworkInterfaces()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
if v == null goto label;
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
label:
v = virtualinvoke v.<java.net.NetworkInterface: boolean supportsMulticast()>();
if v == 0 goto label;
v = virtualinvoke v.<java.net.NetworkInterface: boolean isUp()>();
if v == 0 goto label;
v = virtualinvoke v.<java.net.NetworkInterface: java.util.List getInterfaceAddresses()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
if v == null goto label;
v = virtualinvoke v.<java.net.InterfaceAddress: java.net.InetAddress getAddress()>();
v = v instanceof java.net.Inet4Address;
if v == 0 goto label;
v = virtualinvoke v.<java.net.InterfaceAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetAddress: boolean isLoopbackAddress()>();
if v != 0 goto label;
v = virtualinvoke v.<java.net.NetworkInterface: java.lang.String getDisplayName()>();
if v == null goto label;
v = virtualinvoke v.<java.net.NetworkInterface: java.lang.String getDisplayName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("vnic");
if v != 0 goto label;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v := @caughtexception;
goto label;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
label:
return v;
catch java.net.SocketException from label to label with label;
}
public void stop() throws java.lang.Exception
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.net.MulticastSocket v, v;
java.lang.Thread v, v;
java.util.concurrent.ExecutorService v, v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(1, 0);
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void doAdvertizeSelf()>();
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
virtualinvoke v.<java.net.MulticastSocket: void close()>();
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.Thread runner>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.Thread runner>;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService executor>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService executor>;
staticinvoke <org.apache.activemq.util.ThreadPoolUtils: java.util.List shutdownNow(java.util.concurrent.ExecutorService)>(v);
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService executor> = null;
label:
return;
}
public java.lang.String getType()
{
java.lang.String v, v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String group>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.ActiveMQ-4.");
return v;
}
public void run()
{
byte[] v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
java.net.SocketTimeoutException v;
int v, v, v, v;
java.lang.String v, v;
boolean v, v;
org.slf4j.Logger v;
java.io.IOException v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.net.MulticastSocket v;
java.net.DatagramPacket v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = newarray (byte)[8192];
v = new java.net.DatagramPacket;
v = lengthof v;
specialinvoke v.<java.net.DatagramPacket: void <init>(byte[],int,int)>(v, 0, v);
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void doTimeKeepingServices()>();
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
virtualinvoke v.<java.net.MulticastSocket: void receive(java.net.DatagramPacket)>(v);
v = virtualinvoke v.<java.net.DatagramPacket: int getLength()>();
if v <= 0 goto label;
v = new java.lang.String;
v = virtualinvoke v.<java.net.DatagramPacket: byte[] getData()>();
v = virtualinvoke v.<java.net.DatagramPacket: int getOffset()>();
v = virtualinvoke v.<java.net.DatagramPacket: int getLength()>();
specialinvoke v.<java.lang.String: void <init>(byte[],int,int)>(v, v, v);
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void processData(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.IOException)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to process packet: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
goto label;
label:
return;
catch java.net.SocketTimeoutException from label to label with label;
catch java.io.IOException from label to label with label;
}
private void processData(java.lang.String)
{
org.apache.activemq.transport.discovery.DiscoveryListener v;
int v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.apache.activemq.transport.discovery.DiscoveryListener discoveryListener>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String getType()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String getType()>();
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("alive.");
if v == 0 goto label;
v = "alive.";
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String getBrokerName(java.lang.String)>(v);
v = "alive.";
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + v;
v = v + 2;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void processAlive(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = "dead.";
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String getBrokerName(java.lang.String)>(v);
v = "dead.";
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + v;
v = v + 2;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void processDead(java.lang.String)>(v);
label:
return;
}
private void doTimeKeepingServices()
{
java.util.concurrent.atomic.AtomicBoolean v;
long v, v, v, v, v;
byte v, v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long lastAdvertizeTime>;
v = v cmp v;
if v < 0 goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long keepAliveInterval>;
v = v - v;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long lastAdvertizeTime>;
v = v cmp v;
if v <= 0 goto label;
label:
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void doAdvertizeSelf()>();
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long lastAdvertizeTime> = v;
label:
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void doExpireOldServices()>();
label:
return;
}
private void doAdvertizeSelf()
{
byte[] v;
java.net.SocketAddress v;
java.util.concurrent.atomic.AtomicBoolean v;
java.net.InetAddress v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v;
org.slf4j.Logger v, v;
java.io.IOException v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.net.MulticastSocket v, v;
java.net.DatagramPacket v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String getType()>();
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = "alive.";
goto label;
label:
v = "dead.";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001%localhost%");
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
label:
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
v = new java.net.DatagramPacket;
v = lengthof v;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.SocketAddress sockAddress>;
specialinvoke v.<java.net.DatagramPacket: void <init>(byte[],int,int,java.net.SocketAddress)>(v, 0, v, v);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
virtualinvoke v.<java.net.MulticastSocket: void send(java.net.DatagramPacket)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean reportAdvertizeFailed>;
if v == 0 goto label;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean reportAdvertizeFailed> = 0;
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to advertise our service: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
v = "Operation not permitted";
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.net.MulticastSocket mcast>;
v = virtualinvoke v.<java.net.MulticastSocket: java.net.InetAddress getLocalAddress()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.InetAddress)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The \'Operation not permitted\' error has been know to be caused by improper firewall/network setup.  Please make sure that the OS is properly configured to allow multicast traffic over: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
return;
catch java.io.IOException from label to label with label;
}
private void processAlive(java.lang.String, java.lang.String)
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.util.Map v, v;
java.lang.Object v;
java.lang.String v, v, v, v;
boolean v, v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.Map brokersByService>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData: void <init>(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent,java.lang.String,java.lang.String)>(v, v, v);
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.Map brokersByService>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void fireServiceAddEvent(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)>(v);
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void doAdvertizeSelf()>();
goto label;
label:
virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData: void updateHeartBeat()>();
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData: boolean doRecovery()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void fireServiceAddEvent(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)>(v);
label:
return;
}
private void processDead(java.lang.String)
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.util.Map v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.Map brokersByService>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData: boolean isFailed()>();
if v != 0 goto label;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void fireServiceRemovedEvent(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)>(v);
label:
return;
}
private void doExpireOldServices()
{
java.util.Iterator v;
java.util.Collection v;
long v, v, v, v, v;
byte v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.util.Map v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long keepAliveInterval>;
v = v * 10L;
v = v - v;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.Map brokersByService>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData: long getLastHeartBeat()>();
v = v cmp v;
if v >= 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData: java.lang.String getServiceName()>();
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void processDead(java.lang.String)>(v);
goto label;
label:
return;
}
private java.lang.String getBrokerName(java.lang.String)
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
int v, v, v, v;
java.lang.String v, v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v = null;
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("%");
if v < 0 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String,int)>("%", v);
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
label:
return v;
}
public void serviceFailed(org.apache.activemq.command.DiscoveryEvent) throws java.io.IOException
{
org.apache.activemq.command.DiscoveryEvent v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.util.Map v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: org.apache.activemq.command.DiscoveryEvent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.Map brokersByService>;
v = virtualinvoke v.<org.apache.activemq.command.DiscoveryEvent: java.lang.String getServiceName()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData: boolean markFailed()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: void fireServiceRemovedEvent(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)>(v);
label:
return;
}
private void fireServiceRemovedEvent(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$1 v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.transport.discovery.DiscoveryListener v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.apache.activemq.transport.discovery.DiscoveryListener discoveryListener>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService getExecutor()>();
v = new org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$1;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$1: void <init>(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent,org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
private void fireServiceAddEvent(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$2 v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.transport.discovery.DiscoveryListener v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.apache.activemq.transport.discovery.DiscoveryListener discoveryListener>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService getExecutor()>();
v = new org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$2;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$2: void <init>(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent,org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$RemoteBrokerData)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
private java.util.concurrent.ExecutorService getExecutor()
{
java.util.concurrent.ThreadPoolExecutor v;
java.util.concurrent.LinkedBlockingQueue v;
java.util.concurrent.TimeUnit v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$3 v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.lang.String v, v;
java.util.concurrent.ExecutorService v, v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService executor>;
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Notifier-\u0001");
v = new java.util.concurrent.ThreadPoolExecutor;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = new java.util.concurrent.LinkedBlockingQueue;
specialinvoke v.<java.util.concurrent.LinkedBlockingQueue: void <init>()>();
v = new org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$3;
specialinvoke v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$3: void <init>(org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent,java.lang.String)>(v, v);
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor: void <init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)>(1, 1, 30L, v, v, v);
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService executor> = v;
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.util.concurrent.ExecutorService executor>;
return v;
}
public long getBackOffMultiplier()
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long backOffMultiplier>;
return v;
}
public void setBackOffMultiplier(long)
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: long;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long backOffMultiplier> = v;
return;
}
public long getInitialReconnectDelay()
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long initialReconnectDelay>;
return v;
}
public void setInitialReconnectDelay(long)
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: long;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long initialReconnectDelay> = v;
return;
}
public int getMaxReconnectAttempts()
{
int v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: int maxReconnectAttempts>;
return v;
}
public void setMaxReconnectAttempts(int)
{
int v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: int;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: int maxReconnectAttempts> = v;
return;
}
public long getMaxReconnectDelay()
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long maxReconnectDelay>;
return v;
}
public void setMaxReconnectDelay(long)
{
long v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: long;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: long maxReconnectDelay> = v;
return;
}
public boolean isUseExponentialBackOff()
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean useExponentialBackOff>;
return v;
}
public void setUseExponentialBackOff(boolean)
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
boolean v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: boolean;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: boolean useExponentialBackOff> = v;
return;
}
public void setGroup(java.lang.String)
{
java.lang.String v;
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String group> = v;
return;
}
public java.lang.String toString()
{
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent v;
java.lang.String v, v, v, v;
org.apache.activemq.transport.discovery.DiscoveryListener v;
v := @this: org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService>;
if v == null goto label;
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String selfService>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("advertise:\u0001");
goto label;
label:
v = v.<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.apache.activemq.transport.discovery.DiscoveryListener discoveryListener>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.transport.discovery.DiscoveryListener)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("listener:\u0001");
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("MulticastDiscoveryAgent-\u0001");
return v;
}
static void <clinit>()
{
java.lang.String v;
org.slf4j.Logger v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("activemq.partition.discovery", "239.255.2.3");
<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: java.lang.String DEFAULT_HOST_IP> = v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent;");
<org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent: org.slf4j.Logger LOG> = v;
return;
}
}