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 2008/11/06 02:53:48 UTC

svn commit: r711753 - in /jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler: AbstractTCPClient.java BinaryTCPClientImpl.java LengthPrefixedBinaryTCPClientImpl.java TCPClient.java TCPClientImpl.java

Author: sebb
Date: Wed Nov  5 17:53:48 2008
New Revision: 711753

URL: http://svn.apache.org/viewvc?rev=711753&view=rev
Log:
Move eolByte processing to AbstractTCPClient
Change setEolByte to take int parameter so can unset it
Length-prefixed implementations do not use eomByte processing

Modified:
    jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java
    jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java
    jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/LengthPrefixedBinaryTCPClientImpl.java
    jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java
    jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java

Modified: jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java?rev=711753&r1=711752&r2=711753&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java (original)
+++ jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java Wed Nov  5 17:53:48 2008
@@ -23,17 +23,26 @@
  */
 public abstract class AbstractTCPClient implements TCPClient {
 
+    protected byte eolByte;
+    protected boolean useEolByte = false;
+    
     /* (non-Javadoc)
      * @see org.apache.jmeter.protocol.tcp.sampler.TCPClient#getEolByte()
      */
     public byte getEolByte() {
-        return 0;
+        return eolByte;
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jmeter.protocol.tcp.sampler.TCPClient#setEolByte(byte)
+     * @see org.apache.jmeter.protocol.tcp.sampler.TCPClient#setEolByte(int)
      */
-    public void setEolByte(byte eolByte) {
+    public void setEolByte(int eolInt) {
+        if (eolInt >= Byte.MIN_VALUE && eolInt <= Byte.MAX_VALUE) {
+            this.eolByte = (byte) eolInt;
+            useEolByte = true;
+        } else {
+            useEolByte = false;
+        }
     }
 
     /* (non-Javadoc)

Modified: jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java?rev=711753&r1=711752&r2=711753&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java (original)
+++ jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/BinaryTCPClientImpl.java Wed Nov  5 17:53:48 2008
@@ -49,17 +49,13 @@
 public class BinaryTCPClientImpl extends AbstractTCPClient {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
-    private int eomInt = JMeterUtils.getPropDefault("tcp.BinaryTCPClient.eomByte", 1000); // $NON_NLS-1$
+    private static final int eomInt = JMeterUtils.getPropDefault("tcp.BinaryTCPClient.eomByte", 1000); // $NON_NLS-1$
 
-    // End of message byte (defaults to none)
-    private byte eomByte = (byte) eomInt; // -128 to +127
-
-    private boolean eomIgnore = eomInt < -128 || eomInt > 127;
-    
     public BinaryTCPClientImpl() {
         super();
-        if (!eomIgnore) {
-            log.info("Using eomByte=" + eomByte);
+        setEolByte(eomInt);
+        if (useEolByte) {
+            log.info("Using eomByte=" + eolByte);
         }
     }
 
@@ -134,7 +130,7 @@
         try {
             while ((x = is.read(buffer)) > -1) {
                 w.write(buffer, 0, x);
-                if (!eomIgnore && (buffer[x - 1] == eomByte)) {
+                if (useEolByte && (buffer[x - 1] == eolByte)) {
                     break;
                 }
             }
@@ -168,19 +164,4 @@
         return hexString;
     }
 
-    /**
-     * @return Returns the eomByte.
-     */
-    public byte getEolByte() {
-        return eomByte;
-    }
-
-    /**
-     * @param eomByte
-     *            The eomByte to set.
-     */
-    public void setEolByte(byte eomByte) {
-        this.eomByte = eomByte;
-        eomIgnore = false;
-    }
 }

Modified: jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/LengthPrefixedBinaryTCPClientImpl.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/LengthPrefixedBinaryTCPClientImpl.java?rev=711753&r1=711752&r2=711753&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/LengthPrefixedBinaryTCPClientImpl.java (original)
+++ jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/LengthPrefixedBinaryTCPClientImpl.java Wed Nov  5 17:53:48 2008
@@ -50,6 +50,7 @@
 
     public LengthPrefixedBinaryTCPClientImpl() {
         super(new BinaryTCPClientImpl());
+        tcpClient.setEolByte(Byte.MAX_VALUE+1);
     }
 
 
@@ -128,6 +129,8 @@
     }
 
     /**
+     * Not useful, as the byte is never used.
+     * 
      * @return Returns the eolByte.
      */
     public byte getEolByte() {
@@ -135,10 +138,10 @@
     }
 
     /**
-     * @param eolByte
+     * @param eolInt
      *            The eolByte to set.
      */
-    public void setEolByte(byte eolByte) {
-        tcpClient.setEolByte(eolByte);
+    public void setEolByte(int eolInt) {
+        throw new UnsupportedOperationException("Cannot set eomByte for prefixed messages");
     }
 }

Modified: jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java?rev=711753&r1=711752&r2=711753&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java (original)
+++ jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java Wed Nov  5 17:53:48 2008
@@ -69,13 +69,18 @@
     String read(InputStream is);
 
     /**
+     * Get the end-of-line/end-of-message byte.
      * @return Returns the eolByte.
      */
     public byte getEolByte();
 
     /**
-     * @param eolByte
-     *            The eolByte to set.
+     * Set the end-of-line/end-of-message byte.
+     * If the value is out of range of a byte, then it is to be ignored.
+     * 
+     * @param eolInt
+     *            The value to set
      */
-    public void setEolByte(byte eolByte);
+    public void setEolByte(int eolInt);
+
 }
\ No newline at end of file

Modified: jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java?rev=711753&r1=711752&r2=711753&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java (original)
+++ jakarta/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java Wed Nov  5 17:53:48 2008
@@ -50,13 +50,10 @@
     private int eolInt = JMeterUtils.getPropDefault("tcp.eolByte", 1000); // $NON-NLS-1$
     // default is not in range of a byte
 
-    private byte eolByte = (byte) eolInt; // -128 to +127
-
-    private boolean eolIgnore = eolInt < -128 || eolInt > 127;
-
     public TCPClientImpl() {
         super();
-        if (!eolIgnore) {
+        setEolByte(eolInt);
+        if (useEolByte) {
             log.info("Using eolByte=" + eolByte);
         }
     }
@@ -108,7 +105,7 @@
         try {
             while ((x = is.read(buffer)) > -1) {
                 w.write(buffer, 0, x);
-                if (!eolIgnore && (buffer[x - 1] == eolByte)) {
+                if (useEolByte && (buffer[x - 1] == eolByte)) {
                     break;
                 }
             }
@@ -140,20 +137,4 @@
         log.debug("Read: " + w.size() + "\n" + w.toString());
         return w.toString();
     }
-
-    /**
-     * @return Returns the eolByte.
-     */
-    public byte getEolByte() {
-        return eolByte;
-    }
-
-    /**
-     * @param eolByte
-     *            The eolByte to set.
-     */
-    public void setEolByte(byte eolByte) {
-        this.eolByte = eolByte;
-        eolIgnore = false;
-    }
 }



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