Merge branch 'master' of https://github.com/wso2/carbon-device-mgt into entgra-master

# Conflicts:
#	components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
#	components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
#	components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
#	components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
#	components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml
#	components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml
#	components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
#	components/apimgt-extensions/pom.xml
#	components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
#	components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
#	components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml
#	components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
#	components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml
#	components/certificate-mgt/pom.xml
#	components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
#	components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
#	components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
#	components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
#	components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
#	components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
#	components/device-mgt-extensions/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dto/operation/mgt/Operation.java
#	components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/ProfileOperationDAOImpl.java
#	components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
#	components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml
#	components/device-mgt/pom.xml
#	components/email-sender/org.wso2.carbon.email.sender.core/pom.xml
#	components/email-sender/pom.xml
#	components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
#	components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml
#	components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
#	components/identity-extensions/pom.xml
#	components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml
#	components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
#	components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
#	components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
#	components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml
#	components/policy-mgt/pom.xml
#	components/test-coverage/pom.xml
#	components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
#	components/webapp-authenticator-framework/pom.xml
#	features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
#	features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml
#	features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml
#	features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
#	features/apimgt-extensions/pom.xml
#	features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
#	features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
#	features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
#	features/certificate-mgt/pom.xml
#	features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
#	features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
#	features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
#	features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
#	features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
#	features/device-mgt-extensions/pom.xml
#	features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml
#	features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
#	features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml
#	features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
#	features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
#	features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
#	features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml
#	features/device-mgt/pom.xml
#	features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
#	features/email-sender/pom.xml
#	features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
#	features/jwt-client/pom.xml
#	features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml
#	features/oauth-extensions/pom.xml
#	features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
#	features/policy-mgt/pom.xml
#	features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
#	features/webapp-authenticator-framework/pom.xml
#	pom.xml
revert-70aa11f8
Charitha Goonetilleke 6 years ago
commit f0ec4a3520

