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