mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
working state on happy path app create
This commit is contained in:
parent
27e4dc14d3
commit
4512a4e2d7
@ -100,13 +100,14 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
+ " the user : " + application.getUser().getUserName());
|
+ " the user : " + application.getUser().getUserName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ConnectionManagerUtil.openDBConnection();
|
||||||
validateAppCreatingRequest(application);
|
validateAppCreatingRequest(application);
|
||||||
validateAppReleasePayload(application.getApplicationReleases().get(0));
|
validateAppReleasePayload(application.getApplicationReleases().get(0));
|
||||||
DeviceType deviceType;
|
DeviceType deviceType;
|
||||||
ApplicationRelease applicationRelease;
|
ApplicationRelease applicationRelease;
|
||||||
List<ApplicationRelease> applicationReleases = new ArrayList<>();
|
List<ApplicationRelease> applicationReleases = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
ConnectionManagerUtil.getDBConnection();
|
|
||||||
ConnectionManagerUtil.beginDBTransaction();
|
ConnectionManagerUtil.beginDBTransaction();
|
||||||
MAMDeviceConnectorImpl mamDeviceConnector = new MAMDeviceConnectorImpl();
|
MAMDeviceConnectorImpl mamDeviceConnector = new MAMDeviceConnectorImpl();
|
||||||
// Getting the device type details to get device type ID for internal mappings
|
// Getting the device type details to get device type ID for internal mappings
|
||||||
@ -188,7 +189,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
ConnectionManagerUtil.rollbackDBTransaction();
|
||||||
throw new ApplicationManagementException(msg, e);
|
throw new ApplicationManagementException(msg, e);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String msg = "Unknown exception while creating application.";
|
String msg = "Unknown exception while creating application.";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
ConnectionManagerUtil.rollbackDBTransaction();
|
||||||
@ -743,7 +744,8 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
state.setUpdatedBy(userName);
|
state.setUpdatedBy(userName);
|
||||||
|
|
||||||
if (state.getCurrentState() != null && state.getPreviousState() != null) {
|
if (state.getCurrentState() != null && state.getPreviousState() != null) {
|
||||||
if (lifecycleStateManger.isValidStateChange(state.getPreviousState(), state.getCurrentState())) {
|
|
||||||
|
if (getLifecycleManagementService().isValidStateChange(state.getPreviousState(), state.getCurrentState())) {
|
||||||
this.lifecycleStateDAO
|
this.lifecycleStateDAO
|
||||||
.addLifecycleState(state, applicationId, releaseId, tenantId);
|
.addLifecycleState(state, applicationId, releaseId, tenantId);
|
||||||
} else {
|
} else {
|
||||||
@ -859,4 +861,16 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LifecycleStateManger getLifecycleManagementService() {
|
||||||
|
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||||
|
LifecycleStateManger deviceManagementProviderService =
|
||||||
|
(LifecycleStateManger) ctx.getOSGiService(LifecycleStateManger.class, null);
|
||||||
|
if (deviceManagementProviderService == null) {
|
||||||
|
String msg = "DeviceImpl Management provider service has not initialized.";
|
||||||
|
log.error(msg);
|
||||||
|
throw new IllegalStateException(msg);
|
||||||
|
}
|
||||||
|
return deviceManagementProviderService;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,6 +103,7 @@ public class ApplicationManagementServiceComponent {
|
|||||||
getConfiguration().getLifecycleStates();
|
getConfiguration().getLifecycleStates();
|
||||||
LifecycleStateManger lifecycleStateManger = new LifecycleStateManger(lifecycleStates);
|
LifecycleStateManger lifecycleStateManger = new LifecycleStateManger(lifecycleStates);
|
||||||
DataHolder.getInstance().setLifecycleStateManger(lifecycleStateManger);
|
DataHolder.getInstance().setLifecycleStateManger(lifecycleStateManger);
|
||||||
|
bundleContext.registerService(LifecycleStateManger.class.getName(), lifecycleStateManger, null);
|
||||||
|
|
||||||
log.info("ApplicationManagement core bundle has been successfully initialized");
|
log.info("ApplicationManagement core bundle has been successfully initialized");
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package org.wso2.carbon.device.application.mgt.core.lifecycle;
|
|||||||
import org.wso2.carbon.device.application.mgt.core.lifecycle.config.LifecycleState;
|
import org.wso2.carbon.device.application.mgt.core.lifecycle.config.LifecycleState;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -26,9 +27,36 @@ public class LifecycleStateManger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValidStateChange(String currentState, String nextState) {
|
public boolean isValidStateChange(String currentState, String nextState) {
|
||||||
if (lifecycleStates.get(currentState).getProceedingStates().contains(nextState)) {
|
if (currentState.equalsIgnoreCase(nextState)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
State state = getMatchingState(currentState);
|
||||||
|
if (state != null) {
|
||||||
|
return getMatchingNextState(state.getProceedingStates(), nextState);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private State getMatchingState(String currentState) {
|
||||||
|
Iterator it = lifecycleStates.entrySet().iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Map.Entry pair = (Map.Entry)it.next();
|
||||||
|
if(pair.getKey().toString().equalsIgnoreCase(currentState)) {
|
||||||
|
return lifecycleStates.get(pair.getKey().toString());
|
||||||
|
}
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean getMatchingNextState(Set<String> proceedingStates, String nextState) {
|
||||||
|
|
||||||
|
for (String state: proceedingStates) {
|
||||||
|
if (state.equalsIgnoreCase(nextState)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user