woolfel 2005/08/24 10:33:09
Modified: src/components/org/apache/jmeter/control
IncludeController.java
Log:
although it doesn't work, I'm checking it in, so mike can help. my brain is
dead right now
can't see the problem.
peter
Revision Changes Path
1.2 +33 -37
jakarta-jmeter/src/components/org/apache/jmeter/control/IncludeController.java
Index: IncludeController.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/IncludeController.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IncludeController.java 24 Aug 2005 03:40:07 -0000 1.1
+++ IncludeController.java 24 Aug 2005 17:33:09 -0000 1.2
@@ -20,14 +20,15 @@
import java.io.FileInputStream;
import java.io.InputStream;
+import java.util.Iterator;
import org.apache.jmeter.gui.GuiPackage;
-import org.apache.jmeter.exceptions.IllegalUserActionException;
+import org.apache.jmeter.gui.tree.JMeterTreeNode;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
-import org.apache.jorphan.collections.SearchByClass;
+import org.apache.jorphan.collections.ListedHashTree;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
@@ -42,9 +43,8 @@
public static final String INCLUDE_PATH =
"IncludeController.includepath";
- private Controller INCLUDED_ELEMENTS = null;
-
private HashTree SUBTREE = null;
+ private TestElement SUB = null;
/**
* No-arg constructor
@@ -56,7 +56,20 @@
}
public Object clone() {
+ log.info("----- clone() ------");
+ this.loadIncludedElements();
IncludeController clone = (IncludeController) super.clone();
+ clone.setIncludePath(this.getIncludePath());
+ if (this.SUBTREE.keySet().size() == 1) {
+ Iterator itr = this.SUBTREE.keySet().iterator();
+ while (itr.hasNext()) {
+ this.SUB = (TestElement)itr.next();
+ }
+ System.out.println("key=" + this.SUB.getClass().getName() +
+ " -- value=" +
this.SUBTREE.get(this.SUB).getClass().getName());
+ }
+ clone.SUBTREE = (HashTree)this.SUBTREE.clone();
+ clone.SUB = (TestElement)this.SUB.clone();
return clone;
}
@@ -77,40 +90,23 @@
return this.getPropertyAsString(INCLUDE_PATH);
}
- public TestElement getReplacement() {
- this.loadIncludedElements();
- return this;
+ /**
+ * The way ReplaceableController works is clone is called first,
+ * followed by replace(HashTree) and finally getReplacement().
+ */
+ public void replace(HashTree tree) {
+ log.info("----- replace(HashTree) ------");
+ ListedHashTree col = (ListedHashTree)this.SUBTREE.get(this.SUB);
+ JMeterTreeNode newnode = new JMeterTreeNode(this.SUB,
+ GuiPackage.getInstance().getTreeModel());
+ tree.add(newnode,new HashTree(col));
}
- /**
- * Copies the controller's subelements into the execution tree
- *
- * @param tree -
- * The current tree under which the nodes will be added
- */
- public void replace(HashTree tree) {
- /**
- *
- HashTree thistree = findTree(tree);
- if (thistree != null) {
- thistree.add(loadIncludedElements());
- log.info("replace - added the include tree");
- }
- */
- try {
- GuiPackage.getInstance().addSubTree(loadIncludedElements());
- } catch (IllegalUserActionException e) {
- log.warn(e.getMessage());
- }
- }
-
- public HashTree findTree(HashTree tree) {
- log.info("search the tree ---- " + tree.size() + " --- " +
tree.hashCode());
- SearchByClass search = new SearchByClass(IncludeController.class);
- tree.traverse(search);
- return search.getSubTree(this);
+ public TestElement getReplacement() {
+ log.info("----- getReplacement() ------");
+ return this.SUB;
}
-
+
/**
* load the included elements using SaveService
* @param node
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]