/*
* 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.subagent;
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
{
registerInfoGroup();
registerSubagentTable();
}
catch(Exception e)
{
Logger.error(e);
throw new SnmpException(e.toString());
}
}
public static void unregisterMBeans()
{
try
{
unregisterInfoGroup();
unregisterSubagentTable();
}
catch(Exception e)
{
Logger.error(e);
throw new SnmpException(e.toString());
}
}
/**
* Create instance and register MBean
*/
public static void registerInfoGroup() throws Exception
{
if ( _infoGroup == null )
{
_infoGroup = new InfoGroup(_root, ".1.3.6.1.4.1.15145.1.1.1", null);
}
ObjectName objName = new ObjectName("iReasoning:name=InfoGroup");
if(!_server.isRegistered(objName))
{
_server.registerMBean(_infoGroup, objName);
}
}
public static void unregisterInfoGroup() throws Exception
{
_server.unregisterMBean(new ObjectName("iReasoning:name=InfoGroup"));
}
/**
* Create instance and register MBean
*/
public static void registerSubagentTable() throws Exception
{
if ( _subagentTable == null )
{
_subagentTable = new SubagentTable(_root, ".1.3.6.1.4.1.15145.1.1.2", null);
}
ObjectName objName = new ObjectName("iReasoning:name=SubagentTable");
if(!_server.isRegistered(objName))
{
_server.registerMBean(_subagentTable, objName);
}
}
public static void unregisterSubagentTable() throws Exception
{
_server.unregisterMBean(new ObjectName("iReasoning:name=SubagentTable"));
}
/**
* Returns InfoGroup object. If InfoGroup is null, it 'll register the corresponding MBean first
*/
public static InfoGroup getInfoGroup( )
{
if( _infoGroup == null )
{
try
{
registerInfoGroup();
}
catch(Exception e)
{
Logger.error(e);
}
}
return _infoGroup;
}
/**
* Returns SubagentTable object. If SubagentTable is null, it 'll register the corresponding MBean first
*/
public static SubagentTable getSubagentTable( )
{
if( _subagentTable == null )
{
try
{
registerSubagentTable();
}
catch(Exception e)
{
Logger.error(e);
}
}
return _subagentTable;
}
static InfoGroup _infoGroup;
static SubagentTable _subagentTable;
}