Browse Source

Merge pull request #655 from martin-g/plaintext

Wicket: implement "Test type 6: Plaintext"
Mike Smith 11 years ago
parent
commit
e6868082c6

+ 2 - 1
wicket/benchmark_config

@@ -5,6 +5,7 @@
       "setup_file": "setup",
       "json_url": "/wicket/json",
       "db_url": "/wicket/db",
+      "plaintext_url": "/wicket/plaintext",
       "query_url": "/wicket/db?queries=",
       "port": 8080,
       "approach": "Realistic",
@@ -22,4 +23,4 @@
       "versus": "servlet"
     }
   }]
-}
+}

+ 2 - 0
wicket/source_code

@@ -11,6 +11,8 @@
 ./wicket/src/main/java/hellowicket/BasePage.html
 ./wicket/src/main/java/hellowicket/HomePage.html
 ./wicket/src/main/java/hellowicket/World.java
+./wicket/src/main/java/hellowicket/plaintext/HelloTextReference.java
+./wicket/src/main/java/hellowicket/plaintext/HelloTextResource.java
 ./wicket/src/main/webapp/
 ./wicket/src/main/webapp/logo.png
 ./wicket/src/main/webapp/style.css

+ 2 - 0
wicket/src/main/java/hellowicket/WicketApplication.java

@@ -1,5 +1,6 @@
 package hellowicket;
 
+import hellowicket.plaintext.HelloTextReference;
 import org.apache.wicket.protocol.http.WebApplication;
 
 /**
@@ -31,6 +32,7 @@ public class WicketApplication extends WebApplication
 		// mount the resources under test
 		mountResource("/json", new HelloJsonReference());
 		mountResource("/db", new HelloDbReference());
+		mountResource("/plaintext", new HelloTextReference());
 
 		// disable response caching to be more close to other
 		// test applications' behavior

+ 22 - 0
wicket/src/main/java/hellowicket/plaintext/HelloTextReference.java

@@ -0,0 +1,22 @@
+package hellowicket.plaintext;
+
+import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.request.resource.ResourceReference;
+
+public class HelloTextReference extends ResourceReference
+{
+  private static final long serialVersionUID = 1L;
+
+  private final HelloTextResource resource = new HelloTextResource();
+
+  public HelloTextReference()
+  {
+    super(HelloTextReference.class, "plaintext");
+  }
+
+  @Override
+  public IResource getResource()
+  {
+    return resource;
+  }
+}

+ 31 - 0
wicket/src/main/java/hellowicket/plaintext/HelloTextResource.java

@@ -0,0 +1,31 @@
+package hellowicket.plaintext;
+
+import java.nio.charset.Charset;
+
+import org.apache.wicket.request.resource.AbstractResource;
+
+/**
+ * A resource that implements the requirements for
+ * <a href="http://www.techempower.com/benchmarks/#section=code">Test type 6: Plaintext</a>
+ */
+public class HelloTextResource extends AbstractResource
+{
+  private static final long serialVersionUID = 1L;
+
+  private static final String CONTENT_TYPE = "text/plain";
+  private static final byte[] DATA = "Hello, World!".getBytes(Charset.forName("UTF-8"));
+
+  protected ResourceResponse newResourceResponse(Attributes attributes)
+  {
+    ResourceResponse response = new ResourceResponse();
+    response.setContentType(CONTENT_TYPE);
+    response.setContentLength(DATA.length);
+    response.setWriteCallback(new WriteCallback() {
+      public void writeData(Attributes attributes)
+      {
+        attributes.getResponse().write(DATA);
+      }
+    });
+    return response;
+  }
+}