Browse Source

Jackson lib absence correct handling. #213

master
Nikita 10 years ago
parent
commit
cf266bc738
  1. 18
      src/main/java/com/corundumstudio/socketio/Configuration.java
  2. 8
      src/main/java/com/corundumstudio/socketio/protocol/JacksonJsonSupport.java

18
src/main/java/com/corundumstudio/socketio/Configuration.java

@ -22,7 +22,6 @@ import java.util.List;
import com.corundumstudio.socketio.handler.SuccessAuthorizationListener;
import com.corundumstudio.socketio.listener.DefaultExceptionListener;
import com.corundumstudio.socketio.listener.ExceptionListener;
import com.corundumstudio.socketio.protocol.JacksonJsonSupport;
import com.corundumstudio.socketio.protocol.JsonSupport;
import com.corundumstudio.socketio.store.MemoryStoreFactory;
import com.corundumstudio.socketio.store.StoreFactory;
@ -68,7 +67,7 @@ public class Configuration {
private StoreFactory storeFactory = new MemoryStoreFactory();
private JsonSupport jsonSupport = new JacksonJsonSupport();
private JsonSupport jsonSupport;
private AuthorizationListener authorizationListener = new SuccessAuthorizationListener();
@ -97,6 +96,21 @@ public class Configuration {
setHostname(conf.getHostname());
setPort(conf.getPort());
if (conf.getJsonSupport() == null) {
try {
getClass().getClassLoader().loadClass("com.fasterxml.jackson.databind.ObjectMapper");
try {
Class<?> jjs = getClass().getClassLoader().loadClass("com.corundumstudio.socketio.protocol.JacksonJsonSupport");
JsonSupport js = (JsonSupport) jjs.getConstructor().newInstance();
conf.setJsonSupport(js);
} catch (Exception e) {
throw new IllegalArgumentException(e);
}
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("Can't find jackson lib in classpath", e);
}
}
setJsonSupport(new JsonSupportWrapper(conf.getJsonSupport()));
setContext(conf.getContext());
setAllowCustomRequests(conf.isAllowCustomRequests());

8
src/main/java/com/corundumstudio/socketio/protocol/JacksonJsonSupport.java

@ -28,7 +28,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -42,9 +41,6 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.core.SerializableString;
import com.fasterxml.jackson.core.io.CharacterEscapes;
import com.fasterxml.jackson.core.io.SerializedString;
import com.fasterxml.jackson.databind.BeanDescription;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.DeserializationFeature;
@ -301,6 +297,10 @@ public class JacksonJsonSupport implements JsonSupport {
private final Logger log = LoggerFactory.getLogger(getClass());
public JacksonJsonSupport() {
this(new Module[] {});
}
public JacksonJsonSupport(Module... modules) {
if (modules != null && modules.length > 0) {
objectMapper.registerModules(modules);

Loading…
Cancel
Save