/*
* 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.mib2;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.management.*;
import com.ireasoning.util.*;
import com.ireasoning.protocol.snmp.*;
import mx4j.adaptor.http.HttpAdaptor;
import mx4j.adaptor.rmi.jrmp.*;
import mx4j.util.*;
import javax.naming.Context;
/**
* A Http adaptor and JRMP server for remotely managing agent.
* You can use web browser pointing to http://localhost:8000
* to view MBeans information. Or use MC4J to connect to JRMP server
*/
public class AgentMX4J
{
/**
* Starts a http adaptor at port 8000
*/
static void startHttpAdaptor(MBeanServer server) throws Exception
{
HttpAdaptor adapter = new HttpAdaptor();
ObjectName name = new ObjectName("Server:name=HttpAdaptor");
server.registerMBean(adapter, name);
adapter.setPort(8000);//use port 8000
adapter.setHost("localhost");
adapter.start();
}
public static void main( String[] args )
{
try
{
MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
startHttpAdaptor(mbeanServer);
// startJRMPAdaptor(mbeanServer);
// use default agent port 161
int port = 161;
String configFile = "SnmpAgent.xml";
Agent agent = new Agent(mbeanServer, port, configFile);
agent.start();
}
catch(Exception e)
{
Logger.error(e);
}
}
// /**
// * Starts a JRMP server
// */
// static void startJRMPAdaptor(MBeanServer server) throws Exception
// {
// ObjectName naming = new ObjectName("Naming:type=rmiregistry");
// server.createMBean("mx4j.tools.naming.NamingService", naming, null);
// server.invoke(naming, "start", null, null);
//
// // Create the JRMP adaptor
// ObjectName adaptor = new ObjectName("Adaptor:protocol=JRMP");
// server.createMBean("mx4j.adaptor.rmi.jrmp.JRMPAdaptor", adaptor, null);
// JRMPAdaptorMBean mbean = (JRMPAdaptorMBean)StandardMBeanProxy.create(JRMPAdaptorMBean.class, server, adaptor);
//
// // Set the JNDI name with which will be registered
// String jndiName = "jrmp";
// mbean.setJNDIName(jndiName);
//
// // Optionally, you can specify the JNDI properties,
// // instead of having in the classpath a jndi.properties file
// mbean.putJNDIProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
// mbean.putJNDIProperty(Context.PROVIDER_URL, "rmi://localhost:1099");
//
// // Registers the JRMP adaptor in JNDI and starts it
// mbean.start();
// }
}