diff options
| author | Simon Rettberg | 2015-09-08 18:38:02 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2015-09-08 18:38:02 +0200 |
| commit | cd25a66620b156fff09126c69c480a55f81a2912 (patch) | |
| tree | 3e1381723920cda294afaadebe2f25b7b403162c /dozentenmodulserver/src/main/java/org | |
| parent | [client] fat refactor to reflect what the current state of the classes actual... (diff) | |
| download | tutor-module-cd25a66620b156fff09126c69c480a55f81a2912.tar.gz tutor-module-cd25a66620b156fff09126c69c480a55f81a2912.tar.xz tutor-module-cd25a66620b156fff09126c69c480a55f81a2912.zip | |
[server] Json package changed
Diffstat (limited to 'dozentenmodulserver/src/main/java/org')
5 files changed, 4 insertions, 126 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java index 179650d5..6a4b14c2 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java @@ -23,7 +23,6 @@ import org.openslx.bwlp.sat.thrift.cache.OperatingSystemList; import org.openslx.bwlp.sat.thrift.cache.OrganizationList; import org.openslx.bwlp.sat.util.Configuration; import org.openslx.bwlp.sat.util.Identity; -import org.openslx.bwlp.sat.util.Json; import org.openslx.bwlp.sat.web.WebServer; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.bwlp.thrift.iface.NetDirection; @@ -31,6 +30,7 @@ import org.openslx.bwlp.thrift.iface.NetRule; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.thrifthelper.ThriftManager; import org.openslx.thrifthelper.ThriftManager.ErrorCallback; +import org.openslx.util.Json; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbConfiguration.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbConfiguration.java index 8fb4497e..bce4d214 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbConfiguration.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbConfiguration.java @@ -20,7 +20,7 @@ import org.openslx.bwlp.sat.database.Database; import org.openslx.bwlp.sat.database.MysqlConnection; import org.openslx.bwlp.sat.database.MysqlStatement; import org.openslx.bwlp.sat.mail.MailQueue.MailConfig; -import org.openslx.bwlp.sat.util.Json; +import org.openslx.util.Json; public class DbConfiguration { diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java index 97c79f5e..df34b97a 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java @@ -17,7 +17,6 @@ import org.openslx.bwlp.sat.database.models.LocalImageVersion; import org.openslx.bwlp.sat.mail.MailGenerator; import org.openslx.bwlp.sat.permissions.User; import org.openslx.bwlp.sat.thrift.cache.OperatingSystemList; -import org.openslx.bwlp.sat.util.Json; import org.openslx.bwlp.sat.util.Util; import org.openslx.bwlp.sat.web.VmChooserEntryXml; import org.openslx.bwlp.sat.web.VmChooserListXml; @@ -27,6 +26,7 @@ import org.openslx.bwlp.thrift.iface.LectureWrite; import org.openslx.bwlp.thrift.iface.NetRule; import org.openslx.bwlp.thrift.iface.TNotFoundException; import org.openslx.bwlp.thrift.iface.UserInfo; +import org.openslx.util.Json; import org.openslx.util.vm.VmMetaData; import org.openslx.util.vm.VmwareMetaData; diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Json.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Json.java deleted file mode 100644 index 679cb6bf..00000000 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Json.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.openslx.bwlp.sat.util; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.lang.reflect.Type; - -import org.apache.log4j.Logger; -import org.apache.thrift.TBase; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSyntaxException; - -public class Json { - - private static final Logger LOGGER = Logger.getLogger(Json.class); - - /** - * Global static instance. The Gson object is thread-safe. - */ - private static final Gson gson = new Gson(); - - private static final GsonBuilder gsonThriftBuilder = new GsonBuilder(); - - public static <T> void registerThriftClass(Class<T> thriftClass) { - if (!TBase.class.isAssignableFrom(thriftClass)) - throw new IllegalArgumentException(thriftClass.getName() + " is not a thrift struct."); - gsonThriftBuilder.registerTypeAdapter(thriftClass, new ThriftDeserializer<T>(thriftClass)); - } - - /** - * Deserialize the given json string to an instance of T. - * This will deserialize all fields, except transient ones. - * - * @param data JSON formatted data - * @param classOfData class to instantiate - * @return instanceof T - */ - public static <T> T deserialize(String data, Class<T> classOfData) { - try { - return gson.fromJson(data, classOfData); - } catch (JsonSyntaxException e) { - LOGGER.warn("Cannot deserialize to " + classOfData.getSimpleName(), e); - return null; - } - } - - public static <T> T deserializeThrift(String data, Class<T> thriftClass) { - try { - return gsonThriftBuilder.create().fromJson(data, thriftClass); - } catch (JsonSyntaxException e) { - LOGGER.warn("Cannot deserialize to " + thriftClass.getSimpleName(), e); - return null; - } - } - - /** - * Serialize the given POJO. All fields except transient ones will be - * serialized. - * - * @param object some object to serialize - * @return JSON formatted represenatation of <code>object</code> - */ - public static String serialize(Object object) { - return gson.toJson(object); - } - - private static class ThriftDeserializer<T> implements JsonDeserializer<T> { - private final Class<T> clazz; - - public ThriftDeserializer(Class<T> classOfData) { - this.clazz = classOfData; - } - - @Override - public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) - throws JsonParseException { - if (!(json instanceof JsonObject)) - throw new JsonParseException("Need a json object, have " + json.getClass().getSimpleName()); - JsonObject obj = (JsonObject) json; - final T inst; - try { - inst = clazz.newInstance(); - } catch (InstantiationException | IllegalAccessException e) { - LOGGER.warn("Could not deserialize to class " + clazz.getName(), e); - throw new JsonParseException("Cannot instantiate class " + clazz.getSimpleName()); - } - for (Field field : clazz.getFields()) { - if (Modifier.isStatic(field.getModifiers()) || Modifier.isFinal(field.getModifiers())) - continue; - final String methodName = "set" + field.getName().substring(0, 1).toUpperCase() - + field.getName().substring(1); - final Method setter; - try { - setter = clazz.getMethod(methodName, field.getType()); - } catch (NoSuchMethodException e) { - LOGGER.warn(clazz.getSimpleName() + " has no method " + methodName); - continue; - } - JsonElement element = obj.get(field.getName()); - if (element == null || element.isJsonNull()) - continue; - try { - setter.invoke(inst, context.deserialize(element, field.getType())); - LOGGER.info("Called " + methodName + " on " + clazz.getSimpleName()); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - LOGGER.warn("Could not call " + methodName + " on " + clazz.getSimpleName(), e); - } - } - return inst; - } - - } - -} diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java index 946df9d0..17b28e80 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java @@ -8,9 +8,9 @@ import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.log4j.Logger; import org.openslx.bwlp.sat.database.mappers.DbLecture; import org.openslx.bwlp.sat.fileserv.FileServer; -import org.openslx.bwlp.sat.util.Json; import org.openslx.bwlp.thrift.iface.TNotFoundException; import org.openslx.util.GenericDataCache; +import org.openslx.util.Json; import org.openslx.util.vm.VmMetaData; import org.simpleframework.xml.Serializer; import org.simpleframework.xml.core.Persister; |
