| 
					
				 | 
			
			
				@@ -0,0 +1,257 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.its.common.cluster.utils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.Channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.EventLoopGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.epoll.Epoll; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.epoll.EpollEventLoopGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.epoll.EpollServerSocketChannel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.epoll.EpollSocketChannel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.nio.NioEventLoopGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.socket.ServerSocketChannel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.socket.SocketChannel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.socket.nio.NioServerSocketChannel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.channel.socket.nio.NioSocketChannel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.netty.util.concurrent.DefaultThreadFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.net.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Enumeration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class ClusterUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static final String OS_NAME = System.getProperty("os.name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static boolean isLinuxPlatform = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static boolean isWindowsPlatform = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ClusterUtils() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String getAddress(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String localIp = "local-unknown"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String remoteIp = "remote-unknown"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int localPort = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int remotePort = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress localAddr = (InetSocketAddress)ch.localAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (localAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            localIp = localAddr.getAddress().getHostAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            localPort = localAddr.getPort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress remoteAddr = (InetSocketAddress)ch.remoteAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (remoteAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            remoteIp = remoteAddr.getAddress().getHostAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            remotePort = remoteAddr.getPort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return "[Local #(" + localIp + ":" + localPort + ") Remote #(" + remoteIp + ":" + remotePort + ")]"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String getRemoteAddress(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String ip = getRemoteIpAddress(ch); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int port = getRemotePort(ch); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return "[Remote #(" + ip + ":" + port + ")]"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String getLocalAddress(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String ip = getLocalIpAddress(ch); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int port = getLocalPort(ch); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return "[Local #(" + ip + ":" + port + ")]"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String getRemoteIpAddress(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String ip = "255.255.255.255"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress inetAddr = (InetSocketAddress)ch.remoteAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (inetAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ip = inetAddr.getAddress().getHostAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ip; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static long getRemoteIpAddressToLong(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String[] ipAddressInArray = getRemoteIpAddress(ch).split("\\."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        long result = 0L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(int i = 0; i < ipAddressInArray.length; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int power = 3 - i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int ip = Integer.parseInt(ipAddressInArray[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result += (long)((double)ip * Math.pow((double)256.0F, (double)power)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static int getRemotePort(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int port = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress inetAddr = (InetSocketAddress)ch.remoteAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (inetAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            port = inetAddr.getPort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return port; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String getLocalIpAddress(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String ip = "127.0.0.1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress inetAddr = (InetSocketAddress)ch.localAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (inetAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ip = inetAddr.getAddress().getHostAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ip; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static int getLocalPort(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int port = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress inetAddr = (InetSocketAddress)ch.localAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (inetAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            port = inetAddr.getPort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return port; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static boolean isEpollAvailable() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Epoll.isAvailable(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static EventLoopGroup newEventLoopGroup(int nThreads, String threadPoolName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (isEpollAvailable()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return threadPoolName.isEmpty() ? new EpollEventLoopGroup(nThreads) : new EpollEventLoopGroup(nThreads, new DefaultThreadFactory("epo" + threadPoolName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return threadPoolName.isEmpty() ? new NioEventLoopGroup(nThreads) : new NioEventLoopGroup(nThreads, new DefaultThreadFactory("nio" + threadPoolName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static Class<? extends SocketChannel> getSocketChannel() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return isEpollAvailable() ? EpollSocketChannel.class : NioSocketChannel.class; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static Class<? extends ServerSocketChannel> getServerSocketChannel() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return isEpollAvailable() ? EpollServerSocketChannel.class : NioServerSocketChannel.class; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String getTcpAddress(Channel ch) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String localIp = "local-unknown"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String remoteIp = "remote-unknown"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int localPort = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int remotePort = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress localAddr = (InetSocketAddress)ch.localAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (localAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            localIp = localAddr.getAddress().getHostAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            localPort = localAddr.getPort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress remoteAddr = (InetSocketAddress)ch.remoteAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (remoteAddr != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            remoteIp = remoteAddr.getAddress().getHostAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            remotePort = remoteAddr.getPort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return "[Local #(" + localIp + ":" + localPort + ") Remote #(" + remoteIp + ":" + remotePort + ")]"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String getLocalAddress() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Enumeration<NetworkInterface> enumeration = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            enumeration = NetworkInterface.getNetworkInterfaces(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (SocketException var7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ArrayList<String> ipv4Result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ArrayList<String> ipv6Result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while(enumeration.hasMoreElements()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            NetworkInterface networkInterface = (NetworkInterface)enumeration.nextElement(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Enumeration<InetAddress> en = networkInterface.getInetAddresses(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while(en.hasMoreElements()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                InetAddress address = (InetAddress)en.nextElement(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!address.isLoopbackAddress()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (address instanceof Inet6Address) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ipv6Result.add(normalizeHostAddress(address)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ipv4Result.add(normalizeHostAddress(address)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!ipv4Result.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(String ip : ipv4Result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!ip.startsWith("127.0") && !ip.startsWith("192.168")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return ip; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return (String)ipv4Result.get(ipv4Result.size() - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (!ipv6Result.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return (String)ipv6Result.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            InetAddress localHost; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                localHost = InetAddress.getLocalHost(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (UnknownHostException var6) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return normalizeHostAddress(localHost); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String normalizeHostAddress(InetAddress localHost) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return localHost instanceof Inet6Address ? "[" + localHost.getHostAddress() + "]" : localHost.getHostAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static SocketAddress string2SocketAddress(String addr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String[] s = addr.split(":"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress isa = new InetSocketAddress(s[0], Integer.parseInt(s[1])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return isa; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String socketAddress2String(SocketAddress addr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StringBuilder sb = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        InetSocketAddress inetSocketAddress = (InetSocketAddress)addr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sb.append(inetSocketAddress.getAddress().getHostAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sb.append(":"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sb.append(inetSocketAddress.getPort()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return sb.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String parseChannelRemoteAddr(Channel channel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (null == channel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SocketAddress remote = channel.remoteAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String addr = remote != null ? remote.toString() : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (addr.length() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int index = addr.lastIndexOf("/"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return index >= 0 ? addr.substring(index + 1) : addr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String parseSocketAddressAddr(SocketAddress socketAddress) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (socketAddress != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String addr = socketAddress.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (addr.length() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return addr.startsWith("/") ? addr.substring(1) : addr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    static { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (OS_NAME != null && OS_NAME.toLowerCase().contains("linux")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isLinuxPlatform = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (OS_NAME != null && OS_NAME.toLowerCase().contains("windows")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isWindowsPlatform = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |