diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java index b09c1e8149c..0f966baf3bf 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementDataHolder.java @@ -26,6 +26,7 @@ import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig; import org.wso2.carbon.device.mgt.core.config.license.LicenseConfig; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService; +import org.wso2.carbon.email.sender.core.service.EmailSenderService; import org.wso2.carbon.ntask.core.service.TaskService; import org.wso2.carbon.registry.core.service.RegistryService; import org.wso2.carbon.user.core.service.RealmService; @@ -36,6 +37,7 @@ import java.util.HashMap; public class DeviceManagementDataHolder { + private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder(); private RealmService realmService; private TenantManager tenantManager; private DeviceManagementProviderService deviceManagerProvider; @@ -49,12 +51,8 @@ public class DeviceManagementDataHolder { private HashMap requireDeviceAuthorization = new HashMap<>(); private DeviceAccessAuthorizationService deviceAccessAuthorizationService; private GroupManagementProviderService groupManagementProviderService; - private TaskService taskService; - //private EmailSenderService emailSenderService; - - - private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder(); + private EmailSenderService emailSenderService; private DeviceManagementDataHolder() {} @@ -74,6 +72,10 @@ public class DeviceManagementDataHolder { this.setTenantManager(realmService); } + public TenantManager getTenantManager() { + return tenantManager; + } + private void setTenantManager(RealmService realmService) { if (realmService == null) { throw new IllegalStateException("Realm service is not initialized properly"); @@ -81,10 +83,6 @@ public class DeviceManagementDataHolder { this.tenantManager = realmService.getTenantManager(); } - public TenantManager getTenantManager() { - return tenantManager; - } - public DeviceManagementProviderService getDeviceManagementProvider() { return deviceManagerProvider; } @@ -189,13 +187,13 @@ public class DeviceManagementDataHolder { public void setTaskService(TaskService taskService) { this.taskService = taskService; } -// -// public EmailSenderService getEmailSenderService() { -// return emailSenderService; -// } -// -// public void setEmailSenderService(EmailSenderService emailSenderService) { -// this.emailSenderService = emailSenderService; -// } + + public EmailSenderService getEmailSenderService() { + return emailSenderService; + } + + public void setEmailSenderService(EmailSenderService emailSenderService) { + this.emailSenderService = emailSenderService; + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java index 35f7e50f006..09ac3fcd903 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/internal/DeviceManagementServiceComponent.java @@ -54,6 +54,7 @@ import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceIm import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService; import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderServiceImpl; import org.wso2.carbon.device.mgt.core.util.DeviceManagementSchemaInitializer; +import org.wso2.carbon.email.sender.core.service.EmailSenderService; import org.wso2.carbon.ndatasource.core.DataSourceService; import org.wso2.carbon.registry.core.service.RegistryService; import org.wso2.carbon.user.core.service.RealmService; @@ -100,6 +101,12 @@ import java.util.List; * policy="dynamic" * bind="setConfigurationContextService" * unbind="unsetConfigurationContextService" + * @scr.reference name="email.sender.service" + * interface="org.wso2.carbon.email.sender.core.service.EmailSenderService" + * cardinality="0..1" + * policy="dynamic" + * bind="setEmailSenderService" + * unbind="unsetEmailSenderService" */ public class DeviceManagementServiceComponent { @@ -360,4 +367,18 @@ public class DeviceManagementServiceComponent { DeviceManagementDataHolder.getInstance().setConfigurationContextService(null); } + protected void setEmailSenderService(EmailSenderService emailSenderService) { + if (log.isDebugEnabled()) { + log.debug("Setting Email Sender Service"); + } + DeviceManagementDataHolder.getInstance().setEmailSenderService(emailSenderService); + } + + protected void unsetEmailSenderService(EmailSenderService emailSenderService) { + if (log.isDebugEnabled()) { + log.debug("Un-setting Email Sender Service"); + } + DeviceManagementDataHolder.getInstance().setEmailSenderService(null); + } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index 9d5e6b46d5c..3324da66ac3 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -47,6 +47,9 @@ import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent; import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener; import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil; +import org.wso2.carbon.email.sender.core.ContentProviderInfo; +import org.wso2.carbon.email.sender.core.EmailContext; +import org.wso2.carbon.email.sender.core.EmailSendingFailedException; import org.wso2.carbon.email.sender.core.TypedValue; import org.wso2.carbon.user.api.UserStoreException; @@ -540,14 +543,14 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv new TypedValue, Object>(String.class, DeviceManagerUtil.getServerBaseHttpsUrl())); params.put(org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailAttributes.SERVER_BASE_URL_HTTP, new TypedValue, Object>(String.class, DeviceManagerUtil.getServerBaseHttpUrl())); -// try { -// EmailContext ctx = -// new EmailContext.EmailContextBuilder(new ContentProviderInfo("user-enrollment", params), -// metaInfo.getRecipients()).build(); -//// DeviceManagementDataHolder.getInstance().getEmailSenderService().sendEmail(ctx); -// } catch (EmailSendingFailedException e) { -// throw new DeviceManagementException("Error occurred while sending enrollment invitation", e); -// } + try { + EmailContext ctx = + new EmailContext.EmailContextBuilder(new ContentProviderInfo("user-enrollment", params), + metaInfo.getRecipients()).build(); + DeviceManagementDataHolder.getInstance().getEmailSenderService().sendEmail(ctx); + } catch (EmailSendingFailedException e) { + throw new DeviceManagementException("Error occurred while sending enrollment invitation", e); + } } @Override @@ -565,14 +568,14 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv new TypedValue, Object>(String.class, DeviceManagerUtil.getServerBaseHttpsUrl())); params.put(org.wso2.carbon.device.mgt.core.DeviceManagementConstants.EmailAttributes.SERVER_BASE_URL_HTTP, new TypedValue, Object>(String.class, DeviceManagerUtil.getServerBaseHttpUrl())); -// try { -// EmailContext ctx = -// new EmailContext.EmailContextBuilder(new ContentProviderInfo("user-registration", params), -// metaInfo.getRecipients()).build(); -// DeviceManagementDataHolder.getInstance().getEmailSenderService().sendEmail(ctx); -// } catch (EmailSendingFailedException e) { -// throw new DeviceManagementException("Error occurred while sending user registration notification", e); -// } + try { + EmailContext ctx = + new EmailContext.EmailContextBuilder(new ContentProviderInfo("user-registration", params), + metaInfo.getRecipients()).build(); + DeviceManagementDataHolder.getInstance().getEmailSenderService().sendEmail(ctx); + } catch (EmailSendingFailedException e) { + throw new DeviceManagementException("Error occurred while sending user registration notification", e); + } } @Override diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/email/templates/user-enrollment.vm b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/email/templates/user-enrollment.vm deleted file mode 100644 index 25b3b26a0c8..00000000000 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/email/templates/user-enrollment.vm +++ /dev/null @@ -1,72 +0,0 @@ -#* - Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - - WSO2 Inc. licenses this file to you under the Apache License, - Version 2.0 (the "License"); you may not use this file except - in compliance with the License. - you may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*# - - You have been invited to enroll your device in WSO2 EMM - - - - WSO2 Enterprise Mobility Manager - - -
-
-
-
- WSO2 -
-
-
-

- Hi $first-name, -

- -

- You have been invited to enrol your device in WSO2 Enterprise Mobility Manager. - Click here to download the WSO2 EMM client application to begin device - enrolment.

- -

- Should you need assistance, please contact your administrator. -

- -

- Regards, -

- -

- WSO2 EMM Administrator -

-
-
- - - - -
WSO2
-
-
-
- - - ]]> - -
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/email/templates/user-registration.vm b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/email/templates/user-registration.vm deleted file mode 100644 index 56e95625e06..00000000000 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/email/templates/user-registration.vm +++ /dev/null @@ -1,82 +0,0 @@ -#* - Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - - WSO2 Inc. licenses this file to you under the Apache License, - Version 2.0 (the "License"); you may not use this file except - in compliance with the License. - you may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*# - - You have successfully been registered in WSO2 EMM - - - - WSO2 Enterprise Mobility Manager - - -
-
-
-
- WSO2 -
-
-
-

