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]