KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jmeter > gui > action > Load


1 // $Header: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Load.java,v 1.23.2.1 2005/03/12 02:56:15 sebb Exp $
2
/*
3  * Copyright 2001-2004 The Apache Software Foundation.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17 */

18
19 package org.apache.jmeter.gui.action;
20
21 import java.awt.event.ActionEvent JavaDoc;
22 import java.io.File JavaDoc;
23 import java.io.FileInputStream JavaDoc;
24 import java.io.InputStream JavaDoc;
25 import java.util.HashSet JavaDoc;
26 import java.util.Set JavaDoc;
27
28 import javax.swing.JFileChooser JavaDoc;
29 import javax.swing.tree.TreePath JavaDoc;
30
31 import junit.framework.TestCase;
32
33 import org.apache.jmeter.exceptions.IllegalUserActionException;
34 import org.apache.jmeter.gui.GuiPackage;
35 import org.apache.jmeter.gui.tree.JMeterTreeNode;
36 import org.apache.jmeter.gui.util.FileDialoger;
37 import org.apache.jmeter.save.SaveService;
38 import org.apache.jmeter.testelement.TestPlan;
39 import org.apache.jmeter.util.JMeterUtils;
40 import org.apache.jorphan.collections.HashTree;
41 import org.apache.jorphan.logging.LoggingManager;
42 import org.apache.log.Logger;
43
44 /**
45  * @author Michael Stover
46  * @version $Revision: 1.23.2.1 $
47  */

