woolfel     2005/01/10 20:56:02

  Modified:    src/monitor/components/org/apache/jmeter/visualizers
                        MonitorPerformancePanel.java
                        MonitorHealthVisualizer.java
  Log:
  updated the visualizer so it can save the statistics. also fixed a bug

  with the performance panel so that it checks the node to make sure

  it is not null.

  

  peter
  
  Revision  Changes    Path
  1.8       +18 -17    
jakarta-jmeter/src/monitor/components/org/apache/jmeter/visualizers/MonitorPerformancePanel.java
  
  Index: MonitorPerformancePanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/monitor/components/org/apache/jmeter/visualizers/MonitorPerformancePanel.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- MonitorPerformancePanel.java      24 Dec 2004 17:12:55 -0000      1.7
  +++ MonitorPerformancePanel.java      11 Jan 2005 04:56:02 -0000      1.8
  @@ -245,22 +245,23 @@
         * MonitorAccumModel will call this method to notify
         * the component data has changed.
         */
  -     public void addSample(MonitorModel model){
  -             if (!SERVERMAP.containsKey(model.getURL())){
  -                     DefaultMutableTreeNode newnode =
  -                             new DefaultMutableTreeNode(model);
  -                     newnode.setAllowsChildren(false);
  -                     SERVERMAP.put(model.getURL(),newnode);
  -                     ROOTNODE.add(newnode);
  -                     this.TREEPANE.updateUI();
  -             }
  -             DefaultMutableTreeNode node =
  -                     (DefaultMutableTreeNode) 
SERVERTREE.getLastSelectedPathComponent();
  -             Object usrobj = node.getUserObject();
  -             if (usrobj instanceof MonitorModel){
  -                     GRAPH.updateGui((MonitorModel)usrobj);
  -             }
  -     }
  +    public synchronized void addSample(MonitorModel model) {
  +        if (!SERVERMAP.containsKey(model.getURL())) {
  +            DefaultMutableTreeNode newnode = new 
DefaultMutableTreeNode(model);
  +            newnode.setAllowsChildren(false);
  +            SERVERMAP.put(model.getURL(), newnode);
  +            ROOTNODE.add(newnode);
  +            this.TREEPANE.updateUI();
  +        }
  +        DefaultMutableTreeNode node =
  +            
(DefaultMutableTreeNode)SERVERTREE.getLastSelectedPathComponent();
  +        if (node != null) {
  +            Object usrobj = node.getUserObject();
  +            if (usrobj instanceof MonitorModel) {
  +                GRAPH.updateGui((MonitorModel)usrobj);
  +            }
  +        }
  +    }
        
        /**
         * When the user selects a different node in the
  
  
  
  1.8       +24 -20    
jakarta-jmeter/src/monitor/components/org/apache/jmeter/visualizers/MonitorHealthVisualizer.java
  
  Index: MonitorHealthVisualizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/monitor/components/org/apache/jmeter/visualizers/MonitorHealthVisualizer.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- MonitorHealthVisualizer.java      6 Jan 2005 01:37:59 -0000       1.7
  +++ MonitorHealthVisualizer.java      11 Jan 2005 04:56:02 -0000      1.8
  @@ -27,14 +27,15 @@
   import javax.swing.border.EmptyBorder;
   
   import org.apache.jmeter.gui.util.VerticalPanel;
  -import org.apache.jmeter.reporters.ResultCollector;
  -import org.apache.jmeter.testelement.TestElement;
   
   import org.apache.jmeter.samplers.Clearable;
   import org.apache.jmeter.samplers.SampleResult;
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
   
  +import org.apache.jorphan.logging.LoggingManager;
  +import org.apache.log.Logger;
  +
   /**
    * For performance reasons, I am using tabs for the
    * visualizers. Since a visualizer is heavy weight,
  @@ -55,18 +56,24 @@
        private MonitorGraph GRAPH;
        
        public static final String BUFFER = "monitor.buffer.size";
  +     private static transient Logger log = 
LoggingManager.getLoggerForClass();
        
       /**
        * Constructor for the GraphVisualizer object.
        */
       public MonitorHealthVisualizer()
       {
  -     MODEL = new MonitorAccumModel();
  -     GRAPH = new MonitorGraph(MODEL);
  +     this.isStats = true;
  +             initModel();
        init();
  -             MODEL.setBufferSize(JMeterUtils.getPropDefault(BUFFER,800));
       }
   
  +     public void initModel(){
  +             MODEL = new MonitorAccumModel();
  +             GRAPH = new MonitorGraph(MODEL);
  +             MODEL.setBufferSize(JMeterUtils.getPropDefault(BUFFER,800));
  +     }
  +     
       public String getLabelResource()
       {
           return "monitor_health_title";
  @@ -79,10 +86,16 @@
         * to run for a very long time without eating up
         * all the memory.
         */
  -     public void add(SampleResult res)
  -     {
  -             MODEL.addSample(res);
  -     }
  +    public void add(SampleResult res) {
  +        MODEL.addSample(res);
  +        try {
  +            collector.recordStats(
  +                this.MODEL.getLastSample().cloneMonitorStats());
  +        } catch (Exception e) {
  +            // for now just swallow the exception
  +            log.debug("StatsModel was null", e);
  +        }
  +    }
        
        public Image getImage()
        {
  @@ -154,7 +167,7 @@
                VerticalPanel titlePanel = new VerticalPanel();
                titlePanel.add(createTitleLabel());
                titlePanel.add(getNamePanel());
  -             titlePanel.add(super.getFilePanel());
  +             titlePanel.add(getFilePanel());
                return titlePanel;
        }
   
  @@ -168,13 +181,4 @@
                this.PERFPANE.clear();
        }
        
  -     public TestElement createTestElement()
  -     {
  -             if (collector == null)
  -             {
  -                     collector = new ResultCollector();
  -             }
  -             modifyTestElement(collector);
  -             return (TestElement) collector.clone();
  -     }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to