1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.support.editor.inspectors.jms.property;
14
15 import java.beans.PropertyChangeEvent;
16 import java.util.ArrayList;
17 import java.util.List;
18
19 import com.eviware.soapui.config.JMSPropertyConfig;
20 import com.eviware.soapui.impl.support.AbstractHttpRequest;
21 import com.eviware.soapui.impl.wsdl.submit.transports.jms.JMSEndpoint;
22 import com.eviware.soapui.impl.wsdl.submit.transports.jms.util.JMSUtils;
23 import com.eviware.soapui.model.ModelItem;
24 import com.eviware.soapui.support.editor.Editor;
25 import com.eviware.soapui.support.editor.EditorInspector;
26 import com.eviware.soapui.support.editor.inspectors.jms.property.JMSPropertyInspectorModel.AbstractJMSPropertyModel;
27 import com.eviware.soapui.support.editor.registry.RequestInspectorFactory;
28 import com.eviware.soapui.support.editor.registry.ResponseInspectorFactory;
29 import com.eviware.soapui.support.types.StringToStringMap;
30
31 public class JMSPropertyInspectorFactory implements RequestInspectorFactory, ResponseInspectorFactory
32 {
33 public static final String INSPECTOR_ID = "JMS Properties";
34
35 public String getInspectorId()
36 {
37 return INSPECTOR_ID;
38 }
39
40 public EditorInspector<?> createRequestInspector(Editor<?> editor, ModelItem modelItem)
41 {
42 if (modelItem instanceof AbstractHttpRequest<?>)
43 {
44 JMSPropertyInspector inspector = new JMSPropertyInspector(
45 (JMSPropertyInspectorModel) new WsdlRequestJMSPropertiesModel((AbstractHttpRequest<?>) modelItem));
46 inspector.setEnabled(JMSUtils.checkIfJMS(modelItem));
47 return inspector;
48 }
49 return null;
50 }
51
52 public EditorInspector<?> createResponseInspector(Editor<?> editor, ModelItem modelItem)
53 {
54
55 return null;
56 }
57
58 private class WsdlRequestJMSPropertiesModel extends AbstractJMSPropertyModel<AbstractHttpRequest<?>>
59 {
60 AbstractHttpRequest<?> request;
61 JMSPropertyInspector inspector;
62
63 public WsdlRequestJMSPropertiesModel(AbstractHttpRequest<?> wsdlRequest)
64 {
65 super(false, wsdlRequest, "jmsProperty");
66 this.request = wsdlRequest;
67 request.addPropertyChangeListener(this);
68 }
69
70 public void propertyChange(PropertyChangeEvent evt)
71 {
72 if (request.getEndpoint() !=null && evt.getPropertyName().equals(AbstractHttpRequest.ENDPOINT_PROPERTY))
73 {
74 inspector.setEnabled(request.getEndpoint().startsWith(JMSEndpoint.JMS_ENDPIONT_PREFIX));
75 }
76 super.propertyChange(evt);
77 }
78
79 public StringToStringMap getJMSProperties()
80 {
81 List<JMSPropertyConfig> propertyList = request.getJMSPropertiesConfig().getJMSProperties();
82 StringToStringMap stringToStringMap = new StringToStringMap(propertyList.size());
83 for (JMSPropertyConfig jmsProperty : propertyList)
84 {
85 stringToStringMap.put(jmsProperty.getName(), jmsProperty.getValue());
86 }
87 return stringToStringMap;
88 }
89
90 public void setJMSProperties(StringToStringMap stringToStringMap)
91 {
92 String[] keyList = stringToStringMap.getKeys();
93 List<JMSPropertyConfig> propertyList = new ArrayList<JMSPropertyConfig>();
94 for (String key : keyList)
95 {
96 JMSPropertyConfig jmsPropertyConfig = JMSPropertyConfig.Factory.newInstance();
97 jmsPropertyConfig.setName(key);
98 jmsPropertyConfig.setValue(stringToStringMap.get(key));
99 propertyList.add(jmsPropertyConfig);
100 }
101 List<JMSPropertyConfig> propertyList2 = request.getJMSPropertiesConfig().getJMSProperties();
102 propertyList2.clear();
103 propertyList2.addAll(propertyList);
104 }
105
106 public void setInspector(JMSPropertyInspector inspector)
107 {
108 this.inspector = inspector;
109 }
110 }
111
112 }