/** * Get the property name, updating it if necessary using {@link NameUpdater}. * @param reader where to read the name attribute * @param context the unmarshalling context * * @return the property name, may be null if the property has been deleted. * @see #getUpgradePropertyName(String, UnmarshallingContext) */ public static String getPropertyName(HierarchicalStreamReader reader, UnmarshallingContext context) { String name = ConversionHelp.decode(reader.getAttribute(ATT_NAME)); return getUpgradePropertyName(name, context); }
private static void saveItem(TestElement el, HierarchicalStreamWriter writer, String prop, boolean encode){ String item=el.getPropertyAsString(prop); if (item.length() > 0) { if (encode) { item=ConversionHelp.encode(item); } writer.addAttribute(propertyToAttribute.get(prop),item); } }
/** {@inheritDoc} */ @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final String name = ConversionHelp.getPropertyName(reader, context); if (name == null) { return null; } final String value = ConversionHelp.getPropertyValue(reader, context, name); StringProperty prop = new StringProperty(name, value); return prop; } }
/** * Restore the special properties: * <ul> * <li>TestElement.GUI_CLASS</li> * <li>TestElement.TEST_CLASS</li> * <li>TestElement.NAME</li> * <li>TestElement.ENABLED</li> * </ul> * * @param testElement * in which the special properties should be restored * @param reader * {@link HierarchicalStreamReader} from which the special * properties should be restored */ public static void restoreSpecialProperties(TestElement testElement, HierarchicalStreamReader reader) { restoreClass(testElement,reader,TestElement.GUI_CLASS); restoreClass(testElement,reader,TestElement.TEST_CLASS); restoreItem(testElement,reader,TestElement.NAME,true); restoreItem(testElement,reader,TestElement.ENABLED,false); } }
/** {@inheritDoc} */ @Override public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingContext context) { TestElementProperty prop = (TestElementProperty) arg0; writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName())); Class<?> clazz = prop.getObjectValue().getClass(); writer.addAttribute(ConversionHelp.ATT_ELEMENT_TYPE, mapper().serializedClass(clazz)); TestElement te = (TestElement)prop.getObjectValue(); ConversionHelp.saveSpecialProperties(te,writer); for (JMeterProperty jmp : prop) { // Skip special properties if required if (!ConversionHelp.isSpecialProperty(jmp.getName())) { // Don't save empty comments if (!(TestElement.COMMENTS.equals(jmp.getName()) && jmp.getStringValue().isEmpty())) { writeItem(jmp, context, writer); } } } //TODO clazz is probably always the same as testclass }
/** * Get the property value, updating it if necessary using {@link NameUpdater}. * * Do not use for GUI_CLASS or TEST_CLASS. * * @param reader where to read the value * @param context the unmarshalling context * @param name the name of the property * * @return the property value, updated if necessary. * @see #getUpgradePropertyValue(String, String, UnmarshallingContext) */ public static String getPropertyValue(HierarchicalStreamReader reader, UnmarshallingContext context, String name) { String value = ConversionHelp.decode(reader.getValue()); return getUpgradePropertyValue(name, value, context); }
/** {@inheritDoc} */ @Override public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingContext context) { TestElement el = (TestElement) arg0; ConversionHelp.saveSpecialProperties(el,writer); PropertyIterator iter = el.propertyIterator(); while (iter.hasNext()) { JMeterProperty jmp=iter.next(); // Skip special properties if required if (!ConversionHelp.isSpecialProperty(jmp.getName())) { // Don't save empty comments - except for the TestPlan (to maintain compatibility) if (!( TestElement.COMMENTS.equals(jmp.getName()) && jmp.getStringValue().length()==0 && !el.getClass().equals(TestPlan.class) )) { writeItem(jmp, context, writer); } } } }
try { TestElementProperty prop = (TestElementProperty) createCollection(context.getRequiredType()); prop.setName(ConversionHelp.decode(reader.getAttribute(ConversionHelp.ATT_NAME))); String element = reader.getAttribute(ConversionHelp.ATT_ELEMENT_TYPE); boolean isHeader = HEADER_CLASSNAME.equals(element); ConversionHelp.restoreSpecialProperties(te, reader); while (reader.hasMoreChildren()) { reader.moveDown();
/** {@inheritDoc} */ @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final String name = ConversionHelp.getPropertyName(reader, context); if (name == null) { return null; } BooleanProperty prop = new BooleanProperty(name, Boolean.valueOf(reader.getValue()).booleanValue()); return prop; } }
private static void restoreItem(TestElement el, HierarchicalStreamReader reader, String prop, boolean decode) { String att=propertyToAttribute.get(prop); String value=reader.getAttribute(att); if (value!=null){ if (decode) { value=ConversionHelp.decode(value); } el.setProperty(prop,value); } }
TestElement el = (TestElement) type.newInstance(); ConversionHelp.restoreSpecialProperties(el, reader);
/** {@inheritDoc} */ @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final String name = ConversionHelp.getPropertyName(reader, context); if (name == null) { return null; } IntegerProperty prop = new IntegerProperty(name, Integer.parseInt(reader.getValue())); return prop; } }
/** {@inheritDoc} */ @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { MultiProperty prop = (MultiProperty) createCollection(context.getRequiredType()); prop.setName(ConversionHelp.decode(reader.getAttribute(ConversionHelp.ATT_NAME))); while (reader.hasMoreChildren()) { reader.moveDown(); JMeterProperty subProp = (JMeterProperty) readItem(reader, context, prop); if (subProp != null) { // could be null if it has been deleted via NameUpdater prop.addProperty(subProp); } reader.moveUp(); } return prop; }
/** {@inheritDoc} */ @Override public void marshal(Object obj, HierarchicalStreamWriter writer, MarshallingContext arg2) { StringProperty prop = (StringProperty) obj; writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName())); writer.setValue(ConversionHelp.encode(prop.getStringValue())); }
/** {@inheritDoc} */ @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final String name = ConversionHelp.getPropertyName(reader, context); if (name == null) { return null; } LongProperty prop = new LongProperty(name, Long.parseLong(reader.getValue())); return prop; } }
/** * @param reader stream to read objects from * @param context context for xstream to allow nested objects * @param res sample result on which the attributes should be set */ protected void retrieveAttributes(HierarchicalStreamReader reader, UnmarshallingContext context, SampleResult res) { res.setSampleLabel(ConversionHelp.decode(reader.getAttribute(ATT_LABEL))); res.setDataEncoding(ConversionHelp.decode(reader.getAttribute(ATT_DATA_ENCODING))); res.setDataType(ConversionHelp.decode(reader.getAttribute(ATT_DATA_TYPE))); String oldrc=reader.getAttribute(ATT_RESPONSE_CODE_OLD); if (oldrc!=null) { res.setResponseCode(ConversionHelp.decode(oldrc)); } else { res.setResponseCode(ConversionHelp.decode(reader.getAttribute(ATT_RESPONSE_CODE))); } res.setResponseMessage(ConversionHelp.decode(reader.getAttribute(ATT_RESPONSE_MESSAGE))); res.setSuccessful(Converter.getBoolean(reader.getAttribute(ATT_SUCCESS), true)); res.setThreadName(ConversionHelp.decode(reader.getAttribute(ATT_THREADNAME))); res.setStampAndTime(Converter.getLong(reader.getAttribute(ATT_TIME_STAMP)), Converter.getLong(reader.getAttribute(ATT_TIME))); res.setIdleTime(Converter.getLong(reader.getAttribute(ATT_IDLETIME))); res.setLatency(Converter.getLong(reader.getAttribute(ATT_LATENCY))); res.setConnectTime(Converter.getLong(reader.getAttribute(ATT_CONNECT_TIME))); res.setBytes(Converter.getLong(reader.getAttribute(ATT_BYTES))); res.setSentBytes(Converter.getLong(reader.getAttribute(ATT_SENT_BYTES))); res.setSampleCount(Converter.getInt(reader.getAttribute(ATT_SAMPLE_COUNT),1)); // default is 1 res.setErrorCount(Converter.getInt(reader.getAttribute(ATT_ERROR_COUNT),0)); // default is 0 res.setGroupThreads(Converter.getInt(reader.getAttribute(ATT_GRP_THRDS))); res.setAllThreads(Converter.getInt(reader.getAttribute(ATT_ALL_THRDS))); }
/** {@inheritDoc} */ @Override public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingContext context) { MultiProperty prop = (MultiProperty) arg0; writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName())); for (JMeterProperty jMeterProperty : prop) { writeItem(jMeterProperty, context, writer); } }
/** {@inheritDoc} */ @Override public void marshal(Object obj, HierarchicalStreamWriter writer, MarshallingContext arg2) { BooleanProperty prop = (BooleanProperty) obj; writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName())); writer.setValue(prop.getStringValue()); }
/** {@inheritDoc} */ @Override public void marshal(Object obj, HierarchicalStreamWriter writer, MarshallingContext arg2) { LongProperty prop = (LongProperty) obj; writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName())); writer.setValue(prop.getStringValue()); }
/** {@inheritDoc} */ @Override public void marshal(Object obj, HierarchicalStreamWriter writer, MarshallingContext arg2) { IntegerProperty prop = (IntegerProperty) obj; writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName())); writer.setValue(prop.getStringValue()); }