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")
+ '}';
}
}