@Override public InetSocketAddress getBindAddress() { return binding.getSocketAddress(); }
@Override public String getSocketBindingName() { return binding.getName(); }
protected void unregisterBinding() { final SocketBinding binding = this.binding.getValue(); binding.getSocketBindings().getNamedRegistry().unregisterBinding(binding.getName()); }
protected void registerBinding() { binding.getValue().getSocketBindings().getNamedRegistry().registerBinding(new ListenerBinding(binding.getValue())); }
@Override public InetSocketAddress getRemoteAddress() { // Both host and port may not be null in the model, no need to validate here // Don't do resolving here, let mod_cluster deal with it return new InetSocketAddress(binding.getUnresolvedDestinationAddress(), binding.getDestinationPort()); }
@Override public Socket createSocket(String name, InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getSocketFactory().createSocket(socketBindingName, address, port, localAddress, localPort); }
@Override public ServerSocket createServerSocket(String name, int port) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getServerSocketFactory().createServerSocket(socketBindingName, port); }
@Override public InetSocketAddress getLocalAddress() { if (binding.getOptionalSourceAddress() != null) { return new InetSocketAddress(binding.getOptionalSourceAddress(), binding.getAbsoluteSourcePort() == null ? 0 : binding.getAbsoluteSourcePort()); } else if (binding.getAbsoluteSourcePort() != null) { // Bind to port only if source address is not configured return new InetSocketAddress(binding.getAbsoluteSourcePort()); } // No binding configured so don't bind return null; }
@Override public DatagramSocket createDatagramSocket(String name) throws SocketException { String socketBindingName = this.getSocketBindingName(name); return this.manager.createDatagramSocket(socketBindingName); }
@Override public MulticastSocket createMulticastSocket(String name) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.createMulticastSocket(socketBindingName); }
@Override public Socket createSocket(String name, InetAddress address, int port) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getSocketFactory().createSocket(socketBindingName, address, port); }
@Override public ServerSocket createServerSocket(String name) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getServerSocketFactory().createServerSocket(socketBindingName); }
private String getSocketBindingName(String name) { SocketBinding socketBinding = this.socketBindings.get(name); return (socketBinding != null) ? socketBinding.getName() : name; }
@Override public DatagramSocket createDatagramSocket(String name, SocketAddress address) throws SocketException { if (address == null) return this.createDatagramSocket(name); String socketBindingName = this.getSocketBindingName(name); return this.manager.createDatagramSocket(socketBindingName, address); }
@Override public MulticastSocket createMulticastSocket(String name, SocketAddress address) throws IOException { if (address == null) return this.createMulticastSocket(name); String socketBindingName = this.getSocketBindingName(name); return this.manager.createMulticastSocket(socketBindingName, address); }
@Override public Socket createSocket(String name, String host, int port, InetAddress localHost, int localPort) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getSocketFactory().createSocket(socketBindingName, host, port, localHost, localPort); }
@Override public ServerSocket createServerSocket(String name, int port, int backlog) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getServerSocketFactory().createServerSocket(socketBindingName, port, backlog); }
@Override public Socket createSocket(String name) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getSocketFactory().createSocket(socketBindingName); }
@Override public ServerSocket createServerSocket(String name, int port, int backlog, InetAddress ifAddress) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getServerSocketFactory().createServerSocket(socketBindingName, port, backlog, ifAddress); }
@Override public Socket createSocket(String name, String host, int port) throws IOException { String socketBindingName = this.getSocketBindingName(name); return this.manager.getSocketFactory().createSocket(socketBindingName, host, port); }