You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2005/09/03 21:02:04 UTC

cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/save OldSaveService.java

sebb        2005/09/03 12:02:04

  Modified:    src/core/org/apache/jmeter/save Tag: rel-2-1
                        OldSaveService.java
  Log:
  Update.properties changes:
  - delete properties whose new name is empty
  - always set test_class the same as the test element name
  - convert certain test element names depending on the associated GUI class
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.9.2.1   +37 -14    jakarta-jmeter/src/core/org/apache/jmeter/save/OldSaveService.java
  
  Index: OldSaveService.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/OldSaveService.java,v
  retrieving revision 1.9
  retrieving revision 1.9.2.1
  diff -u -r1.9 -r1.9.2.1
  --- OldSaveService.java	12 Jul 2005 20:50:48 -0000	1.9
  +++ OldSaveService.java	3 Sep 2005 19:02:04 -0000	1.9.2.1
  @@ -574,13 +574,26 @@
   		TestElement element = null;
   
   		String testClass = config.getAttribute("class");
  -		element = (TestElement) Class.forName(NameUpdater.getCurrentName(testClass)).newInstance();
  +		
  +        String gui_class="";
   		Configuration[] children = config.getChildren();
  +        for (int i = 0; i < children.length; i++) {
  +            if (children[i].getName().equals("property")) {
  +                if (children[i].getAttribute("name").equals(TestElement.GUI_CLASS)){
  +                    gui_class=children[i].getValue();
  +                }
  +            }  
  +        }
  +        
  +        String newClass = NameUpdater.getCurrentTestName(testClass,gui_class);
   
  -		for (int i = 0; i < children.length; i++) {
  +        element = (TestElement) Class.forName(newClass).newInstance();
  +
  +        for (int i = 0; i < children.length; i++) {
   			if (children[i].getName().equals("property")) {
   				try {
  -					element.setProperty(createProperty(children[i], testClass));
  +                    JMeterProperty prop = createProperty(children[i], newClass);
  +					if (prop!=null) element.setProperty(prop);
   				} catch (Exception ex) {
   					log.error("Problem loading property", ex);
   					element.setProperty(children[i].getAttribute("name"), "");
  @@ -589,11 +602,11 @@
   				element.setProperty(new TestElementProperty(children[i].getAttribute("name", ""),
   						createTestElement(children[i])));
   			} else if (children[i].getName().equals("collection")) {
  -				element.setProperty(new CollectionProperty(children[i].getAttribute("name", ""), createCollection(
  -						children[i], testClass)));
  +				element.setProperty(new CollectionProperty(children[i].getAttribute("name", ""),
  +                        createCollection(children[i], newClass)));
   			} else if (children[i].getName().equals("map")) {
  -				element.setProperty(new MapProperty(children[i].getAttribute("name", ""), createMap(children[i],
  -						testClass)));
  +				element.setProperty(new MapProperty(children[i].getAttribute("name", ""),
  +                        createMap(children[i],newClass)));
   			}
   		}
   		return element;
  @@ -606,14 +619,16 @@
   
   		for (int i = 0; i < items.length; i++) {
   			if (items[i].getName().equals("property")) {
  -				coll.add(createProperty(items[i], testClass));
  +                JMeterProperty prop = createProperty(items[i], testClass);
  +				if (prop!=null) coll.add(prop);
   			} else if (items[i].getName().equals("testelement")) {
   				coll.add(new TestElementProperty(items[i].getAttribute("name", ""), createTestElement(items[i])));
   			} else if (items[i].getName().equals("collection")) {
   				coll.add(new CollectionProperty(items[i].getAttribute("name", ""),
   						createCollection(items[i], testClass)));
   			} else if (items[i].getName().equals("string")) {
  -				coll.add(createProperty(items[i], testClass));
  +                JMeterProperty prop = createProperty(items[i], testClass);
  +				if (prop!=null) coll.add(prop);
   			} else if (items[i].getName().equals("map")) {
   				coll.add(new MapProperty(items[i].getAttribute("name", ""), createMap(items[i], testClass)));
   			}
  @@ -625,17 +640,25 @@
   			ClassNotFoundException, InstantiationException {
   		String value = config.getValue("");
   		String name = config.getAttribute("name", value);
  +        String oname = name;
   		String type = config.getAttribute("propType", StringProperty.class.getName());
   
   		// Do upgrade translation:
   		name = NameUpdater.getCurrentName(name, testClass);
  -		if (TestElement.GUI_CLASS.equals(name) || TestElement.TEST_CLASS.equals(name)) {
  +		if (TestElement.GUI_CLASS.equals(name)) {
   			value = NameUpdater.getCurrentName(value);
  +        } else if (TestElement.TEST_CLASS.equals(name)) {
  +            value=testClass; // must always agree
   		} else {
   			value = NameUpdater.getCurrentName(value, name, testClass);
   		}
   
  -		// Create the property:
  +        // Delete any properties whose name converts to the empty string
  +        if (oname.length() != 0 && name.length()==0) {
  +            return null;
  +        }
  +
  +        // Create the property:
   		JMeterProperty prop = (JMeterProperty) Class.forName(type).newInstance();
   		prop.setName(name);
   		prop.setObjectValue(value);
  @@ -651,7 +674,7 @@
   		for (int i = 0; i < items.length; i++) {
   			if (items[i].getName().equals("property")) {
   				JMeterProperty prop = createProperty(items[i], testClass);
  -				map.put(prop.getName(), prop);
  +				if (prop!=null) map.put(prop.getName(), prop);
   			} else if (items[i].getName().equals("testelement")) {
   				map.put(items[i].getAttribute("name", ""), new TestElementProperty(items[i].getAttribute("name", ""),
   						createTestElement(items[i])));
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org