Implement Singleton Pattern for DeviceTaskConfigurationServiceImpl

pull/370/head
Pramila Niroshan 3 months ago
parent b53cb5cb76
commit cb244642ea

@ -49,13 +49,21 @@ public class DeviceTaskConfigurationServiceImpl implements DeviceTaskConfigurati
private final MetadataManagementService metadataManagementService;
private final Cache<String, DeviceFrequencyMap> cache;
private static DeviceTaskConfigurationServiceImpl instance;
public DeviceTaskConfigurationServiceImpl() {
private static final Cache<String, DeviceFrequencyMap> cache = CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.HOURS)
.build();
private DeviceTaskConfigurationServiceImpl() {
this.metadataManagementService = new MetadataManagementServiceImpl();
this.cache = CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.HOURS)
.build();
}
public static synchronized DeviceTaskConfigurationServiceImpl getInstance() {
if (instance == null) {
instance = new DeviceTaskConfigurationServiceImpl();
}
return instance;
}
private Metadata constructTaskFrequencyMetadata(Map<String, Integer> deviceFrequencies) {

@ -43,7 +43,7 @@ public class TaskConfigurationStartupHandler implements ServerStartupObserver {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
DeviceTaskConfigurationService deviceTaskConfigurationService = new DeviceTaskConfigurationServiceImpl();
DeviceTaskConfigurationService deviceTaskConfigurationService = DeviceTaskConfigurationServiceImpl.getInstance();
RealmService realmService = DeviceManagementDataHolder.getInstance().getRealmService();
if (log.isDebugEnabled()) {
log.debug("Server has just started, hence started adding default task frequencies");

@ -71,7 +71,7 @@ public class Utils {
}
public static int getTenantedTaskFrequency(int tenantId, String deviceType) throws MetadataManagementException {
DeviceTaskConfigurationService deviceTaskConfigurationService = new DeviceTaskConfigurationServiceImpl();
DeviceTaskConfigurationService deviceTaskConfigurationService = DeviceTaskConfigurationServiceImpl.getInstance();
return deviceTaskConfigurationService.getTaskFrequency(deviceType, tenantId);
}

@ -156,7 +156,7 @@ public class DeviceTaskManagerTest extends BaseDeviceManagementTest {
@Test(groups = "Device Task Manager Test Group", description = "Testing device detail retriever task execution")
public void testDeviceDetailRetrieverTaskExecute() throws OperationManagementException, MetadataManagementException {
DeviceDetailsRetrieverTask deviceDetailsRetrieverTask = new DeviceDetailsRetrieverTask();
DeviceTaskConfigurationService deviceTaskConfigurationService = new DeviceTaskConfigurationServiceImpl();
DeviceTaskConfigurationService deviceTaskConfigurationService = DeviceTaskConfigurationServiceImpl.getInstance();
deviceTaskConfigurationService.addTaskFrequency(MultitenantConstants.SUPER_TENANT_ID, FREQUENCY,TestDataHolder.TEST_DEVICE_TYPE);
Map<String, String> map = new HashMap<>();
map.put("DEVICE_TYPE", TestDataHolder.TEST_DEVICE_TYPE);

@ -72,7 +72,7 @@ public class TenantMgtServiceComponent {
componentContext.getBundleContext().registerService(DeviceStatusManagementService.class.getName(),
deviceStatusManagementService, null);
TenantMgtDataHolder.getInstance().setDeviceStatusManagementService(deviceStatusManagementService);
DeviceTaskConfigurationService deviceTaskConfigurationService = new DeviceTaskConfigurationServiceImpl();
DeviceTaskConfigurationService deviceTaskConfigurationService = DeviceTaskConfigurationServiceImpl.getInstance();
TenantMgtDataHolder.getInstance().setDeviceTaskConfigurationService(deviceTaskConfigurationService);
DeviceMgtTenantListener deviceMgtTenantListener = new DeviceMgtTenantListener();
if(log.isDebugEnabled()) {

Loading…
Cancel
Save