mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Added a method to retrieve list of applications installed on a device
This commit is contained in:
parent
e4d156a77e
commit
20a9d1222f
@ -75,5 +75,22 @@ public interface DeviceDAO {
|
|||||||
*/
|
*/
|
||||||
List<Device> getDevicesByName(String deviceName, int tenantId) throws DeviceManagementDAOException;
|
List<Device> getDevicesByName(String deviceName, int tenantId) throws DeviceManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of devices that matches with the given device name.
|
||||||
|
*
|
||||||
|
* @param id Name of the device
|
||||||
|
* @param applications List of applications
|
||||||
|
* @throws DeviceManagementDAOException
|
||||||
|
*/
|
||||||
void addDeviceApplications(int id, Object applications) throws DeviceManagementDAOException;
|
void addDeviceApplications(int id, Object applications) throws DeviceManagementDAOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of devices that matches with the given device name.
|
||||||
|
*
|
||||||
|
* @param deviceId device id of the device
|
||||||
|
* @return List of Applications that are installed on the given device.
|
||||||
|
* @throws DeviceManagementDAOException
|
||||||
|
*/
|
||||||
|
List<Application> getInstalledApplications(int deviceId)
|
||||||
|
throws DeviceManagementDAOException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.device.mgt.core.dao.impl;
|
package org.wso2.carbon.device.mgt.core.dao.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
||||||
@ -29,7 +31,11 @@ import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
|||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil;
|
import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil;
|
||||||
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
||||||
|
import org.wso2.carbon.device.mgt.core.dto.operation.mgt.ProfileOperation;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.ObjectInputStream;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
@ -40,6 +46,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class DeviceDAOImpl implements DeviceDAO {
|
public class DeviceDAOImpl implements DeviceDAO {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(DeviceDAOImpl.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addDevice(int typeId, Device device, int tenantId) throws DeviceManagementDAOException {
|
public void addDevice(int typeId, Device device, int tenantId) throws DeviceManagementDAOException {
|
||||||
Connection conn;
|
Connection conn;
|
||||||
@ -317,6 +325,50 @@ public class DeviceDAOImpl implements DeviceDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Application> getInstalledApplications(int deviceId)
|
||||||
|
throws DeviceManagementDAOException {
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
List<Application> applications = new ArrayList<Application>();
|
||||||
|
Application application;
|
||||||
|
ByteArrayInputStream bais;
|
||||||
|
ObjectInputStream ois;
|
||||||
|
|
||||||
|
try {
|
||||||
|
conn = this.getConnection();
|
||||||
|
stmt = conn.prepareStatement(
|
||||||
|
"SELECT DEVICE_ID, APPLICATIONS FROM DM_DEVICE_APPLICATIONS WHERE DEVICE_ID = ?");
|
||||||
|
stmt.setInt(1, deviceId);
|
||||||
|
ResultSet rs = stmt.executeQuery();
|
||||||
|
|
||||||
|
while (rs.next()) {
|
||||||
|
byte[] applicationDetails = rs.getBytes("APPLICATIONS");
|
||||||
|
bais = new ByteArrayInputStream(applicationDetails);
|
||||||
|
ois = new ObjectInputStream(bais);
|
||||||
|
application = (Application) ois.readObject();
|
||||||
|
applications.add(application);
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch (IOException e) {
|
||||||
|
String errorMsg = "IO Error occurred while de serialize the Application object";
|
||||||
|
log.error(errorMsg, e);
|
||||||
|
throw new DeviceManagementDAOException(errorMsg, e);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
String errorMsg = "Class not found error occurred while de serialize the Application object";
|
||||||
|
log.error(errorMsg, e);
|
||||||
|
throw new DeviceManagementDAOException(errorMsg, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String errorMsg = "SQL Error occurred while retrieving the list of Applications installed in device id '"
|
||||||
|
+ deviceId;
|
||||||
|
log.error(errorMsg, e);
|
||||||
|
throw new DeviceManagementDAOException(errorMsg, e);
|
||||||
|
} finally {
|
||||||
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
return applications;
|
||||||
|
}
|
||||||
|
|
||||||
private Device loadDevice(ResultSet rs) throws SQLException {
|
private Device loadDevice(ResultSet rs) throws SQLException {
|
||||||
|
|
||||||
Device device = new Device();
|
Device device = new Device();
|
||||||
|
|||||||
@ -82,7 +82,7 @@ public interface DeviceManagementProviderService extends DeviceManager, LicenseM
|
|||||||
* The method to get application list installed for the device.
|
* The method to get application list installed for the device.
|
||||||
*
|
*
|
||||||
* @param deviceIdentifier
|
* @param deviceIdentifier
|
||||||
* @return
|
* @return List of applications installed on the device
|
||||||
* @throws DeviceManagementException
|
* @throws DeviceManagementException
|
||||||
*/
|
*/
|
||||||
List<Application> getApplicationListForDevice(DeviceIdentifier deviceIdentifier) throws DeviceManagementException;
|
List<Application> getApplicationListForDevice(DeviceIdentifier deviceIdentifier) throws DeviceManagementException;
|
||||||
|
|||||||
@ -648,7 +648,15 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
@Override
|
@Override
|
||||||
public List<Application> getApplicationListForDevice(DeviceIdentifier deviceIdentifier)
|
public List<Application> getApplicationListForDevice(DeviceIdentifier deviceIdentifier)
|
||||||
throws DeviceManagementException {
|
throws DeviceManagementException {
|
||||||
return null;
|
Device device = null;
|
||||||
|
try {
|
||||||
|
device = this.getDevice(deviceIdentifier);
|
||||||
|
return deviceDAO.getInstalledApplications(device.getId());
|
||||||
|
}catch (DeviceManagementDAOException deviceDaoEx){
|
||||||
|
String errorMsg = "Error occured while fetching the Application List of device : " + device.getId();
|
||||||
|
log.error(errorMsg, deviceDaoEx);
|
||||||
|
throw new DeviceManagementException(errorMsg, deviceDaoEx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -661,7 +669,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
device.getEnrolmentInfo().setStatus(status);
|
device.getEnrolmentInfo().setStatus(status);
|
||||||
deviceDAO.updateDevice(deviceType.getId(), device, tenantId);
|
deviceDAO.updateDevice(deviceType.getId(), device, tenantId);
|
||||||
}catch (DeviceManagementDAOException deviceDaoEx){
|
}catch (DeviceManagementDAOException deviceDaoEx){
|
||||||
String errorMsg = "Error occured update device enrolment status:"+device.getId();
|
String errorMsg = "Error occured update device enrolment status : "+device.getId();
|
||||||
log.error(errorMsg, deviceDaoEx);
|
log.error(errorMsg, deviceDaoEx);
|
||||||
throw new DeviceManagementException(errorMsg, deviceDaoEx);
|
throw new DeviceManagementException(errorMsg, deviceDaoEx);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user