|
|
|
@ -30,7 +30,11 @@ import io.entgra.device.mgt.core.device.mgt.core.dao.util.DeviceManagementDAOUti
|
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.ObjectInputStream;
|
|
|
|
|
import java.sql.*;
|
|
|
|
|
import java.sql.Connection;
|
|
|
|
|
import java.sql.PreparedStatement;
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
import java.sql.Timestamp;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
@ -396,42 +400,52 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
public void saveApplicationIcon(String iconPath, String packageName, String version, int tenantId)
|
|
|
|
|
throws DeviceManagementDAOException{
|
|
|
|
|
Connection conn;
|
|
|
|
|
PreparedStatement stmt = null;
|
|
|
|
|
try{
|
|
|
|
|
String sql = "INSERT INTO DM_APP_ICONS " +
|
|
|
|
|
"(ICON_PATH, " +
|
|
|
|
|
"PACKAGE_NAME, " +
|
|
|
|
|
"VERSION, " +
|
|
|
|
|
"CREATED_TIMESTAMP, " +
|
|
|
|
|
"TENANT_ID) " +
|
|
|
|
|
"VALUES (?, ?, ?, ?, ?)";
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("INSERT INTO DM_APP_ICONS (ICON_PATH, PACKAGE_NAME, VERSION, CREATED_TIMESTAMP, TENANT_ID) " +
|
|
|
|
|
"VALUES (?, ?, ?, ?, ?)");
|
|
|
|
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
|
|
|
|
stmt.setString(1,iconPath);
|
|
|
|
|
stmt.setString(2,packageName);
|
|
|
|
|
stmt.setString(3,version);
|
|
|
|
|
stmt.setTimestamp(4, new Timestamp(new Date().getTime()));
|
|
|
|
|
stmt.setInt(5, tenantId);
|
|
|
|
|
stmt.executeUpdate();
|
|
|
|
|
} catch(SQLException e){
|
|
|
|
|
throw new DeviceManagementDAOException("Error occurred while saving application icon details");
|
|
|
|
|
} finally {
|
|
|
|
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
|
|
|
|
}
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
String msg = "Error occurred while saving application icon details";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException(msg, e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int getApplicationPackageCount(String packageName) throws DeviceManagementDAOException{
|
|
|
|
|
Connection conn;
|
|
|
|
|
PreparedStatement stmt = null;
|
|
|
|
|
ResultSet rs = null;
|
|
|
|
|
try{
|
|
|
|
|
String sql = "SELECT " +
|
|
|
|
|
"COUNT(*) AS APP_PACKAGE_COUNT " +
|
|
|
|
|
"FROM DM_APP_ICONS " +
|
|
|
|
|
"WHERE PACKAGE_NAME = ?";
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("SELECT COUNT(*) AS APP_PACKAGE_COUNT FROM DM_APP_ICONS WHERE PACKAGE_NAME = ?");
|
|
|
|
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
|
|
|
|
stmt.setString(1, packageName);
|
|
|
|
|
rs = stmt.executeQuery();
|
|
|
|
|
try (ResultSet rs = stmt.executeQuery()) {
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
return rs.getInt("APP_PACKAGE_COUNT");
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
throw new DeviceManagementDAOException("Error occurred while saving application icon details");
|
|
|
|
|
} finally {
|
|
|
|
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
|
|
|
|
String msg = "Error occurred while getting application icon details";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException(msg, e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -439,52 +453,58 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
public void updateApplicationIcon(String iconPath, String oldPackageName, String newPackageName, String version)
|
|
|
|
|
throws DeviceManagementDAOException{
|
|
|
|
|
Connection conn;
|
|
|
|
|
PreparedStatement stmt = null;
|
|
|
|
|
try{
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("UPDATE DM_APP_ICONS " +
|
|
|
|
|
String sql = "UPDATE DM_APP_ICONS " +
|
|
|
|
|
"SET " +
|
|
|
|
|
"ICON_PATH= ?, " +
|
|
|
|
|
"PACKAGE_NAME = ?, " +
|
|
|
|
|
"VERSION = ? " +
|
|
|
|
|
"WHERE PACKAGE_NAME = ?");
|
|
|
|
|
"WHERE PACKAGE_NAME = ?";
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
|
|
|
|
stmt.setString(1,iconPath);
|
|
|
|
|
stmt.setString(2,newPackageName);
|
|
|
|
|
stmt.setString(3,version);
|
|
|
|
|
stmt.setString(4,oldPackageName);
|
|
|
|
|
stmt.executeUpdate();
|
|
|
|
|
} catch(SQLException e){
|
|
|
|
|
throw new DeviceManagementDAOException("Error occurred while updating application icon details");
|
|
|
|
|
} finally {
|
|
|
|
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
|
|
|
|
}
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
String msg = "Error occurred while updating application icon details";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException(msg, e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void deleteApplicationIcon(String packageName) throws DeviceManagementDAOException {
|
|
|
|
|
Connection conn;
|
|
|
|
|
PreparedStatement stmt = null;
|
|
|
|
|
try{
|
|
|
|
|
String sql = "DELETE " +
|
|
|
|
|
"FROM DM_APP_ICONS " +
|
|
|
|
|
"WHERE PACKAGE_NAME = ?";
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("DELETE FROM DM_APP_ICONS WHERE PACKAGE_NAME = ?" );
|
|
|
|
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
|
|
|
|
stmt.setString(1, packageName);
|
|
|
|
|
stmt.executeUpdate();
|
|
|
|
|
}
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
throw new DeviceManagementDAOException("Error occurred while deleting application icon details");
|
|
|
|
|
} finally {
|
|
|
|
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
|
|
|
|
String msg = "Error occurred while deleting application icon details";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException(msg, e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getIconPath(String applicationIdentifier) throws DeviceManagementDAOException{
|
|
|
|
|
Connection conn;
|
|
|
|
|
PreparedStatement stmt = null;
|
|
|
|
|
String sql = "SELECT " +
|
|
|
|
|
"ICON_PATH " +
|
|
|
|
|
"FROM DM_APP_ICONS " +
|
|
|
|
|
"WHERE PACKAGE_NAME = ?";
|
|
|
|
|
String iconPath = null;
|
|
|
|
|
try{
|
|
|
|
|
try {
|
|
|
|
|
conn = this.getConnection();
|
|
|
|
|
stmt = conn.prepareStatement("SELECT ICON_PATH FROM DM_APP_ICONS" +
|
|
|
|
|
" WHERE PACKAGE_NAME = ?");
|
|
|
|
|
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
|
|
|
|
|
stmt.setString(1,applicationIdentifier);
|
|
|
|
|
try (ResultSet rs = stmt.executeQuery()) {
|
|
|
|
|
if (rs.next()) {
|
|
|
|
@ -492,10 +512,11 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
}
|
|
|
|
|
return iconPath;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
throw new DeviceManagementDAOException("Error occurred while retrieving app icon path");
|
|
|
|
|
} finally {
|
|
|
|
|
DeviceManagementDAOUtil.cleanupResources(stmt, null);
|
|
|
|
|
String msg = "Error occurred while retrieving app icon path of the application";
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException(msg, e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -503,30 +524,49 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|
|
|
|
public List<Application> getInstalledApplicationListOnDevice(int deviceId, int enrolmentId, int offset, int limit, int tenantId)
|
|
|
|
|
throws DeviceManagementDAOException {
|
|
|
|
|
Connection conn;
|
|
|
|
|
PreparedStatement stmt = null;
|
|
|
|
|
List<Application> applicationList = new ArrayList<>();
|
|
|
|
|
Application application;
|
|
|
|
|
ResultSet rs = null;
|
|
|
|
|
String sql = "SELECT " +
|
|
|
|
|
"ID, " +
|
|
|
|
|
"NAME, " +
|
|
|
|
|
"APP_IDENTIFIER, " +
|
|
|
|
|
"PLATFORM, " +
|
|
|
|
|
"CATEGORY, " +
|
|
|
|
|
"VERSION, " +
|
|
|
|
|
"TYPE, " +
|
|
|
|
|
"LOCATION_URL, " +
|
|
|
|
|
"IMAGE_URL, " +
|
|
|
|
|
"APP_PROPERTIES, " +
|
|
|
|
|
"MEMORY_USAGE, " +
|
|
|
|
|
"IS_ACTIVE, " +
|
|
|
|
|
"TENANT_ID " +
|
|
|
|
|
"FROM DM_APPLICATION " +
|
|
|
|
|
"WHERE DEVICE_ID = ? AND " +
|
|
|
|
|
"ENROLMENT_ID = ? AND " +
|
|
|
|
|
"TENANT_ID = ? " +
|
|
|
|
|
"LIMIT ? " +
|
|
|
|
|
"OFFSET ?";
|
|
|
|
|
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 " +
|
|
|
|
|
"WHERE DEVICE_ID = ? AND ENROLMENT_ID = ? AND TENANT_ID = ? LIMIT ? OFFSET ?");
|
|
|
|
|
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);
|
|
|
|
|
rs = stmt.executeQuery();
|
|
|
|
|
try (ResultSet rs = stmt.executeQuery()) {
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
application = loadApplication(rs);
|
|
|
|
|
applicationList.add(application);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
throw new DeviceManagementDAOException("SQL Error occurred while retrieving the list of Applications " +
|
|
|
|
|
"installed in device id '" + deviceId, e);
|
|
|
|
|
} finally {
|
|
|
|
|
DeviceManagementDAOUtil.cleanupResources(stmt, rs);
|
|
|
|
|
String msg = "SQL Error occurred while retrieving the list of Applications " +
|
|
|
|
|
"installed in device id '" + deviceId;
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
throw new DeviceManagementDAOException(msg, e);
|
|
|
|
|
}
|
|
|
|
|
return applicationList;
|
|
|
|
|
}
|
|
|
|
|