/* * Copyright (c) 2002-2003 iReasoning Inc. All Rights Reserved. * * This SOURCE CODE FILE, which has been provided by iReasoning Inc. as part * of an iReasoning Software product for use ONLY by licensed users of the product, * includes CONFIDENTIAL and PROPRIETARY information of iReasoning Inc. * * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH * THE PRODUCT. * * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD IREASONING SOFTWARE, ITS * RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY * CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR * DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES * ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR * DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR * DERIVED FROM THIS SOURCE CODE FILE. */ package agent.multihome.interface2; import java.io.*; import java.util.*; import com.ireasoning.util.*; import com.ireasoning.protocol.snmp.*; import javax.management.*; /** * Class for registering MBeans */ public class AgentMib { // MBeanServer reference private static MBeanServer _server; // Root node of OID tree private static OIDTreeNode _root; /** * Registers all necessary MBeans */ public static void registerMBeans(MBeanServer server, OIDTreeNode root) { _server = server; _root = root; try { registerIfTable(); // registerSnmpGroup(); // registerUdpGroup(); // registerTcpGroup(); // registerSystemGroup(); // registerEgpGroup(); // registerIpGroup(); // registerInterfacesGroup(); // registerIcmpGroup(); // registerAtTable(); // registerIpAddrTable(); // registerIpRouteTable(); // registerIpNetToMediaTable(); // registerTcpConnTable(); // registerUdpTable(); // registerEgpNeighTable(); } catch(Exception e) { Logger.error(e); throw new SnmpException(e.toString()); } } /** * Unregisters MBeans */ public static void unregisterMBeans() { try { unregisterIfTable(); // unregisterSnmpGroup(); // unregisterUdpGroup(); // unregisterTcpGroup(); // unregisterSystemGroup(); // unregisterEgpGroup(); // unregisterIpGroup(); // unregisterInterfacesGroup(); // unregisterIcmpGroup(); // unregisterAtTable(); // unregisterIpAddrTable(); // unregisterIpRouteTable(); // unregisterIpNetToMediaTable(); // unregisterTcpConnTable(); // unregisterUdpTable(); // unregisterEgpNeighTable(); } catch(Exception e) { Logger.error(e); throw new SnmpException(e.toString()); } } /** * Create instance and register MBean */ public static void registerIfTable() throws Exception { if ( _ifTable == null ) { _ifTable = new IfTable(_root, ".1.3.6.1.2.1.2.2", null); } ObjectName objName = new ObjectName("interface2:name=IfTable"); if(!_server.isRegistered(objName)) { _server.registerMBean(_ifTable, objName); } } /** * Unregister MBean */ public static void unregisterIfTable() throws Exception { _server.unregisterMBean(new ObjectName("interface2:name=IfTable")); } /** * Returns IfTable object. If IfTable is null, it 'll register the corresponding MBean first */ public static IfTable getIfTable( ) { if( _ifTable == null ) { try { registerIfTable(); } catch(Exception e) { Logger.error(e); } } return _ifTable; } static IfTable _ifTable; }