You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/05/09 23:48:42 UTC

svn commit: r536667 - in /jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http: ./ impl/ impl/io/ io/

Author: olegk
Date: Wed May  9 14:48:41 2007
New Revision: 536667

URL: http://svn.apache.org/viewvc?view=rev&rev=536667
Log:
HTTPCORE-21: 
* Some minor API enhancements based on the original patch contributed by Andrea Selva

Added:
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java   (with props)
Modified:
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpConnectionMetrics.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/HttpConnectionMetricsImpl.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataReceiver.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataTransmitter.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataReceiver.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataTransmitter.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpTransportMetrics.java

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpConnectionMetrics.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpConnectionMetrics.java?view=diff&rev=536667&r1=536666&r2=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpConnectionMetrics.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpConnectionMetrics.java Wed May  9 14:48:41 2007
@@ -71,4 +71,10 @@
      */
     Object getMetric(String metricName);
     
+    /**
+     * Resets the counts
+     *
+     */
+    void reset();
+    
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/HttpConnectionMetricsImpl.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/HttpConnectionMetricsImpl.java?view=diff&rev=536667&r1=536666&r2=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/HttpConnectionMetricsImpl.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/HttpConnectionMetricsImpl.java Wed May  9 14:48:41 2007
@@ -134,4 +134,12 @@
         this.metricsCache.put(metricName, obj);
     }
     
+    public void reset() {
+        requestCount = 0;
+        responseCount = 0;
+        sentBytesCount = 0;
+        receivedBytesCount = 0;
+        this.metricsCache = null;
+    }
+    
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataReceiver.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataReceiver.java?view=diff&rev=536667&r1=536666&r2=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataReceiver.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataReceiver.java Wed May  9 14:48:41 2007
@@ -49,8 +49,7 @@
  * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
  *
  */