48 public class Load implements Command
49 {
50     transient private static Logger log = LoggingManager.getLoggerForClass();
51  
52     private static Set JavaDoc commands = new HashSet JavaDoc();
53     static {
54         commands.add("open");
55         commands.add("merge");
56     }
57
58     public Load()
59     {
60     }
61
62     public Set JavaDoc getActionNames()
63     {
64         return commands;
65     }
66
67     public void doAction(ActionEvent JavaDoc e)
68     {
69         boolean merging = e.getActionCommand().equals("merge");
70         
71         if (!merging)
72         {
73             ActionRouter.getInstance().doActionNow(
74                 new ActionEvent JavaDoc(e.getSource(),e.getID(),"close"));
75         }
76
77         JFileChooser JavaDoc chooser =
78             FileDialoger.promptToOpenFile(new String JavaDoc[] { ".jmx" });
79         if (chooser == null)
80         {
81             return;
82         }
83         boolean isTestPlan = false;
84         InputStream JavaDoc reader = null;
85         File JavaDoc f = null;
86         try
87         {
88             f = chooser.getSelectedFile();
89             if (f != null)
90             {
91                 if (merging){
92                     log.info("Merging file: " + f);
93                 } else {
94                     log.info("Loading file: " + f);
95                 }
96                 reader = new FileInputStream JavaDoc(f);
97                 HashTree tree = SaveService.loadSubTree(reader);
98                 isTestPlan = insertLoadedTree(e.getID(), tree);
99             }
100         }
101         catch (Exception JavaDoc ex)
102         {
103             String JavaDoc msg = ex.getMessage();
104             if (msg == null)
105             {
106                 msg = "Unexpected error - see log for details";
107                 log.warn("Unexpected error", ex);
108             }
109             JMeterUtils.reportErrorToUser(msg);
110         }
111         finally
112         {
113             GuiPackage.getInstance().updateCurrentGui();
114             GuiPackage.getInstance().getMainFrame().repaint();
115         }
116         // don't change name if merging
117
if (!merging && isTestPlan && f != null)
118         {
119             (
120                 (Save) ActionRouter.getInstance().getAction(
121                     "save",
122                     "org.apache.jmeter.gui.action.Save")).setTestPlanFile(
123                 f.getAbsolutePath());
124         }
125     }
126
127     /**
128      * Returns a boolean indicating whether the loaded tree was a full test plan
129      */

130     public boolean insertLoadedTree(int id, HashTree tree)
131         throws Exception JavaDoc, IllegalUserActionException
132     {
133         //convertTree(tree);
134
if (tree == null)
135         {
136             throw new Exception JavaDoc("Error in TestPlan - see log file");
137         }
138         boolean isTestPlan = tree.getArray()[0] instanceof TestPlan;
139         HashTree newTree = GuiPackage.getInstance().addSubTree(tree);
140         GuiPackage.getInstance().updateCurrentGui();
141         GuiPackage.getInstance().getMainFrame().getTree().setSelectionPath(
142             new TreePath JavaDoc(((JMeterTreeNode) newTree.getArray()[0]).getPath()));
143         tree = GuiPackage.getInstance().getCurrentSubTree();
144         ActionRouter.getInstance().actionPerformed(
145             new ActionEvent JavaDoc(
146                 tree.get(tree.getArray()[tree.size() - 1]),
147                 id,
148                 CheckDirty.SUB_TREE_LOADED));
149
150         return isTestPlan;
151     }
152
153     /**
154      *
155      * @version $Revision: 1.23.2.1 $ Last updated: $Date: 2005/03/12 02:56:15 $
156      */

157     public static class Test extends TestCase
158     {
159         File JavaDoc testFile1,
160             testFile2,
161             testFile3,
162             testFile4,
163             testFile5,
164             testFile6,
165             testFile7,
166             testFile8,
167             testFile9,
168             testFile10,
169             testFile11,
170             testFile12,
171             testFile13;
172         static Load loader = new Load();
173
174         public Test(String JavaDoc name)
175         {
176             super(name);
177         }
178
179         public void setUp()
180         {
181             testFile1 = //TODO: not used - why?
182
new File JavaDoc(
183                     System.getProperty("user.dir") + "/testfiles",
184                     "Test Plan.jmx");
185             testFile2 = //TODO: not used - why?
186
new File JavaDoc(
187                     System.getProperty("user.dir") + "/testfiles",
188                     "Modification Manager.jmx");
189             testFile3 =
190                 new File JavaDoc(
191                     System.getProperty("user.dir") + "/testfiles",
192                     "proxy.jmx");
193             testFile4 =
194                 new File JavaDoc(
195                     System.getProperty("user.dir") + "/testfiles",
196                     "AssertionTestPlan.jmx");
197             testFile5 =
198                 new File JavaDoc(
199                     System.getProperty("user.dir") + "/testfiles",
200                     "AuthManagerTestPlan.jmx");
201             testFile6 =
202                 new File JavaDoc(
203                     System.getProperty("user.dir") + "/testfiles",
204                     "HeaderManagerTestPlan.jmx");
205             testFile7 =
206                 new File JavaDoc(
207                     System.getProperty("user.dir") + "/testfiles",
208                     "InterleaveTestPlan.jmx");
209             testFile8 =
210                 new File JavaDoc(
211                     System.getProperty("user.dir") + "/testfiles",
212                     "InterleaveTestPlan2.jmx");
213             testFile9 =
214                 new File JavaDoc(
215                     System.getProperty("user.dir") + "/testfiles",
216                     "LoopTestPlan.jmx");
217             testFile10 =
218                 new File JavaDoc(
219                     System.getProperty("user.dir") + "/testfiles",
220                     "OnceOnlyTestPlan.jmx");
221             testFile11 =
222                 new File JavaDoc(
223                     System.getProperty("user.dir") + "/testfiles",
224                     "ProxyServerTestPlan.jmx");
225             testFile12 =
226                 new File JavaDoc(
227                     System.getProperty("user.dir") + "/testfiles",
228                     "SimpleTestPlan.jmx");
229             testFile13 = //TODO: not used - why?
230
new File JavaDoc(
231                     System.getProperty("user.dir") + "/testfiles",
232                     "URLRewritingExample.jmx");
233         }
234
235         public void testFile3() throws Exception JavaDoc
236         {
237             assertTree(getTree(testFile3));
238         }
239
240         private void assertTree(HashTree tree) throws Exception JavaDoc
241         {
242             assertTrue(
243                 tree.getArray()[0]
244                     instanceof org.apache.jmeter.testelement.TestPlan);
245         }
246
247         public void testFile4() throws Exception JavaDoc
248         {
249             assertTree(getTree(testFile4));
250         }
251
252         public void testFile5() throws Exception JavaDoc
253         {
254             assertTree(getTree(testFile5));
255         }
256
257         public void testFile6() throws Exception JavaDoc
258         {
259             assertTree(getTree(testFile6));
260         }
261
262         public void testFile7() throws Exception JavaDoc
263         {
264             assertTree(getTree(testFile7));
265         }
266
267         public void testFile8() throws Exception JavaDoc
268         {
269             assertTree(getTree(testFile8));
270         }
271
272         public void testFile9() throws Exception JavaDoc
273         {
274             assertTree(getTree(testFile9));
275         }
276
277         public void testFile10() throws Exception JavaDoc
278         {
279             assertTree(getTree(testFile10));
280         }
281
282         public void testFile11() throws Exception JavaDoc
283         {
284             assertTree(getTree(testFile11));
285         }
286
287         public void testFile12() throws Exception JavaDoc
288         {
289             assertTree(getTree(testFile12));
290         }
291
292         private HashTree getTree(File JavaDoc f) throws Exception JavaDoc
293         {
294             FileInputStream JavaDoc reader = new FileInputStream JavaDoc(f);
295             HashTree tree = SaveService.loadSubTree(reader);
296             return tree;
297         }
298     }
299 }
300
Popular Tags