Merge branch 'application-mgt-new' of https://gitlab.com/tcdlpds/carbon-device-mgt into application-mgt-new

feature/appm-store/pbac
Jayasanka 6 years ago
commit 7c25663022

@ -155,6 +155,28 @@ public class LifecycleStateManager {
} }
} }
public boolean isInitialState(String state) throws LifecycleManagementException {
State currentState = getMatchingState(state);
if (currentState != null) {
return currentState.isInitialState();
} else {
String msg = "Couldn't find a lifecycle state that matches with " + state + " state.";
log.error(msg);
throw new LifecycleManagementException(msg);
}
}
public boolean isEndState(String state) throws LifecycleManagementException {
State currentState = getMatchingState(state);
if (currentState != null) {
return currentState.isEndState();
} else {
String msg = "Couldn't find a lifecycle state that matches with " + state + " state.";
log.error(msg);
throw new LifecycleManagementException(msg);
}
}
public String getInitialState() throws LifecycleManagementException { public String getInitialState() throws LifecycleManagementException {
String initialState = null; String initialState = null;
for (Map.Entry<String, State> stringStateEntry : lifecycleStates.entrySet()) { for (Map.Entry<String, State> stringStateEntry : lifecycleStates.entrySet()) {
@ -198,6 +220,23 @@ public class LifecycleStateManager {
return false; return false;
} }
public boolean isUpdatable(String state) {
State currentState = getMatchingState(state);
if (currentState.isAppUpdatable()) {
return true;
}
return false;
}
public boolean isInstallable(String state) {
State currentState = getMatchingState(state);
if (currentState.isAppInstallable()) {
return true;
}
return false;
}
public void setLifecycleStates(Map<String, State> lifecycleStates) { public void setLifecycleStates(Map<String, State> lifecycleStates) {
this.lifecycleStates = lifecycleStates; this.lifecycleStates = lifecycleStates;
} }

@ -24,6 +24,8 @@ public class LifecycleManagementTest {
private final String NON_UPDATABLE_STATE = "Removed"; private final String NON_UPDATABLE_STATE = "Removed";
private final String INSTALLABLE_STATE = "Published"; private final String INSTALLABLE_STATE = "Published";
private final String UNINSTALlABLE_STATE = "Removed"; private final String UNINSTALlABLE_STATE = "Removed";
private final String INITIAL_STATE = "Created";
private final String END_STATE = "Removed";
@BeforeClass @BeforeClass
@ -49,36 +51,83 @@ public class LifecycleManagementTest {
proceedingStates.contains(BOGUS_STATE.toUpperCase())); proceedingStates.contains(BOGUS_STATE.toUpperCase()));
} }
// @Test @Test
// public void CheckUpdatableState() { public void CheckUpdatableState() throws LifecycleManagementException {
// boolean isUpdatableState = lifecycleStateManager.isUpdatableState(UPDATABLE_STATE); boolean isUpdatable = lifecycleStateManager.isUpdatable(UPDATABLE_STATE);
// System.out.println(isUpdatableState); System.out.println(isUpdatable);
// Assert.assertTrue("Updatable state: " + UPDATABLE_STATE, isUpdatableState); Assert.assertTrue("Updatable state: " + UPDATABLE_STATE, isUpdatable);
// } }
//
// @Test @Test
// public void CheckNonUpdatableState() { public void CheckNonUpdatableState() throws LifecycleManagementException {
// boolean isUpdatableState = lifecycleStateManager.isUpdatableState(NON_UPDATABLE_STATE); boolean isUpdatable = lifecycleStateManager.isUpdatable(NON_UPDATABLE_STATE);
// Assert.assertFalse("Non Updatable state: " + NON_UPDATABLE_STATE, isUpdatableState); Assert.assertFalse("Non Updatable state: " + NON_UPDATABLE_STATE, isUpdatable);
// } }
//
// @Test @Test
// public void CheckInstallableState() { public void CheckInstallableState() throws LifecycleManagementException {
// boolean isInstallableState = lifecycleStateManager.isInstallableState(INSTALLABLE_STATE); boolean isInstallable = lifecycleStateManager.isInstallable(INSTALLABLE_STATE);
// Assert.assertTrue("Installable state: " + INSTALLABLE_STATE, isInstallableState); Assert.assertTrue("Installable state: " + INSTALLABLE_STATE, isInstallable);
// } }
//
// @Test @Test
// public void CheckUnInstallableState() { public void CheckUnInstallableState() throws LifecycleManagementException {
// boolean isInstallableState = lifecycleStateManager.isInstallableState(UNINSTALlABLE_STATE); boolean isInstallable = lifecycleStateManager.isInstallable(UNINSTALlABLE_STATE);
// Assert.assertFalse("UnInstallable state: " + UNINSTALlABLE_STATE, isInstallableState); Assert.assertFalse("UnInstallable state: " + UNINSTALlABLE_STATE, isInstallable);
// } }
//
// @Test @Test
// public void check() { public void CheckGetInitialState() throws LifecycleManagementException {
// Set<String> proceedingStates = lifecycleStateManager.getNextLifecycleStates(CURRENT_STATE); boolean isInitialState = lifecycleStateManager.getInitialState().equalsIgnoreCase(INITIAL_STATE);
// Assert.assertFalse("Invalid proceeding state of: " + CURRENT_STATE, Assert.assertTrue("Initial state: " + INITIAL_STATE, isInitialState);
// proceedingStates.contains(BOGUS_STATE.toUpperCase())); }
// }
@Test
public void CheckGetNonInitialState() throws LifecycleManagementException {
boolean isInitialState = lifecycleStateManager.getInitialState().equalsIgnoreCase(END_STATE);
Assert.assertFalse("Non initial state: " + END_STATE, isInitialState);
}
@Test
public void CheckGetEndState() throws LifecycleManagementException {
boolean isEndState = lifecycleStateManager.getEndState().equalsIgnoreCase(END_STATE);
Assert.assertTrue("End State: " + END_STATE, isEndState);
}
@Test
public void CheckGetNonEndState() throws LifecycleManagementException {
boolean isEndState = lifecycleStateManager.getEndState().equalsIgnoreCase(INITIAL_STATE);
Assert.assertFalse("Non End State : " + INITIAL_STATE, isEndState);
}
@Test
public void CheckIsInitialState() throws LifecycleManagementException {
boolean isInitialState = lifecycleStateManager.isInitialState(INITIAL_STATE);
Assert.assertTrue("Initial state: " + INITIAL_STATE, isInitialState);
}
@Test
public void CheckIsNonInitialState() throws LifecycleManagementException {
boolean isInitialState = lifecycleStateManager.isInitialState(END_STATE);
Assert.assertFalse("Non Initial state: " + END_STATE, isInitialState);
}
@Test
public void CheckIsEndState() throws LifecycleManagementException {
boolean isEndState = lifecycleStateManager.isEndState(END_STATE);
Assert.assertTrue("End state: " + END_STATE, isEndState);
}
@Test
public void CheckIsNonEndState() throws LifecycleManagementException {
boolean isEndState = lifecycleStateManager.isEndState(INITIAL_STATE);
Assert.assertFalse("Non End state: " + INITIAL_STATE, isEndState);
}
@Test
public void check() {
Set<String> proceedingStates = lifecycleStateManager.getNextLifecycleStates(CURRENT_STATE);
Assert.assertFalse("Invalid proceeding state of: " + CURRENT_STATE,
proceedingStates.contains(BOGUS_STATE.toUpperCase()));
}
} }

