All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.remoting.socketfactory.CreationListenerSocketFactory Maven / Gradle / Ivy

There is a newer version: 5.0.29.Final
Show newest version
/*
* JBoss, Home of Professional Open Source
* Copyright 2005, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.remoting.socketfactory;

import java.io.IOException;
import java.io.Serializable;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.net.SocketFactory;
import javax.net.ssl.SSLSocketFactory;

/** 
 * A CreationListenerSocketFactory wraps a SocketFactory and notifies a listener
 * of the creation of a Socket before returning the socket.
 * 
 * @author Ron Sigal
 * @version $Revision: 1866 $
 * 

* Copyright Jan 10, 2007 *

*/ public class CreationListenerSocketFactory extends SSLSocketFactory implements SocketFactoryWrapper, Serializable { private static final long serialVersionUID = 1210774093889434553L; private SocketFactory factory; private SocketCreationListener listener; public CreationListenerSocketFactory(SocketCreationListener listener) { this(SocketFactory.getDefault(), listener); } public CreationListenerSocketFactory(SocketFactory factory, SocketCreationListener listener) { this.factory = factory; this.listener = listener; } public SocketFactory getFactory() { return factory; } public SocketCreationListener getListener() { return listener; } public void setFactory(SocketFactory factory) { this.factory = factory; } public void setListener(SocketCreationListener listener) { this.listener = listener; } public Socket createSocket() throws IOException { checkFactory(); Socket socket = factory.createSocket(); listener.socketCreated(socket, factory); return socket; } public Socket createSocket(String host, int port) throws IOException, UnknownHostException { checkFactory(); Socket socket = factory.createSocket(host, port); listener.socketCreated(socket, factory); return socket; } public Socket createSocket(String host, int port, InetAddress clientHost, int clientPort) throws IOException, UnknownHostException { checkFactory(); Socket socket = factory.createSocket(host, port, clientHost, clientPort); listener.socketCreated(socket, factory); return socket; } public Socket createSocket(InetAddress host, int port) throws IOException { checkFactory(); Socket socket = factory.createSocket(host, port); listener.socketCreated(socket, factory); return socket; } public Socket createSocket(InetAddress address, int port, InetAddress clientAddress, int clientPort) throws IOException { checkFactory(); Socket socket = factory.createSocket(address, port, clientAddress, clientPort); listener.socketCreated(socket, factory); return socket; } public String[] getDefaultCipherSuites() { if (factory instanceof SSLSocketFactory) return ((SSLSocketFactory) factory).getDefaultCipherSuites(); else return null; } public String[] getSupportedCipherSuites() { if (factory instanceof SSLSocketFactory) return ((SSLSocketFactory) factory).getSupportedCipherSuites(); else return null; } public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException { if (factory instanceof SSLSocketFactory) { Socket socket = ((SSLSocketFactory) factory).createSocket(s, host, port, autoClose); listener.socketCreated(socket, factory); return socket; } else return null; } public SocketFactory getSocketFactory() { return factory; } public void setSocketFactory(SocketFactory factory) { this.factory = factory; } protected void checkFactory() { if (factory == null) factory = SocketFactory.getDefault(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy