diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java | 306 |
1 files changed, 0 insertions, 306 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java deleted file mode 100644 index fe2a0f4cf..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java +++ /dev/null @@ -1,306 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -import java.net.Socket; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -/** - * A socket connection. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class SocketConnection extends Thread -{ - protected Monitor monitor; - protected Redirect redirect; - protected Socket inSocket; - protected Socket outSocket; - - protected String httpProxyHost = null; - protected int httpProxyPort; - - protected SocketHandler requestSocketHandler = null; - protected SocketHandler responseSocketHandler = null; - - private Vector listeners = new Vector(); // SS - - /** - * Create socket connection. - * @param monitor a Monitor object. - * @param redirect a Redirect object. - * @param inSocket in socket. - */ - public SocketConnection(Monitor monitor, Redirect redirect, Socket inSocket) - { - this.monitor = monitor; - this.redirect = redirect; - this.inSocket = inSocket; - - // Start processing the connection - start(); - } - - /** - * Process the socket connection. - */ - public void run() - { - // Get the HTTP proxy settings if there are any set (not used currently) - loadHttpProxySettings(); - - try - { - // Open the connection to the server - this.outSocket = new Socket(redirect.getToHost(), redirect.getToPort()); - - // Set the read timeout for the input socket - this.inSocket.setSoTimeout(redirect.getReadTimeoutSeconds() * 1000); - - // Get the next conversation ID - int conversationId = monitor.getNextConversationId(); - - // Create the socket handlers which are used to send the data from - // the client to the server - requestSocketHandler = - new SocketHandler( - this, - MessageEntry.TYPE_REQUEST, - conversationId, - redirect.getToHost(), - this.inSocket, - this.outSocket, - redirect.getReadTimeoutSeconds()); - responseSocketHandler = - new SocketHandler( - this, - MessageEntry.TYPE_RESPONSE, - conversationId, - redirect.getToHost(), - this.outSocket, - this.inSocket, - redirect.getReadTimeoutSeconds()); - - // Tell each socketHandler about the other one - requestSocketHandler.setPairedSocketHandler(responseSocketHandler); - responseSocketHandler.setPairedSocketHandler(requestSocketHandler); - } - - catch (Exception e) - { - Monitor.staticPrintMessage( - "error04", - redirect.getToHost(), - "Monitor cannot connect to a redirect host:"); - - shutdown(); - - try - { - this.inSocket.close(); - } - catch (Throwable t) - { - } - } - } - - /** - * Log message. - * @param conversationID the coversation id. - * @param connectionType the connection type. - * @param timestamp the timestamp. - * @param senderHostAndPort the sender host and port. - * @param receiverHostAndPort the receiver host and port. - * @param messageBuffer the message. - * @param bom the BOM. - * @param encoding the encoding. - * @throws WSIException if there is a problem logging message. - */ - public void logMessage( - int conversationID, - String connectionType, - String timestamp, - String senderHostAndPort, - String receiverHostAndPort, - StringBuffer messageBuffer, - int bom, - String encoding) - throws WSIException - { - MessageEntry messageEntry = null; - - // Create message entry - messageEntry = - createMessageEntry( - conversationID, - connectionType, - timestamp, - senderHostAndPort, - receiverHostAndPort, - messageBuffer.toString(), - bom, - encoding); - - // DEBUG: - //debug("logMessage", " messageEntry: " + messageEntry); - - // Add entry to the queue - monitor.getMessageEntryQueue().addMessageEntry(messageEntry); - } - - /** - * Create a log entry from all of the data that was gathered. - */ - private MessageEntry createMessageEntry( - int conversationID, - String messageType, - String timestamp, - String senderHostAndPort, - String receiverHostAndPort, - String message, - int bom, - String encoding) - throws WSIException - { - // Create log entry object - MessageEntry messageEntry = monitor.getLog().createLogEntry(); - - // Set input information in log entry - // NOTE: The ID is set just before the log entry is written to the log file in LogEntryQueue - //logEntry.setId(id); - messageEntry.setConversationId(String.valueOf(conversationID)); - messageEntry.setType(messageType); - messageEntry.setTimestamp(timestamp); - messageEntry.setSenderHostAndPort(senderHostAndPort); - messageEntry.setReceiverHostAndPort(receiverHostAndPort); - messageEntry.setEncoding(encoding); - - // Get HTTP headers from full message - String httpHeaders = Utils.getHTTPHeaders(message); - messageEntry.setHTTPHeaders(httpHeaders); - - if (Utils.isMultipartRelatedMessage(httpHeaders)) - { - MimeParts mimeParts = Utils.parseMultipartRelatedMessage(message, httpHeaders, encoding); - if (mimeParts == null) - { - // problem creating Mimeparts -- treat it as simple SOAP message - String content = Utils.getContent(message); - messageEntry.setMessage(content); - messageEntry.setMimeContent(false); - } - else - { - messageEntry.setMimeParts(mimeParts); - messageEntry.setMimeContent(true); - } - } - else - { - // Get the message content - String content = Utils.getContent(message); - messageEntry.setMessage(content); - messageEntry.setMimeContent(false); - } - - // Set the BOM, if there is one - if (bom != 0) - messageEntry.setBOM(bom); - - return messageEntry; - } - - /** - * Load HTTP proxy settings. - */ - public void loadHttpProxySettings() - { - // Get the HTTP proxy host setting - this.httpProxyHost = System.getProperty("http.proxyHost"); - if (this.httpProxyHost != null && httpProxyHost.equals("")) - this.httpProxyHost = null; - - // If there was an HTTP proxy host setting, then get the port - if (this.httpProxyHost != null) - { - String portString = System.getProperty("http.proxyPort"); - - // Set default to 80 - if (portString == null || portString.equals("")) - this.httpProxyPort = 80; - else - httpProxyPort = Integer.parseInt(portString); - } - } - - Monitor getMonitor() - { - return this.monitor; - } - - synchronized void wakeUp() - { - fireConnectionClosed(); // SS - notifyAll(); - } - - /** - * Shutdown. - */ - public void shutdown() - { - if (this.requestSocketHandler != null) - this.requestSocketHandler.shutdown(); - if (this.responseSocketHandler != null) - this.responseSocketHandler.shutdown(); - } - - // ==== SS start ==== - /** - * Add connection event listener. - * @param listener event listener. - * @see #removeConnectionListener - */ - public void addConnectionListener(ConnectionListener listener) - { - listeners.add(listener); - } - /** - * Remove connection event listener. - * @param listener event listener. - * @see #addConnectionListener - */ - public void removeConnectionListener(ConnectionListener listener) - { - listeners.remove(listener); - } - /** - * Notify listeners on connection close. - */ - private void fireConnectionClosed() - { - for (Iterator i = listeners.iterator(); i.hasNext();) - { - ConnectionListener listener = (ConnectionListener) i.next(); - listener.connectionClosed(this); - } - } - // ==== SS end ==== -} |