/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2008 Sun Microsystems, Inc. * Portions Copyright 2012 ForgeRock Inc. */ package org.opends.server.snmp; import javax.management.MBeanServer; import javax.management.ObjectName; import org.opends.server.loggers.debug.DebugLogger; import org.opends.server.loggers.debug.DebugTracer; /** * The class is the "DIRECTORY-SERVER-MIB" implementation. */ public class DIRECTORY_SERVER_MIBImpl extends DIRECTORY_SERVER_MIB { /** * The serial version identifier required to satisfy the compiler because * this class implements the <CODE>java.io.Serializable</CODE> interface. * This value was generated using the <CODE>serialver</CODE> command-line * utility included with the Java SDK. */ private static final long serialVersionUID = 1420660265781848102L; /** * The debug log tracer for this class. */ private static final DebugTracer TRACER = DebugLogger.getTracer(); /** * Indicates if the SNMP Mbeans have to be registered or not. */ private boolean registeredSnmpMBean = false; /** * The Current Directory Server MIB. */ private DsMIBImpl dsMibGroup = null; /** * ObjectName of the Current Directory Server MIB. */ private ObjectName mibObName; /** * ObjectName of the dsMIB group in the Directory Server MIB. */ private ObjectName groupObjName; /** * Creates the Current Directory Server MIB. * @param registeredMBean indicates if the SNMP MBean has to register * in the Directory Server MBeanServer * @param mibName of the Directory Server MIB */ public DIRECTORY_SERVER_MIBImpl(boolean registeredMBean, ObjectName mibName) { super(); this.registeredSnmpMBean = registeredMBean; this.mibObName = mibName; if (DebugLogger.debugEnabled()) { TRACER.debugVerbose("DIRECTORY_SERVER_MIB=" + this.mibObName + " created with registerMBean=" + this.registeredSnmpMBean); } } /** * {@inheritDoc} * @throws java.lang.Exception if the DsMib Group couls not be initialized */ @Override protected void initDsMIB(MBeanServer server) throws Exception { final String oid = getGroupOid("DsMIB", "1.3.6.1.2.1.66"); if (server != null) { groupObjName = new ObjectName( SNMPConnectionHandlerDefinitions.SNMP_DOMAIN + "type=group,name=DsMib"); } final DsMIBMeta meta = createDsMIBMetaNode("DsMIB", oid, groupObjName, server); if (meta != null) { meta.registerTableNodes(this, server); // Note that when using standard metadata, // the returned object must implement the "DsMIBMBean" // interface. // final DsMIBMBean group = (DsMIBMBean) createDsMIBMBean("DsMIB", oid, groupObjName, server); meta.setInstance(group); registerGroupNode("DsMIB", oid, groupObjName, meta, group, server); } } /** * {@inheritDoc} */ @Override protected Object createDsMIBMBean(String groupName, String groupOid, ObjectName groupObjname, MBeanServer server) { this.dsMibGroup = new DsMIBImpl(this, server, this.registeredSnmpMBean); return this.dsMibGroup; } /** * Returns the created dsMIB group. * @return the DsMIBImpl */ protected DsMIBImpl getMib() { return this.dsMibGroup; } /** * Returns the ObjectName of the dsMIB group. * @return the ObjectName of the created dsMIB group */ protected ObjectName getObjectName() { return this.groupObjName; } }