From d08abadc19a8b51f9853d04e49d9ca42ddb3c498 Mon Sep 17 00:00:00 2001 From: alena Date: Tue, 21 Jun 2011 11:05:21 -0700 Subject: [PATCH] Keep "encode.api.response" parameter in ApiServer class; initialize it as a part of init() method --- server/src/com/cloud/api/ApiServer.java | 5 +++++ .../cloud/api/EncodedStringTypeAdapter.java | 18 +----------------- .../api/response/ApiResponseSerializer.java | 16 ++-------------- 3 files changed, 8 insertions(+), 31 deletions(-) diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java index 7f73a103742..c5c5810a7de 100755 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@ -84,6 +84,7 @@ import com.cloud.async.AsyncJob; import com.cloud.async.AsyncJobManager; import com.cloud.async.AsyncJobVO; import com.cloud.cluster.StackMaid; +import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationVO; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.domain.Domain; @@ -114,6 +115,7 @@ public class ApiServer implements HttpRequestHandler { public static final short DOMAIN_ADMIN_COMMAND = 4; public static final short RESOURCE_DOMAIN_ADMIN_COMMAND = 2; public static final short USER_COMMAND = 8; + public static boolean encodeApiResponse = false; private Properties _apiCommands = null; private ApiDispatcher _dispatcher; private ManagementServer _ms = null; @@ -224,6 +226,8 @@ public class ApiServer implements HttpRequestHandler { ConfigurationVO apiPortConfig = values.get(0); apiPort = Integer.parseInt(apiPortConfig.getValue()); } + + encodeApiResponse = Boolean.valueOf(configDao.getValue(Config.EncodeApiResponse.key())); ListenerThread listenerThread = new ListenerThread(this, apiPort); listenerThread.start(); @@ -886,4 +890,5 @@ public class ApiServer implements HttpRequestHandler { } return responseText; } + } diff --git a/server/src/com/cloud/api/EncodedStringTypeAdapter.java b/server/src/com/cloud/api/EncodedStringTypeAdapter.java index 55ccf152a9d..deb4fef5713 100644 --- a/server/src/com/cloud/api/EncodedStringTypeAdapter.java +++ b/server/src/com/cloud/api/EncodedStringTypeAdapter.java @@ -22,10 +22,6 @@ import java.lang.reflect.Type; import org.apache.log4j.Logger; -import com.cloud.configuration.Config; -import com.cloud.configuration.dao.ConfigurationDao; -import com.cloud.server.ManagementServer; -import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.encoding.URLEncoder; import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; @@ -34,18 +30,6 @@ import com.google.gson.JsonSerializer; public class EncodedStringTypeAdapter implements JsonSerializer{ public static final Logger s_logger = Logger.getLogger(EncodedStringTypeAdapter.class.getName()); - private static final boolean encodeApiResponse = configure(); - - private static boolean configure() { - ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name); - - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao != null) { - return Boolean.valueOf(configDao.getValue(Config.EncodeApiResponse.key())); - } else { - return true; - } - } @Override public JsonElement serialize(String src, Type typeOfResponseObj, JsonSerializationContext ctx) { @@ -54,7 +38,7 @@ public class EncodedStringTypeAdapter implements JsonSerializer{ } private static String encodeString(String value) { - if (!encodeApiResponse) { + if (!ApiServer.encodeApiResponse) { return value; } try { diff --git a/server/src/com/cloud/api/response/ApiResponseSerializer.java b/server/src/com/cloud/api/response/ApiResponseSerializer.java index a320af6eca4..d48f71e242e 100644 --- a/server/src/com/cloud/api/response/ApiResponseSerializer.java +++ b/server/src/com/cloud/api/response/ApiResponseSerializer.java @@ -32,6 +32,7 @@ import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; import com.cloud.api.ApiDBUtils; import com.cloud.api.ApiResponseGsonHelper; +import com.cloud.api.ApiServer; import com.cloud.api.BaseCmd; import com.cloud.api.ResponseObject; import com.cloud.configuration.Config; @@ -44,19 +45,6 @@ import com.google.gson.annotations.SerializedName; public class ApiResponseSerializer { private static final Logger s_logger = Logger.getLogger(ApiResponseSerializer.class.getName()); - private static final boolean encodeApiResponse = configure(); - - private static boolean configure() { - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao != null) { - return Boolean.valueOf(configDao.getValue(Config.EncodeApiResponse.key())); - } else { - return true; - } - } - public static String toSerializedString(ResponseObject result, String responseType) { if (BaseCmd.RESPONSE_TYPE_JSON.equalsIgnoreCase(responseType)) { @@ -291,7 +279,7 @@ public class ApiResponseSerializer { } private static String encodeParam(String value) { - if (!encodeApiResponse) { + if (!ApiServer.encodeApiResponse) { return value; } try {