diff --git a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/pom.xml b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/pom.xml index dbcb1dc4c..ab4b08515 100644 --- a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/pom.xml +++ b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/pom.xml @@ -38,26 +38,6 @@ org.wso2.carbon org.wso2.carbon.logging - - org.wso2.carbon - org.wso2.carbon.core - - - javax.websocket - javax.websocket-api - - - com.google.code.gson - gson - - - org.apache.httpcomponents.wso2 - httpcore - - - org.wso2.orbit.org.apache.httpcomponents - httpclient - org.wso2.carbon.identity.inbound.auth.oauth2 org.wso2.carbon.identity.oauth.stub @@ -66,10 +46,6 @@ commons-pool.wso2 commons-pool - - javax.ws.rs - jsr311-api - org.wso2.carbon.devicemgt org.wso2.carbon.device.mgt.core @@ -111,7 +87,28 @@ org.wso2.carbon.device.mgt.extensions.remote.session.* - *;resolution:=optional + javax.websocket, + org.apache.axis2; version="${axis2.osgi.version.range}", + org.apache.axis2.client; version="${axis2.osgi.version.range}", + org.apache.axis2.context; version="${axis2.osgi.version.range}", + org.apache.axis2.transport.http; version="${axis2.osgi.version.range}", + org.apache.commons.httpclient, + org.apache.commons.httpclient.contrib.ssl, + org.apache.commons.httpclient.params, + org.apache.commons.httpclient.protocol, + org.apache.commons.logging, + org.apache.commons.pool, + org.apache.commons.pool.impl, + org.json, + org.osgi.framework, + org.osgi.service.component, + org.wso2.carbon.context, + org.wso2.carbon.core, + org.wso2.carbon.device.mgt.common.*, + org.wso2.carbon.device.mgt.core.*, + org.wso2.carbon.identity.oauth2.stub, + org.wso2.carbon.identity.oauth2.stub.dto, + org.wso2.carbon.utils.multitenancy diff --git a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/RemoteSessionManagementServiceImpl.java b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/RemoteSessionManagementServiceImpl.java index bf5182c0f..1274d7921 100644 --- a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/RemoteSessionManagementServiceImpl.java +++ b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/RemoteSessionManagementServiceImpl.java @@ -17,7 +17,6 @@ */ package org.wso2.carbon.device.mgt.extensions.remote.session; -import org.apache.commons.collections.map.HashedMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONObject; @@ -43,6 +42,7 @@ import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -67,7 +67,7 @@ public class RemoteSessionManagementServiceImpl implements RemoteSessionManageme } // Read Query Parameters for obtain the token - Map> sessionQueryParam = new HashedMap(); + Map> sessionQueryParam = new HashMap(); List sessionQueryParamList = new LinkedList<>(); sessionQueryParamList.add(session.getQueryString()); sessionQueryParam.put(RemoteSessionConstants.QUERY_STRING, sessionQueryParamList); @@ -94,8 +94,10 @@ public class RemoteSessionManagementServiceImpl implements RemoteSessionManageme .isUserAuthorized(deviceIdentifier, authenticationInfo.getUsername()); if (userAuthorized) { // set common settings for session - session.setMaxBinaryMessageBufferSize(RemoteSessionConstants.MAX_BUFFER_SIZE); - session.setMaxTextMessageBufferSize(RemoteSessionConstants.MAX_BUFFER_SIZE); + session.setMaxBinaryMessageBufferSize(RemoteSessionManagementDataHolder.getInstance() + .getMaxMessageBufferSize()); + session.setMaxTextMessageBufferSize(RemoteSessionManagementDataHolder.getInstance() + .getMaxMessageBufferSize()); session.setMaxIdleTimeout(RemoteSessionManagementDataHolder.getInstance().getMaxIdleTimeout()); // if session initiated using operation id means request came from device diff --git a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/internal/RemoteSessionManagementDataHolder.java b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/internal/RemoteSessionManagementDataHolder.java index 310affbb0..ef92860f6 100644 --- a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/internal/RemoteSessionManagementDataHolder.java +++ b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/internal/RemoteSessionManagementDataHolder.java @@ -38,6 +38,7 @@ public class RemoteSessionManagementDataHolder { private boolean isEnabled; private String serverUrl; private long maxIdleTimeout; + private int maxMessageBufferSize; private int maxMessagesPerSecond; private OAuthAuthenticator oAuthAuthenticator; private Map activeDeviceClientSessionMap = new ConcurrentHashMap(); @@ -110,4 +111,12 @@ public class RemoteSessionManagementDataHolder { public void setMaxIdleTimeout(long maxIdleTimeout) { this.maxIdleTimeout = maxIdleTimeout; } + + public int getMaxMessageBufferSize() { + return maxMessageBufferSize; + } + + public void setMaxMessageBufferSize(int MaxMessageBufferSize) { + this.maxMessageBufferSize = MaxMessageBufferSize; + } } diff --git a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/listener/RemoteSessionManagerStartupListener.java b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/listener/RemoteSessionManagerStartupListener.java index 19b89f369..8236cb848 100644 --- a/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/listener/RemoteSessionManagerStartupListener.java +++ b/components/extensions/remote-session-extension/org.wso2.carbon.device.mgt.extensions.remote.session/src/main/java/org/wso2/carbon/device/mgt/extensions/remote.session/listener/RemoteSessionManagerStartupListener.java @@ -64,6 +64,14 @@ public class RemoteSessionManagerStartupListener implements ServerStartupObserve // Set max idle timeout in milliseconds RemoteSessionManagementDataHolder.getInstance().setMaxIdleTimeout((long) rsConfig.getSessionIdleTimeOut() * 60000); + // Set max buffer size for messages. + if (rsConfig.getMaxMessageBufferSize() > 0) { + RemoteSessionManagementDataHolder.getInstance() + .setMaxMessageBufferSize(rsConfig.getMaxMessageBufferSize() * 1024); + } else { + RemoteSessionManagementDataHolder.getInstance(). + setMaxMessageBufferSize(RemoteSessionConstants.MAX_BUFFER_SIZE); + } // Set max messages per second. if (rsConfig.getMaxMessagesPerSession() > 0) { diff --git a/components/extensions/remote-session-extension/pom.xml b/components/extensions/remote-session-extension/pom.xml index e63341f51..cceaf0e62 100644 --- a/components/extensions/remote-session-extension/pom.xml +++ b/components/extensions/remote-session-extension/pom.xml @@ -43,7 +43,7 @@ org.apache.felix maven-scr-plugin - 1.7.2 + ${maven.scr.version} generate-scr-scrdescriptor diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/util/AndroidDeviceUtils.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/util/AndroidDeviceUtils.java index ac99f2004..ad5f65f8d 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/util/AndroidDeviceUtils.java +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/util/AndroidDeviceUtils.java @@ -21,6 +21,7 @@ package org.wso2.carbon.mdm.services.android.util; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; +import com.google.gson.JsonNull; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.apache.commons.logging.Log; @@ -371,13 +372,12 @@ public class AndroidDeviceUtils { // {"name":"BATTERY_LEVEL","value":"100"},{"name":"INTERNAL_TOTAL_MEMORY","value":"0.76"}] JsonElement jsonElement = new JsonParser().parse(properties); JsonArray jsonArray = jsonElement.getAsJsonArray(); - boolean exist = false; for (JsonElement element : jsonArray) { if (element.isJsonObject()) { JsonObject jsonObject = element.getAsJsonObject(); if (jsonObject.has("name") && jsonObject.get("name").getAsString().equalsIgnoreCase(needed)) { - if (jsonObject.has("value")) { + if (jsonObject.has("value") && jsonObject.get("value") != JsonNull.INSTANCE) { return jsonObject.get("value").getAsString().replace("%", ""); } else { return "";