diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java deleted file mode 100644 index 4754756b4..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java +++ /dev/null @@ -1,220 +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 org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.LogWriter; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; - -import java.io.*; -import java.util.*; - -/** - * This class is the queue that is used to write request and response messages - * to the log file in the correct order. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class MessageEntryQueue -{ - /** - * Request type message entry queue. - */ - protected Vector requestList = new Vector(); - - /** - * Response type message entry queue. - */ - protected Vector responseList = new Vector(); - - /** - * Monitor. - */ - protected Monitor monitor = null; - - /** - * Log file. - */ - protected Log log = null; - - /** - * Log writer. - */ - protected LogWriter logWriter = null; - - /** - * List lock. - */ - protected String listLock = "listLock"; - - /** - * Message ID which is incremented when a new log entry is added to the log file. - */ - protected int messageId = 1; - - /** - * Create message entry queue. - * @param monitor a monitor. - * @param log the log. - * @param logWriter a log writer. - */ - public MessageEntryQueue(Monitor monitor, Log log, LogWriter logWriter) - { - // Save input references - this.monitor = monitor; - this.log = log; - this.logWriter = logWriter; - } - - /** - * Add log entry to queue. - * @param messageEntry a message entry. - * @throws WSIException is there is a problem adding the log - * entry to the queue. - */ - public synchronized void addMessageEntry(MessageEntry messageEntry) - throws WSIException - { - synchronized (listLock) - { - // If this is a request type of message entry, then add to request list - if (messageEntry.getType().equals(MessageEntry.TYPE_REQUEST)) - { - requestList.add(messageEntry); - } - - // Otherwise this is a response type of message entry - else - { - responseList.add(messageEntry); - } - } - - // Tell the log entry writer thread to run - writeFromQueue(); - } - - /** - * Determine if any log entries need to be written. - * @throws WSIException is there is a problem adding log entries. - - */ - public synchronized void writeFromQueue() throws WSIException - { - MessageEntry requestMessageEntry = null; - MessageEntry responseMessageEntry = null; - boolean responseFound = false; - - // Create array that will contain list of index to remove from request list - int[] requestIndexList = new int[requestList.size()]; - int reqIndexCount = 0; - - synchronized (listLock) - { - // If there are entries in the request queue, - // then try to match them with entries in the response queue - for (int reqIndex = 0; reqIndex < requestList.size(); reqIndex++) - { - // Get request log entry - requestMessageEntry = (MessageEntry) requestList.elementAt(reqIndex); - - // Check each response log entry to see if the conversationId matches - responseFound = false; - for (int respIndex = 0; - respIndex < responseList.size() && !responseFound; - respIndex++) - { - // Get response log entry - responseMessageEntry = - (MessageEntry) responseList.elementAt(respIndex); - - // If the request and response have the same conversationId, - // then write them out to the log file - if (requestMessageEntry - .getConversationId() - .equals(responseMessageEntry.getConversationId())) - { - responseFound = true; - - // Set the id for the log entries - requestMessageEntry.setId(getNextMessageId()); - responseMessageEntry.setId(getNextMessageId()); - - // Write out request and then response - //==== SS start : what this line is used for??? - causes memory leak, as no removeLogEntry is called ==== - // log.addLogEntry(requestMessageEntry); - //==== SS end === - StringReader requestReader = - new StringReader(requestMessageEntry.toXMLString("")); - logWriter.write(requestReader); - - // Display message - printMessage(requestMessageEntry); - - // Write out response - //==== SS start : what this line is used for??? - causes memory leak, as no removeLogEntry is called ==== - // log.addLogEntry(responseMessageEntry); - //==== SS end === - StringReader responseReader = - new StringReader(responseMessageEntry.toXMLString("")); - logWriter.write(responseReader); - - // Display message - printMessage(responseMessageEntry); - - // Add request to list so that it can be removed later - requestIndexList[reqIndexCount++] = reqIndex; - - // Remove log entry from response list - responseList.remove(respIndex); - } - } - } - - // Remove requests that were written out - for (int count = 0; count < reqIndexCount; count++) - requestList.remove(requestIndexList[count]); - } - } - - /** - * Get the next message identifier. - * @return the next message identifier. - */ - protected synchronized String getNextMessageId() - { - return String.valueOf(messageId++); - } - - /** - * Display message. - * @param messageEntry a message entry. - */ - protected void printMessage(MessageEntry messageEntry) - { - // Display message - monitor.printMessage( - "log01", - messageEntry.getId() - + ", " - + messageEntry.getType() - + ", " - + messageEntry.getSenderHostAndPort(), - "Log message entry - ID: " - + messageEntry.getId() - + ", Type: " - + messageEntry.getType() - + ", Sender: " - + messageEntry.getSenderHostAndPort()); - } -} |