You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2007/08/13 18:03:27 UTC
svn commit: r565392 [2/2] - in /activemq/trunk/log_analyzer_tool: ./
loganalyzerengine/ loganalyzergui/ screenshots/
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.py
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.py?view=auto&rev=565392
==============================================================================
--- activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.py (added)
+++ activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.py Mon Aug 13 09:03:25 2007
@@ -0,0 +1,158 @@
+"""
+Module MessageTravelText
+"""
+import wx
+from loganalyzerengine.Producer import Producer
+from loganalyzerengine.Message import Message
+
+class MessageTravelText(wx.TextCtrl):
+ """
+ Text box where the travel path of a message is displayed.
+ """
+
+ def __init__(self, parent):
+ """
+ Constructor
+ """
+
+ wx.TextCtrl.__init__(self, parent, -1, style=wx.TE_MULTILINE)#, style=wx.TE_CENTRE)
+
+ self.parent = parent
+ self.datapresent = False
+
+ self.SetEditable(False)
+
+ def logDataUpdated(self):
+ """
+ Informs the text control that there is some parsed data.
+ """
+
+ self.datapresent = True
+
+ def displayMessageInfo(self, producerId, prodSeqId, isShortId):
+ """
+ Displays the travel information of a message as text.
+ connectionId must be a shortId if isShortId == True, and a longId if isShortId == False
+ """
+
+ if self.datapresent:
+
+ # we run some checks on the connection id and command id,
+ # and transform connectionId into a shortId
+ if isShortId:
+ if not producerId.isdigit():
+ wx.MessageDialog(self, 'That short producer id is not an integer', style=wx.OK).ShowModal()
+ return
+ producerId = int(producerId)
+ if producerId < 0 or producerId > Producer.nProducers - 1:
+ wx.MessageDialog(self, 'That short producer id does not exist', style=wx.OK).ShowModal()
+ return
+ else:
+ if Producer.exists(producerId):
+ producerId = Producer.longIdToShortId(producerId)
+ else:
+ wx.MessageDialog(self, 'That connection id does not exist', style=wx.OK).ShowModal()
+ return
+
+ if not prodSeqId.isdigit():
+ wx.MessageDialog(self, 'That command id is not an integer', style=wx.OK).ShowModal()
+ return
+
+ # we ensure the shortId and the commandId are integers
+ producerId = int(producerId)
+ prodSeqId = int(prodSeqId)
+
+ # we check that the message exists
+ if Message.exists(Producer.getProducerByShortId(producerId), prodSeqId):
+ message = Message.getMessage(Producer.getProducerByShortId(producerId), prodSeqId)
+ sendingFiles, receivingFiles = message.getFiles()
+ printShortIds = self.parent.chkshowshortId.GetValue()
+
+ # we set the value of the text field
+ self.SetValue(
+ "\n".join(['Message Id:',
+ '\tProducer Id: ' + str(producerId if printShortIds else Producer.shortIdToLongId(producerId)),
+ '\tProducer Sequence id: ' + str(prodSeqId),
+ 'ADVISORY' if message.advisory else '(not advisory)',
+ 'Connections that sent this message:',
+ #one line for every connection that sent a message
+ "\n".join([''.join([
+ '\t',
+ # if direction == True, message went from connection.fromFile to connection.toFile
+ str(connection.shortId if printShortIds else connection.longId),
+ ''.join([
+ ', from ',
+ str(connection.fromFile)
+ if direction else
+ str(connection.toFile)
+ ,
+ ' to ',
+ str(connection.toFile)
+ if direction else
+ str(connection.fromFile),
+ ', ',
+ ' | '.join([''.join([
+ 'ConID: ',
+ str(connection.shortId if printShortIds else connection.longId),
+ ', CommandID: ',
+ str(commandid),
+ ', ',
+ timestamp
+ ])
+ for (connection, commandid, timestamp) in values
+ ])
+ ])
+ ])
+ for (connection, direction), values in message.sendingConnections.iteritems()
+ ]),
+ 'Connections that received this message:',
+ #one line for every connection that received a message
+ "\n".join([''.join([
+ '\t',
+ # if direction == True, message went from connection.fromFile to connection.toFile
+ str(connection.shortId if printShortIds else connection.longId),
+ ''.join([
+ ', from ',
+ str(connection.fromFile)
+ if direction else
+ str(connection.toFile)
+ ,
+ ' to ',
+ str(connection.toFile)
+ if direction else
+ str(connection.fromFile)
+ ,
+ ', ',
+ ' | '.join([''.join([
+ 'ConID: ',
+ str(connection.shortId if printShortIds else connection.longId),
+ ', CommandID: ',
+ str(commandid),
+ ', ',
+ timestamp
+ ])
+ for (connection, commandid, timestamp) in values
+ ])
+ ])
+ ])
+ for (connection, direction), values in message.receivingConnections.iteritems()
+ ]),
+ 'Log files where this message was sent:',
+ '\t' + ", ".join([str(f) for f in sendingFiles]),
+ 'Log files where this message was received:',
+ '\t' + ", ".join([str(f) for f in receivingFiles])
+ ])
+ )
+
+
+
+ else:
+ # the message doesn't exist
+ wx.MessageDialog(self, 'That message does not exist', style=wx.OK).ShowModal()
+ return
+ else:
+ # there is no data present
+ wx.MessageDialog(self, 'Please parse some files first', style=wx.OK).ShowModal()
+ return
+
+
\ No newline at end of file
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.py
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.pyc
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.pyc?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.pyc
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/MessageTravelText.pyc
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.py
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.py?view=auto&rev=565392
==============================================================================
--- activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.py (added)
+++ activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.py Mon Aug 13 09:03:25 2007
@@ -0,0 +1,56 @@
+"""
+Module TabbedPanel
+"""
+import wx
+from IncorrectSequencePanel import IncorrectSequencePanel
+from MessageTravelPanel import MessageTravelPanel
+from ViewClientsPanel import ViewClientsPanel
+from ViewConnectionsPanel import ViewConnectionsPanel
+from ViewFilesPanel import ViewFilesPanel
+
+class TabbedPanel(wx.Panel):
+ """
+ Panel with the tabs that will display the information once the log files are parsed.
+ It contains 4 tabs, via a wx.Notebook object:
+ -IncorrectSequencePanel.
+ -BrowsingMessagesPanel.
+ -ViewConnectionsPanel.
+ -ViewFilesPanel.
+ """
+
+ def __init__(self, parent):
+ """
+ Constructor
+ """
+
+ wx.Panel.__init__(self, parent, -1)
+
+ notebook = wx.Notebook(self, -1)
+
+ self.incorrectSequencePanel = IncorrectSequencePanel(notebook)
+ self.browsingMessagesPanel = MessageTravelPanel(notebook)
+ self.viewClientsPanel = ViewClientsPanel(notebook)
+ self.viewConnectionsPanel = ViewConnectionsPanel(notebook)
+ self.viewFilesPanel = ViewFilesPanel(notebook)
+
+ notebook.AddPage(self.incorrectSequencePanel, 'Incorrect Sequences')
+ notebook.AddPage(self.browsingMessagesPanel, 'Message Browsing')
+ notebook.AddPage(self.viewClientsPanel, 'View clients')
+ notebook.AddPage(self.viewConnectionsPanel, 'View connections')
+ notebook.AddPage(self.viewFilesPanel, 'View files')
+
+ sizer = wx.BoxSizer(wx.HORIZONTAL)
+ sizer.Add(notebook, 1, wx.EXPAND|wx.ALL, 5)
+ self.SetSizer(sizer)
+
+ def logDataUpdated(self):
+ """
+ When this panel is notified that the parsed data has changed,
+ it notifies the 4 sub panels.
+ """
+
+ self.incorrectSequencePanel.logDataUpdated()
+ self.browsingMessagesPanel.logDataUpdated()
+ self.viewClientsPanel.logDataUpdated()
+ self.viewConnectionsPanel.logDataUpdated()
+ self.viewFilesPanel.logDataUpdated()
\ No newline at end of file
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.py
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.pyc
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.pyc?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.pyc
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/TabbedPanel.pyc
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.py
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.py?view=auto&rev=565392
==============================================================================
--- activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.py (added)
+++ activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.py Mon Aug 13 09:03:25 2007
@@ -0,0 +1,100 @@
+"""
+Module ViewConnectionsPanel
+"""
+import wx
+
+from loganalyzerengine.Connection import Connection
+from loganalyzerengine.Producer import Producer
+from loganalyzerengine.Consumer import Consumer
+
+class ViewClientsPanel(wx.Panel):
+ """
+ This panel shows the list of connections that appear in the log files.
+ Also, it enables the user to copy the long id of a connection to the system clipboard,
+ and to 'jump' to the IncorrectSequencePanel, filtering the display so that only the
+ events of that connection are displayed.
+ """
+
+ def __init__(self, parent):
+ """
+ Constructor
+ """
+
+ wx.Panel.__init__(self, parent, -1)
+
+ self.notebook = parent
+
+ sizer = wx.BoxSizer(wx.VERTICAL)
+
+ self.producerList = wx.ListCtrl(self, -1,
+ style=wx.LC_REPORT|wx.LC_SINGLE_SEL|wx.LC_HRULES|wx.LC_VRULES|wx.LC_EDIT_LABELS)
+
+ self.producerList.InsertColumn(0, 'Short id')
+ self.producerList.InsertColumn(1, 'Short Connection id')
+ self.producerList.InsertColumn(2, 'Session Id')
+ self.producerList.InsertColumn(3, 'Value')
+ self.producerList.InsertColumn(4, 'Long Connection id')
+
+ self.producerList.SetColumnWidth(0, 80)
+ self.producerList.SetColumnWidth(1, 120)
+ self.producerList.SetColumnWidth(2, 80)
+ self.producerList.SetColumnWidth(3, 80)
+ self.producerList.SetColumnWidth(4, 500)
+
+ self.consumerList = wx.ListCtrl(self, -1,
+ style=wx.LC_REPORT|wx.LC_SINGLE_SEL|wx.LC_HRULES|wx.LC_VRULES|wx.LC_EDIT_LABELS)
+
+ self.consumerList.InsertColumn(0, 'Short id')
+ self.consumerList.InsertColumn(1, 'Short Connection id')
+ self.consumerList.InsertColumn(2, 'Session Id')
+ self.consumerList.InsertColumn(3, 'Value')
+ self.consumerList.InsertColumn(4, 'Long Connection id')
+
+ self.consumerList.SetColumnWidth(0, 80)
+ self.consumerList.SetColumnWidth(1, 120)
+ self.consumerList.SetColumnWidth(2, 80)
+ self.consumerList.SetColumnWidth(3, 80)
+ self.consumerList.SetColumnWidth(4, 500)
+
+ sizer.Add(wx.StaticText(self, -1, 'Producers'), 0, wx.CENTER|wx.LEFT|wx.TOP|wx.RIGHT, 15)
+ sizer.Add(self.producerList, 1, wx.EXPAND|wx.ALL, 5)
+ sizer.Add(wx.StaticText(self, -1, 'Consumers'), 0, wx.CENTER|wx.LEFT|wx.TOP|wx.RIGHT, 15)
+ sizer.Add(self.consumerList, 1, wx.EXPAND|wx.ALL, 5)
+
+ self.SetSizer(sizer)
+
+ def logDataUpdated(self):
+ """
+ Informs this panel that new data has been parsed,
+ and that the list of connections should be updated.
+ """
+
+ self.producerList.DeleteAllItems()
+ self.consumerList.DeleteAllItems()
+
+ shortId = 0
+ for longId in Producer.producerIdList:
+ producer = Producer.getProducerByLongId(longId)
+ self.insertRow(self.producerList, shortId, Connection.longIdToShortId(producer.connectionId),
+ producer.sessionId, producer.value,
+ Connection.getConnectionByLongId(producer.connectionId))
+ shortId += 1
+
+ shortId = 0
+ for longId in Consumer.consumerIdList:
+ consumer = Consumer.getConsumerByLongId(longId)
+ self.insertRow(self.consumerList, shortId, Connection.longIdToShortId(consumer.connectionId),
+ consumer.sessionId, consumer.value,
+ Connection.getConnectionByLongId(consumer.connectionId))
+ shortId += 1
+
+ def insertRow(self, targetList, shortId, shortConnectionId, sessionId, value, longConnectionId):
+ """
+ Helper method to insert a new row in the list of connections.
+ """
+
+ targetList.InsertStringItem(shortId, str(shortId))
+ targetList.SetStringItem(shortId, 1, str(shortConnectionId))
+ targetList.SetStringItem(shortId, 2, str(sessionId))
+ targetList.SetStringItem(shortId, 3, str(value))
+ targetList.SetStringItem(shortId, 4, str(longConnectionId))
\ No newline at end of file
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.py
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.pyc
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.pyc?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.pyc
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewClientsPanel.pyc
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.py
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.py?view=auto&rev=565392
==============================================================================
--- activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.py (added)
+++ activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.py Mon Aug 13 09:03:25 2007
@@ -0,0 +1,103 @@
+"""
+Module ViewConnectionsPanel
+"""
+import wx
+from loganalyzerengine.Connection import Connection
+
+class ViewConnectionsPanel(wx.Panel):
+ """
+ This panel shows the list of connections that appear in the log files.
+ Also, it enables the user to copy the long id of a connection to the system clipboard,
+ and to 'jump' to the IncorrectSequencePanel, filtering the display so that only the
+ events of that connection are displayed.
+ """
+
+ def __init__(self, parent):
+ """
+ Constructor
+ """
+
+ wx.Panel.__init__(self, parent, -1)
+
+ self.notebook = parent
+
+ sizer = wx.BoxSizer(wx.VERTICAL)
+
+ self.list = wx.ListCtrl(self, -1,
+ style=wx.LC_REPORT|wx.LC_SINGLE_SEL|wx.LC_HRULES|wx.LC_VRULES|wx.LC_EDIT_LABELS)
+
+ self.list.InsertColumn(0, 'Short id')
+ self.list.InsertColumn(1, 'Long id')
+ self.list.InsertColumn(2, 'Connection established FROM file')
+ self.list.InsertColumn(3, 'Connection established TO file')
+ self.list.InsertColumn(4, 'Producers')
+ self.list.InsertColumn(5, 'Consumers')
+
+ self.list.SetColumnWidth(0, 80)
+ self.list.SetColumnWidth(1, 250)
+ self.list.SetColumnWidth(2, 200)
+ self.list.SetColumnWidth(3, 200)
+
+ sizer2 = wx.BoxSizer(wx.HORIZONTAL)
+ sizer2.Add(wx.Button(self, 100, 'Copy selected long id to clipboard'), 0, wx.RIGHT, 5)
+ sizer2.Add(wx.Button(self, 101, "Jump to this connection's problems"))
+
+ sizer.Add(sizer2, 0, wx.ALL, 5)
+ sizer.Add(self.list, 1, wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT, 5)
+
+ self.Bind(wx.EVT_BUTTON, self.OnCopy, id=100)
+ self.Bind(wx.EVT_BUTTON, self.OnJump, id=101)
+
+ self.SetSizer(sizer)
+
+ def logDataUpdated(self):
+ """
+ Informs this panel that new data has been parsed,
+ and that the list of connections should be updated.
+ """
+
+ self.list.DeleteAllItems()
+ shortId = 0
+ for longId in Connection.connectionIdList:
+ connection = Connection.getConnectionByLongId(longId)
+ self.insertRow(shortId, longId, connection.fromFile, connection.toFile, connection.producers, connection.consumers)
+ shortId += 1
+
+ def insertRow(self, shortId, longId, fromFile, to, producers, consumers):
+ """
+ Helper method to insert a new row in the list of connections.
+ """
+
+ self.list.InsertStringItem(shortId, str(shortId))
+ self.list.SetStringItem(shortId, 1, str(longId))
+ self.list.SetStringItem(shortId, 2, str(fromFile))
+ self.list.SetStringItem(shortId, 3, str(to))
+ self.list.SetStringItem(shortId, 4, ", ".join(str(p.shortId) for p in producers))
+ self.list.SetStringItem(shortId, 5, ", ".join(str(c.shortId) for c in consumers))
+
+ def OnCopy(self, event):
+ """
+ Action to be executed when pressing the 'Copy selected long id to clipboard' button.
+ The longId of the selected connection will be copied to the clipboard.
+ """
+
+ shortId = self.list.GetFirstSelected()
+ if shortId != -1 and wx.TheClipboard.Open():
+ wx.TheClipboard.SetData(wx.TextDataObject(str(Connection.connectionIdList[shortId])))
+ wx.TheClipboard.Close()
+
+ def OnJump(self, event):
+ """
+ Action to be executed when pressing the 'Jump to this connection's problems' button.
+ The tab with the 'IncorrectSequencePanel' will be selected and the list of incorrect
+ events will be automatically filtered by the selected connection.
+ """
+
+ shortId = self.list.GetFirstSelected()
+ if shortId != -1:
+ incorrectSequencePanel = self.notebook.GetParent().incorrectSequencePanel
+ incorrectSequencePanel.connectionText.SetValue(str(shortId))
+ incorrectSequencePanel.rbshortId.SetValue(True)
+ incorrectSequencePanel.rblongId.SetValue(False)
+ incorrectSequencePanel.OnFilter(event)
+ self.notebook.SetSelection(0)
\ No newline at end of file
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.py
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.pyc
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.pyc?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.pyc
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewConnectionsPanel.pyc
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.py
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.py?view=auto&rev=565392
==============================================================================
--- activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.py (added)
+++ activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.py Mon Aug 13 09:03:25 2007
@@ -0,0 +1,45 @@
+"""
+Module ViewFilesPanel
+"""
+import wx
+from loganalyzerengine.LogFile import LogFile
+
+class ViewFilesPanel(wx.Panel):
+ """
+ This panel shows the list of log files that have been read.
+ """
+
+ def __init__(self, parent):
+ """
+ Constructor
+ """
+
+ wx.Panel.__init__(self, parent, -1)
+
+ sizer = wx.BoxSizer(wx.VERTICAL)
+
+ self.text = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE)
+
+ sizer.Add(self.text, 1, wx.EXPAND|wx.ALL, 5)
+
+ self.SetSizer(sizer)
+
+ def logDataUpdated(self):
+ """
+ The panel is informed that new data has been parsed,
+ and the list of files should be updated.
+ """
+
+ self.text.SetValue(
+ '\n'.join(
+ '\n'.join([
+ str(file),
+ '\tConnections established from this file:',
+ '\n'.join(['\t\t' + str(con.shortId) + ' ' + str(con.longId) for con in file.outgoing]),
+ '\tConnections established to this file:',
+ '\n'.join(['\t\t' + str(con.shortId) + ' ' + str(con.longId) for con in file.incoming])
+ ])
+ for file in LogFile.logfiles)
+ )
+
+
\ No newline at end of file
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.py
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.pyc
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.pyc?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.pyc
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/ViewFilesPanel.pyc
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/__init__.py
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/__init__.py?view=auto&rev=565392
==============================================================================
(empty)
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/__init__.py
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/loganalyzergui/__init__.pyc
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/loganalyzergui/__init__.pyc?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/__init__.pyc
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/loganalyzergui/__init__.pyc
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: activemq/trunk/log_analyzer_tool/run.bat
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/run.bat?view=auto&rev=565392
==============================================================================
--- activemq/trunk/log_analyzer_tool/run.bat (added)
+++ activemq/trunk/log_analyzer_tool/run.bat Mon Aug 13 09:03:25 2007
@@ -0,0 +1 @@
+python Main.py
\ No newline at end of file
Propchange: activemq/trunk/log_analyzer_tool/run.bat
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/run.sh
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/run.sh?view=auto&rev=565392
==============================================================================
--- activemq/trunk/log_analyzer_tool/run.sh (added)
+++ activemq/trunk/log_analyzer_tool/run.sh Mon Aug 13 09:03:25 2007
@@ -0,0 +1 @@
+python Main.py
\ No newline at end of file
Propchange: activemq/trunk/log_analyzer_tool/run.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/trunk/log_analyzer_tool/run.sh
------------------------------------------------------------------------------
svn:executable = *
Added: activemq/trunk/log_analyzer_tool/screenshots/1.png
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/screenshots/1.png?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/screenshots/1.png
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/screenshots/1.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: activemq/trunk/log_analyzer_tool/screenshots/2.png
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/screenshots/2.png?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/screenshots/2.png
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/screenshots/2.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: activemq/trunk/log_analyzer_tool/screenshots/3.png
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/screenshots/3.png?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/screenshots/3.png
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/screenshots/3.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: activemq/trunk/log_analyzer_tool/screenshots/4.png
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/screenshots/4.png?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/screenshots/4.png
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/screenshots/4.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: activemq/trunk/log_analyzer_tool/screenshots/5.png
URL: http://svn.apache.org/viewvc/activemq/trunk/log_analyzer_tool/screenshots/5.png?view=auto&rev=565392
==============================================================================
Binary file - no diff available.
Propchange: activemq/trunk/log_analyzer_tool/screenshots/5.png
------------------------------------------------------------------------------
svn:executable = *
Propchange: activemq/trunk/log_analyzer_tool/screenshots/5.png
------------------------------------------------------------------------------
svn:mime-type = image/png