You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/09/11 14:33:00 UTC
[2/2] tomee git commit: TOMEE-1917 option to skip counting stream
wrappers (for ejbd)
TOMEE-1917 option to skip counting stream wrappers (for ejbd)
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/efd4aebf
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/efd4aebf
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/efd4aebf
Branch: refs/heads/master
Commit: efd4aebffb151d6260c05793316037f608b3ffd8
Parents: 6ae306a
Author: Romain manni-Bucau <rm...@gmail.com>
Authored: Sun Sep 11 16:32:18 2016 +0200
Committer: Romain manni-Bucau <rm...@gmail.com>
Committed: Sun Sep 11 16:32:18 2016 +0200
----------------------------------------------------------------------
.../apache/openejb/server/ejbd/EjbDaemon.java | 15 +++++++-----
.../openejb/server/ejbd/JndiRequestHandler.java | 25 ++++++++++----------
.../openejb/server/httpd/OpenEJBHttpServer.java | 12 +++++++---
.../openejb/server/context/RequestInfos.java | 23 ++++++++++--------
4 files changed, 44 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/efd4aebf/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 29a8018..c0a8e68 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
@@ -58,7 +58,7 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
private ClientObjectFactory clientObjectFactory;
// DeploymentIndex deploymentIndex;
private RequestHandler ejbHandler;
- private RequestHandler jndiHandler;
+ private JndiRequestHandler jndiHandler;
private RequestHandler authHandler;
private RequestHandler logoutHandler;
private ClusterRequestHandler clusterHandler;
@@ -69,6 +69,7 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
//Four hours
private int timeout = 14400000;
+ private boolean countStreams;
public void init(final Properties props) throws Exception {
containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
@@ -102,6 +103,8 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
if (discovery != null) {
discovery.setDiscoveryListener(clusterHandler);
}
+
+ countStreams = Boolean.parseBoolean(props.getProperty("stream.count", Boolean.toString(jndiHandler.isDebug())));
}
public void service(final Socket socket) throws IOException {
@@ -177,10 +180,10 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
try {
final RequestInfos.RequestInfo info = RequestInfos.info();
- info.setInputStream(new CountingInputStream(rawIn));
+ info.setInputStream(countStreams ? 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);
@@ -209,7 +212,7 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
clusterHandler.getLogger().debug("Failed to write to ClusterResponse", failure);
try {
- info.setOutputStream(new CountingOutputStream(rawOut));
+ info.setOutputStream(countStreams ? new CountingOutputStream(rawOut) : rawOut);
oos = new ObjectOutputStream(info.getOutputStream());
clusterResponse.setMetaData(clientProtocol);
clusterResponse.writeExternal(oos);
@@ -254,9 +257,9 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
}
try {
- info.setOutputStream(new CountingOutputStream(rawOut));
+ info.setOutputStream(countStreams ? 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/efd4aebf/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 fd6425e..01d6297 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;
@@ -83,11 +85,7 @@ class JndiRequestHandler extends RequestHandler {
private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_SERVER_REMOTE.createChild("jndi"), "org.apache.openejb.server.util.resources");
- private final Context ejbJndiTree;
private Context clientJndiTree;
- private final Context deploymentsJndiTree;
-
- private Context globalJndiTree;
private final ClusterableRequestHandler clusterableRequestHandler;
private Context rootContext;
@@ -95,10 +93,9 @@ class JndiRequestHandler extends RequestHandler {
JndiRequestHandler(final EjbDaemon daemon) throws Exception {
super(daemon);
final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
- ejbJndiTree = (Context) containerSystem.getJNDIContext().lookup("openejb/remote");
- deploymentsJndiTree = (Context) containerSystem.getJNDIContext().lookup("openejb/Deployment");
-
- globalJndiTree = (Context) containerSystem.getJNDIContext().lookup("openejb/global");
+ containerSystem.getJNDIContext().lookup("openejb/remote");
+ containerSystem.getJNDIContext().lookup("openejb/Deployment");
+ containerSystem.getJNDIContext().lookup("openejb/global");
rootContext = containerSystem.getJNDIContext();
try {
@@ -108,6 +105,10 @@ class JndiRequestHandler extends RequestHandler {
clusterableRequestHandler = newClusterableRequestHandler();
}
+ public boolean isDebug() {
+ return logger.isDebugEnabled();
+ }
+
protected BasicClusterableRequestHandler newClusterableRequestHandler() {
return new BasicClusterableRequestHandler();
}
@@ -210,12 +211,12 @@ 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();
+ final InputStream cis = info.getInputStream();
+ final OutputStream cos = info.getOutputStream();
- logger.debug("JNDI REQUEST: " + req + " (size = " + (null != cis ? cis.getCount() : 0)
+ logger.debug("JNDI REQUEST: " + req + " (size = " + (null != cis ? CountingInputStream.class.cast(cis).getCount() : 0)
+ "b, remote-ip =" + info.ip
- + ") -- RESPONSE: " + res + " (size = " + (null != cos ? cos.getCount() : 0) + "b)");
+ + ") -- RESPONSE: " + res + " (size = " + (null != cos ? CountingOutputStream.class.cast(cos).getCount() : 0) + "b)");
}
private String getPrefix(final JNDIRequest req) throws NamingException {
http://git-wip-us.apache.org/repos/asf/tomee/blob/efd4aebf/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 2fa3d6d..6aa282d 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
@@ -62,6 +62,7 @@ public class OpenEJBHttpServer implements HttpServer {
private HttpListener listener;
private Set<Output> print;
private boolean indent;
+ private boolean countStreams;
public OpenEJBHttpServer() {
this(null);
@@ -118,8 +119,13 @@ public class OpenEJBHttpServer implements HttpServer {
try {
RequestInfos.initRequestInfo(socket);
- in = new CountingInputStream(socket.getInputStream());
- out = new CountingOutputStream(socket.getOutputStream());
+ if (countStreams) {
+ in = new CountingInputStream(socket.getInputStream());
+ out = new CountingOutputStream(socket.getOutputStream());
+ } else {
+ in = socket.getInputStream();
+ out = socket.getOutputStream();
+ }
//TODO: if ssl change to https
final URI socketURI = new URI("http://" + socket.getLocalAddress().getHostAddress() + ":" + socket.getLocalPort());
@@ -172,7 +178,7 @@ public class OpenEJBHttpServer implements HttpServer {
indent = print.size() > 0 && options.get("" +
"" +
".xml", false);
-
+ countStreams = options.get("stream.count", false);
}
public static enum Output {
http://git-wip-us.apache.org/repos/asf/tomee/blob/efd4aebf/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..ad6455d 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;
@@ -27,7 +29,7 @@ import java.net.SocketAddress;
public final class RequestInfos {
- private static final ThreadLocal<RequestInfo> REQUEST_INFO = new ThreadLocal<RequestInfo>();
+ private static final ThreadLocal<RequestInfo> REQUEST_INFO = new ThreadLocal<>();
private RequestInfos() {
// no-op
@@ -73,11 +75,10 @@ public final class RequestInfos {
public static class RequestInfo {
public String ip;
- private CountingInputStream inputStream;
- private CountingOutputStream outputStream;
-
- public CountingInputStream getInputStream() {
+ private InputStream inputStream;
+ private OutputStream outputStream;
+ public InputStream getInputStream() {
if (null == inputStream) {
throw new RuntimeException("InputStream has not been set");
}
@@ -85,7 +86,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 +95,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 +107,10 @@ 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")
+ '}';
}
}