a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2009 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: MonitorManager.java,v 1.1 2009/06/19 02:48:04 bigfatrat Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.plugin.monitoring;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.common.SystemConfigurationUtil;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.debug.Debug;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>MonitorManager</code> is used to get instances of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the <code>monitoring.*</code> implementation classes.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If the system property com.sun.identity.plugin.monitoring.class
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is set, this class will be used as the provider instead of the default
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * implementation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic final class MonitorManager {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONAGENT_PROVIDER_NAME =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.agent.class";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONAGENT_PROV_IMPL =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.impl.AgentProvider";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONSAML1_PROVIDER_NAME =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.saml1.class";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONSAML1_PROV_IMPL =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.impl.FedMonSAML1SvcProvider";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONSAML2_PROVIDER_NAME =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.saml2.class";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONSAML2_PROV_IMPL =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.impl.FedMonSAML2SvcProvider";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONIDFF_PROVIDER_NAME =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.idff.class";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String MONIDFF_PROV_IMPL =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "com.sun.identity.plugin.monitoring.impl.FedMonIDFFSvcProvider";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final Debug debug = Debug.getInstance("libPlugins");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private static FedMonAgent agentProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private static FedMonSAML1Svc saml1SvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private static FedMonSAML2Svc saml2SvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private static FedMonIDFFSvc idffSvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns an instance of the <code>FedMonAgent</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return instance of <code>Logger</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception LogException if there is an error.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static FedMonAgent getAgent() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (agentProvider != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return agentProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String pluginName = SystemConfigurationUtil.getProperty(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster MONAGENT_PROVIDER_NAME, MONAGENT_PROV_IMPL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (pluginName != null && pluginName.length() > 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class agtProviderClass =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class.forName(pluginName.trim());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster agentProvider = (FedMonAgent)agtProviderClass.newInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster agentProvider.init();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (Exception e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.error("Error creating FedMonAgent class instance : ", e);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return agentProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static FedMonSAML1Svc getSAML1Svc() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (saml1SvcProvider != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return saml1SvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String pluginName = SystemConfigurationUtil.getProperty(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster MONSAML1_PROVIDER_NAME, MONSAML1_PROV_IMPL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (pluginName != null && pluginName.length() > 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class samlProviderClass =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class.forName(pluginName.trim());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster saml1SvcProvider =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (FedMonSAML1Svc)samlProviderClass.newInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster saml1SvcProvider.init();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (Exception e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.error("Error creating SAML1Svc class instance : ", e);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return saml1SvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static FedMonSAML2Svc getSAML2Svc() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (saml2SvcProvider != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return saml2SvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String pluginName = SystemConfigurationUtil.getProperty(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster MONSAML2_PROVIDER_NAME, MONSAML2_PROV_IMPL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (pluginName != null && pluginName.length() > 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class samlProviderClass =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class.forName(pluginName.trim());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster saml2SvcProvider =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (FedMonSAML2Svc)samlProviderClass.newInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster saml2SvcProvider.init();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (Exception e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.error("Error creating SAML2Svc class instance : ", e);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return saml2SvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static FedMonIDFFSvc getIDFFSvc() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (idffSvcProvider != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return idffSvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String pluginName = SystemConfigurationUtil.getProperty(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster MONIDFF_PROVIDER_NAME, MONIDFF_PROV_IMPL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (pluginName != null && pluginName.length() > 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class idffProviderClass =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Class.forName(pluginName.trim());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster idffSvcProvider =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (FedMonIDFFSvc)idffProviderClass.newInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster idffSvcProvider.init();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (Exception e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.error("Error creating IDFFSvc class instance : ", e);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return idffSvcProvider;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}