@ -19,6 +19,7 @@ package org.wso2.carbon.device.application.mgt.handler.util;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
@ -27,6 +28,8 @@ import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.json.JSONException;
import org.json.JSONObject;
import org.wso2.carbon.device.application.mgt.common.ProxyResponse; import org.wso2.carbon.device.application.mgt.common.ProxyResponse;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -201,17 +204,29 @@ public class HandlerUtil {
return; return;
} }
Gson gson = new Gson();
resp.setStatus(proxyResponse.getCode()); resp.setStatus(proxyResponse.getCode());
resp.setContentType("application/json"); resp.setContentType("application/json");
resp.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8");
proxyResponse.setExecutorResponse(null);
try (PrintWriter writer = resp.getWriter()) { JSONObject response = new JSONObject();
if (proxyResponse.getCode() == HttpStatus.SC_OK){ String redirectUrl = proxyResponse.getUrl();
writer.write(gson.toJson(proxyResponse.getData())); String responseData = proxyResponse.getData();
} else{
writer.write(proxyResponse.getData()); if (!StringUtils.isEmpty(redirectUrl)){
response.put("url", redirectUrl);
}
if (!StringUtils.isEmpty(responseData)){
try {
JSONObject responseDataJsonObj = new JSONObject(responseData);
response.put("data", responseDataJsonObj);
} catch (JSONException e) {
log.debug("Response data is not valid json string");
response.put("data", responseData);
}
} }
try (PrintWriter writer = resp.getWriter()) {
writer.write(response.toString());
} }
} }

Loading…
Cancel
Save