Package org.jgroups.stack
Class DiagnosticsHandler
- java.lang.Object
-
- org.jgroups.blocks.cs.ReceiverAdapter
-
- org.jgroups.stack.DiagnosticsHandler
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,Receiver
public class DiagnosticsHandler extends ReceiverAdapter implements java.io.Closeable
- Since:
- 3.0
- Author:
- Bela Ban
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceDiagnosticsHandler.ProbeHandler
-
Field Summary
Fields Modifier and Type Field Description protected java.net.InetAddressbind_addrprotected java.util.List<java.net.NetworkInterface>bind_interfacesprotected booleanenable_tcpprotected booleanenable_udpprotected booleanenabledprotected java.util.Set<DiagnosticsHandler.ProbeHandler>handlersprotected Loglogprotected java.net.InetAddressmcast_addrprotected java.lang.Stringpasscodeprotected intportprotected intport_rangeprotected java.util.function.Function<java.lang.Boolean,java.lang.String>print_headersprotected java.util.function.Function<java.lang.String,java.lang.Boolean>same_clusterprotected SocketFactorysocket_factoryprotected java.net.ServerSocketsrv_sockprotected Runnertcp_runnerstatic java.lang.StringTCP_THREAD_NAMEprotected ThreadFactorythread_factoryprotected intttlprotected java.net.MulticastSocketudp_mcast_sockprotected java.util.function.BiConsumer<java.net.SocketAddress,java.lang.String>udp_response_senderprotected Runnerudp_runnerstatic java.lang.StringUDP_THREAD_NAMEprotected java.net.DatagramSocketudp_ucast_sock
-
Constructor Summary
Constructors Constructor Description DiagnosticsHandler()Constructor used for standalone apps (without a JGroups stack)DiagnosticsHandler(Log log, SocketFactory socket_factory, ThreadFactory thread_factory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intauthorizeProbeRequest(byte[] request)Performs authorization on given byte arrayprotected voidbindToInterfaces(java.util.List<java.net.NetworkInterface> interfaces, java.net.MulticastSocket s)voidclose()DiagnosticsHandlerenableTcp(boolean f)DiagnosticsHandlerenableUdp(boolean f)java.net.InetAddressgetBindAddress()java.util.List<java.net.NetworkInterface>getBindInterfaces()java.net.SocketAddressgetLocalAddress()Returns the local datagram socket address (UDP) or the srv address (TCP)java.net.InetAddressgetMcastAddress()java.lang.StringgetPasscode()intgetPort()intgetPortRange()java.util.Set<DiagnosticsHandler.ProbeHandler>getProbeHandlers()intgetTtl()protected voidhandleDiagnosticProbe(java.net.SocketAddress sender, java.lang.String request, java.util.function.BiConsumer<java.net.SocketAddress,java.lang.String> rsp_sender)protected static booleanisCompatible(java.net.InetAddress addr, java.util.List<java.net.InterfaceAddress> addrs)Checks if there's any address in the address list that's compatible (same address family) to addrbooleanisEnabled()booleanisRunning()DiagnosticsHandlerprintHeaders(java.util.function.Function<java.lang.Boolean,java.lang.String> f)DiagnosticsHandlerregisterProbeHandler(DiagnosticsHandler.ProbeHandler handler)protected voidrunTCP()protected voidrunUDP()DiagnosticsHandlersameCluster(java.util.function.Function<java.lang.String,java.lang.Boolean> f)protected voidsendResponse(java.net.DatagramSocket sock, java.net.SocketAddress sender, byte[] buf)DiagnosticsHandlersetBindAddress(java.net.InetAddress a)DiagnosticsHandlersetBindInterfaces(java.util.List<java.net.NetworkInterface> l)DiagnosticsHandlersetEnabled(boolean f)DiagnosticsHandlersetMcastAddress(java.net.InetAddress a)DiagnosticsHandlersetPasscode(java.lang.String d)DiagnosticsHandlersetPort(int p)DiagnosticsHandlersetPortRange(int r)DiagnosticsHandlersetThreadNames()DiagnosticsHandlersetTtl(int d)DiagnosticsHandlerstart()protected DiagnosticsHandlerstartTCP()protected DiagnosticsHandlerstartUDP()DiagnosticsHandlerstop()booleantcpEnabled()booleanudpEnabled()DiagnosticsHandlerunregisterProbeHandler(DiagnosticsHandler.ProbeHandler handler)DiagnosticsHandlerunsetThreadNames()-
Methods inherited from class org.jgroups.blocks.cs.ReceiverAdapter
receive
-
-
-
-
Field Detail
-
UDP_THREAD_NAME
public static final java.lang.String UDP_THREAD_NAME
- See Also:
- Constant Field Values
-
TCP_THREAD_NAME
public static final java.lang.String TCP_THREAD_NAME
- See Also:
- Constant Field Values
-
enabled
protected boolean enabled
-
enable_udp
protected volatile boolean enable_udp
-
enable_tcp
protected volatile boolean enable_tcp
-
mcast_addr
protected java.net.InetAddress mcast_addr
-
port
protected int port
-
bind_addr
protected java.net.InetAddress bind_addr
-
port_range
protected int port_range
-
ttl
protected int ttl
-
bind_interfaces
protected java.util.List<java.net.NetworkInterface> bind_interfaces
-
passcode
protected java.lang.String passcode
-
srv_sock
protected java.net.ServerSocket srv_sock
-
udp_runner
protected Runner udp_runner
-
tcp_runner
protected Runner tcp_runner
-
udp_mcast_sock
protected java.net.MulticastSocket udp_mcast_sock
-
udp_ucast_sock
protected java.net.DatagramSocket udp_ucast_sock
-
handlers
protected final java.util.Set<DiagnosticsHandler.ProbeHandler> handlers
-
log
protected final Log log
-
socket_factory
protected final SocketFactory socket_factory
-
thread_factory
protected final ThreadFactory thread_factory
-
print_headers
protected java.util.function.Function<java.lang.Boolean,java.lang.String> print_headers
-
same_cluster
protected java.util.function.Function<java.lang.String,java.lang.Boolean> same_cluster
-
udp_response_sender
protected final java.util.function.BiConsumer<java.net.SocketAddress,java.lang.String> udp_response_sender
-
-
Constructor Detail
-
DiagnosticsHandler
public DiagnosticsHandler() throws java.lang.ExceptionConstructor used for standalone apps (without a JGroups stack)- Throws:
java.lang.Exception
-
DiagnosticsHandler
public DiagnosticsHandler(Log log, SocketFactory socket_factory, ThreadFactory thread_factory)
-
-
Method Detail
-
printHeaders
public DiagnosticsHandler printHeaders(java.util.function.Function<java.lang.Boolean,java.lang.String> f)
-
sameCluster
public DiagnosticsHandler sameCluster(java.util.function.Function<java.lang.String,java.lang.Boolean> f)
-
isEnabled
public boolean isEnabled()
-
setEnabled
public DiagnosticsHandler setEnabled(boolean f)
-
setMcastAddress
public DiagnosticsHandler setMcastAddress(java.net.InetAddress a)
-
getMcastAddress
public java.net.InetAddress getMcastAddress()
-
setBindAddress
public DiagnosticsHandler setBindAddress(java.net.InetAddress a)
-
getBindAddress
public java.net.InetAddress getBindAddress()
-
udpEnabled
public boolean udpEnabled()
-
enableUdp
public DiagnosticsHandler enableUdp(boolean f)
-
tcpEnabled
public boolean tcpEnabled()
-
enableTcp
public DiagnosticsHandler enableTcp(boolean f)
-
getPort
public int getPort()
-
setPort
public DiagnosticsHandler setPort(int p)
-
getPortRange
public int getPortRange()
-
setPortRange
public DiagnosticsHandler setPortRange(int r)
-
getTtl
public int getTtl()
-
setTtl
public DiagnosticsHandler setTtl(int d)
-
getPasscode
public java.lang.String getPasscode()
-
setPasscode
public DiagnosticsHandler setPasscode(java.lang.String d)
-
getBindInterfaces
public java.util.List<java.net.NetworkInterface> getBindInterfaces()
-
setBindInterfaces
public DiagnosticsHandler setBindInterfaces(java.util.List<java.net.NetworkInterface> l)
-
setThreadNames
public DiagnosticsHandler setThreadNames()
-
unsetThreadNames
public DiagnosticsHandler unsetThreadNames()
-
getProbeHandlers
public java.util.Set<DiagnosticsHandler.ProbeHandler> getProbeHandlers()
-
registerProbeHandler
public DiagnosticsHandler registerProbeHandler(DiagnosticsHandler.ProbeHandler handler)
-
unregisterProbeHandler
public DiagnosticsHandler unregisterProbeHandler(DiagnosticsHandler.ProbeHandler handler)
-
start
public DiagnosticsHandler start() throws java.lang.Exception
- Throws:
java.lang.Exception
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
stop
public DiagnosticsHandler stop()
-
isRunning
public boolean isRunning()
-
getLocalAddress
public java.net.SocketAddress getLocalAddress()
Returns the local datagram socket address (UDP) or the srv address (TCP)
-
runUDP
protected void runUDP()
-
runTCP
protected void runTCP()
-
startUDP
protected DiagnosticsHandler startUDP() throws java.lang.Exception
- Throws:
java.lang.Exception
-
startTCP
protected DiagnosticsHandler startTCP() throws java.lang.Exception
- Throws:
java.lang.Exception
-
handleDiagnosticProbe
protected void handleDiagnosticProbe(java.net.SocketAddress sender, java.lang.String request, java.util.function.BiConsumer<java.net.SocketAddress,java.lang.String> rsp_sender)
-
authorizeProbeRequest
protected int authorizeProbeRequest(byte[] request) throws java.lang.ExceptionPerforms authorization on given byte array- Parameters:
request- to authorize- Returns:
- offset in DatagramPacket where request payload starts
- Throws:
java.lang.Exception- thrown if passcode received from client does not match set passcode
-
sendResponse
protected void sendResponse(java.net.DatagramSocket sock, java.net.SocketAddress sender, byte[] buf)
-
bindToInterfaces
protected void bindToInterfaces(java.util.List<java.net.NetworkInterface> interfaces, java.net.MulticastSocket s)
-
isCompatible
protected static boolean isCompatible(java.net.InetAddress addr, java.util.List<java.net.InterfaceAddress> addrs)Checks if there's any address in the address list that's compatible (same address family) to addr
-
-