org.snmp4j.agent.test
Class TestAgent

java.lang.Object
  extended by org.snmp4j.agent.BaseAgent
      extended by org.snmp4j.agent.test.TestAgent
All Implemented Interfaces:
java.lang.Runnable

public class TestAgent
extends BaseAgent

The TestAgent is a sample SNMP agent implementation of all features (MIB implementations) provided by the SNMP4J-Agent framework. The TestAgent extends the BaseAgent which provides a framework for custom agent implementations through hook methods. Those abstract hook methods need to be implemented by extending the BaseAgent.

This IF-MIB implementation part of this test agent, is instrumentation as a simulation MIB. Thus, by changing the agentppSimMode (1.3.6.1.4.1.4976.2.1.1.0) from 'oper(1)' to 'config(2)' any object of the IF-MIB is writable and even creatable (columnar objects) via SNMP. Check it out!

Version:
1.0
Author:
Frank Fock

Field Summary
protected  java.lang.String address
           
 
Fields inherited from class org.snmp4j.agent.BaseAgent
agent, agentState, bootCounterFile, configFileURI, defaultContext, defaultPersistenceProvider, defaultProxyForwarder, dispatcher, mpv3, notificationOriginator, server, session, snmp4jConfigMIB, snmp4jLogMIB, snmpCommunityMIB, snmpFrameworkMIB, snmpNotificationMIB, snmpProxyMIB, snmpTargetMIB, snmpv2MIB, STATE_CREATED, STATE_INIT_FINISHED, STATE_INIT_STARTED, STATE_RUNNING, STATE_STOPPED, sysDescr, sysOID, sysServices, transportMappings, usm, usmMIB, vacmMIB
 
Constructor Summary
TestAgent(java.io.File bootCounterFile, java.io.File configFile)
          Creates the test agent with a file to read and store the boot counter and a file to read and store its configuration.
 
Method Summary
protected  void addCommunities(SnmpCommunityMIB communityMIB)
          Adds community to security name mappings needed for SNMPv1 and SNMPv2c.
protected  void addNotificationTargets(SnmpTargetMIB targetMIB, SnmpNotificationMIB notificationMIB)
          Adds initial notification targets and filters.
protected  void addUsmUser(org.snmp4j.security.USM usm)
          Adds all the necessary initial users to the USM.
protected  void addViews(VacmMIB vacm)
          Adds initial VACM configuration.
protected  void initTransportMappings()
          Initializes the transport mappings (ports) to be used by the agent.
static void main(java.lang.String[] args)
           
protected  void registerManagedObjects()
          Register additional managed objects at the agent's server.
protected  void registerSnmpMIBs()
          Register the basic MIB modules at the agent's MOServer.
protected  void unregisterManagedObjects()
          Unregister additional managed objects from the agent's server.
 
Methods inherited from class org.snmp4j.agent.BaseAgent
addShutdownHook, finishInit, getAgent, getAgentState, getBootCounterFile, getConfigFile, getContext, getDefaultContext, getDefaultProxyForwarder, getEngineBoots, getMPv3, getNotificationOriginator, getServer, getSession, getSnmp4jConfigMIB, getSnmp4jLogMIB, getSnmpCommunityMIB, getSnmpFrameworkMIB, getSnmpNotificationMIB, getSnmpProxyMIB, getSnmpTargetMIB, getSnmpv2MIB, getSysDescr, getSysOID, getSysServices, getUsm, getUsmMIB, getVacmMIB, init, initConfigMIB, initMessageDispatcher, initSnmpSession, loadConfig, run, saveConfig, sendColdStartNotification, setAgent, setBootCounterFile, setConfigFile, setDefaultContext, setDefaultProxyForwarder, setEngineBoots, setSysDescr, setSysOID, setSysServices, setupDefaultProxyForwarder, stop, unregisterSnmpMIBs, updateEngineBoots, updateSession
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

address

protected java.lang.String address
Constructor Detail

TestAgent

public TestAgent(java.io.File bootCounterFile,
                 java.io.File configFile)
          throws java.io.IOException
Creates the test agent with a file to read and store the boot counter and a file to read and store its configuration.

Parameters:
bootCounterFile - a file containing the boot counter in serialized form (as expected by BaseAgent).
configFile - a configuration file with serialized management information.
Throws:
java.io.IOException - if the boot counter or config file cannot be read properly.
Method Detail

registerManagedObjects

protected void registerManagedObjects()
Description copied from class: BaseAgent
Register additional managed objects at the agent's server.

Specified by:
registerManagedObjects in class BaseAgent

addNotificationTargets

protected void addNotificationTargets(SnmpTargetMIB targetMIB,
                                      SnmpNotificationMIB notificationMIB)
Description copied from class: BaseAgent
Adds initial notification targets and filters.

Specified by:
addNotificationTargets in class BaseAgent
Parameters:
targetMIB - the SnmpTargetMIB holding the target configuration.
notificationMIB - the SnmpNotificationMIB holding the notification (filter) configuration.

addViews

protected void addViews(VacmMIB vacm)
Description copied from class: BaseAgent
Adds initial VACM configuration.

Specified by:
addViews in class BaseAgent
Parameters:
vacm - the VacmMIB holding the agent's view configuration.

addUsmUser

protected void addUsmUser(org.snmp4j.security.USM usm)
Description copied from class: BaseAgent
Adds all the necessary initial users to the USM.

Specified by:
addUsmUser in class BaseAgent
Parameters:
usm - the USM instance used by this agent.

initTransportMappings

protected void initTransportMappings()
                              throws java.io.IOException
Description copied from class: BaseAgent
Initializes the transport mappings (ports) to be used by the agent.

Overrides:
initTransportMappings in class BaseAgent
Throws:
java.io.IOException

main

public static void main(java.lang.String[] args)

unregisterManagedObjects

protected void unregisterManagedObjects()
Description copied from class: BaseAgent
Unregister additional managed objects from the agent's server.

Specified by:
unregisterManagedObjects in class BaseAgent

addCommunities

protected void addCommunities(SnmpCommunityMIB communityMIB)
Description copied from class: BaseAgent
Adds community to security name mappings needed for SNMPv1 and SNMPv2c.

Specified by:
addCommunities in class BaseAgent
Parameters:
communityMIB - the SnmpCommunityMIB holding coexistence configuration for community based security models.

registerSnmpMIBs

protected void registerSnmpMIBs()
Description copied from class: BaseAgent
Register the basic MIB modules at the agent's MOServer.

Overrides:
registerSnmpMIBs in class BaseAgent

Copyright 2005-2008 Frank Fock (SNMP4J.org)