|
|
@ -23,8 +23,8 @@ import com.google.common.cache.CacheBuilder;
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
import com.google.gson.JsonObject;
|
|
|
|
import com.google.gson.JsonObject;
|
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
|
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataKeyAlreadyExistsException;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.TransactionManagementException;
|
|
|
|
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.AllowedDeviceStatus;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.AllowedDeviceStatus;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.DeviceStatusManagementService;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.DeviceStatusManagementService;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.Metadata;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.Metadata;
|
|
|
@ -32,9 +32,7 @@ import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.MetadataManageme
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.config.ui.DeviceStatusConfigurations;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.config.ui.DeviceStatusConfigurations;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.config.ui.DeviceStatusItem;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.config.ui.DeviceStatusItem;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.config.ui.UIConfigurationManager;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.config.ui.UIConfigurationManager;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.metadata.mgt.dao.MetadataDAO;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.internal.DeviceManagementDataHolder;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.metadata.mgt.dao.MetadataManagementDAOException;
|
|
|
|
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.metadata.mgt.dao.MetadataManagementDAOFactory;
|
|
|
|
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.metadata.mgt.dao.util.MetadataConstants;
|
|
|
|
import io.entgra.device.mgt.core.device.mgt.core.metadata.mgt.dao.util.MetadataConstants;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.apache.commons.logging.Log;
|
|
|
|
import org.apache.commons.logging.Log;
|
|
|
@ -51,9 +49,9 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
|
|
|
|
|
|
|
|
private static final Log log = LogFactory.getLog(DeviceStatusManagementServiceImpl.class);
|
|
|
|
private static final Log log = LogFactory.getLog(DeviceStatusManagementServiceImpl.class);
|
|
|
|
|
|
|
|
|
|
|
|
private static DeviceStatusManagementServiceImpl instance;
|
|
|
|
private static volatile DeviceStatusManagementServiceImpl instance;
|
|
|
|
|
|
|
|
|
|
|
|
private final MetadataDAO metadataDAO;
|
|
|
|
private static final MetadataManagementService metadataManagementService = DeviceManagementDataHolder.getInstance().getMetadataManagementService();
|
|
|
|
|
|
|
|
|
|
|
|
private final Gson gson;
|
|
|
|
private final Gson gson;
|
|
|
|
|
|
|
|
|
|
|
@ -62,7 +60,6 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
private DeviceStatusManagementServiceImpl() {
|
|
|
|
private DeviceStatusManagementServiceImpl() {
|
|
|
|
this.metadataDAO = MetadataManagementDAOFactory.getMetadataDAO();
|
|
|
|
|
|
|
|
this.gson = new Gson();
|
|
|
|
this.gson = new Gson();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -74,57 +71,30 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void addDefaultDeviceStatusFilterIfNotExist(int tenantId) throws MetadataManagementException {
|
|
|
|
public void addDefaultDeviceStatusFilterIfNotExist() throws MetadataManagementException {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
MetadataManagementDAOFactory.beginTransaction();
|
|
|
|
|
|
|
|
if (!metadataDAO.isExist(tenantId, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY) && !metadataDAO.isExist(tenantId, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY)) {
|
|
|
|
|
|
|
|
Metadata defaultDeviceStatusMetadata = constructDeviceStatusMetadata(getDefaultDeviceStatus());
|
|
|
|
Metadata defaultDeviceStatusMetadata = constructDeviceStatusMetadata(getDefaultDeviceStatus());
|
|
|
|
Metadata defaultDeviceStatusCheckMetadata = constructDeviceStatusCheckMetadata(getDefaultDeviceStatusCheck());
|
|
|
|
Metadata defaultDeviceStatusCheckMetadata = constructDeviceStatusCheckMetadata(getDefaultDeviceStatusCheck());
|
|
|
|
// Add default device status and device status check metadata entries
|
|
|
|
// Add default device status and device status check metadata entries
|
|
|
|
addMetadataEntry(tenantId, defaultDeviceStatusMetadata, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
addMetadataEntry(defaultDeviceStatusMetadata, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
addMetadataEntry(tenantId, defaultDeviceStatusCheckMetadata, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
addMetadataEntry(defaultDeviceStatusCheckMetadata, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
}
|
|
|
|
} catch (MetadataKeyAlreadyExistsException e) {
|
|
|
|
MetadataManagementDAOFactory.commitTransaction();
|
|
|
|
log.error("Metadata is already exist.", e);
|
|
|
|
} catch (MetadataManagementDAOException e) {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.rollbackTransaction();
|
|
|
|
|
|
|
|
String msg = "Error occurred while inserting default device status metadata entry.";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} catch (TransactionManagementException e) {
|
|
|
|
|
|
|
|
String msg = "Error occurred while opening a connection to the data source";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.closeConnection();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Adds default device status filters for a given tenant.
|
|
|
|
* Adds default device status filters for a given tenant.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param tenantId the tenant ID for which to add the device status filters.
|
|
|
|
|
|
|
|
* @throws MetadataManagementException if an error occurs while adding the metadata or managing the transaction.
|
|
|
|
* @throws MetadataManagementException if an error occurs while adding the metadata or managing the transaction.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private void addDefaultDeviceStatusFilters(int tenantId) throws MetadataManagementException {
|
|
|
|
private void addDefaultDeviceStatusFilters() throws MetadataManagementException {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
MetadataManagementDAOFactory.beginTransaction();
|
|
|
|
|
|
|
|
if (!metadataDAO.isExist(tenantId, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY)) {
|
|
|
|
|
|
|
|
Metadata defaultDeviceStatusMetadata = constructDeviceStatusMetadata(getDefaultDeviceStatus());
|
|
|
|
Metadata defaultDeviceStatusMetadata = constructDeviceStatusMetadata(getDefaultDeviceStatus());
|
|
|
|
// Add default device status metadata entries
|
|
|
|
// Add default device status metadata entries
|
|
|
|
addMetadataEntry(tenantId, defaultDeviceStatusMetadata, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
addMetadataEntry(defaultDeviceStatusMetadata, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
}
|
|
|
|
} catch (MetadataKeyAlreadyExistsException e) {
|
|
|
|
MetadataManagementDAOFactory.commitTransaction();
|
|
|
|
log.error("Metadata is already exist.", e);
|
|
|
|
} catch (MetadataManagementDAOException e) {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.rollbackTransaction();
|
|
|
|
|
|
|
|
String msg = "Error occurred while inserting default device status metadata entry.";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} catch (TransactionManagementException e) {
|
|
|
|
|
|
|
|
String msg = "Error occurred while opening a connection to the data source";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.closeConnection();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -136,24 +106,11 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private void addDefaultDeviceStatusCheck(int tenantId) throws MetadataManagementException {
|
|
|
|
private void addDefaultDeviceStatusCheck(int tenantId) throws MetadataManagementException {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
MetadataManagementDAOFactory.beginTransaction();
|
|
|
|
|
|
|
|
if (!metadataDAO.isExist(tenantId, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY)) {
|
|
|
|
|
|
|
|
Metadata defaultDeviceStatusCheckMetadata = constructDeviceStatusCheckMetadata(getDefaultDeviceStatusCheck());
|
|
|
|
Metadata defaultDeviceStatusCheckMetadata = constructDeviceStatusCheckMetadata(getDefaultDeviceStatusCheck());
|
|
|
|
// Add default device status check metadata entries
|
|
|
|
// Add default device status check metadata entries
|
|
|
|
addMetadataEntry(tenantId, defaultDeviceStatusCheckMetadata, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
addMetadataEntry(defaultDeviceStatusCheckMetadata, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
}
|
|
|
|
} catch (MetadataKeyAlreadyExistsException e) {
|
|
|
|
MetadataManagementDAOFactory.commitTransaction();
|
|
|
|
log.error("Metadata is already exist.", e);
|
|
|
|
} catch (MetadataManagementDAOException e) {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.rollbackTransaction();
|
|
|
|
|
|
|
|
String msg = "Error occurred while inserting default device status metadata entry.";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} catch (TransactionManagementException e) {
|
|
|
|
|
|
|
|
String msg = "Error occurred while opening a connection to the data source";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.closeConnection();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -164,15 +121,13 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void updateDefaultDeviceStatusFilters(int tenantId, String deviceType, List<String> deviceStatus) throws MetadataManagementException {
|
|
|
|
public void updateDefaultDeviceStatusFilters(int tenantId, String deviceType, List<String> deviceStatus) throws MetadataManagementException {
|
|
|
|
try {
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(deviceType)) {
|
|
|
|
if (StringUtils.isEmpty(deviceType)) {
|
|
|
|
String msg = "Device type must not be empty or null";
|
|
|
|
String msg = "Device type must not be empty or null";
|
|
|
|
log.error(msg);
|
|
|
|
log.error(msg);
|
|
|
|
throw new IllegalArgumentException(msg);
|
|
|
|
throw new IllegalArgumentException(msg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
MetadataManagementDAOFactory.beginTransaction();
|
|
|
|
|
|
|
|
// Retrieve the current device status metadata
|
|
|
|
// Retrieve the current device status metadata
|
|
|
|
Metadata metadata = metadataDAO.getMetadata(tenantId, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
Metadata metadata = metadataManagementService.retrieveMetadata(MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
if (metadata != null) {
|
|
|
|
if (metadata != null) {
|
|
|
|
Type listType = new TypeToken<List<AllowedDeviceStatus>>() {
|
|
|
|
Type listType = new TypeToken<List<AllowedDeviceStatus>>() {
|
|
|
|
}.getType();
|
|
|
|
}.getType();
|
|
|
@ -187,57 +142,25 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
metadata.setMetaValue(gson.toJson(currentStatusList));
|
|
|
|
metadata.setMetaValue(gson.toJson(currentStatusList));
|
|
|
|
updateMetadataEntry(tenantId, metadata, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
updateMetadataEntry(metadata, MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
}
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.commitTransaction();
|
|
|
|
|
|
|
|
} catch (MetadataManagementDAOException e) {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.rollbackTransaction();
|
|
|
|
|
|
|
|
String msg = "Error occurred while updating device status metadata entry.";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} catch (TransactionManagementException e) {
|
|
|
|
|
|
|
|
String msg = "Error occurred while opening a connection to the data source";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.closeConnection();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean updateDefaultDeviceStatusCheck(int tenantId, boolean isChecked) throws MetadataManagementException {
|
|
|
|
public boolean updateDefaultDeviceStatusCheck(boolean isChecked) throws MetadataManagementException {
|
|
|
|
boolean success = false;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.beginTransaction();
|
|
|
|
|
|
|
|
if (metadataDAO.isExist(tenantId, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY)) {
|
|
|
|
|
|
|
|
Metadata isDeviceStatusChecked = constructDeviceStatusCheckMetadata(isChecked);
|
|
|
|
Metadata isDeviceStatusChecked = constructDeviceStatusCheckMetadata(isChecked);
|
|
|
|
// Add default device status check metadata entries
|
|
|
|
// Add default device status check metadata entries
|
|
|
|
updateMetadataEntry(tenantId, isDeviceStatusChecked, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
updateMetadataEntry(isDeviceStatusChecked, MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
success = true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.commitTransaction();
|
|
|
|
|
|
|
|
} catch (MetadataManagementDAOException e) {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.rollbackTransaction();
|
|
|
|
|
|
|
|
String msg = "Error occurred while updating device status check metadata entry.";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} catch (TransactionManagementException e) {
|
|
|
|
|
|
|
|
String msg = "Error occurred while opening a connection to the data source";
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.closeConnection();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return success;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<AllowedDeviceStatus> getDeviceStatusFilters(int tenantId) throws MetadataManagementException {
|
|
|
|
public List<AllowedDeviceStatus> getDeviceStatusFilters() throws MetadataManagementException {
|
|
|
|
return retrieveAndParseMetadata(tenantId);
|
|
|
|
return retrieveAndParseMetadata();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<String> getDeviceStatusFilters(String deviceType, int tenantId) throws MetadataManagementException {
|
|
|
|
public List<String> getDeviceStatusFilters(String deviceType) throws MetadataManagementException {
|
|
|
|
List<AllowedDeviceStatus> statusList = retrieveAndParseMetadata(tenantId);
|
|
|
|
List<AllowedDeviceStatus> statusList = retrieveAndParseMetadata();
|
|
|
|
for (AllowedDeviceStatus status : statusList) {
|
|
|
|
for (AllowedDeviceStatus status : statusList) {
|
|
|
|
if (deviceType.equalsIgnoreCase(status.getType())) {
|
|
|
|
if (deviceType.equalsIgnoreCase(status.getType())) {
|
|
|
|
return status.getStatus();
|
|
|
|
return status.getStatus();
|
|
|
@ -249,12 +172,10 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Retrieves and parses the allowed device status metadata for the specified tenant.
|
|
|
|
* Retrieves and parses the allowed device status metadata for the specified tenant.
|
|
|
|
* @param tenantId the tenant ID for which to retrieve and parse the metadata.
|
|
|
|
|
|
|
|
* @return a list of {@link AllowedDeviceStatus} objects parsed from the metadata.
|
|
|
|
* @return a list of {@link AllowedDeviceStatus} objects parsed from the metadata.
|
|
|
|
* @throws MetadataManagementException if an error occurs while retrieving or parsing the metadata.
|
|
|
|
* @throws MetadataManagementException if an error occurs while retrieving or parsing the metadata.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private List<AllowedDeviceStatus> retrieveAndParseMetadata(int tenantId) throws MetadataManagementException {
|
|
|
|
private List<AllowedDeviceStatus> retrieveAndParseMetadata() throws MetadataManagementException {
|
|
|
|
MetadataManagementService metadataManagementService = new MetadataManagementServiceImpl();
|
|
|
|
|
|
|
|
Metadata metadata = metadataManagementService.retrieveMetadata(MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
Metadata metadata = metadataManagementService.retrieveMetadata(MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
String metaValue;
|
|
|
|
String metaValue;
|
|
|
|
if (metadata != null) {
|
|
|
|
if (metadata != null) {
|
|
|
@ -262,7 +183,7 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
List<DeviceStatusItem> defaultStatusList = getDefaultDeviceStatus();
|
|
|
|
List<DeviceStatusItem> defaultStatusList = getDefaultDeviceStatus();
|
|
|
|
metaValue = gson.toJson(defaultStatusList);
|
|
|
|
metaValue = gson.toJson(defaultStatusList);
|
|
|
|
addDefaultDeviceStatusFilters(tenantId);
|
|
|
|
addDefaultDeviceStatusFilters();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Type listType = new TypeToken<List<AllowedDeviceStatus>>() {}.getType();
|
|
|
|
Type listType = new TypeToken<List<AllowedDeviceStatus>>() {}.getType();
|
|
|
|
return gson.fromJson(metaValue, listType);
|
|
|
|
return gson.fromJson(metaValue, listType);
|
|
|
@ -272,7 +193,6 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean getDeviceStatusCheck(int tenantId) throws MetadataManagementException {
|
|
|
|
public boolean getDeviceStatusCheck(int tenantId) throws MetadataManagementException {
|
|
|
|
MetadataManagementService metadataManagementService = new MetadataManagementServiceImpl();
|
|
|
|
|
|
|
|
Metadata metadata = metadataManagementService.retrieveMetadata(MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
Metadata metadata = metadataManagementService.retrieveMetadata(MetadataConstants.IS_DEVICE_STATUS_CHECK_META_KEY);
|
|
|
|
if (metadata != null) {
|
|
|
|
if (metadata != null) {
|
|
|
|
return Boolean.parseBoolean(metadata.getMetaValue());
|
|
|
|
return Boolean.parseBoolean(metadata.getMetaValue());
|
|
|
@ -291,19 +211,7 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<AllowedDeviceStatus> allowedDeviceStatus = cache.getIfPresent(Integer.toString(tenantId));
|
|
|
|
List<AllowedDeviceStatus> allowedDeviceStatus = cache.getIfPresent(Integer.toString(tenantId));
|
|
|
|
if (allowedDeviceStatus == null) {
|
|
|
|
if (allowedDeviceStatus == null) {
|
|
|
|
MetadataManagementService metadataManagementService = new MetadataManagementServiceImpl();
|
|
|
|
allowedDeviceStatus = retrieveAndParseMetadata();
|
|
|
|
Metadata metadata = metadataManagementService.retrieveMetadata(MetadataConstants.ALLOWED_DEVICE_STATUS_META_KEY);
|
|
|
|
|
|
|
|
String metaValue;
|
|
|
|
|
|
|
|
if (metadata != null) {
|
|
|
|
|
|
|
|
metaValue = metadata.getMetaValue();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
List<DeviceStatusItem> statusList = getDefaultDeviceStatus();
|
|
|
|
|
|
|
|
metaValue = gson.toJson(statusList);
|
|
|
|
|
|
|
|
addDefaultDeviceStatusFilters(tenantId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Type listType = new TypeToken<List<AllowedDeviceStatus>>() {
|
|
|
|
|
|
|
|
}.getType();
|
|
|
|
|
|
|
|
allowedDeviceStatus = gson.fromJson(metaValue, listType);
|
|
|
|
|
|
|
|
cache.put(Integer.toString(tenantId), allowedDeviceStatus);
|
|
|
|
cache.put(Integer.toString(tenantId), allowedDeviceStatus);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (AllowedDeviceStatus status : allowedDeviceStatus) {
|
|
|
|
for (AllowedDeviceStatus status : allowedDeviceStatus) {
|
|
|
@ -315,22 +223,23 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
return false; // Device type not found in metadata
|
|
|
|
return false; // Device type not found in metadata
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void addMetadataEntry(int tenantId, Metadata metadata, String key) throws MetadataManagementDAOException {
|
|
|
|
private void addMetadataEntry(Metadata metadata, String key) throws MetadataManagementException, MetadataKeyAlreadyExistsException {
|
|
|
|
metadataDAO.addMetadata(tenantId, metadata);
|
|
|
|
metadata.setMetaKey(key);
|
|
|
|
|
|
|
|
metadataManagementService.createMetadata(metadata);
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
|
log.debug(key + " metadata entry has been inserted successfully");
|
|
|
|
log.debug(key + " metadata entry has been inserted successfully");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void updateMetadataEntry(int tenantId, Metadata metadata, String key) throws MetadataManagementDAOException {
|
|
|
|
private void updateMetadataEntry(Metadata metadata, String key) throws MetadataManagementException {
|
|
|
|
metadataDAO.updateMetadata(tenantId, metadata);
|
|
|
|
metadata.setMetaKey(key);
|
|
|
|
|
|
|
|
metadataManagementService.updateMetadata(metadata);
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
|
log.debug(key + " metadata entry has been updated successfully");
|
|
|
|
log.debug(key + " metadata entry has been updated successfully");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Metadata constructDeviceStatusMetadata(List<DeviceStatusItem> deviceStatusItems) {
|
|
|
|
private Metadata constructDeviceStatusMetadata(List<DeviceStatusItem> deviceStatusItems) {
|
|
|
|
Gson gson = new Gson();
|
|
|
|
|
|
|
|
String deviceStatusItemsJsonString = gson.toJson(deviceStatusItems);
|
|
|
|
String deviceStatusItemsJsonString = gson.toJson(deviceStatusItems);
|
|
|
|
|
|
|
|
|
|
|
|
Metadata metadata = new Metadata();
|
|
|
|
Metadata metadata = new Metadata();
|
|
|
@ -348,6 +257,13 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
return metadata;
|
|
|
|
return metadata;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Retrieves the default device status items.
|
|
|
|
|
|
|
|
* This method fetches the device status configurations from the UI configuration manager.
|
|
|
|
|
|
|
|
* If the configurations are available, it returns the list of device status items.
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @return a list of {@code DeviceStatusItem} objects representing the default device statuses.
|
|
|
|
|
|
|
|
*/
|
|
|
|
private List<DeviceStatusItem> getDefaultDeviceStatus() {
|
|
|
|
private List<DeviceStatusItem> getDefaultDeviceStatus() {
|
|
|
|
DeviceStatusConfigurations deviceStatusConfigurations = UIConfigurationManager.getInstance().getUIConfig().getDeviceStatusConfigurations();
|
|
|
|
DeviceStatusConfigurations deviceStatusConfigurations = UIConfigurationManager.getInstance().getUIConfig().getDeviceStatusConfigurations();
|
|
|
|
List<DeviceStatusItem> deviceStatusItems = new ArrayList<>();
|
|
|
|
List<DeviceStatusItem> deviceStatusItems = new ArrayList<>();
|
|
|
@ -363,6 +279,13 @@ public class DeviceStatusManagementServiceImpl implements DeviceStatusManagement
|
|
|
|
return deviceStatusItems;
|
|
|
|
return deviceStatusItems;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Retrieves the default device status check flag.
|
|
|
|
|
|
|
|
* This method fetches the device status configurations from the UI configuration manager.
|
|
|
|
|
|
|
|
* If the configurations are available, it returns the device status check flag.
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @return a boolean value indicating the default device status check flag.
|
|
|
|
|
|
|
|
*/
|
|
|
|
private boolean getDefaultDeviceStatusCheck() {
|
|
|
|
private boolean getDefaultDeviceStatusCheck() {
|
|
|
|
DeviceStatusConfigurations deviceStatusConfigurations = UIConfigurationManager.getInstance().getUIConfig().getDeviceStatusConfigurations();
|
|
|
|
DeviceStatusConfigurations deviceStatusConfigurations = UIConfigurationManager.getInstance().getUIConfig().getDeviceStatusConfigurations();
|
|
|
|
boolean deviceStatusCheck = false;
|
|
|
|
boolean deviceStatusCheck = false;
|
|
|
|