|
|
|
@ -56,8 +56,8 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("INSERT INTO DM_APPLICATION (NAME, PLATFORM, " +
|
|
|
|
|
"CATEGORY, VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID, " +
|
|
|
|
|
"APP_IDENTIFIER, MEMORY_USAGE, IS_ACTIVE, DEVICE_ID, ENROLMENT_ID) " +
|
|
|
|
|
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
|
|
|
|
"APP_IDENTIFIER, MEMORY_USAGE, IS_ACTIVE, DEVICE_ID, ENROLMENT_ID, IS_SYSTEM_APP) " +
|
|
|
|
|
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
|
|
|
|
|
|
|
|
|
for (Application application : applications) {
|
|
|
|
|
stmt.setString(1, application.getName());
|
|
|
|
@ -73,6 +73,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
stmt.setBoolean(11, application.isActive());
|
|
|
|
|
stmt.setInt(12, deviceId);
|
|
|
|
|
stmt.setInt(13, enrolmentId);
|
|
|
|
|
stmt.setInt(14, application.isSystemApp());
|
|
|
|
|
stmt.addBatch();
|
|
|
|
|
}
|
|
|
|
|
stmt.executeBatch();
|
|
|
|
@ -91,7 +92,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("UPDATE DM_APPLICATION SET NAME = ?, PLATFORM = ?, CATEGORY = ?, " +
|
|
|
|
|
"VERSION = ?, TYPE = ?, LOCATION_URL = ?, IMAGE_URL = ?, MEMORY_USAGE = ?, IS_ACTIVE = ? " +
|
|
|
|
|
"VERSION = ?, TYPE = ?, LOCATION_URL = ?, IMAGE_URL = ?, MEMORY_USAGE = ?, IS_ACTIVE = ?, IS_SYSTEM_APP = ? " +
|
|
|
|
|
"WHERE ID = ?");
|
|
|
|
|
|
|
|
|
|
for (Application application : applications) {
|
|
|
|
@ -104,7 +105,8 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
stmt.setString(7, application.getImageUrl());
|
|
|
|
|
stmt.setInt(8, application.getMemoryUsage());
|
|
|
|
|
stmt.setBoolean(9, application.isActive());
|
|
|
|
|
stmt.setInt(10, application.getId());
|
|
|
|
|
stmt.setInt(10, application.isSystemApp());
|
|
|
|
|
stmt.setInt(11, application.getId());
|
|
|
|
|
stmt.addBatch();
|
|
|
|
|
}
|
|
|
|
|
stmt.executeBatch();
|
|
|
|
@ -211,7 +213,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("SELECT ID, NAME, APP_IDENTIFIER, PLATFORM, CATEGORY, VERSION, TYPE, " +
|
|
|
|
|
"LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, IS_ACTIVE, TENANT_ID " +
|
|
|
|
|
"LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, IS_ACTIVE, IS_SYSTEM_APP, TENANT_ID " +
|
|
|
|
|
"FROM DM_APPLICATION WHERE DEVICE_ID = ? AND ENROLMENT_ID = ? AND APP_IDENTIFIER = ? AND " +
|
|
|
|
|
"VERSION = ? AND TENANT_ID = ?");
|
|
|
|
|
stmt.setInt(1, deviceId);
|
|
|
|
@ -222,7 +224,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
rs = stmt.executeQuery();
|
|
|
|
|
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
application = this.loadApplication(rs);
|
|
|
|
|
application = this.loadApplicationDetails(rs);
|
|
|
|
|
}
|
|
|
|
|
return application;
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
@ -237,6 +239,51 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
return DeviceManagementDAOFactory.getConnection();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Application loadApplicationDetails(ResultSet rs) throws DeviceManagementDAOException {
|
|
|
|
|
Properties properties;
|
|
|
|
|
|
|
|
|
|
Application application = new Application();
|
|
|
|
|
try {
|
|
|
|
|
application.setId(rs.getInt("ID"));
|
|
|
|
|
application.setName(rs.getString("NAME"));
|
|
|
|
|
application.setType(rs.getString("TYPE"));
|
|
|
|
|
|
|
|
|
|
if (rs.getBytes("APP_PROPERTIES") != null) {
|
|
|
|
|
byte[] appProperties = rs.getBytes("APP_PROPERTIES");
|
|
|
|
|
|
|
|
|
|
try (ByteArrayInputStream bais = new ByteArrayInputStream(appProperties);
|
|
|
|
|
ObjectInputStream ois = new ObjectInputStream(bais)) {
|
|
|
|
|
|
|
|
|
|
properties = (Properties) ois.readObject();
|
|
|
|
|
application.setAppProperties(properties);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
application.setCategory(rs.getString("CATEGORY"));
|
|
|
|
|
application.setImageUrl(rs.getString("IMAGE_URL"));
|
|
|
|
|
application.setLocationUrl(rs.getString("LOCATION_URL"));
|
|
|
|
|
application.setPlatform(rs.getString("PLATFORM"));
|
|
|
|
|
application.setVersion(rs.getString("VERSION"));
|
|
|
|
|
application.setMemoryUsage(rs.getInt("MEMORY_USAGE"));
|
|
|
|
|
application.setActive(rs.getBoolean("IS_ACTIVE"));
|
|
|
|
|
application.setSystemApp(rs.getInt("IS_SYSTEM_APP"));
|
|
|
|
|
application.setApplicationIdentifier(rs.getString("APP_IDENTIFIER"));
|
|
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
String msg = "IO error occurred while retrieving application properties";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException("IO error occurred fetch at app properties", e);
|
|
|
|
|
} catch (ClassNotFoundException e) {
|
|
|
|
|
String msg = "Class not found error occurred while retrieving application properties";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException("Class not found error occurred fetch at app properties", e);
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
String msg = "SQL error occurred while retrieving application properties";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException("SQL error occurred fetch at application", e);
|
|
|
|
|
}
|
|
|
|
|
return application;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Application> getInstalledApplications(int deviceId, int enrolmentId, int tenantId)
|
|
|
|
|
throws DeviceManagementDAOException {
|
|
|
|
@ -248,7 +295,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("SELECT ID, NAME, APP_IDENTIFIER, PLATFORM, CATEGORY, VERSION, TYPE, " +
|
|
|
|
|
"LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, IS_ACTIVE, TENANT_ID FROM DM_APPLICATION " +
|
|
|
|
|
"LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, IS_ACTIVE, IS_SYSTEM_APP, TENANT_ID FROM DM_APPLICATION " +
|
|
|
|
|
"WHERE DEVICE_ID = ? AND ENROLMENT_ID = ? AND TENANT_ID = ?");
|
|
|
|
|
|
|
|
|
|
stmt.setInt(1, deviceId);
|
|
|
|
@ -257,7 +304,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
rs = stmt.executeQuery();
|
|
|
|
|
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
application = loadApplication(rs);
|
|
|
|
|
application = loadApplicationDetails(rs);
|
|
|
|
|
applications.add(application);
|
|
|
|
|
}
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
@ -422,6 +469,8 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
return application;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void saveApplicationIcon(String iconPath, String packageName, String version, int tenantId)
|
|
|
|
|
throws DeviceManagementDAOException{
|
|
|
|
@ -547,7 +596,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Application> getInstalledApplicationListOnDevice(int deviceId, int enrolmentId, int offset, int limit, int tenantId)
|
|
|
|
|
public List<Application> getInstalledApplicationListOnDevice(int deviceId, int enrolmentId, int offset, int limit, int tenantId, int isSystemApp)
|
|
|
|
|
throws DeviceManagementDAOException {
|
|
|
|
|
Connection conn;
|
|
|
|
|
List<Application> applicationList = new ArrayList<>();
|
|
|
|
@ -565,24 +614,30 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
"APP_PROPERTIES, " +
|
|
|
|
|
"MEMORY_USAGE, " +
|
|
|
|
|
"IS_ACTIVE, " +
|
|
|
|
|
"IS_SYSTEM_APP, " +
|
|
|
|
|
"TENANT_ID " +
|
|
|
|
|
"FROM DM_APPLICATION " +
|
|
|
|
|
"WHERE DEVICE_ID = ? AND " +
|
|
|
|
|
"ENROLMENT_ID = ? AND " +
|
|
|
|
|
"TENANT_ID = ? " +
|
|
|
|
|
(isSystemApp != 0 ? "AND IS_SYSTEM_APP = ? " : "") +
|
|
|
|
|
"LIMIT ? " +
|
|
|
|
|
"OFFSET ?";
|
|
|
|
|
"OFFSET ? ";
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
|
|
|
|
stmt.setInt(1, deviceId);
|
|
|
|
|
stmt.setInt(2, enrolmentId);
|
|
|
|
|
stmt.setInt(3, tenantId);
|
|
|
|
|
stmt.setInt(4, limit);
|
|
|
|
|
stmt.setInt(5, offset);
|
|
|
|
|
int paramIndex = 1;
|
|
|
|
|
stmt.setInt(paramIndex++, deviceId);
|
|
|
|
|
stmt.setInt(paramIndex++, enrolmentId);
|
|
|
|
|
stmt.setInt(paramIndex++, tenantId);
|
|
|
|
|
if (isSystemApp != 0) {
|
|
|
|
|
stmt.setInt(paramIndex++, isSystemApp);
|
|
|
|
|
}
|
|
|
|
|
stmt.setInt(paramIndex++, limit);
|
|
|
|
|
stmt.setInt(paramIndex, offset);
|
|
|
|
|
try (ResultSet rs = stmt.executeQuery()) {
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
application = loadApplication(rs);
|
|
|
|
|
application = loadApplicationDetails(rs);
|
|
|
|
|
applicationList.add(application);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -590,7 +645,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
String msg = "SQL Error occurred while retrieving the list of Applications " +
|
|
|
|
|
"installed in device id '" + deviceId;
|
|
|
|
|
"installed on device id '" + deviceId + "'";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException(msg, e);
|
|
|
|
|
}
|
|
|
|
@ -615,6 +670,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
"APP_PROPERTIES, " +
|
|
|
|
|
"MEMORY_USAGE, " +
|
|
|
|
|
"IS_ACTIVE, " +
|
|
|
|
|
"IS_SYSTEM_APP, " +
|
|
|
|
|
"TENANT_ID " +
|
|
|
|
|
"FROM DM_APPLICATION " +
|
|
|
|
|
"WHERE DEVICE_ID = ? AND " +
|
|
|
|
@ -628,7 +684,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
stmt.setInt(3, tenantId);
|
|
|
|
|
try (ResultSet rs = stmt.executeQuery()) {
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
application = loadApplication(rs);
|
|
|
|
|
application = loadApplicationDetails(rs);
|
|
|
|
|
applicationList.add(application);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|