Browse Source

+ implement binary version of PlainTextHttpHandler

oleksiys 11 years ago
parent
commit
5903e649d7

+ 33 - 0
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/PlainText2HttpHandler.java

@@ -0,0 +1,33 @@
+package org.glassfish.grizzly.bm;
+
+import org.glassfish.grizzly.http.server.HttpHandler;
+import org.glassfish.grizzly.http.server.Request;
+import org.glassfish.grizzly.http.server.RequestExecutorProvider;
+import org.glassfish.grizzly.http.server.Response;
+import org.glassfish.grizzly.http.util.ContentType;
+import org.glassfish.grizzly.http.util.Header;
+import org.glassfish.grizzly.utils.Charsets;
+
+/**
+ * Binary version of plain text usecase
+ * 
+ * @see PlainTextHttpHandler
+ */
+public class PlainText2HttpHandler extends HttpHandler {
+    private static final ContentType CONTENT_TYPE =
+            ContentType.newContentType("text/plain", "utf-8").prepare();
+    private static final byte[] HELLO_WORLD_BYTES = "Hello, World!".getBytes(Charsets.UTF8_CHARSET);
+            
+    @Override
+    public void service(final Request request, final Response response)
+            throws Exception {
+        response.setContentType(CONTENT_TYPE);
+        response.setHeader(Header.Server, Server.SERVER_VERSION);
+        response.getOutputStream().write(HELLO_WORLD_BYTES);
+    }
+
+    @Override
+    public RequestExecutorProvider getRequestExecutorProvider() {
+        return Server.EXECUTOR_PROVIDER;
+    }
+}

+ 5 - 1
grizzly-bm/src/main/java/org/glassfish/grizzly/bm/RootHttpHandler.java

@@ -10,7 +10,11 @@ import org.glassfish.grizzly.http.util.DataChunk;
  * Root {@link HttpHandler} to be used to avoid mapping overhead
  */
 public class RootHttpHandler extends HttpHandler {
-    private final HttpHandler plainTextHandler = new PlainTextHttpHandler();
+//  Uncomment for real text benchmark
+//    private final HttpHandler plainTextHandler = new PlainTextHttpHandler();
+    
+//  Binary PlainText handler  
+    private final HttpHandler plainTextHandler = new PlainText2HttpHandler();
     private final HttpHandler jsonHandler = new JsonHttpHandler();
     
     @Override