Improve APPM source

Fix formatting issues, add java doc comments, improve transaction handling
feature/appm-store/pbac
lasanthaDLPDS 5 years ago
parent c3349a89a4
commit 2103306fa1

@ -585,20 +585,20 @@ public class GenericApplicationReleaseDAOImpl extends AbstractDAOImpl implements
+ "AR.CURRENT_STATE AS RELEASE_CURRENT_STATE, "
+ "AR.RATED_USERS AS RATED_USER_COUNT "
+ "FROM AP_APP_RELEASE AS AR "
+ "WHERE AR.TENANT_ID = ? AND AR.PACKAGE_NAME IN (";
+ "WHERE AR.PACKAGE_NAME IN (";
StringJoiner joiner = new StringJoiner(",", sql, ")");
StringJoiner joiner = new StringJoiner(",", sql, ") AND AR.TENANT_ID = ? ");
packages.stream().map(ignored -> "?").forEach(joiner::add);
sql = joiner.toString();
try {
Connection connection = this.getDBConnection();
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, tenantId);
for (int y = 0; y < packages.size(); y++) {
// y +2 because tenantId parameter is 1 and the counter is starting at o for y
statement.setString(y+2, packages.get(y));
int index = 1;
for (String packageName : packages) {
statement.setObject(index++, packageName);
}
statement.setInt(index, tenantId);
try (ResultSet resultSet = statement.executeQuery()) {
List<ApplicationReleaseDTO> releaseDTOs = new ArrayList<>();
while (resultSet.next()) {

@ -195,16 +195,21 @@ public class ApplicationManagerImpl implements ApplicationManager {
ApplicationDTO applicationDTO = APIUtil.convertToAppDTO(publicAppWrapper);
ApplicationReleaseDTO applicationReleaseDTO = applicationDTO.getApplicationReleaseDTOs().get(0);
String appInstallerUrl = publicAppStorePath + applicationReleaseDTO.getPackageName();
//todo check app package name exist or not, do it in validation method
applicationReleaseDTO.setInstallerName(appInstallerUrl);
applicationReleaseDTO.setUuid(UUID.randomUUID().toString());
applicationReleaseDTO.setAppHashValue(DigestUtils.md5Hex(appInstallerUrl));
ConnectionManagerUtil.openDBConnection();
List<ApplicationReleaseDTO> exitingRelease;
try {
exitingRelease = applicationReleaseDAO.getReleaseByPackages(Arrays.asList(applicationReleaseDTO.getPackageName())
, tenantId);
ConnectionManagerUtil.openDBConnection();
List<ApplicationReleaseDTO> exitingPubAppReleases = applicationReleaseDAO
.getReleaseByPackages(Collections.singletonList(applicationReleaseDTO.getPackageName()), tenantId);
if (!exitingPubAppReleases.isEmpty()){
String msg = "Public app release exists for package name " + applicationReleaseDTO.getPackageName()
+ ". Hence you can't add new public app for package name "
+ applicationReleaseDTO.getPackageName();
log.error(msg);
throw new BadRequestException(msg);
}
} catch (ApplicationManagementDAOException e) {
String msg = "Error Occured when fetching release: " + publicAppWrapper.getName();
log.error(msg);
@ -213,33 +218,8 @@ public class ApplicationManagerImpl implements ApplicationManager {
ConnectionManagerUtil.closeDBConnection();
}
if (exitingRelease != null && !exitingRelease.isEmpty()) {
applicationDTO.getApplicationReleaseDTOs().clear();
applicationReleaseDTO.setUuid(exitingRelease.get(0).getUuid());
applicationReleaseDTO.setCurrentState(exitingRelease.get(0).getCurrentState());
try {
applicationReleaseDTO = addImageArtifacts(applicationReleaseDTO, applicationArtifact, tenantId);
applicationDTO.getApplicationReleaseDTOs().add(applicationReleaseDTO);
ConnectionManagerUtil.beginDBTransaction();
applicationReleaseDAO.updateRelease(applicationReleaseDTO, tenantId);
ConnectionManagerUtil.commitDBTransaction();
return APIUtil.appDtoToAppResponse(applicationDTO);
} catch (ApplicationManagementDAOException e) {
ConnectionManagerUtil.rollbackDBTransaction();
String msg = "Error occurred when updating public app: " + publicAppWrapper.getName();
log.error(msg, e);
throw new ApplicationManagementException(msg, e);
} catch (ResourceManagementException e) {
String msg = "Error occurred when adding artifacts of release: " + publicAppWrapper.getName();
log.error(msg, e);
throw new ApplicationManagementException(msg, e);
} finally {
ConnectionManagerUtil.closeDBConnection();
}
} else {
//uploading application artifacts
try {
applicationReleaseDTO = addImageArtifacts(applicationReleaseDTO, applicationArtifact, tenantId);
applicationDTO.getApplicationReleaseDTOs().clear();
applicationDTO.getApplicationReleaseDTOs().add(applicationReleaseDTO);
@ -252,8 +232,6 @@ public class ApplicationManagerImpl implements ApplicationManager {
return addAppDataIntoDB(applicationDTO, tenantId);
}
}
@Override
public Application createCustomApp(CustomAppWrapper customAppWrapper, ApplicationArtifact applicationArtifact)
throws ApplicationManagementException {
@ -316,6 +294,13 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
/**
* Delete Application release artifacts
*
* @param directoryPaths Directory paths
* @param tenantId Tenant Id
* @throws ApplicationManagementException if error occurred while deleting application release artifacts.
*/
private void deleteApplicationArtifacts(List<String> directoryPaths, int tenantId) throws ApplicationManagementException {
ApplicationStorageManager applicationStorageManager = DAOUtil.getApplicationStorageManager();
try {
@ -328,6 +313,17 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
/**
* To add Application release artifacts
*
* @param deviceType Device Type
* @param applicationReleaseDTO Application Release
* @param applicationArtifact Application release artifacts
* @param isNewRelease Is new release or Not
* @return {@link ApplicationReleaseDTO}
* @throws ResourceManagementException if error occurred while handling application release artifacts.
* @throws ApplicationManagementException if error occurred while handling application release data.
*/
private ApplicationReleaseDTO addApplicationReleaseArtifacts(String deviceType,
ApplicationReleaseDTO applicationReleaseDTO, ApplicationArtifact applicationArtifact, boolean isNewRelease)
throws ResourceManagementException, ApplicationManagementException {
@ -402,6 +398,16 @@ public class ApplicationManagerImpl implements ApplicationManager {
return applicationReleaseDTO;
}
/**
* This method could be used to update enterprise application release artifacts.
*
* @param deviceType Device Type
* @param applicationReleaseDTO Application Release
* @param applicationArtifact Application release artifacts
* @return {@link ApplicationReleaseDTO}
* @throws ResourceManagementException if error occurred while handling application release artifacts.
* @throws ApplicationManagementException if error occurred while handling application release data.
*/
private ApplicationReleaseDTO updateEntAppReleaseArtifact(String deviceType,
ApplicationReleaseDTO applicationReleaseDTO, ApplicationArtifact applicationArtifact)
throws ResourceManagementException, ApplicationManagementException {
@ -489,6 +495,15 @@ public class ApplicationManagerImpl implements ApplicationManager {
return applicationReleaseDTO;
}
/**
* Add image artifacts into file system
*
* @param applicationReleaseDTO Application Release
* @param applicationArtifact Image artifacts
* @param tenantId Tenant Id
* @return {@link ApplicationReleaseDTO}
* @throws ResourceManagementException if error occurred while uploading image artifacts into file system.
*/
private ApplicationReleaseDTO addImageArtifacts(ApplicationReleaseDTO applicationReleaseDTO,
ApplicationArtifact applicationArtifact, int tenantId) throws ResourceManagementException {
ApplicationStorageManager applicationStorageManager = DAOUtil.getApplicationStorageManager();
@ -518,6 +533,14 @@ public class ApplicationManagerImpl implements ApplicationManager {
return applicationReleaseDTO;
}
/**
* Update Image artifacts of Application RApplication Release
*
* @param applicationArtifact Application release Artifacts
* @param tenantId Tenant Id
* @return {@link ApplicationReleaseDTO}
* @throws ResourceManagementException if error occurred while uploading application release artifacts into the file system.
*/
private ApplicationReleaseDTO updateImageArtifacts(ApplicationReleaseDTO applicationReleaseDTO,
ApplicationArtifact applicationArtifact, int tenantId) throws ResourceManagementException{
ApplicationStorageManager applicationStorageManager = DAOUtil.getApplicationStorageManager();
@ -674,9 +697,19 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
/**
* Check whether at least one filtering role is in app unrestricted roles.
*
* @param appUnrestrictedRoles Application unrestricted roles
* @param filteringUnrestrictedRoles Filtering roles
* @param userName Username
* @return True if one filtering unrestricted role is associated with application unrestricted roles.
* @throws BadRequestException if user doesn't have assigned at least one filtering role
* @throws UserStoreException if error occurred when checking whether user has assigned at least one filtering role.
*/
private boolean hasAppUnrestrictedRole(List<String> appUnrestrictedRoles, List<String> filteringUnrestrictedRoles,
String userName) throws BadRequestException, UserStoreException {
if (!haveAllUserRoles(filteringUnrestrictedRoles, userName)) {
if (!hasUserRole(filteringUnrestrictedRoles, userName)) {
String msg =
"At least one filtering role is not assigned for the user: " + userName + ". Hence user " + userName
+ " Can't filter applications by giving these unrestricted role list";
@ -850,7 +883,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
throw new BadRequestException(msg);
}
DeviceType deviceType = APIUtil.getDeviceTypeData(applicationDTO.getDeviceTypeId());
if (!isValidOsVersions(entAppReleaseWrapper.getSupportedOsVersions(), deviceType.getName())) {
if (isInvalidOsVersionRange(entAppReleaseWrapper.getSupportedOsVersions(), deviceType.getName())) {
String msg = "You are trying to add application release which has invalid or unsupported OS versions in "
+ "the supportedOsVersions section. Hence, please re-evaluate the request payload.";
log.error(msg);
@ -897,6 +930,13 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
/**
* Get Application and all application releases associated to the application that has given application Id
*
* @param applicationId Application Id
* @return {@link ApplicationDTO}
* @throws ApplicationManagementException if error occurred application data from the databse.
*/
private ApplicationDTO getApplication(int applicationId) throws ApplicationManagementException {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
try {
@ -909,8 +949,8 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
return applicationDTO;
} catch (DBConnectionException e) {
String msg = "Error occurred while obtaining the database connection for getting application for the "
+ "application ID: " + applicationId;
String msg = "Error occurred while obtaining the database connection for getting application for the app ID"
+ " " + applicationId;
log.error(msg, e);
throw new ApplicationManagementException(msg, e);
} catch (ApplicationManagementDAOException e) {
@ -922,6 +962,17 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
/**
* Upload enterprise application release artifact into file system.
*
* @param releaseDTO Apllication Release
* @param applicationArtifact Application Release artifacts
* @param deviceTypeName Device Type name
* @param tenantId Tenant Id
* @param isNewRelease New Release or Not
* @return {@link ApplicationReleaseDTO}
* @throws ApplicationManagementException if error occurred while uploading artifacts into file system.
*/
private ApplicationReleaseDTO uploadEntAppReleaseArtifacts(ApplicationReleaseDTO releaseDTO,
ApplicationArtifact applicationArtifact, String deviceTypeName, int tenantId, boolean isNewRelease)
throws ApplicationManagementException {
@ -936,7 +987,16 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
private boolean isValidOsVersions(String osRange, String deviceTypeName)
/**
* Check whether given OS range is valid or invalid
*
* @param osRange OS range
* @param deviceTypeName Device Type
* @return true if invalid OS range, Otherwise returns false
* @throws ApplicationManagementException if error occurred while getting device type version for lower OS version
* and higher OS version
*/
private boolean isInvalidOsVersionRange(String osRange, String deviceTypeName)
throws ApplicationManagementException {
String lowestSupportingOsVersion;
String highestSupportingOsVersion = null;
@ -949,9 +1009,9 @@ public class ApplicationManagerImpl implements ApplicationManager {
try {
DeviceManagementProviderService deviceManagementProviderService = DAOUtil.getDeviceManagementService();
return deviceManagementProviderService.getDeviceTypeVersion(deviceTypeName, lowestSupportingOsVersion)
!= null && (highestSupportingOsVersion == null
|| deviceManagementProviderService.getDeviceTypeVersion(deviceTypeName, highestSupportingOsVersion)
!= null);
== null || (highestSupportingOsVersion != null
&& deviceManagementProviderService.getDeviceTypeVersion(deviceTypeName, highestSupportingOsVersion)
== null);
} catch (DeviceManagementException e) {
String msg =
"Error occurred while getting supported device type versions for device type : " + deviceTypeName;
@ -1152,9 +1212,16 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
/**
* Check whether at least one role is assigned to the given user.
*
* @param unrestrictedRoleList unrestricted role list
* @param userName Username
* @return true at least one unrestricted role has assigned to given user, otherwise returns false.
* @throws UserStoreException If it is unable to load {@link UserRealm} from {@link CarbonContext}
*/
private boolean hasUserRole(Collection<String> unrestrictedRoleList, String userName) throws UserStoreException {
String[] roleList;
roleList = getRolesOfUser(userName);
String[] roleList = getRolesOfUser(userName);
for (String unrestrictedRole : unrestrictedRoleList) {
for (String role : roleList) {
if (unrestrictedRole.equals(role)) {
@ -1165,30 +1232,18 @@ public class ApplicationManagerImpl implements ApplicationManager {
return false;
}
private boolean haveAllUserRoles(Collection<String> unrestrictedRoleList, String userName)
throws UserStoreException {
String[] roleList;
roleList = getRolesOfUser(userName);
for (String unrestrictedRole : unrestrictedRoleList) {
for (String role : roleList) {
if (!unrestrictedRole.equals(role)) {
return false;
}
}
}
return true;
}
/**
* Check whether valid unrestricted role list or not
*
* @return true or false
* @throws UserStoreException If it is unable to load {@link UserRealm} from {@link CarbonContext}
*/
private boolean isValidRestrictedRole(Collection<String> unrestrictedRoleList) throws UserStoreException {
List<String> roleList = new ArrayList<>(Arrays.asList(getRoleNames()));
return roleList.containsAll(unrestrictedRoleList);
}
private String[] getRoleNames() throws UserStoreException {
//todo check role by role
UserRealm userRealm = CarbonContext.getThreadLocalCarbonContext().getUserRealm();
if (userRealm != null) {
return userRealm.getUserStoreManager().getRoleNames();
List<String> roleList = new ArrayList<>(Arrays.asList(userRealm.getUserStoreManager().getRoleNames()));
return roleList.containsAll(unrestrictedRoleList);
} else {
String msg = "User realm is not initiated.";
log.error(msg);
@ -1196,6 +1251,13 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
/**
* Get assigned role list of the given user.
*
* @param userName Username
* @return List of roles
* @throws UserStoreException If it is unable to load {@link UserRealm} from {@link CarbonContext}
*/
private String[] getRolesOfUser(String userName) throws UserStoreException {
UserRealm userRealm = CarbonContext.getThreadLocalCarbonContext().getUserRealm();
String[] roleList;
@ -2119,6 +2181,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
@Override
public List<String> addApplicationTags(int appId, List<String> tags) throws ApplicationManagementException {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
try {
@ -2171,6 +2234,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
@Override
public List<String> addCategories(List<String> categories) throws ApplicationManagementException {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
try {
@ -2291,7 +2355,12 @@ public class ApplicationManagerImpl implements ApplicationManager {
return lifecycleStateManager.getInstallableState();
}
/**
* This method can be used to validate {@link Filter} object.
*
* @param filter {@link Filter}
* @throws BadRequestException if filter object contains incompatible data.
*/
private void validateFilter(Filter filter) throws BadRequestException {
if (filter == null) {
String msg = "Filter validation is failed, Filter shouldn't be null, hence please verify the request payload";
@ -2340,9 +2409,16 @@ public class ApplicationManagerImpl implements ApplicationManager {
log.error(msg);
throw new BadRequestException(msg);
}
}
/**
* This method can be used to get difference of two lists.
*
* @param list1 List of objects
* @param list2 List of object
* @param <T> Object type
* @return return list of values which are not in the list2 but in the list1
*/
private <T> List<T> getDifference(List<T> list1, Collection<T> list2) {
List<T> list = new ArrayList<>();
for (T t : list1) {
@ -2353,7 +2429,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
return list;
}
/***
/**
* By invoking the method, it returns Lifecycle State Instance.
* @param currentState Current state of the lifecycle
* @param previousState Previouse state of the Lifecycle
@ -2726,7 +2802,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
.equals(appType)) {
DeviceType deviceTypeObj = APIUtil.getDeviceTypeData(applicationDTO.getDeviceTypeId());
String supportedOSVersions = applicationReleaseDTO.getSupportedOsVersions();
if (!StringUtils.isEmpty(supportedOSVersions) && !isValidOsVersions(supportedOSVersions,
if (!StringUtils.isEmpty(supportedOSVersions) && isInvalidOsVersionRange(supportedOSVersions,
deviceTypeObj.getName())) {
String msg = "You are trying to update application release which has invalid or unsupported OS "
+ "versions in the supportedOsVersions section. Hence, please re-evaluate the request payload.";
@ -2736,7 +2812,6 @@ public class ApplicationManagerImpl implements ApplicationManager {
}
}
@Override
public <T> void validateAppCreatingRequest(T param) throws ApplicationManagementException {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
@ -2988,7 +3063,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
log.error(msg);
throw new BadRequestException(msg);
}
if (!isValidOsVersions(entAppReleaseWrapper.get().getSupportedOsVersions(), deviceType)) {
if (isInvalidOsVersionRange(entAppReleaseWrapper.get().getSupportedOsVersions(), deviceType)) {
String msg = "You are trying to create application which has an application release contains invalid or "
+ "unsupported OS versions in the supportedOsVersions section. Hence, please re-evaluate the "
+ "request payload.";
@ -3031,7 +3106,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
log.error(msg);
throw new BadRequestException(msg);
}
if (!isValidOsVersions(publicAppReleaseWrapper.getSupportedOsVersions(), deviceType)) {
if (isInvalidOsVersionRange(publicAppReleaseWrapper.getSupportedOsVersions(), deviceType)) {
String msg = "You are trying to create application which has an application release contains invalid or "
+ "unsupported OS versions in the supportedOsVersions section. Hence, please re-evaluate the "
+ "request payload.";

@ -198,12 +198,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
log.error(msg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
} catch (BadRequestException e) {
String msg = "Found incompatible payload with ent. app creating request.";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
} catch (ApplicationManagementException e) {
String msg = "Error occurred while creating the ent. application";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
} catch (RequestValidatingException e) {
String msg = "Error occurred while handling the ent. application creating request";
String msg = "Couldn't find the required artifacts to create new ent. application with the request";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
}
@ -237,12 +241,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
log.error(msg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
} catch (BadRequestException e) {
String msg = "Found incompatible payload with web app creating request.";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
} catch (ApplicationManagementException e) {
String msg = "Error occurred while creating the web application";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
} catch (RequestValidatingException e) {
String msg = "Error occurred while handling the web app creating request";
String msg = "Couldn't find the required artifacts to create new web application with the request";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
}
@ -276,12 +284,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
log.error(msg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
} catch (BadRequestException e) {
String msg = "Found incompatible payload with pub app creating request.";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
} catch (ApplicationManagementException e) {
String msg = "Error occurred while creating the public app.";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
} catch (RequestValidatingException e) {
String msg = "Error occurred while handling the public app creating request";
String msg = "Couldn't find the required artifacts to create new public application with the request";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
}
@ -317,12 +329,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
log.error(msg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
}
} catch (BadRequestException e) {
String msg = "Found incompatible payload with pub custom creating request.";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
} catch (ApplicationManagementException e) {
String msg = "Error occurred while creating the application";
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
} catch (RequestValidatingException e) {
String msg = "Error occurred while handling the application creating request";
String msg = "Couldn't find the required artifacts to create new custom application with the request";
log.error(msg, e);
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
}
@ -908,6 +924,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem
}
/***
* This method can be used to construct {@link ApplicationArtifact}
*
* @param binaryFile binary file of the application release
* @param iconFile icon file of the application release

@ -3711,7 +3711,6 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
log.debug("Getting all devices details for device ids: " + devicesIds);
}
PaginationResult paginationResult = new PaginationResult();
int count;
List<Device> subscribedDeviceDetails;
try {
DeviceManagementDAOFactory.openConnection();
@ -3721,12 +3720,11 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
paginationResult.setData(new ArrayList<>());
paginationResult.setRecordsFiltered(0);
paginationResult.setRecordsTotal(0);
return paginationResult;
}
count = deviceDAO.getSubscribedDeviceCount(devicesIds, tenantId, status);
paginationResult.setData(getAllDeviceInfo(subscribedDeviceDetails));
int count = deviceDAO.getSubscribedDeviceCount(devicesIds, tenantId, status);
paginationResult.setRecordsFiltered(count);
paginationResult.setRecordsTotal(count);
return paginationResult;
} catch (DeviceManagementDAOException e) {
String msg = "Error occurred while retrieving device list for device ids " + devicesIds;
log.error(msg, e);
@ -3738,6 +3736,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
} finally {
DeviceManagementDAOFactory.closeConnection();
}
paginationResult.setData(getAllDeviceInfo(subscribedDeviceDetails));
return paginationResult;
}
/**

Loading…
Cancel
Save