You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2016/12/03 16:56:39 UTC

[45/50] tomee git commit: TOMEE-1917 experimental option to skip CountingInputStream/OutputStream

TOMEE-1917 experimental option to skip CountingInputStream/OutputStream


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/6e8a023b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/6e8a023b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/6e8a023b

Branch: refs/heads/tomee-1.7.x
Commit: 6e8a023bb1e73ef384ac01a42367a1bff8c04be8
Parents: 41d223e
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Sun Aug 28 00:57:58 2016 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Sun Aug 28 00:57:58 2016 +0100

----------------------------------------------------------------------
 .../apache/openejb/server/ejbd/EjbDaemon.java   | 10 ++++++----
 .../openejb/server/ejbd/JndiRequestHandler.java | 16 +++++++++------
 .../openejb/server/httpd/OpenEJBHttpServer.java |  7 ++++---
 .../openejb/server/context/RequestInfos.java    | 21 ++++++++++++--------
 4 files changed, 33 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/6e8a023b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
----------------------------------------------------------------------
diff --git a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
index e367c0a..24f871f 100644
--- a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
+++ b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
@@ -64,6 +64,7 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
 
     private ContainerSystem containerSystem;
     private boolean gzip;
+    private boolean debugPayload;
     private EJBDSerializer serializer = null;
 
     //Four hours
@@ -80,6 +81,7 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
         authHandler = new AuthRequestHandler(this);
         clusterHandler = new ClusterRequestHandler(this);
         gzip = "true".equalsIgnoreCase(props.getProperty("gzip", "false"));
