Browse Source

Package prefix config option added. Issue #59

master
Nikita 12 years ago
parent
commit
7f5c43c93c
  1. 20
      src/main/java/com/corundumstudio/socketio/Configuration.java
  2. 3
      src/main/java/com/corundumstudio/socketio/parser/JacksonJsonSupport.java

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

@ -46,6 +46,7 @@ public class Configuration {
private int maxHttpContentLength = 64 * 1024;
private String packagePrefix;
private String hostname;
private int port = -1;
@ -80,6 +81,7 @@ public class Configuration {
setKeyStore(conf.getKeyStore());
setTransports(conf.getTransports());
setMaxHttpContentLength(conf.getMaxHttpContentLength());
setPackagePrefix(conf.getPackagePrefix());
}
private String join(Transport[] transports) {
@ -298,4 +300,22 @@ public class Configuration {
return transports;
}
/**
* Package prefix for sending json-object from client
* without full class name.
*
* With defined package prefix socket.io client
* just need to define '@class: 'SomeType'' in json object
* instead of '@class: 'com.full.package.name.SomeType''
*
* @param packagePrefix - prefix string
*
*/
public void setPackagePrefix(String packagePrefix) {
this.packagePrefix = packagePrefix;
}
public String getPackagePrefix() {
return packagePrefix;
}
}

3
src/main/java/com/corundumstudio/socketio/parser/JacksonJsonSupport.java

@ -74,6 +74,9 @@ public class JacksonJsonSupport implements JsonSupport {
if (node != null) {
try {
String typeName = node.asText();
if (configuration.getPackagePrefix() != null) {
typeName = configuration.getPackagePrefix() + "." + typeName;
}
Class<?> supportClazz = Class.forName(typeName);
if (classes.contains(supportClazz)) {
clazz = supportClazz;

Loading…
Cancel
Save