Browse Source

Simplified JSON serialization with Jackson.

nikolce.mihajlovski 10 years ago
parent
commit
560366a061

+ 10 - 5
frameworks/Java/rapidoid/pom.xml

@@ -18,11 +18,16 @@
             <artifactId>rapidoid-http</artifactId>
             <artifactId>rapidoid-http</artifactId>
             <version>3.0.0</version>
             <version>3.0.0</version>
         </dependency>
         </dependency>
-        <dependency>
-            <groupId>org.rapidoid</groupId>
-            <artifactId>rapidoid-json</artifactId>
-            <version>3.0.0</version>
-        </dependency>
+	<dependency>
+		<groupId>com.fasterxml.jackson.core</groupId>
+		<artifactId>jackson-databind</artifactId>
+		<version>2.6.0-rc2</version>
+	</dependency>
+	<dependency>
+		<groupId>com.fasterxml.jackson.module</groupId>
+		<artifactId>jackson-module-afterburner</artifactId>
+		<version>2.6.0-rc2</version>
+	</dependency>
     </dependencies>
     </dependencies>
 
 
 	<build>
 	<build>

+ 17 - 1
frameworks/Java/rapidoid/src/main/java/hello/SimpleHttpProtocol.java

@@ -31,6 +31,9 @@ import org.rapidoid.net.impl.RapidoidHelper;
 import org.rapidoid.util.Dates;
 import org.rapidoid.util.Dates;
 import org.rapidoid.wrap.BoolWrap;
 import org.rapidoid.wrap.BoolWrap;
 
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
+
 public class SimpleHttpProtocol implements Protocol {
 public class SimpleHttpProtocol implements Protocol {
 
 
 	private static final byte[] HTTP_200_OK = "HTTP/1.1 200 OK\r\n".getBytes();
 	private static final byte[] HTTP_200_OK = "HTTP/1.1 200 OK\r\n".getBytes();
@@ -70,6 +73,14 @@ public class SimpleHttpProtocol implements Protocol {
 
 
 	private static final HttpParser HTTP_PARSER = new HttpParser();
 	private static final HttpParser HTTP_PARSER = new HttpParser();
 
 
+	public static final ObjectMapper MAPPER = mapper();
+
+	private static ObjectMapper mapper() {
+		ObjectMapper mapper = new ObjectMapper();
+		mapper.registerModule(new AfterburnerModule());
+		return mapper;
+	}
+
 	public void process(Channel ctx) {
 	public void process(Channel ctx) {
 		if (ctx.isInitial()) {
 		if (ctx.isInitial()) {
 			return;
 			return;
@@ -153,7 +164,12 @@ public class SimpleHttpProtocol implements Protocol {
 
 
 		int posBefore = output.size();
 		int posBefore = output.size();
 
 
-		ctx.writeJSON(new Message("Hello, World!"));
+		Message msg = new Message("Hello, World!");
+		try {
+			MAPPER.writeValue(output.asOutputStream(), msg);
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
 
 
 		int posAfter = output.size();
 		int posAfter = output.size();
 		output.putNumAsText(posConLen, posAfter - posBefore, false);
 		output.putNumAsText(posConLen, posAfter - posBefore, false);