+        debugPayload = "true".equalsIgnoreCase(props.getProperty("debugPayload", "true"));
 
         try {
             this.timeout = Integer.parseInt(props.getProperty("timeout", "14400000"));
@@ -177,10 +179,10 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
         try {
 
             final RequestInfos.RequestInfo info = RequestInfos.info();
-            info.setInputStream(new CountingInputStream(rawIn));
+            info.setInputStream(debugPayload ? new CountingInputStream(rawIn) : rawIn);
 
             // Read client Protocol Version
-            final CountingInputStream cis = info.getInputStream();
+            final InputStream cis = info.getInputStream();
             clientProtocol.readExternal(cis);
             ois = new EjbObjectInputStream(cis);
 
@@ -251,9 +253,9 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
             }
 
             try {
-                info.setOutputStream(new CountingOutputStream(rawOut));
+                info.setOutputStream(debugPayload ? new CountingOutputStream(rawOut) : rawOut);
 
-                final CountingOutputStream cos = info.getOutputStream();
+                final OutputStream cos = info.getOutputStream();
 
                 //Let client know we are using the requested protocol to respond
                 clientProtocol.writeExternal(cos);

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e8a023b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
----------------------------------------------------------------------
diff --git a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
index 426eeb5..6c1429d 100644
--- a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
+++ b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
@@ -65,8 +65,10 @@ import javax.sql.DataSource;
 import javax.validation.Validator;
 import javax.validation.ValidatorFactory;
 import javax.xml.namespace.QName;
+import java.io.InputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -215,12 +217,14 @@ class JndiRequestHandler extends RequestHandler {
 
     private void logRequestResponse(final JNDIRequest req, final JNDIResponse res) {
         final RequestInfos.RequestInfo info = RequestInfos.info();
-        final CountingInputStream cis = info.getInputStream();
-        final CountingOutputStream cos = info.getOutputStream();
-
-        logger.debug("JNDI REQUEST: " + req + " (size = " + (null != cis ? cis.getCount() : 0)
-            + "b, remote-ip =" + info.ip
-            + ") -- RESPONSE: " + res + " (size = " + (null != cos ? cos.getCount() : 0) + "b)");
+        final InputStream cis = info.getInputStream();
+        final OutputStream cos = info.getOutputStream();
+
+        logger.debug("JNDI REQUEST: " + req + " (size = "
+            + (null != cis && CountingInputStream.class.isInstance(cis)? CountingInputStream.class.cast(cis).getCount() + "b" : "unknown")
+            + ", remote-ip =" + info.ip
+            + ") -- RESPONSE: " + res + " (size = "
+            + (null != cos && CountingOutputStream.class.isInstance(cos)? CountingOutputStream.class.cast(cos).getCount() + "b" : "unknown") + ")");
     }
 
     private String getPrefix(final JNDIRequest req) throws NamingException {

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e8a023b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBHttpServer.java
----------------------------------------------------------------------
diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBHttpServer.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBHttpServer.java
index e0eb6f9..763d4f6 100644
--- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBHttpServer.java
+++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBHttpServer.java
@@ -59,6 +59,7 @@ public class OpenEJBHttpServer implements HttpServer {
     private HttpListener listener;
     private Set<Output> print;
     private boolean indent;
+    private boolean debugPayload;
 
     public OpenEJBHttpServer() {
         this(getHttpListenerRegistry());
@@ -102,8 +103,8 @@ public class OpenEJBHttpServer implements HttpServer {
         try {
             RequestInfos.initRequestInfo(socket);
 
-            in = new CountingInputStream(socket.getInputStream());
-            out = new CountingOutputStream(socket.getOutputStream());
+            in = debugPayload ? new CountingInputStream(socket.getInputStream()) : socket.getInputStream();
+            out = debugPayload ? new CountingOutputStream(socket.getOutputStream()) : socket.getOutputStream();
 
             //TODO: if ssl change to https
             final URI socketURI = new URI("http://" + socket.getLocalAddress().getHostAddress() + ":" + socket.getLocalPort());
@@ -152,7 +153,7 @@ public class OpenEJBHttpServer implements HttpServer {
         options.setLogger(new OptionsLog(log));
         print = options.getAll("print", OpenEJBHttpServer.Output.class);
         indent = print.size() > 0 && options.get("indent.xml", false);
-
+        debugPayload = "true".equalsIgnoreCase(props.getProperty("debugPayload", "true"));
     }
 
     public enum Output {

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e8a023b/server/openejb-server/src/main/java/org/apache/openejb/server/context/RequestInfos.java
----------------------------------------------------------------------
diff --git a/server/openejb-server/src/main/java/org/apache/openejb/server/context/RequestInfos.java b/server/openejb-server/src/main/java/org/apache/openejb/server/context/RequestInfos.java
index d5db407..9a9828c 100644
--- a/server/openejb-server/src/main/java/org/apache/openejb/server/context/RequestInfos.java
+++ b/server/openejb-server/src/main/java/org/apache/openejb/server/context/RequestInfos.java
@@ -20,6 +20,8 @@ import org.apache.openejb.server.stream.CountingInputStream;
 import org.apache.openejb.server.stream.CountingOutputStream;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.Socket;
@@ -73,10 +75,10 @@ public final class RequestInfos {
     public static class RequestInfo {
 
         public String ip;
-        private CountingInputStream inputStream;
-        private CountingOutputStream outputStream;
+        private InputStream inputStream;
+        private OutputStream outputStream;
 
-        public CountingInputStream getInputStream() {
+        public InputStream getInputStream() {
 
             if (null == inputStream) {
                 throw new RuntimeException("InputStream has not been set");
@@ -85,7 +87,7 @@ public final class RequestInfos {
             return inputStream;
         }
 
-        public CountingOutputStream getOutputStream() {
+        public OutputStream getOutputStream() {
 
             if (null == outputStream) {
                 throw new RuntimeException("OutputStream has not been set");
@@ -94,11 +96,11 @@ public final class RequestInfos {
             return outputStream;
         }
 
-        public void setInputStream(final CountingInputStream inputStream) {
+        public void setInputStream(final InputStream inputStream) {
             this.inputStream = inputStream;
         }
 
-        public void setOutputStream(final CountingOutputStream outputStream) {
+        public void setOutputStream(final OutputStream outputStream) {
             this.outputStream = outputStream;
         }
 
@@ -106,8 +108,11 @@ public final class RequestInfos {
         public String toString() {
             return "RequestInfo{"
                 + "ip='" + ip + '\''
-                + ", request-size=" + (inputStream != null ? inputStream.getCount() : "unknown")
-                + ", response-size=" + (outputStream != null ? outputStream.getCount() : "unknown")
+                + ", request-size=" + (inputStream != null && CountingInputStream.class.isInstance(inputStream)
+                        ? CountingInputStream.class.cast(inputStream).getCount() : "unknown")
+
+                + ", response-size=" + (outputStream != null && CountingOutputStream.class.isInstance(outputStream)
+                        ? CountingOutputStream.class.cast(outputStream).getCount() : "unknown")
                 + '}';
         }
     }