Index: /pom.xml
===================================================================
--- /pom.xml	(revision 25)
+++ /pom.xml	(revision 26)
@@ -6,5 +6,5 @@
 	<artifactId>partiesserver</artifactId>
 	<packaging>war</packaging>
-	<version>1.5.6</version> <!-- must equal ${geniusweb.version} -->
+	<version>1.5.7</version> <!-- must equal ${geniusweb.version} -->
 	<name>partiesserver Maven Webapp</name>
 	<url>http://maven.apache.org</url>
@@ -19,5 +19,5 @@
 		<!-- <tomcat.version>8.0.53</tomcat.version> -->
 		<tomcat.version>8.5.20</tomcat.version>
-		<geniusweb.version>1.5.6</geniusweb.version>
+		<geniusweb.version>1.5.7</geniusweb.version>
 	</properties>
 
Index: /src/main/java/geniusweb/partiesserver/Info.java
===================================================================
--- /src/main/java/geniusweb/partiesserver/Info.java	(revision 25)
+++ /src/main/java/geniusweb/partiesserver/Info.java	(revision 26)
@@ -7,6 +7,4 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
 
 import geniusweb.partiesserver.repository.RunningPartiesRepo;
@@ -20,5 +18,4 @@
 	private final static RunningPartiesRepo repo = RunningPartiesRepo
 			.instance();
-	private final static ObjectMapper jackson = new ObjectMapper();
 
 	/**
@@ -38,5 +35,5 @@
 	protected void doGet(HttpServletRequest request,
 			HttpServletResponse response) throws ServletException, IOException {
-		response.getWriter().append(jackson.writeValueAsString(
+		response.getWriter().append(Jackson.instance().writeValueAsString(
 				new ServerInfo(repo.availableSlots(), repo.maximumSlots())));
 	}
Index: /src/main/java/geniusweb/partiesserver/Jackson.java
===================================================================
--- /src/main/java/geniusweb/partiesserver/Jackson.java	(revision 26)
+++ /src/main/java/geniusweb/partiesserver/Jackson.java	(revision 26)
@@ -0,0 +1,22 @@
+package geniusweb.partiesserver;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * A central generator for the object mapper, so that we can extend the
+ * objectmapper (with custom classes) centrally. Also allows us to cache the
+ * objectmapper.
+ * 
+ * <b> This class should is private to the profiles server and should not be
+ * used by others.</b>
+ */
+public class Jackson {
+	private static ObjectMapper jackson;
+
+	public static ObjectMapper instance() {
+		if (jackson == null) {
+			jackson = new ObjectMapper();
+		}
+		return jackson;
+	}
+}
Index: /src/main/java/geniusweb/partiesserver/websocket/PartiesListSocket.java
===================================================================
--- /src/main/java/geniusweb/partiesserver/websocket/PartiesListSocket.java	(revision 25)
+++ /src/main/java/geniusweb/partiesserver/websocket/PartiesListSocket.java	(revision 26)
@@ -22,6 +22,5 @@
 import javax.websocket.server.ServerEndpoint;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-
+import geniusweb.partiesserver.Jackson;
 import geniusweb.partiesserver.repository.AvailablePartiesRepo;
 import geniusweb.partiesserver.repository.AvailableParty;
@@ -96,5 +95,5 @@
 						party.getDescription()));
 			}
