Package org.wso2.carbon.tenant.mgt.internal

Source Code of org.wso2.carbon.tenant.mgt.internal.TenantMgtServiceComponent

/*
*  Copyright (c) 2005-2010, 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.
*/
package org.wso2.carbon.tenant.mgt.internal;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import org.apache.axis2.context.ConfigurationContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.osgi.framework.BundleContext;
import org.osgi.service.component.ComponentContext;
import org.wso2.carbon.core.multitenancy.persistence.TenantPersistor;
import org.wso2.carbon.email.verification.util.EmailVerifcationSubscriber;
import org.wso2.carbon.email.verification.util.EmailVerifierConfig;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.service.RegistryService;
import org.wso2.carbon.registry.core.session.UserRegistry;
import org.wso2.carbon.user.api.RealmConfiguration;
import org.wso2.carbon.user.core.service.RealmService;
import org.wso2.carbon.user.core.tenant.TenantManager;
import org.wso2.carbon.utils.CarbonUtils;
import org.wso2.carbon.utils.ConfigurationContextService;
import org.wso2.carbon.common.listeners.TenantMgtListener;
import org.wso2.carbon.common.util.CommonUtil;
import org.wso2.carbon.common.util.StratosConfiguration;
import org.wso2.carbon.email.sender.api.EmailSender;
import org.wso2.carbon.email.sender.api.EmailSenderConfiguration;
import org.wso2.carbon.tenant.mgt.core.DefaultTenantPersistor;
import org.wso2.carbon.tenant.mgt.internal.util.CaptchaUtil;
import org.wso2.carbon.tenant.mgt.internal.util.PasswordUtil;

/**
* @scr.component name="org.wso2.carbon.tenant.mgt" immediate="true"
* @scr.reference name="registry.service"
*                interface="org.wso2.carbon.registry.core.service.RegistryService"
*                cardinality="1..1" policy="dynamic" bind="setRegistryService"
*                unbind="unsetRegistryService"
* @scr.reference name="user.realmservice.default"
*                interface="org.wso2.carbon.user.core.service.RealmService"
*                cardinality="1..1" policy="dynamic" bind="setRealmService"
*                unbind="unsetRealmService"
* @scr.reference name="emailverification.service" interface=
*                "org.wso2.carbon.email.verification.util.EmailVerifcationSubscriber"
*                cardinality="1..1" policy="dynamic"
*                bind="setEmailVerificationService"
*                unbind="unsetEmailVerificationService"
* @scr.reference name="configuration.context.service"
*                interface="org.wso2.carbon.utils.ConfigurationContextService"
*                cardinality="1..1" policy="dynamic"
*                bind="setConfigurationContextService"
*                unbind="unsetConfigurationContextService"
* @scr.reference name="org.wso2.carbon.tenant.mgt.listener.service"
*                interface="org.wso2.carbon.common.listeners.TenantMgtListener"
*                cardinality="0..n" policy="dynamic"
*                bind="setTenantMgtListenerService"
*                unbind="unsetTenantMgtListenerService"
*/
public class TenantMgtServiceComponent {
    private static Log log = LogFactory.getLog(TenantMgtServiceComponent.class);

    private static BundleContext bundleContext;
    private static RealmService realmService;
    private static RegistryService registryService;
    private static EmailVerifcationSubscriber emailVerificationService = null;
    private static ConfigurationContextService configurationContextService;
    private static EmailSender successMsgSender;
    private static EmailSender tenantCreationNotifier;
    private static EmailSender tenantActivationNotifier;
    private static EmailVerifierConfig emailVerifierConfig = null;
    private static List<TenantMgtListener> tenantMgtListeners = new ArrayList<TenantMgtListener>();
    private static TenantPersistor tenantPersistor = null;
   
    protected void activate(ComponentContext context) {
        try {
            bundleContext = context.getBundleContext();
            tenantPersistor = new DefaultTenantPersistor();
            bundleContext.registerService(TenantPersistor.class.getName(), tenantPersistor, null);
            // setting the success message config
            String confFilename = CarbonUtils.getCarbonConfigDirPath() +
                    "/email-registration-complete.xml";
            EmailSenderConfiguration successMsgConfig =
                    EmailSenderConfiguration.loadEmailSenderConfiguration(confFilename);
            successMsgSender = new EmailSender(successMsgConfig);

            loadSuperTenantNotificationEmailConfig();

            loadEmailVerificationConfig();

            CaptchaUtil.setAnonAccessToCaptchaImages();

            // Setting the password reset email config.
            initPasswordResetEmailSender();

            // Loading the stratos configurations from Stratos.xml
            StratosConfiguration config = CommonUtil.loadStratosConfiguration();
            CommonUtil.setStratosConfig(config);
           
            // Loading the EULA
            String eula = CommonUtil.loadTermsOfUsage();
            CommonUtil.setEula(eula);
           
            log.debug("******* Governance Tenant Config bundle is activated ******* ");
        } catch (Exception e) {
            log.error("******* Governance Tenant Config bundle failed activating ****", e);
        }
    }