@ -100,7 +100,7 @@ public class GeoLocationBasedServiceImpl implements GeoLocationBasedService {
CarbonContext.getThreadLocalCarbonContext().getUsername()); CarbonContext.getThreadLocalCarbonContext().getUsername());
try { try {
String tenantDomain = MultitenantUtils.getTenantDomain(authorizedUser); String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
int tenantId = DeviceMgtAPIUtils.getRealmService().getTenantManager().getTenantId(tenantDomain); int tenantId = DeviceMgtAPIUtils.getRealmService().getTenantManager().getTenantId(tenantDomain);
AnalyticsDataAPI analyticsDataAPI = DeviceMgtAPIUtils.getAnalyticsDataAPI(); AnalyticsDataAPI analyticsDataAPI = DeviceMgtAPIUtils.getAnalyticsDataAPI();
List<SearchResultEntry> searchResults = analyticsDataAPI.search(tenantId, tableName, query, List<SearchResultEntry> searchResults = analyticsDataAPI.search(tenantId, tableName, query,

@ -321,7 +321,7 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
getDeviceTaskManagerService(); getDeviceTaskManagerService();
OperationMonitoringTaskConfig operationMonitoringTaskConfig = deviceManagementService. OperationMonitoringTaskConfig operationMonitoringTaskConfig = deviceManagementService.
getOperationMonitoringConfig(); getOperationMonitoringConfig();
if (operationMonitoringTaskConfig != null) { if (operationMonitoringTaskConfig != null && operationMonitoringTaskConfig.isEnabled()) {
deviceTaskManagerService.stopTask(deviceManagementService.getType(), deviceTaskManagerService.stopTask(deviceManagementService.getType(),
deviceManagementService.getOperationMonitoringConfig()); deviceManagementService.getOperationMonitoringConfig());
} }

@ -51,6 +51,7 @@ import org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerSer
import org.wso2.carbon.registry.api.Registry; import org.wso2.carbon.registry.api.Registry;
import org.wso2.carbon.registry.api.RegistryException; import org.wso2.carbon.registry.api.RegistryException;
import org.wso2.carbon.registry.api.Resource; import org.wso2.carbon.registry.api.Resource;
import org.wso2.carbon.stratos.common.util.ClaimsMgtUtil;
import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
@ -428,6 +429,9 @@ public class GeoLocationProviderServiceImpl implements GeoLocationProviderServic
} catch (JWTClientException e) { } catch (JWTClientException e) {
throw new GeoLocationBasedServiceException( throw new GeoLocationBasedServiceException(
"JWT token creation failed while " + action + " geo alert '" + alertType, e); "JWT token creation failed while " + action + " geo alert '" + alertType, e);
} catch (Exception e) {
throw new GeoLocationBasedServiceException(
"Error occurred while " + action + " geo alert '" + alertType, e);
} finally { } finally {
cleanup(eventprocessorStub); cleanup(eventprocessorStub);
} }
@ -541,6 +545,9 @@ public class GeoLocationProviderServiceImpl implements GeoLocationProviderServic
throw new GeoLocationBasedServiceException( throw new GeoLocationBasedServiceException(
"JWT token creation failed while " + action + " geo alert '" + alertType + "' for " + "JWT token creation failed while " + action + " geo alert '" + alertType + "' for " +
identifier.getType() + " device with id:" + identifier.getId(), e); identifier.getType() + " device with id:" + identifier.getId(), e);
} catch (Exception e) {
throw new GeoLocationBasedServiceException(
"Error occurred while " + action + " geo alert '" + alertType, e);
} finally { } finally {
cleanup(eventprocessorStub); cleanup(eventprocessorStub);
} }
@ -646,6 +653,9 @@ public class GeoLocationProviderServiceImpl implements GeoLocationProviderServic
executionPlanName + " for " + executionPlanName + " for " +
identifier.getType() + " device with id:" + identifier.getId(), e identifier.getType() + " device with id:" + identifier.getId(), e
); );
} catch (Exception e) {
throw new GeoLocationBasedServiceException(
"Error occurred while removing geo alert '" + alertType, e);
} finally { } finally {
cleanup(eventprocessorStub); cleanup(eventprocessorStub);
} }
@ -672,6 +682,9 @@ public class GeoLocationProviderServiceImpl implements GeoLocationProviderServic
"JWT token creation failed while removing geo alert '" + alertType + "': " + "JWT token creation failed while removing geo alert '" + alertType + "': " +
executionPlanName, e executionPlanName, e
); );
} catch (Exception e) {
throw new GeoLocationBasedServiceException(
"Error occurred while removing geo alert '" + alertType, e);
} finally { } finally {
cleanup(eventprocessorStub); cleanup(eventprocessorStub);
} }
@ -702,14 +715,16 @@ public class GeoLocationProviderServiceImpl implements GeoLocationProviderServic
} }
} }
protected EventProcessorAdminServiceStub getEventProcessorAdminServiceStub() throws JWTClientException { protected EventProcessorAdminServiceStub getEventProcessorAdminServiceStub() throws Exception {
//send alert to event-processing //send alert to event-processing
String eventProcessorAdminServiceWSUrl = Utils.replaceSystemProperty(GeoServices.DAS_URL) + String eventProcessorAdminServiceWSUrl = Utils.replaceSystemProperty(GeoServices.DAS_URL) +
"/services/EventProcessorAdminService"; "/services/EventProcessorAdminService";
//Getting the tenant Domain //Getting the tenant Domain
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); String username = ClaimsMgtUtil.getAdminUserNameFromTenantId(DeviceManagementDataHolder.getInstance().getRealmService(),
tenantId);
String tenantAdminUser = username + "@" + tenantDomain; String tenantAdminUser = username + "@" + tenantDomain;
try { try {

@ -89,7 +89,9 @@ public class DeviceTaskManagerServiceComponent {
Map<String, OperationMonitoringTaskConfig> deviceConfigMap = DeviceMonitoringOperationDataHolder Map<String, OperationMonitoringTaskConfig> deviceConfigMap = DeviceMonitoringOperationDataHolder
.getInstance().getOperationMonitoringConfigFromMap(); .getInstance().getOperationMonitoringConfigFromMap();
for (String platformType : new ArrayList<>(deviceConfigMap.keySet())) { for (String platformType : new ArrayList<>(deviceConfigMap.keySet())) {
if (deviceConfigMap.get(platformType).isEnabled()){
deviceTaskManagerService.startTask(platformType, deviceConfigMap.get(platformType)); deviceTaskManagerService.startTask(platformType, deviceConfigMap.get(platformType));
}
deviceConfigMap.remove(platformType); deviceConfigMap.remove(platformType);
} }
} }

@ -86,11 +86,18 @@ public class PushNotificationSchedulerTask implements Runnable {
NotificationStrategy notificationStrategy = provider.getNotificationStrategyByDeviceType NotificationStrategy notificationStrategy = provider.getNotificationStrategyByDeviceType
(operationMapping.getDeviceIdentifier().getType()); (operationMapping.getDeviceIdentifier().getType());
// Send the push notification on given strategy // Send the push notification on given strategy
if (notificationStrategy != null) {
notificationStrategy.execute(new NotificationContext(operationMapping.getDeviceIdentifier(), notificationStrategy.execute(new NotificationContext(operationMapping.getDeviceIdentifier(),
provider.getOperation(operationMapping.getDeviceIdentifier().getType(), operationMapping provider.getOperation(operationMapping.getDeviceIdentifier().getType(), operationMapping
.getOperationId()))); .getOperationId())));
operationMapping.setPushNotificationStatus(Operation.PushNotificationStatus.COMPLETED); operationMapping.setPushNotificationStatus(Operation.PushNotificationStatus.COMPLETED);
operationsCompletedList.add(operationMapping); operationsCompletedList.add(operationMapping);
} else {
if (log.isDebugEnabled()) {
log.debug("Tenant '" + PrivilegedCarbonContext.getThreadLocalCarbonContext()
.getTenantDomain() + "' does not have push notification strategy.");
}
}
} catch (DeviceManagementException e) { } catch (DeviceManagementException e) {
log.error("Error occurred while getting notification strategy for operation mapping " + log.error("Error occurred while getting notification strategy for operation mapping " +
operationMapping.getDeviceIdentifier().getType(), e); operationMapping.getDeviceIdentifier().getType(), e);
@ -121,7 +128,7 @@ public class PushNotificationSchedulerTask implements Runnable {
log.debug("Push notification job running completed."); log.debug("Push notification job running completed.");
} }
} catch (Throwable cause) { } catch (Throwable cause) {
log.error("PushNotificationSchedulerTask failed due to " + cause); log.error("PushNotificationSchedulerTask failed due to " + cause.getMessage(), cause);
} }
} }
} }