- Hi $first-name, -

- -

- You have been registered in WSO2 Enterprise Mobility Manager and invited to enrol your device. - Click here to download the WSO2 EMM client application to begin device - enrolment.

- -

- Use following credentials to log in to WSO2 EMM client application. -

- -

- Username: $username -
- Password: $password -

- -

- Should you need assistance, please contact your administrator. -

- -

- Regards, -

- -

- WSO2 EMM Administrator -

-
-
- - - - -
WSO2
-
-
-
- - - ]]> - -
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf index 63d198338f8..a53516b80e4 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/p2.inf @@ -3,5 +3,4 @@ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../featur org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/conf/license-config.xml,target:${installFolder}/../../conf/etc/license-config.xml,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/conf/remote-appmanager-config.xml,target:${installFolder}/../../conf/etc/remote-appmanager-config.xml,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/dbscripts/cdm,target:${installFolder}/../../../dbscripts/cdm,overwrite:true);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/rxts/license.rxt,target:${installFolder}/../../../repository/resources/rxts/license.rxt,overwrite:true);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/email/templates,target:${installFolder}/../../../repository/resources/email-templates,overwrite:true);\ \ No newline at end of file +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.server_${feature.version}/rxts/license.rxt,target:${installFolder}/../../../repository/resources/rxts/license.rxt,overwrite:true);\ \ No newline at end of file