mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Adding intuitive error when specified notification provider is not found
This commit is contained in:
parent
513015c1b5
commit
e71d3947cb
@ -26,6 +26,7 @@ import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
|
||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
|
||||
import org.wso2.carbon.device.mgt.common.push.notification.NotificationStrategy;
|
||||
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
||||
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationProvider;
|
||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
||||
@ -137,10 +138,16 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||
deviceTypeIdentifier = new DeviceTypeIdentifier(deviceManagementService.getType(), tenantId);
|
||||
}
|
||||
|
||||
if (pushNoteConfig != null) {
|
||||
NotificationStrategy notificationStrategy =
|
||||
DeviceManagementDataHolder.getInstance().getPushNotificationProviderRepository().getProvider(
|
||||
pushNoteConfig.getType()).getNotificationStrategy(pushNoteConfig);
|
||||
PushNotificationProvider provider = DeviceManagementDataHolder.getInstance()
|
||||
.getPushNotificationProviderRepository().getProvider(pushNoteConfig.getType());
|
||||
if (provider == null) {
|
||||
throw new DeviceManagementException(
|
||||
"No registered push notification provider found for the type: '" +
|
||||
pushNoteConfig.getType() + "'.");
|
||||
}
|
||||
NotificationStrategy notificationStrategy = provider.getNotificationStrategy(pushNoteConfig);
|
||||
operationManagerRepository.addOperationManager(deviceTypeIdentifier, new OperationManagerImpl(
|
||||
notificationStrategy));
|
||||
} else {
|
||||
@ -172,7 +179,8 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
||||
deviceTypeName = provider.getType().toLowerCase();
|
||||
ProvisioningConfig provisioningConfig = provider.getProvisioningConfig();
|
||||
int tenantId = DeviceManagerUtil.getTenantId(provisioningConfig.getProviderTenantDomain());
|
||||
DeviceManagerUtil.registerDeviceType(deviceTypeName, tenantId, provisioningConfig.isSharedWithAllTenants());
|
||||
DeviceManagerUtil.registerDeviceType(deviceTypeName, tenantId,
|
||||
provisioningConfig.isSharedWithAllTenants());
|
||||
registerPushNotificationStrategy(provider);
|
||||
//TODO:
|
||||
//This is a temporory fix.
|
||||
@ -180,7 +188,8 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
||||
//until fix that, use following variable to enable and disable of checking user authorization.
|
||||
|
||||
DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(provider.getType(),
|
||||
provider.getDeviceManager().requireDeviceAuthorization());
|
||||
provider.getDeviceManager()
|
||||
.requireDeviceAuthorization());
|
||||
} catch (Throwable e) {
|
||||
/* Throwable is caught intentionally as failure of one plugin - due to invalid start up parameters,
|
||||
etc - should not block the initialization of other device management providers */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user