org.opennms.netmgt.capsd
Class AbstractTcpPlugin

java.lang.Object
  extended by org.opennms.netmgt.capsd.AbstractPlugin
      extended by org.opennms.netmgt.capsd.AbstractTcpPlugin
All Implemented Interfaces:
Plugin
Direct Known Subclasses:
CitrixPlugin, DominoIIOPPlugin, FtpPlugin, HttpPlugin, ImapPlugin

public abstract class AbstractTcpPlugin
extends AbstractPlugin

Implements the basic functionality of a Tcp based servicethat can be discovered by OpenNMS. It extends the AbstractPlugin class and provides methods for creating the sockets and dealing with timeouts and reteries.

Author:
Matt Brozowski

Constructor Summary
protected AbstractTcpPlugin(String protocol, int defaultTimeout, int defaultRetry)
           
protected AbstractTcpPlugin(String protocol, int defaultPort, int defaultTimeout, int defaultRetry)
           
 
Method Summary
protected  boolean checkConnection(ConnectionConfig config)
           Test to see if the passed host-port pair is the endpoint for an Citrix server.
protected abstract  boolean checkProtocol(Socket socket, ConnectionConfig config)
           
protected  void closeSocket(Socket socket, ConnectionConfig config)
           
protected  ConnectionConfig createConnectionConfig(InetAddress address, int port)
           
protected  List<ConnectionConfig> getConnectionConfigList(Map<String,Object> qualifiers, InetAddress address)
           
protected  int getKeyedInteger(Map<String,Object> qualifiers, String key, int defaultVal)
           
protected  int[] getKeyedIntegerArray(Map<String,Object> qualifiers, String key, int[] defaultVal)
           
 String getPluginName()
           
 String getProtocolName()
          Returns the name of the protocol that this plugin checks on the target system for support.
 boolean isProtocolSupported(InetAddress address)
          Returns true if the protocol defined by this plugin is supported.
 boolean isProtocolSupported(InetAddress address, Map<String,Object> qualifiers)
          Returns true if the protocol defined by this plugin is supported.
protected  void populateConnectionConfig(ConnectionConfig config, Map<String,Object> qualifiers)
           
protected  boolean preconnectCheck(ConnectionConfig config)
           
protected  void saveConfig(Map<String,Object> qualifiers, ConnectionConfig config)
           
protected  void saveKeyedInteger(Map<String,Object> qualifiers, String key, int value)
           
 void setPluginName(String pluginName)
           
protected  Socket wrapSocket(Socket socket, ConnectionConfig config)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractTcpPlugin

protected AbstractTcpPlugin(String protocol,
                            int defaultTimeout,
                            int defaultRetry)

AbstractTcpPlugin

protected AbstractTcpPlugin(String protocol,
                            int defaultPort,
                            int defaultTimeout,
                            int defaultRetry)
Method Detail

checkConnection

protected final boolean checkConnection(ConnectionConfig config)

Test to see if the passed host-port pair is the endpoint for an Citrix server. If there is an Citrix server at that destination then a value of true is returned from the method. Otherwise a false value is returned to the caller.

Parameters:
config -
Returns:
True if server supports Citrix on the specified port, false otherwise

closeSocket

protected void closeSocket(Socket socket,
                           ConnectionConfig config)

checkProtocol

protected abstract boolean checkProtocol(Socket socket,
                                         ConnectionConfig config)
                                  throws Exception
Throws:
Exception

createConnectionConfig

protected ConnectionConfig createConnectionConfig(InetAddress address,
                                                  int port)

getConnectionConfigList

protected List<ConnectionConfig> getConnectionConfigList(Map<String,Object> qualifiers,
                                                         InetAddress address)

getKeyedInteger

protected final int getKeyedInteger(Map<String,Object> qualifiers,
                                    String key,
                                    int defaultVal)

getKeyedIntegerArray

protected final int[] getKeyedIntegerArray(Map<String,Object> qualifiers,
                                           String key,
                                           int[] defaultVal)

getPluginName

public final String getPluginName()
Returns:
Returns the pluginName.

getProtocolName

public final String getProtocolName()
Returns the name of the protocol that this plugin checks on the target system for support.

Specified by:
getProtocolName in interface Plugin
Specified by:
getProtocolName in class AbstractPlugin
Returns:
The protocol name for this plugin.

isProtocolSupported

public final boolean isProtocolSupported(InetAddress address)
Returns true if the protocol defined by this plugin is supported. If the protocol is not supported then a false value is returned to the caller.

Specified by:
isProtocolSupported in interface Plugin
Specified by:
isProtocolSupported in class AbstractPlugin
Parameters:
address - The address to check for support.
Returns:
True if the protocol is supported by the address.

isProtocolSupported

public final boolean isProtocolSupported(InetAddress address,
                                         Map<String,Object> qualifiers)
Returns true if the protocol defined by this plugin is supported. If the protocol is not supported then a false value is returned to the caller. The qualifier map passed to the method is used by the plugin to return additional information by key-name. These key-value pairs can be added to service events if needed.

Specified by:
isProtocolSupported in interface Plugin
Specified by:
isProtocolSupported in class AbstractPlugin
Parameters:
address - The address to check for support.
qualifiers - The map where qualification are set by the plugin.
Returns:
True if the protocol is supported by the address.

populateConnectionConfig

protected void populateConnectionConfig(ConnectionConfig config,
                                        Map<String,Object> qualifiers)

preconnectCheck

protected boolean preconnectCheck(ConnectionConfig config)

saveConfig

protected void saveConfig(Map<String,Object> qualifiers,
                          ConnectionConfig config)

saveKeyedInteger

protected final void saveKeyedInteger(Map<String,Object> qualifiers,
                                      String key,
                                      int value)

setPluginName

public final void setPluginName(String pluginName)
Parameters:
pluginName - The pluginName to set.

wrapSocket

protected Socket wrapSocket(Socket socket,
                            ConnectionConfig config)
                     throws Exception
Throws:
Exception


Copyright © 2009. All Rights Reserved.