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

feature/appm-store/pbac
lasanthaDLPDS 6 years ago
commit 02b99eb442

@ -57,7 +57,8 @@
io.swagger.annotations.*;resolution:=optional, io.swagger.annotations.*;resolution:=optional,
com.fasterxml.jackson.annotation, com.fasterxml.jackson.annotation,
javax.validation.constraints, javax.validation.constraints,
javax.xml.bind.annotation.* javax.xml.bind.annotation.*,
org.wso2.carbon.device.mgt.core.dto
</Import-Package> </Import-Package>
<Export-Package> <Export-Package>
org.wso2.carbon.device.application.mgt.common.* org.wso2.carbon.device.application.mgt.common.*

@ -79,6 +79,8 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
if (rs.next()) { if (rs.next()) {
applicationId = rs.getInt(1); applicationId = rs.getInt(1);
} }
// TODO : throw error if applicationId = -1
return applicationId; return applicationId;
} catch (DBConnectionException e) { } catch (DBConnectionException e) {

@ -62,6 +62,7 @@ public class GenericApplicationReleaseDAOImpl extends AbstractDAOImpl implements
+ "APP_HASH_VALUE, SHARED_WITH_ALL_TENANTS, APP_META_INFO,AP_APP_ID) " + "APP_HASH_VALUE, SHARED_WITH_ALL_TENANTS, APP_META_INFO,AP_APP_ID) "
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
// TODO : make this readable
int index = 0; int index = 0;
String generatedColumns[] = { "ID" }; String generatedColumns[] = { "ID" };
try { try {

@ -89,7 +89,7 @@ public class GenericVisibilityDAOImpl extends AbstractDAOImpl implements Visibil
rs = stmt.executeQuery(); rs = stmt.executeQuery();
while (rs.next()){ while (rs.next()){
unrestrictedRoles.add(rs.getString("ROLE").toLowerCase()); unrestrictedRoles.add(rs.getString("ROLE"));
} }
return unrestrictedRoles; return unrestrictedRoles;

@ -126,7 +126,6 @@ public class ApplicationManagerImpl implements ApplicationManager {
ConnectionManagerUtil.beginDBTransaction(); ConnectionManagerUtil.beginDBTransaction();
if (deviceType == null) { if (deviceType == null) {
log.error("Device type is not matched with application type"); log.error("Device type is not matched with application type");
ConnectionManagerUtil.rollbackDBTransaction();
return null; return null;
} }
if (!application.getUnrestrictedRoles().isEmpty()) { if (!application.getUnrestrictedRoles().isEmpty()) {
@ -166,7 +165,8 @@ public class ApplicationManagerImpl implements ApplicationManager {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("Changing lifecycle state. App Id:" + appId); log.debug("Changing lifecycle state. App Id:" + appId);
} }
LifecycleState lifecycleState = getLifecycleStateInstant(AppLifecycleState.CREATED.toString(), //todo get initial state from lifecycle manager and set current state to Release object
LifecycleState lifecycleState = getLifecycleStateInstance(AppLifecycleState.CREATED.toString(),
AppLifecycleState.CREATED.toString()); AppLifecycleState.CREATED.toString());
this.lifecycleStateDAO.addLifecycleState(lifecycleState, appId, applicationRelease.getUuid(), tenantId); this.lifecycleStateDAO.addLifecycleState(lifecycleState, appId, applicationRelease.getUuid(), tenantId);
applicationRelease.setLifecycleState(lifecycleState); applicationRelease.setLifecycleState(lifecycleState);
@ -306,7 +306,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
} }
applicationRelease = this.applicationReleaseDAO applicationRelease = this.applicationReleaseDAO
.createRelease(applicationRelease, existingApplication.getId(), tenantId); .createRelease(applicationRelease, existingApplication.getId(), tenantId);
LifecycleState lifecycleState = getLifecycleStateInstant(AppLifecycleState.CREATED.toString(), LifecycleState lifecycleState = getLifecycleStateInstance(AppLifecycleState.CREATED.toString(),
AppLifecycleState.CREATED.toString()); AppLifecycleState.CREATED.toString());
this.lifecycleStateDAO this.lifecycleStateDAO
.addLifecycleState(lifecycleState, applicationId, applicationRelease.getUuid(), tenantId); .addLifecycleState(lifecycleState, applicationId, applicationRelease.getUuid(), tenantId);
@ -584,7 +584,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
for (ApplicationRelease applicationRelease : applicationReleases) { for (ApplicationRelease applicationRelease : applicationReleases) {
LifecycleState appLifecycleState = this.lifecycleStateDAO LifecycleState appLifecycleState = this.lifecycleStateDAO
.getLatestLifeCycleState(applicationId, applicationRelease.getUuid()); .getLatestLifeCycleState(applicationId, applicationRelease.getUuid());
LifecycleState newAppLifecycleState = getLifecycleStateInstant(AppLifecycleState.REMOVED.toString(), LifecycleState newAppLifecycleState = getLifecycleStateInstance(AppLifecycleState.REMOVED.toString(),
appLifecycleState.getCurrentState()); appLifecycleState.getCurrentState());
if (lifecycleStateManger.isValidStateChange(newAppLifecycleState.getPreviousState(), if (lifecycleStateManger.isValidStateChange(newAppLifecycleState.getPreviousState(),
newAppLifecycleState.getCurrentState())) { newAppLifecycleState.getCurrentState())) {
@ -596,7 +596,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
List<String> lifecycleFlow = searchLifecycleStateFlow(currentState, List<String> lifecycleFlow = searchLifecycleStateFlow(currentState,
AppLifecycleState.REMOVED.toString()); AppLifecycleState.REMOVED.toString());
for (String nextState : lifecycleFlow) { for (String nextState : lifecycleFlow) {
LifecycleState lifecycleState = getLifecycleStateInstant(nextState, currentState); LifecycleState lifecycleState = getLifecycleStateInstance(nextState, currentState);
if (lifecycleStateManger.isValidStateChange(currentState, nextState)) { if (lifecycleStateManger.isValidStateChange(currentState, nextState)) {
this.lifecycleStateDAO this.lifecycleStateDAO
.addLifecycleState(lifecycleState, applicationId, applicationRelease.getUuid(), .addLifecycleState(lifecycleState, applicationId, applicationRelease.getUuid(),
@ -713,7 +713,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
String currentState = appLifecycleState.getCurrentState(); String currentState = appLifecycleState.getCurrentState();
if (AppLifecycleState.DEPRECATED.toString().equals(currentState) || AppLifecycleState.REJECTED.toString() if (AppLifecycleState.DEPRECATED.toString().equals(currentState) || AppLifecycleState.REJECTED.toString()
.equals(currentState) || AppLifecycleState.UNPUBLISHED.toString().equals(currentState)) { .equals(currentState) || AppLifecycleState.UNPUBLISHED.toString().equals(currentState)) {
LifecycleState newAppLifecycleState = getLifecycleStateInstant(AppLifecycleState.REMOVED.toString(), LifecycleState newAppLifecycleState = getLifecycleStateInstance(AppLifecycleState.REMOVED.toString(),
appLifecycleState.getCurrentState()); appLifecycleState.getCurrentState());
if (lifecycleStateManger.isValidStateChange(newAppLifecycleState.getPreviousState(), if (lifecycleStateManger.isValidStateChange(newAppLifecycleState.getPreviousState(),
newAppLifecycleState.getCurrentState())) { newAppLifecycleState.getCurrentState())) {
@ -725,7 +725,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
List<String> lifecycleFlow = searchLifecycleStateFlow(currentState, List<String> lifecycleFlow = searchLifecycleStateFlow(currentState,
AppLifecycleState.REMOVED.toString()); AppLifecycleState.REMOVED.toString());
for (String nextState : lifecycleFlow) { for (String nextState : lifecycleFlow) {
LifecycleState lifecycleState = getLifecycleStateInstant(nextState, currentState); LifecycleState lifecycleState = getLifecycleStateInstance(nextState, currentState);
if (lifecycleStateManger.isValidStateChange(currentState, nextState)) { if (lifecycleStateManger.isValidStateChange(currentState, nextState)) {
this.lifecycleStateDAO this.lifecycleStateDAO
.addLifecycleState(lifecycleState, applicationId, applicationRelease.getUuid(), .addLifecycleState(lifecycleState, applicationId, applicationRelease.getUuid(),
@ -1238,7 +1238,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
* @param previousState Previouse state of the Lifecycle * @param previousState Previouse state of the Lifecycle
* @return {@link LifecycleState} * @return {@link LifecycleState}
*/ */
private LifecycleState getLifecycleStateInstant(String currentState, String previousState) { private LifecycleState getLifecycleStateInstance(String currentState, String previousState) {
String userName = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); String userName = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
LifecycleState lifecycleState = new LifecycleState(); LifecycleState lifecycleState = new LifecycleState();
lifecycleState.setCurrentState(currentState); lifecycleState.setCurrentState(currentState);

@ -224,12 +224,14 @@ public class ApplicationStorageManagerImpl implements ApplicationStorageManager
+ "application UUID " + applicationRelease.getUuid() + " is " + artifactDirectoryPath); + "application UUID " + applicationRelease.getUuid() + " is " + artifactDirectoryPath);
} }
// TODO : handle ios
String artifactPath = artifactDirectoryPath + File.separator + Constants.RELEASE_ARTIFACT +".apk"; String artifactPath = artifactDirectoryPath + File.separator + Constants.RELEASE_ARTIFACT +".apk";
saveFile(cloneInputStream[1], artifactPath); saveFile(cloneInputStream[1], artifactPath);
applicationRelease.setAppStoredLoc(artifactPath); applicationRelease.setAppStoredLoc(artifactPath);
applicationRelease.setAppHashValue(md5OfApp); applicationRelease.setAppHashValue(md5OfApp);
} catch (IOException e) { } catch (IOException e) {
// TODO :
throw new ApplicationStorageManagementException( throw new ApplicationStorageManagementException(
"IO Exception while saving the release artifacts in the server for the application UUID " "IO Exception while saving the release artifacts in the server for the application UUID "
+ applicationRelease.getUuid(), e); + applicationRelease.getUuid(), e);

@ -148,6 +148,7 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
} }
try { try {
//TODO : catch the error message
if (isInvalidReleaseCreatingRequest(binaryFile, iconFile, bannerFile, attachmentList, application.getType())) { if (isInvalidReleaseCreatingRequest(binaryFile, iconFile, bannerFile, attachmentList, application.getType())) {
return Response.status(Response.Status.BAD_REQUEST) return Response.status(Response.Status.BAD_REQUEST)
.entity("Invalid request for creating an application.").build(); .entity("Invalid request for creating an application.").build();
@ -155,6 +156,7 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
// The application executable artifacts such as apks are uploaded. // The application executable artifacts such as apks are uploaded.
if (!ApplicationType.ENTERPRISE.toString().equals(application.getType())) { if (!ApplicationType.ENTERPRISE.toString().equals(application.getType())) {
// TODO Null check
applicationRelease = application.getApplicationReleases().get(0); applicationRelease = application.getApplicationReleases().get(0);
applicationRelease = applicationStorageManager applicationRelease = applicationStorageManager
.uploadReleaseArtifact(applicationRelease, application.getType(), application.getDeviceType(), .uploadReleaseArtifact(applicationRelease, application.getType(), application.getDeviceType(),

Loading…
Cancel
Save