@ -24,6 +24,7 @@ import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.FeatureManager; import org.wso2.carbon.device.mgt.common.FeatureManager;
import org.wso2.carbon.device.mgt.common.InvalidDeviceException; import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
import org.wso2.carbon.device.mgt.common.MonitoringOperation; import org.wso2.carbon.device.mgt.common.MonitoringOperation;
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.common.PaginationRequest; import org.wso2.carbon.device.mgt.common.PaginationRequest;
import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.common.PaginationResult;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
@ -589,6 +590,8 @@ public interface DeviceManagementProviderService {
int getDeviceMonitoringFrequency(String deviceType); int getDeviceMonitoringFrequency(String deviceType);
OperationMonitoringTaskConfig getDeviceMonitoringConfig(String deviceType);
boolean isDeviceMonitoringEnabled(String deviceType); boolean isDeviceMonitoringEnabled(String deviceType);
PolicyMonitoringManager getPolicyMonitoringManager(String deviceType); PolicyMonitoringManager getPolicyMonitoringManager(String deviceType);

@ -1597,6 +1597,13 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
return operationMonitoringTaskConfig.getFrequency(); return operationMonitoringTaskConfig.getFrequency();
} }
@Override
public OperationMonitoringTaskConfig getDeviceMonitoringConfig(String deviceType) {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
DeviceManagementService dms = pluginRepository.getDeviceManagementService(deviceType, tenantId);
return dms.getOperationMonitoringConfig();
}
@Override @Override
public boolean isDeviceMonitoringEnabled(String deviceType) { public boolean isDeviceMonitoringEnabled(String deviceType) {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();

@ -16,16 +16,15 @@
* under the License. * under the License.
*/ */
package org.wso2.carbon.device.mgt.core.task.impl; package org.wso2.carbon.device.mgt.core.task.impl;
import com.google.gson.Gson;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import org.wso2.carbon.device.mgt.core.task.DeviceMgtTaskException; import org.wso2.carbon.device.mgt.core.task.DeviceMgtTaskException;
import org.wso2.carbon.device.mgt.core.task.DeviceTaskManager; import org.wso2.carbon.device.mgt.core.task.DeviceTaskManager;
import org.wso2.carbon.ntask.core.Task; import org.wso2.carbon.ntask.core.Task;
@ -38,20 +37,12 @@ public class DeviceDetailsRetrieverTask implements Task {
private static Log log = LogFactory.getLog(DeviceDetailsRetrieverTask.class); private static Log log = LogFactory.getLog(DeviceDetailsRetrieverTask.class);
private String deviceType; private String deviceType;
private String oppConfig;
private OperationMonitoringTaskConfig operationMonitoringTaskConfig;
private boolean executeForTenants = false; private boolean executeForTenants = false;
private final String IS_CLOUD = "is.cloud"; private final String IS_CLOUD = "is.cloud";
@Override @Override
public void setProperties(Map<String, String> map) { public void setProperties(Map<String, String> map) {
deviceType = map.get("DEVICE_TYPE"); deviceType = map.get("DEVICE_TYPE");
oppConfig = map.get("OPPCONFIG");
Gson gson = new Gson();
operationMonitoringTaskConfig = gson.fromJson(oppConfig,
OperationMonitoringTaskConfig.class);
} }
@Override @Override
@ -60,29 +51,33 @@ public class DeviceDetailsRetrieverTask implements Task {
@Override @Override
public void execute() { public void execute() {
DeviceManagementProviderService deviceManagementProviderService = DeviceManagementDataHolder.getInstance()
.getDeviceManagementProvider();
OperationMonitoringTaskConfig operationMonitoringTaskConfig = deviceManagementProviderService
.getDeviceMonitoringConfig(deviceType);
if (System.getProperty(IS_CLOUD) != null && Boolean.parseBoolean(System.getProperty(IS_CLOUD))) { if (System.getProperty(IS_CLOUD) != null && Boolean.parseBoolean(System.getProperty(IS_CLOUD))) {
executeForTenants = true; executeForTenants = true;
} }
if (executeForTenants) { if (executeForTenants) {
this.executeForAllTenants(); this.executeForAllTenants(operationMonitoringTaskConfig);
} else { } else {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("Device details retrieving task started to run."); log.debug("Device details retrieving task started to run.");
} }
DeviceTaskManager deviceTaskManager = new DeviceTaskManagerImpl(deviceType, DeviceTaskManager deviceTaskManager = new DeviceTaskManagerImpl(deviceType, operationMonitoringTaskConfig);
operationMonitoringTaskConfig);
//pass the configurations also from here, monitoring tasks //pass the configurations also from here, monitoring tasks
try { try {
if (deviceManagementProviderService.isDeviceMonitoringEnabled(deviceType)) {
deviceTaskManager.addOperations(); deviceTaskManager.addOperations();
}
} catch (DeviceMgtTaskException e) { } catch (DeviceMgtTaskException e) {
log.error( log.error("Error occurred while trying to add the operations to device to retrieve device details.", e);
"Error occurred while trying to add the operations to device to retrieve device details.", e);
} }
} }
} }
private void executeForAllTenants() { private void executeForAllTenants(OperationMonitoringTaskConfig operationMonitoringTaskConfig) {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("Device details retrieving task started to run for all tenants."); log.debug("Device details retrieving task started to run for all tenants.");

@ -107,10 +107,12 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService {
throws DeviceMgtTaskException { throws DeviceMgtTaskException {
try { try {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
TaskService taskService = DeviceManagementDataHolder.getInstance().getTaskService(); TaskService taskService = DeviceManagementDataHolder.getInstance().getTaskService();
if (taskService.isServerInit()) { if (taskService.isServerInit()) {
TaskManager taskManager = taskService.getTaskManager(TASK_TYPE); TaskManager taskManager = taskService.getTaskManager(TASK_TYPE);
taskManager.deleteTask(deviceType); String taskName = deviceType + String.valueOf(tenantId);
taskManager.deleteTask(taskName);
} }
} catch (TaskException e) { } catch (TaskException e) {
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
@ -131,8 +133,8 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService {
TaskManager taskManager = taskService.getTaskManager(TASK_TYPE); TaskManager taskManager = taskService.getTaskManager(TASK_TYPE);
if (taskManager.isTaskScheduled(deviceType)) { if (taskManager.isTaskScheduled(deviceType)) {
String taskName = deviceType + String.valueOf(tenantId);
taskManager.deleteTask(deviceType); taskManager.deleteTask(taskName);
TaskInfo.TriggerInfo triggerInfo = new TaskInfo.TriggerInfo(); TaskInfo.TriggerInfo triggerInfo = new TaskInfo.TriggerInfo();
triggerInfo.setIntervalMillis(operationMonitoringTaskConfig.getFrequency()); triggerInfo.setIntervalMillis(operationMonitoringTaskConfig.getFrequency());
triggerInfo.setRepeatCount(-1); triggerInfo.setRepeatCount(-1);
@ -140,7 +142,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService {
Map<String, String> properties = new HashMap<>(); Map<String, String> properties = new HashMap<>();
properties.put(TENANT_ID, String.valueOf(tenantId)); properties.put(TENANT_ID, String.valueOf(tenantId));
TaskInfo taskInfo = new TaskInfo(deviceType, TASK_CLASS, properties, triggerInfo); TaskInfo taskInfo = new TaskInfo(taskName, TASK_CLASS, properties, triggerInfo);
taskManager.registerTask(taskInfo); taskManager.registerTask(taskInfo);
taskManager.rescheduleTask(taskInfo.getName()); taskManager.rescheduleTask(taskInfo.getName());

@ -43,7 +43,7 @@ public class TestDeviceManagementService implements DeviceManagementService {
public TestDeviceManagementService(String deviceType, String tenantDomain) { public TestDeviceManagementService(String deviceType, String tenantDomain) {
providerType = deviceType; providerType = deviceType;
this.tenantDomain = tenantDomain; this.tenantDomain = tenantDomain;
this.operationCode = "default"; this.operationCode = "DEVICE_INFO";
} }
@Override @Override

@ -143,7 +143,7 @@ public class GeoLocationProviderServiceTest {
Assert.assertEquals(geoFenceNode.getStationaryTime(), SAMPLE_STATIONARY_TIME); Assert.assertEquals(geoFenceNode.getStationaryTime(), SAMPLE_STATIONARY_TIME);
} }
private void initMocks() throws JWTClientException, RemoteException { private void initMocks() throws Exception {
EventProcessorAdminServiceStub mockEventProcessorAdminServiceStub = Mockito.mock(EventProcessorAdminServiceStub.class); EventProcessorAdminServiceStub mockEventProcessorAdminServiceStub = Mockito.mock(EventProcessorAdminServiceStub.class);
geoLocationProviderServiceImpl = Mockito.mock(GeoLocationProviderServiceImpl.class, Mockito.CALLS_REAL_METHODS); geoLocationProviderServiceImpl = Mockito.mock(GeoLocationProviderServiceImpl.class, Mockito.CALLS_REAL_METHODS);
mockExecutionPlanConfigurationDto[0] = Mockito.mock(ExecutionPlanConfigurationDto.class); mockExecutionPlanConfigurationDto[0] = Mockito.mock(ExecutionPlanConfigurationDto.class);

@ -19,6 +19,7 @@ package org.wso2.carbon.device.mgt.core.task;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito; import org.powermock.api.mockito.PowerMockito;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.AfterClass; import org.testng.annotations.AfterClass;
@ -27,6 +28,8 @@ import org.testng.annotations.Test;
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.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.MonitoringOperation;
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
@ -60,8 +63,6 @@ public class DeviceTaskManagerTest extends BaseDeviceManagementTest {
private static final Log log = LogFactory.getLog(DeviceTaskManagerTest.class); private static final Log log = LogFactory.getLog(DeviceTaskManagerTest.class);
private static final String NEW_DEVICE_TYPE = "NEW-DEVICE-TYPE"; private static final String NEW_DEVICE_TYPE = "NEW-DEVICE-TYPE";
private static final String DEVICE_DETAIL_RETRIEVER_OPPCONFIG = "{\"isEnabled\":true,\"frequency\":60000," +
"\"monitoringOperation\":[{\"taskName\":\"DEVICE_INFO\",\"recurrentTimes\":2}]}";
private List<DeviceIdentifier> deviceIds; private List<DeviceIdentifier> deviceIds;
private DeviceTaskManager deviceTaskManager; private DeviceTaskManager deviceTaskManager;
private DeviceManagementProviderService deviceMgtProviderService; private DeviceManagementProviderService deviceMgtProviderService;
@ -76,7 +77,6 @@ public class DeviceTaskManagerTest extends BaseDeviceManagementTest {
} }
List<Device> devices = TestDataHolder.generateDummyDeviceData(this.deviceIds); List<Device> devices = TestDataHolder.generateDummyDeviceData(this.deviceIds);
this.deviceMgtProviderService = new DeviceManagementProviderServiceImpl(); this.deviceMgtProviderService = new DeviceManagementProviderServiceImpl();
DeviceManagementServiceComponent.notifyStartupListeners(); DeviceManagementServiceComponent.notifyStartupListeners();
DeviceManagementDataHolder.getInstance().setDeviceManagementProvider(this.deviceMgtProviderService); DeviceManagementDataHolder.getInstance().setDeviceManagementProvider(this.deviceMgtProviderService);
DeviceManagementDataHolder.getInstance() DeviceManagementDataHolder.getInstance()
@ -152,7 +152,6 @@ public class DeviceTaskManagerTest extends BaseDeviceManagementTest {
DeviceDetailsRetrieverTask deviceDetailsRetrieverTask = new DeviceDetailsRetrieverTask(); DeviceDetailsRetrieverTask deviceDetailsRetrieverTask = new DeviceDetailsRetrieverTask();
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("DEVICE_TYPE", TestDataHolder.TEST_DEVICE_TYPE); map.put("DEVICE_TYPE", TestDataHolder.TEST_DEVICE_TYPE);
map.put("OPPCONFIG", DEVICE_DETAIL_RETRIEVER_OPPCONFIG);
deviceDetailsRetrieverTask.setProperties(map); deviceDetailsRetrieverTask.setProperties(map);
deviceDetailsRetrieverTask.execute(); deviceDetailsRetrieverTask.execute();
for (DeviceIdentifier deviceId : deviceIds) { for (DeviceIdentifier deviceId : deviceIds) {
@ -172,7 +171,6 @@ public class DeviceTaskManagerTest extends BaseDeviceManagementTest {
System.setProperty("is.cloud", "true"); System.setProperty("is.cloud", "true");
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("DEVICE_TYPE", TestDataHolder.TEST_DEVICE_TYPE); map.put("DEVICE_TYPE", TestDataHolder.TEST_DEVICE_TYPE);
map.put("OPPCONFIG", DEVICE_DETAIL_RETRIEVER_OPPCONFIG);
deviceDetailsRetrieverTask.setProperties(map); deviceDetailsRetrieverTask.setProperties(map);
deviceDetailsRetrieverTask.execute(); deviceDetailsRetrieverTask.execute();
for (DeviceIdentifier deviceId : deviceIds) { for (DeviceIdentifier deviceId : deviceIds) {

@ -15,6 +15,9 @@
"iOSConfigRoot": "%https.ip%/ios-enrollment/", "iOSConfigRoot": "%https.ip%/ios-enrollment/",
"iOSAPIRoot": "%https.ip%/ios/", "iOSAPIRoot": "%https.ip%/ios/",
"adminService": "%https.ip%", "adminService": "%https.ip%",
"deviceInfoServiceAPI" : "/api/device-mgt/%device-type%/v1.0/admin/devices/info",
"deviceLocationServiceAPI" : "/api/device-mgt/%device-type%/v1.0/admin/devices/location",
"iOSDeviceInfoServiceAPI" : "/api/device-mgt/%device-type%/v1.0/admin/devices/info",
"gatewayEnabled": true, "gatewayEnabled": true,
"oauthProvider": { "oauthProvider": {
"appRegistration": { "appRegistration": {

@ -279,7 +279,9 @@ var getProviderData = function (timeFrom, timeTo) {
var serviceUrl = '/api/device-mgt/v1.0/geo-services/stats/' + deviceType + '/' + deviceId + '?from=' + timeFrom + '&to=' + timeTo; var serviceUrl = '/api/device-mgt/v1.0/geo-services/stats/' + deviceType + '/' + deviceId + '?from=' + timeFrom + '&to=' + timeTo;
invokerUtil.get(serviceUrl, invokerUtil.get(serviceUrl,
function (data) { function (data) {
if(data === ""){showCurrentLocation(tableData);} if (data === "") {
showCurrentLocation(tableData);
}
tableData = JSON.parse(data); tableData = JSON.parse(data);
if (tableData.length === 0) { if (tableData.length === 0) {
showCurrentLocation(tableData); showCurrentLocation(tableData);

@ -113,8 +113,7 @@
conf: appConfigurations conf: appConfigurations
}, },
uri: errorPage.definition[constants.PAGE_DEFINITION_URI], uri: errorPage.definition[constants.PAGE_DEFINITION_URI],
uriParams: {}, uriParams: {}
user: utils.getCurrentUser()
}; };
var templateContext = {status: status, message: message}; var templateContext = {status: status, message: message};
var renderer = require("/lib/dynamic-files-renderer.js").renderer; var renderer = require("/lib/dynamic-files-renderer.js").renderer;

@ -29,7 +29,6 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.api.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.api.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.2.1-SNAPSHOT</version>
<name>WSO2 Carbon - Device Management API Feature</name> <name>WSO2 Carbon - Device Management API Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the APIs required for Device Management console UI</description> <description>This feature contains the APIs required for Device Management console UI</description>

@ -36,7 +36,7 @@
<modules> <modules>
<module>components/device-mgt</module> <module>components/device-mgt</module>
<module>components/device-mgt-extensions</module> <module>components/device-mgt-extensions</module><module>components/identity-extensions</module>
<module>components/identity-extensions</module> <module>components/identity-extensions</module>
<module>components/apimgt-extensions</module> <module>components/apimgt-extensions</module>
<module>components/policy-mgt</module> <module>components/policy-mgt</module>

Loading…
Cancel
Save