-public abstract class AbstractHttpDataReceiver 
-    implements HttpDataReceiver, HttpTransportMetrics {
+public abstract class AbstractHttpDataReceiver implements HttpDataReceiver {
 
     private InputStream instream;
     private byte[] buffer;
@@ -63,7 +62,7 @@
     private boolean ascii = true;
     private int maxLineLen = -1;
     
-    private long bytesTransferred = 0;
+    private HttpTransportMetricsImpl metrics;
     
     protected void init(final InputStream instream, int buffersize) {
         if (instream == null) {
@@ -77,6 +76,7 @@
         this.bufferpos = 0;
         this.bufferlen = 0;
         this.linebuffer = new ByteArrayBuffer(buffersize);
+        this.metrics = new HttpTransportMetricsImpl();
     }
     
     protected int fillBuffer() throws IOException {
@@ -97,7 +97,7 @@
             return -1;
         } else {
             this.bufferlen = off + l;
-            this.bytesTransferred += l;
+            this.metrics.incrementBytesTransferred(l);
             return l;
         }
     }
@@ -262,13 +262,9 @@
                      || this.charset.equalsIgnoreCase(HTTP.ASCII);
         this.maxLineLen = params.getIntParameter(HttpConnectionParams.MAX_LINE_LENGTH, -1);
     }
-    
-    public long getBytesTransferred() {
-        return this.bytesTransferred;
-    }
-    
-    public void resetCounts() {
-        this.bytesTransferred = 0;
+
+    public HttpTransportMetrics getMetrics() {
+        return this.metrics;
     }
     
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataTransmitter.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataTransmitter.java?view=diff&rev=536667&r1=536666&r2=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataTransmitter.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/AbstractHttpDataTransmitter.java Wed May  9 14:48:41 2007
@@ -48,8 +48,7 @@
  * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
  *
  */
-public abstract class AbstractHttpDataTransmitter 
-    implements HttpDataTransmitter, HttpTransportMetrics {
+public abstract class AbstractHttpDataTransmitter implements HttpDataTransmitter {
 
     private static final byte[] CRLF = new byte[] {HTTP.CR, HTTP.LF};
     
@@ -61,7 +60,7 @@
     private String charset = HTTP.US_ASCII;
     private boolean ascii = true;
     
-    private long bytesTransferred = 0;
+    private HttpTransportMetricsImpl metrics;
     
     protected void init(final OutputStream outstream, int buffersize) {
         if (outstream == null) {
@@ -72,13 +71,15 @@
         }
         this.outstream = outstream;
         this.buffer = new ByteArrayBuffer(buffersize);
+        this.metrics = new HttpTransportMetricsImpl();
     }
     
     protected void flushBuffer() throws IOException {
-        if (this.buffer.length() > 0) {
-            this.outstream.write(this.buffer.buffer(), 0, this.buffer.length());
-            this.bytesTransferred += this.buffer.length();
+        int len = this.buffer.length();
+        if (len > 0) {
+            this.outstream.write(this.buffer.buffer(), 0, len);
             this.buffer.clear();
+            this.metrics.incrementBytesTransferred(len);
         }
     }
     
@@ -99,7 +100,7 @@
             flushBuffer();
             // write directly to the out stream
             this.outstream.write(b, off, len);
-            this.bytesTransferred += len;
+            this.metrics.incrementBytesTransferred(len);
         } else {
             // Do not let the buffer grow unnecessarily
             int freecapacity = this.buffer.capacity() - this.buffer.length();
@@ -169,13 +170,9 @@
         this.ascii = this.charset.equalsIgnoreCase(HTTP.US_ASCII)
                      || this.charset.equalsIgnoreCase(HTTP.ASCII);
     }
-    
-    public long getBytesTransferred() {
-        return this.bytesTransferred;
-    }
-    
-    public void resetCounts() {
-        this.bytesTransferred = 0;
+
+    public HttpTransportMetrics getMetrics() {
+        return this.metrics;
     }
     
 }

Added: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java?view=auto&rev=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java (added)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java Wed May  9 14:48:41 2007
@@ -0,0 +1,64 @@
+/*
+ * $HeadURL$
+ * $Revision$
+ * $Date$
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+package org.apache.http.impl.io;
+
+import org.apache.http.io.HttpTransportMetrics;
+
+/**
+ * This interface is the point to access the information about the status 
+ * of {@link HttpDataReceiver} or {@link HttpDataTransmitter}.
+ */
+public class HttpTransportMetricsImpl implements HttpTransportMetrics {
+
+    private long bytesTransferred = 0;
+    
+    public HttpTransportMetricsImpl() {
+        super();
+    }
+    
+    public long getBytesTransferred() {
+        return this.bytesTransferred;
+    }
+
+    public void setBytesTransferred(long count) {
+        this.bytesTransferred = count;
+    }
+
+    public void incrementBytesTransferred(long count) {
+        this.bytesTransferred += count;
+    }
+
+    public void reset() {
+        this.bytesTransferred = 0;
+    }
+    
+}

Propchange: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/impl/io/HttpTransportMetricsImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataReceiver.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataReceiver.java?view=diff&rev=536667&r1=536666&r2=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataReceiver.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataReceiver.java Wed May  9 14:48:41 2007
@@ -63,4 +63,6 @@
     
     boolean isDataAvailable(int timeout) throws IOException; 
 
+    HttpTransportMetrics getMetrics();
+    
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataTransmitter.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataTransmitter.java?view=diff&rev=536667&r1=536666&r2=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataTransmitter.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpDataTransmitter.java Wed May  9 14:48:41 2007
@@ -63,4 +63,6 @@
     
     void flush() throws IOException;
     
+    HttpTransportMetrics getMetrics();
+    
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpTransportMetrics.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpTransportMetrics.java?view=diff&rev=536667&r1=536666&r2=536667
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpTransportMetrics.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/io/HttpTransportMetrics.java Wed May  9 14:48:41 2007
@@ -41,6 +41,6 @@
     /**
      * Resets the counts
      */
-    void resetCounts();
+    void reset();
     
 }