-			String text = new ObjectMapper().writeValueAsString(list);
+			String text = Jackson.instance().writeValueAsString(list);
 			outstream.send(text);
 		} catch (IOException | URISyntaxException e) {
Index: /src/main/java/geniusweb/partiesserver/websocket/PartySocket.java
===================================================================
--- /src/main/java/geniusweb/partiesserver/websocket/PartySocket.java	(revision 25)
+++ /src/main/java/geniusweb/partiesserver/websocket/PartySocket.java	(revision 26)
@@ -19,6 +19,4 @@
 import javax.websocket.server.ServerEndpoint;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-
 import geniusweb.actions.Action;
 import geniusweb.actions.PartyId;
@@ -26,4 +24,5 @@
 import geniusweb.inform.Inform;
 import geniusweb.inform.Settings;
+import geniusweb.partiesserver.Jackson;
 import geniusweb.partiesserver.repository.RunningPartiesRepo;
 import geniusweb.partiesserver.repository.RunningParty;
@@ -41,5 +40,4 @@
 @ServerEndpoint("/party/{party}")
 public class PartySocket implements ConnectionEnd<Inform, Action> {
-	private final static ObjectMapper jackson = new ObjectMapper();
 	private static final int MAX_MESSAGE_SIZE = 20 * 1024 * 1024;
 
@@ -135,5 +133,5 @@
 					+ " is still busy with previous message");
 		}
-		Inform info = jackson.readValue(informmessage, Inform.class);
+		Inform info = Jackson.instance().readValue(informmessage, Inform.class);
 		RunningParty party = runningparties.get(partyID);
 		if (party != null) {
@@ -231,5 +229,5 @@
 	public void send(Action action) throws IOException {
 		log.log(Level.FINE, "Action " + partyID + ": " + action);
-		outstream.send(jackson.writeValueAsString(action));
+		outstream.send(Jackson.instance().writeValueAsString(action));
 	}
 
Index: /src/main/java/geniusweb/partiesserver/websocket/RunningListSocket.java
===================================================================
--- /src/main/java/geniusweb/partiesserver/websocket/RunningListSocket.java	(revision 25)
+++ /src/main/java/geniusweb/partiesserver/websocket/RunningListSocket.java	(revision 26)
@@ -13,7 +13,6 @@
 import javax.websocket.server.ServerEndpoint;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-
 import geniusweb.actions.PartyId;
+import geniusweb.partiesserver.Jackson;
 import geniusweb.partiesserver.repository.RunningPartiesRepo;
 import geniusweb.partiesserver.repository.RunningPartyInfo;
@@ -71,5 +70,5 @@
 		log.log(Level.FINE, "sending updated running parties list " + list);
 		try {
-			outstream.send(new ObjectMapper().writeValueAsString(repo.list()));
+			outstream.send(Jackson.instance().writeValueAsString(repo.list()));
 		} catch (IOException e) {
 			log.log(Level.SEVERE, "Internal problem converting json", e);
Index: /src/test/java/geniusweb/partiesserver/AvailablePartiesUpdaterTest.java
===================================================================
--- /src/test/java/geniusweb/partiesserver/AvailablePartiesUpdaterTest.java	(revision 25)
+++ /src/test/java/geniusweb/partiesserver/AvailablePartiesUpdaterTest.java	(revision 26)
@@ -31,5 +31,5 @@
 
 public class AvailablePartiesUpdaterTest {
-	private static final String RANDOMPARTY = "target/jars/randomparty-1.5.6.jar";
+	private static final String RANDOMPARTY = "target/jars/randomparty-1.5.7.jar";
 	private static final int TESTRATE = 200; // check file changes every 200ms
 	@SuppressWarnings("unchecked")
Index: /src/test/java/geniusweb/partiesserver/JavaClientTest.java
===================================================================
--- /src/test/java/geniusweb/partiesserver/JavaClientTest.java	(revision 25)
+++ /src/test/java/geniusweb/partiesserver/JavaClientTest.java	(revision 26)
@@ -39,5 +39,5 @@
  */
 public class JavaClientTest {
-	private static final String RANDOMPARTY = "http://localhost:8080/partiesserver/run/randomparty-1.5.6";
+	private static final String RANDOMPARTY = "http://localhost:8080/partiesserver/run/randomparty-1.5.7";
 	private EmbeddedTomcat tomcat = new EmbeddedTomcat();
 	private JavaClient client = new JavaClient();
