sebb 2003/11/09 12:23:18
Modified: src/core/org/apache/jmeter JMeter.java
Log:
Trying to fix non-GUI problems with disabled test elements; made option codes private
Revision Changes Path
1.23 +65 -18 jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java
Index: JMeter.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- JMeter.java 3 Nov 2003 12:10:40 -0000 1.22
+++ JMeter.java 9 Nov 2003 20:23:18 -0000 1.23
@@ -76,7 +76,6 @@
import org.apache.jmeter.engine.RemoteJMeterEngineImpl;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.engine.event.LoopIterationEvent;
-import org.apache.jmeter.engine.util.DisabledComponentRemover;
import org.apache.jmeter.exceptions.IllegalUserActionException;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.action.ActionRouter;
@@ -93,7 +92,9 @@
import org.apache.jmeter.samplers.Remoteable;
import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
import org.apache.jmeter.save.SaveService;
+import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
+import org.apache.jmeter.testelement.property.NullProperty;
import org.apache.jmeter.threads.gui.ThreadGroupGui;
import org.apache.jmeter.timers.gui.AbstractTimerGui;
import org.apache.jmeter.util.BeanShellServer;
@@ -112,17 +113,17 @@
{
transient private static Logger log = LoggingManager.getLoggerForClass();
- private final static int PROPFILE_OPT = 'p';
- private final static int TESTFILE_OPT = 't';
- private final static int LOGFILE_OPT = 'l';
- private final static int NONGUI_OPT = 'n';
- protected static final int HELP_OPT = 'h';
- protected static final int VERSION_OPT = 'v';
- protected static final int SERVER_OPT = 's';
- protected static final int PROXY_HOST = 'H';
- protected static final int PROXY_PORT = 'P';
- protected static final int PROXY_USERNAME = 'u';
- protected static final int PROXY_PASSWORD = 'a';
+ private static final int PROPFILE_OPT = 'p';
+ private static final int TESTFILE_OPT = 't';
+ private static final int LOGFILE_OPT = 'l';
+ private static final int NONGUI_OPT = 'n';
+ private static final int HELP_OPT = 'h';
+ private static final int VERSION_OPT = 'v';
+ private static final int SERVER_OPT = 's';
+ private static final int PROXY_HOST = 'H';
+ private static final int PROXY_PORT = 'P';
+ private static final int PROXY_USERNAME = 'u';
+ private static final int PROXY_PASSWORD = 'a';
private static final int JMETER_PROPERTY = 'J';
private static final int SYSTEM_PROPERTY = 'D';
private static final int LOGLEVEL = 'L';
@@ -537,9 +538,7 @@
// Remove the disabled items
// For GUI runs this is done in Start.java
- DisabledComponentRemover remover =
- new DisabledComponentRemover(tree);
- tree.traverse(remover);
+ convertSubTree(tree);
if (logFile != null)
{
@@ -590,12 +589,60 @@
}
catch (Exception e)
{
- System.out.println("Error in NonGUIDriver" + e.getMessage());
+ System.out.println("Error in NonGUIDriver " + e.toString());
log.error("", e);
}
}
- private JMeterEngine doRemoteInit(String hostName, HashTree testTree)
+ private boolean isEnabled(TestElement te){//TODO - belongs in TestElement ...
+ return
+ te.getProperty(TestElement.ENABLED) instanceof NullProperty
+ ||
+ te.getPropertyAsBoolean(TestElement.ENABLED);
+ }
+
+ /**
+ * Code copied from AbstractAction.java and modified to suit TestElements
+ * @param tree
+ */
+ private void convertSubTree(HashTree tree) {//TODO check build dependencies
+ Iterator iter = new LinkedList(tree.list()).iterator();
+ while (iter.hasNext())
+ {
+ TestElement item = (TestElement) iter.next();
+ if (isEnabled(item))
+ {//TODO handle ReplaceableControllers
+// if (item instanceof ReplaceableController)
+// {
+// System.out.println("Replaceable
"+item.getClass().getName());
+// HashTree subTree = tree.getTree(item);
+//
+// if (subTree != null)
+// {
+// ReplaceableController rc =
+//
(ReplaceableController) item;//.createTestElement();
+// rc.replace(subTree);
+// convertSubTree(subTree);
+// tree.replace(item,
rc.getReplacement());
+// }
+// }
+// else
+ {
+ //System.out.println("NonReplaceable
"+item.getClass().getName());
+ convertSubTree(tree.getTree(item));
+// TestElement testElement =
item.createTestElement();
+// tree.replace(item, testElement);
+ }
+ }
+ else
+ {
+ //System.out.println("Disabled
"+item.getClass().getName());
+ tree.remove(item);
+ }
+ }
+ }
+
+ private JMeterEngine doRemoteInit(String hostName, HashTree testTree)
{
JMeterEngine engine = null;
try
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]