mstover1    2005/04/18 08:16:08

  Modified:    src/core/org/apache/jmeter/testbeans TestBeanHelper.java
               src/core/org/apache/jmeter/util JsseSSLManager.java
               src/jorphan/org/apache/jorphan/util Converter.java
  Added:       src/components/org/apache/jmeter/timers SyncTimer.java
                        SyncTimerBeanInfo.java
                        SyncTimerResources.properties
  Log:
  New Sync Timer
  Fixing Conversion to Double for Throughput Timer
  Renaming "enum" variable to "enumer"
  
  Revision  Changes    Path
  1.2       +2 -3      
jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java
  
  Index: TestBeanHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestBeanHelper.java       21 May 2004 21:09:38 -0000      1.1
  +++ TestBeanHelper.java       18 Apr 2005 15:16:08 -0000      1.2
  @@ -67,7 +67,6 @@
            {
               // Obtain a value of the appropriate type for this property.
               JMeterProperty jprop = el.getProperty(desc[x].getName());
  -
               Class type = desc[x].getPropertyType();
               Object value = Converter.convert(jprop.getStringValue(), type);
   
  
  
  
  1.1                  
jakarta-jmeter/src/components/org/apache/jmeter/timers/SyncTimer.java
  
  Index: SyncTimer.java
  ===================================================================
  package org.apache.jmeter.timers;
  
  import java.io.Serializable;
  
  import org.apache.jmeter.testbeans.TestBean;
  import org.apache.jmeter.testelement.AbstractTestElement;
  import org.apache.jmeter.threads.JMeterContextService;
  import org.apache.jorphan.logging.LoggingManager;
  import org.apache.log.Logger;
  
  /**
   * The purpose of the SyncTimer is to block threads until X number of threads 
have been blocked, and
   * then they are all released at once.  A SyncTimer can thus create large 
instant loads at various
   * points of the test plan.
   * @author mike
   *
   */
  public class SyncTimer extends AbstractTestElement implements 
Timer,Serializable,TestBean {
      private static final long serialVersionUID = 1;
      static Logger log = LoggingManager.getLoggerForClass();
      int[] timerCounter = new int[] {0};
      Object sync = new Object();
      
      int groupSize;
      
      /**
       * @return Returns the numThreads.
       */
      public int getGroupSize() {
          return groupSize;
      }
  
      /**
       * @param numThreads The numThreads to set.
       */
      public void setGroupSize(int numThreads) {
          this.groupSize = numThreads;
      }
  
      /* (non-Javadoc)
       * @see org.apache.jmeter.timers.Timer#delay()
       */
      public long delay() {
          synchronized(sync)
          {
              timerCounter[0]++;
              if((getGroupSize() == 0 && timerCounter[0] >= 
JMeterContextService.getNumberOfThreads())
                      || (getGroupSize() > 0 && timerCounter[0] >= 
getGroupSize()))
              {
                  timerCounter[0] = 0;
                  sync.notifyAll();
              }
              else
              {
                  try {
                      sync.wait();
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
              }
          }
          return 0;
      }
  
      /**
       * We have to controll the cloning process because we need some 
cross-thread communication if
       * our synctimers are to be able to determine when to block and when to 
release.
       */
      public Object clone() {
          SyncTimer newTimer = (SyncTimer)super.clone();
          newTimer.timerCounter = timerCounter;
          newTimer.sync = sync;
          return newTimer;
      }
  
  
  }
  
  
  
  1.1                  
jakarta-jmeter/src/components/org/apache/jmeter/timers/SyncTimerBeanInfo.java
  
  Index: SyncTimerBeanInfo.java
  ===================================================================
  package org.apache.jmeter.timers;
  
  import java.beans.PropertyDescriptor;
  
  import org.apache.jmeter.testbeans.BeanInfoSupport;
  
  public class SyncTimerBeanInfo extends BeanInfoSupport {
  
      /**
       * @param beanClass
       */
      public SyncTimerBeanInfo() {
          super(SyncTimer.class);
          
          createPropertyGroup("grouping", new String[] { "groupSize"});
          
          PropertyDescriptor p = property("groupSize");
          p.setValue(NOT_UNDEFINED,Boolean.TRUE);
          p.setValue(DEFAULT,new Integer(0));
      }
  
  
  }
  
  
  
  1.1                  
jakarta-jmeter/src/components/org/apache/jmeter/timers/SyncTimerResources.properties
  
  Index: SyncTimerResources.properties
  ===================================================================
  displayName=Synchronizing Timer
  grouping.displayName=Grouping
  groupSize.displayName=Number of Simulated Users to Group by
  groupSize.shortDescription=Define how many simulated users trigger the 
release of the synchronizing block (default value of '0' means all users)
  
  
  1.13      +5 -5      
jakarta-jmeter/src/core/org/apache/jmeter/util/JsseSSLManager.java
  
  Index: JsseSSLManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JsseSSLManager.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- JsseSSLManager.java       13 Feb 2004 02:21:37 -0000      1.12
  +++ JsseSSLManager.java       18 Apr 2005 15:16:08 -0000      1.13
  @@ -245,12 +245,12 @@
           {
               try
               {
  -                java.util.Enumeration enum = store.aliases();
  +                java.util.Enumeration enumer = store.aliases();
                   java.util.ArrayList list =
                       new java.util.ArrayList(store.size());
  -                while (enum.hasMoreElements())
  +                while (enumer.hasMoreElements())
                   {
  -                    String alias = (String) enum.nextElement();
  +                    String alias = (String) enumer.nextElement();
                       log.info("AlwaysTrustManager alias: " + alias);
                       if (store.isCertificateEntry(alias))
                       {
  
  
  
  1.6       +21 -0     
jakarta-jmeter/src/jorphan/org/apache/jorphan/util/Converter.java
  
  Index: Converter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/util/Converter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Converter.java    2 Apr 2005 23:21:49 -0000       1.5
  +++ Converter.java    18 Apr 2005 15:16:08 -0000      1.6
  @@ -46,6 +46,8 @@
               return value;
           } else if (toType.equals(float.class) || toType.equals(Float.class)) 
{
               return new Float(getFloat(value));
  +        } else if (toType.equals(double.class) || 
toType.equals(Double.class)) {
  +            return new Double(getDouble(value));
           } else if (toType.equals(String.class)) {
               return getString(value);
           } else if (toType.equals(int.class) || toType.equals(Integer.class)) 
{
  @@ -181,6 +183,25 @@
           return getFloat(o, 0);
       }
   
  +    public static double getDouble(Object o, double defaultValue) {
  +        try {
  +            if (o == null) {
  +                return defaultValue;
  +            }
  +            if (o instanceof Number) {
  +                return ((Number) o).doubleValue();
  +            } else {
  +                return Double.parseDouble(o.toString());
  +            }
  +        } catch (NumberFormatException e) {
  +            return defaultValue;
  +        }
  +    }
  +
  +    public static double getDouble(Object o) {
  +        return getDouble(o, 0);
  +    }
  +
       public static boolean getBoolean(Object o) {
           return getBoolean(o, false);
       }
  
  
  

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

Reply via email to