4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster/**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * The contents of this file are subject to the terms
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * of the Common Development and Distribution License
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * (the License). You may not use this file except in
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * compliance with the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * You can obtain a copy of the License at
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * opensso/legal/CDDLv1.0.txt
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * See the License for the specific language governing
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * permission and limitations under the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * When distributing Covered Code, include this CDDL
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Header Notice in each file and include the License file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * at opensso/legal/CDDLv1.0.txt.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * If applicable, add the following below the CDDL Header,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * with the fields enclosed by brackets [] replaced by
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * your own identifying information:
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * "Portions Copyrighted [year] [name of copyright owner]"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * $Id: ServiceListenerImpl.java,v 1.2 2008/06/25 05:49:57 qcheng Exp $
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterpackage com.sun.identity.plugin.configuration.impl;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.shared.debug.Debug;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.plugin.configuration.ConfigurationActionEvent;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.plugin.configuration.ConfigurationListener;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.sm.ServiceListener;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster/**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * The <code>ServiceListenerImpl</code> receives service data change
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * notifications.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterclass ServiceListenerImpl implements ServiceListener {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private ConfigurationListener configListener;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private String componentName;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private static Debug debug = ConfigurationInstanceImpl.debug;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster /**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * This constructor takes a <code>ConfigurationListener</code>.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param configListener a <code>ConfigurationListener</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster ServiceListenerImpl(ConfigurationListener configListener,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String componentName) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster this.configListener = configListener;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster this.componentName = componentName;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster /**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * This methid will be invoked when a service's schema has been changed.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param seviceName name of the service
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param version version of the service
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public void schemaChanged(String serviceName, String version) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (debug.messageEnabled()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.message("ServiceListenerImpl.schemaChanged: service = " +
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster serviceName);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster ConfigurationActionEvent caevent = new ConfigurationActionEventImpl(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster ConfigurationActionEvent.MODIFIED, null, componentName, null);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster configListener.configChanged(caevent);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster /**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * This method will be invoked when a service's global configuration
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * data has been changed. The parameter <code>groupName</code> denote
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * the name of the configuration grouping (e.g. default) and
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>serviceComponent</code> denotes the service's sub-component
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * that changed (e.g. <code>/NamedPolicy</code>, <code>/Templates</code>).
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param serviceName name of the service.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param version version of the service.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param groupName name of the configuration grouping.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param serviceComponent name of the service components that
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * changed.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param type change type, i.e., ADDED, REMOVED or MODIFIED.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public void globalConfigChanged(String serviceName, String version,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String groupName, String serviceComponent, int type) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster /**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * This method will be invoked when a service's organization
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * configuration data has been changed. The parameters <code>orgName</code>,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>groupName</code> and <code>serviceComponent</code> denotes the
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * organization name, configuration grouping name and
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * service's sub-component that are changed respectively.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param serviceName name of the service
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param version version of the service
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param orgName organization name as DN
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param groupName name of the configuration grouping
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param serviceComponent the name of the service components that
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * changed
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param type change type, i.e., ADDED, REMOVED or MODIFIED
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public void organizationConfigChanged(String serviceName, String version,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String orgName, String groupName, String serviceComponent, int type) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (debug.messageEnabled()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.message("ServiceListenerImpl.organizationConfigChanged: " +
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "service = " + serviceName);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster ConfigurationActionEvent caevent = new ConfigurationActionEventImpl(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster typeMapping(type), serviceComponent, componentName, orgName);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster configListener.configChanged(caevent);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster /**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Converts sms event type to configuration action event type.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param smsType sms event type.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @return configuration event type.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private static int typeMapping(int smsType) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster switch (smsType) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster case ServiceListener.ADDED:
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return ConfigurationActionEvent.ADDED;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster case ServiceListener.REMOVED:
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return ConfigurationActionEvent.DELETED;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster case ServiceListener.MODIFIED:
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return ConfigurationActionEvent.MODIFIED;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return smsType;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster}