On 14 August 2013 14:10, <[email protected]> wrote: > Author: sebb > Date: Wed Aug 14 13:10:10 2013 > New Revision: 1513863 > > URL: http://svn.apache.org/r1513863 > Log: > Support device in addition to source IP address > Use enum for source types; don't convert between index and name unnecessarily. > Bugzilla Id: 54874
Hopefully the changed code is OK with you all? It's unlikely we'll need another enum entry for a while, but if we do, it should now be quite easy to add. > Modified: > > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java > > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java > > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java > > Modified: > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java?rev=1513863&r1=1513862&r2=1513863&view=diff > ============================================================================== > --- > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java > (original) > +++ > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java > Wed Aug 14 13:10:10 2013 > @@ -72,7 +72,7 @@ public class HttpTestSampleGui extends A > > private JTextField sourceIpAddr; // does not apply to Java implementation > > - private JComboBox sourceIpType = new > JComboBox(HTTPSamplerBase.getSourceTypeList().toArray()); > + private JComboBox sourceIpType = new > JComboBox(HTTPSamplerBase.getSourceTypeList()); > > private final boolean isAJP; > > @@ -136,7 +136,7 @@ public class HttpTestSampleGui extends A > samplerBase.setEmbeddedUrlRE(embeddedRE.getText()); > if (!isAJP) { > samplerBase.setIpSource(sourceIpAddr.getText()); > - > samplerBase.setIpSourceType(HTTPSamplerBase.getSourceTypeList().indexOf(sourceIpType.getSelectedItem())); > + samplerBase.setIpSourceType(sourceIpType.getSelectedIndex()); > } > this.configureTestElement(sampler); > } > @@ -241,8 +241,7 @@ public class HttpTestSampleGui extends A > > if (!isAJP) { > // Add a new field source ip address (for HC implementations > only) > - sourceIpType.setSelectedItem(HTTPSamplerBase.getSourceTypeList(). > - get(HTTPSamplerBase.SOURCE_TYPE_IP_HOSTNAME)); > //default: IP/Hostname > + > sourceIpType.setSelectedIndex(HTTPSamplerBase.SourceType.HOSTNAME.ordinal()); > //default: IP/Hostname > sourceIpType.setFont(FONT_VERY_SMALL); > sourceAddrPanel.add(sourceIpType); > > @@ -276,8 +275,7 @@ public class HttpTestSampleGui extends A > embeddedRE.setText(""); // $NON-NLS-1$ > if (!isAJP) { > sourceIpAddr.setText(""); // $NON-NLS-1$ > - sourceIpType.setSelectedItem(HTTPSamplerBase.getSourceTypeList() > - .get(HTTPSamplerBase.SOURCE_TYPE_IP_HOSTNAME)); > + > sourceIpType.setSelectedIndex(HTTPSamplerBase.SourceType.HOSTNAME.ordinal()); > //default: IP/Hostname > } > } > > > Modified: > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java?rev=1513863&r1=1513862&r2=1513863&view=diff > ============================================================================== > --- > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java > (original) > +++ > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java > Wed Aug 14 13:10:10 2013 > @@ -35,6 +35,7 @@ import org.apache.jmeter.protocol.http.c > import org.apache.jmeter.protocol.http.control.CacheManager; > import org.apache.jmeter.protocol.http.control.CookieManager; > import org.apache.jmeter.protocol.http.control.HeaderManager; > +import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.SourceType; > import org.apache.jmeter.protocol.http.util.HTTPConstantsInterface; > import org.apache.jmeter.protocol.http.util.HTTPFileArg; > import org.apache.jmeter.samplers.Interruptible; > @@ -142,13 +143,6 @@ public abstract class HTTPAbstractImpl i > } > > /** > - * Invokes {@link HTTPSamplerBase#getIpSourceType()} > - */ > - protected int getIpSourceType() { > - return testElement.getIpSourceType(); > - } > - > - /** > * Gets the IP source address (IP spoofing) if one has been provided. > * > * @return the IP source address to use (or null, if none provided or > the device address could not be found) > @@ -159,16 +153,18 @@ public abstract class HTTPAbstractImpl i > final String ipSource = getIpSource(); > if (ipSource.trim().length() > 0) { > Class<? extends InetAddress> ipClass = null; > - switch (getIpSourceType()) { > - case HTTPSamplerBase.SOURCE_TYPE_DEVICE: > + final SourceType sourceType = > HTTPSamplerBase.SourceType.values()[testElement.getIpSourceType()]; > + switch (sourceType) { > + case DEVICE: > ipClass = InetAddress.class; > break; > - case HTTPSamplerBase.SOURCE_TYPE_DEVICE_IPV4: > + case DEVICE_IPV4: > ipClass = Inet4Address.class; > break; > - case HTTPSamplerBase.SOURCE_TYPE_DEVICE_IPV6: > + case DEVICE_IPV6: > ipClass = Inet6Address.class; > break; > + case HOSTNAME: > default: > return InetAddress.getByName(ipSource); > } > > Modified: > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java?rev=1513863&r1=1513862&r2=1513863&view=diff > ============================================================================== > --- > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java > (original) > +++ > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java > Wed Aug 14 13:10:10 2013 > @@ -189,22 +189,28 @@ public abstract class HTTPSamplerBase ex > > public static final int CONCURRENT_POOL_SIZE = 4; // Default concurrent > pool size for download embedded resources > > - public static final int SOURCE_TYPE_IP_HOSTNAME = 0; > - > - public static final int SOURCE_TYPE_DEVICE = 1; > - > - public static final int SOURCE_TYPE_DEVICE_IPV4 = 2; > + public static enum SourceType { > + HOSTNAME("web_testing_source_ip_hostname"), //$NON-NLS-1$ > + DEVICE("web_testing_source_ip_device"), //$NON-NLS-1$ > + DEVICE_IPV4("web_testing_source_ip_device_ipv4"), //$NON-NLS-1$ > + DEVICE_IPV6("web_testing_source_ip_device_ipv6"); //$NON-NLS-1$ > + > + public final String propertyName; > + SourceType(String propertyName) { > + this.propertyName = propertyName; > + } > + } > > - public static final int SOURCE_TYPE_DEVICE_IPV6 = 3; > + private static final int SOURCE_TYPE_DEFAULT = > HTTPSamplerBase.SourceType.HOSTNAME.ordinal(); > > // Use for ComboBox Source Address Type. Preserve order (specially with > localization) > - public static final ArrayList<String> getSourceTypeList() { > - ArrayList<String> sourceTypeList = new ArrayList<String>(4); > - > sourceTypeList.add(JMeterUtils.getResString("web_testing_source_ip_hostname")); > //$NON-NLS-1$ > - > sourceTypeList.add(JMeterUtils.getResString("web_testing_source_ip_device")); > //$NON-NLS-1$ > - > sourceTypeList.add(JMeterUtils.getResString("web_testing_source_ip_device_ipv4")); > //$NON-NLS-1$ > - > sourceTypeList.add(JMeterUtils.getResString("web_testing_source_ip_device_ipv6")); > //$NON-NLS-1$ > - return sourceTypeList; > + public static final String[] getSourceTypeList() { > + final SourceType[] types = SourceType.values(); > + final String[] displayStrings = new String[types.length]; > + for(int i = 0; i < types.length; i++) { > + displayStrings[i] = > JMeterUtils.getResString(types[i].propertyName); > + } > + return displayStrings; > } > > public static final String DEFAULT_METHOD = HTTPConstants.GET; // > $NON-NLS-1$ > @@ -1737,7 +1743,7 @@ public abstract class HTTPSamplerBase ex > * set IP/address source type to use > */ > public void setIpSourceType(int value) { > - setProperty(IP_SOURCE_TYPE, value, > HTTPSamplerBase.SOURCE_TYPE_IP_HOSTNAME); > + setProperty(IP_SOURCE_TYPE, value, SOURCE_TYPE_DEFAULT); > } > > /** > @@ -1746,7 +1752,7 @@ public abstract class HTTPSamplerBase ex > * @return address source type > */ > public int getIpSourceType() { > - return getPropertyAsInt(IP_SOURCE_TYPE, > HTTPSamplerBase.SOURCE_TYPE_IP_HOSTNAME); > + return getPropertyAsInt(IP_SOURCE_TYPE, SOURCE_TYPE_DEFAULT); > } > > /** > >