    /**
     * loads the notification configurations for the mail to super tenant for account creations
     * and activations.
     */
    private void loadSuperTenantNotificationEmailConfig() {
        // Tenant Registration Email Configurations
        String tenantRegistrationEmailConfFile = CarbonUtils.getCarbonConfigDirPath() +
                                                "/email-new-tenant-registration.xml";
        EmailSenderConfiguration newTenantRegistrationEmailConf =
                EmailSenderConfiguration.loadEmailSenderConfiguration(
                        tenantRegistrationEmailConfFile);
        tenantCreationNotifier = new EmailSender(newTenantRegistrationEmailConf);

        // Tenant Activation Email Configurations
        String tenantActivationEmailConfFile = CarbonUtils.getCarbonConfigDirPath() +
                                                "/email-new-tenant-activation.xml";
        EmailSenderConfiguration newTenantActivationEmailConf =
                EmailSenderConfiguration.loadEmailSenderConfiguration(
                        tenantActivationEmailConfFile);
        tenantActivationNotifier = new EmailSender(newTenantActivationEmailConf);
    }


    private void initPasswordResetEmailSender() {
        String passwordResetConfigFileName = CarbonUtils.getCarbonConfigDirPath() +
                                            "/email-password-reset.xml";
        EmailSenderConfiguration passwordResetMsgConfig =
                EmailSenderConfiguration.loadEmailSenderConfiguration(passwordResetConfigFileName);
        PasswordUtil.setPasswordResetMsgSender(new EmailSender(passwordResetMsgConfig));
    }

    protected void setTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
        addTenantMgtListener(tenantMgtListener);
    }

    protected void unsetTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
        removeTenantMgtListener(tenantMgtListener);
    }

    protected void deactivate(ComponentContext context) {
        log.debug("******* Governance Tenant Config bundle is deactivated ******* ");
    }

    protected void setRegistryService(RegistryService registryService) {
        TenantMgtServiceComponent.registryService = registryService;
    }

    protected void unsetRegistryService(RegistryService registryService) {
        setRegistryService(null);
    }

    protected void setRealmService(RealmService realmService) {
        TenantMgtServiceComponent.realmService = realmService;
    }

    protected void unsetRealmService(RealmService realmService) {
        setRealmService(null);
    }

    protected void setEmailVerificationService(EmailVerifcationSubscriber emailService){
        TenantMgtServiceComponent.emailVerificationService = emailService;
    }

    protected void unsetEmailVerificationService(EmailVerifcationSubscriber emailService){
        setEmailVerificationService(null);
    }

    protected void setConfigurationContextService(ConfigurationContextService configurationContextService){
        log.debug("Receiving ConfigurationContext Service");
        TenantMgtServiceComponent.configurationContextService = configurationContextService;

    }

    protected void unsetConfigurationContextService(ConfigurationContextService configurationContextService){
        log.debug("Unsetting ConfigurationContext Service");
        setConfigurationContextService(null);
    }

    public static BundleContext getBundleContext() {
        return bundleContext;
    }

    public static void addTenantMgtListener(TenantMgtListener tenantMgtListener) {
        tenantMgtListeners.add(tenantMgtListener);
        sortTenantMgtListeners();
    }

    public static void removeTenantMgtListener(TenantMgtListener tenantMgtListener) {
        tenantMgtListeners.remove(tenantMgtListener);
        sortTenantMgtListeners();
    }

    public static void sortTenantMgtListeners() {
        Collections.sort(tenantMgtListeners, new Comparator<TenantMgtListener>() {
            public int compare(TenantMgtListener o1, TenantMgtListener o2) {
                return o1.getListenerOrder() - o2.getListenerOrder();
            }
        });
    }   

    public static List<TenantMgtListener> getTenantMgtListeners() {
        return tenantMgtListeners;
    }

    public static EmailSender getSuccessMsgSender() {
        return successMsgSender;
    }

    public static EmailSender getTenantCreationNotifier() {
        return tenantCreationNotifier;
    }

    public static EmailSender getTenantActivationNotifier() {
        return tenantActivationNotifier;
    }

    public static ConfigurationContextService getConfigurationContextService() {
        return configurationContextService;
    }

    public static ConfigurationContext getConfigurationContext() {
        if (configurationContextService.getServerConfigContext() == null) {
            return null;
        }
        return configurationContextService.getServerConfigContext();
    }

    public static RegistryService getRegistryService() {
        return registryService;
    }


    public static RealmService getRealmService() {
        return realmService;
    }

   
    public static EmailVerifcationSubscriber getEmailVerificationService() {
        return emailVerificationService;
    }

    public static TenantManager getTenantManager() {
        return realmService.getTenantManager();
    }

    public static RealmConfiguration getBootstrapRealmConfiguration() {
        return realmService.getBootstrapRealmConfiguration();
    }

    public static UserRegistry getGovernanceSystemRegistry(int tenantId) throws RegistryException {
        return registryService.getGovernanceSystemRegistry(tenantId);
    }

    public static UserRegistry getConfigSystemRegistry(int tenantId) throws RegistryException {
        return registryService.getConfigSystemRegistry(tenantId);
    }

    public static void loadEmailVerificationConfig() {
        String confXml = CarbonUtils.getCarbonConfigDirPath() + "/email-registration.xml";
        emailVerifierConfig =
                org.wso2.carbon.email.verification.util.Util.loadeMailVerificationConfig(confXml);
    }

    public static EmailVerifierConfig getEmailVerifierConfig() {
        return emailVerifierConfig;
    }

    public static TenantPersistor getTenantPersistor() {
        return tenantPersistor;
    }

   
}
TOP

Related Classes of org.wso2.carbon.tenant.mgt.internal.TenantMgtServiceComponent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.