com.ibm.di.protocols.rxa
Class ConnectionImpl

java.lang.Object
  extended by com.ibm.di.protocols.rxa.ConnectionImpl
All Implemented Interfaces:
Connection
Direct Known Subclasses:
AS400Connection, RexecConnection, RSHConnection, SSHConnection, WinConnection

public abstract class ConnectionImpl
extends Object
implements Connection

This class encapsulates the RXA library's Connection related objects


Field Summary
static String AS400_PROXY
          String for the Proxy parameter to be used if required for AS400 connection
static String AS400_RUNPROG
          String for the Secondary mechanism parameter for executing AS400 Programs
static String AS400_SSL
          String for the Enable or disable SSL parameter over an AS400 connection
protected  String as400Proxy
          This parameter defines an AS400 proxy server if so required
protected  boolean as400RunProg
          An optional Remote CLFC parameter that defines the type of command execution to use for an AS400 (i5/OS) connection
protected  boolean as400SSL
          This parameter governs whether an SSL connection is enforced on the AS400 (i5/OS) connection
protected  String cmdArgsCharEncode
          The character encoding to use for AS400 command line arguments
static String COMMAND_RETURN_CODE
          String for Command Return Code Parameter
static String COMMAND_STD_ERROR
          String for Command Error Parameter
static String COMMAND_STD_OUTPUT
          String for Command Output Parameter
protected static String EMPTYSTRING
          Empty String
static String HANDLE_TEXT_FILE
          String for the Parameter to handle as text file
protected  String hostName
          The hostname (address) of the target machine.
static String HOSTNAME
          String for Hostname parameter of Remote Machine (target)
protected  int initial_timeout
          An optional Remote CLFC parameter that defines a timeout period for the initial connection to the target system.
static String INITIAL_TIMEOUT
          String for the Timeout parameter of the connection
protected  String keystore
          Full path to the file containing the keystore
static String KEYSTORE
          String for the keystore parameter to be used when connecting to the remote machine using the SSH protocol
protected  LogProxy lp
          Used for logging
protected  String parentDirToStdin
          Parent directory to the folder containing the stdin destination folder
protected  byte[] passphrase
          The passphrase that protects your private key, in the keystore specified by the Keystore Path parameter above
static String PASSPHRASE
          String for the passphrase parameter for the keystore
protected  byte[] password
          The password for the user (specified as Remote User) on the target machine.
static String PASSWORD
          String for the User password parameter to authenticate to the target
static String PATH
          String for the file path on the target
protected  int port
          The port to use to connect to the target machine
static String PORT
          String for the port parameter to be used when establishing connection with target
protected  String randomDir
          Path to random directory created
static String RECURSIVE_SEARCH
          String for the Timeout parameter of the connection
protected  Attribute rtnCodeAttr
          The return code from the executed command indicating the success of the requested operation
static String SOURCEPATH
          String for the Source file path
protected  Attribute stdErrorAttr
          The standard error from the executed command
protected  Attribute stdOutputAttr
          The standard output from the executed command
protected  int timeout
          The desired CPU timeout period in milliseconds
static String TIMEOUT
          String for the Timeout duration parameter for executing the command (ms)
protected  String userName
          The name of a user with Administrative privileges on the target machine
static String USERNAME
          String for the username paremeter to be used when connecting to target
 
Constructor Summary
ConnectionImpl(LogProxy log)
          ConnectionImpl Constructor
 
Method Summary
abstract  com.ibm.tivoli.remoteaccess.RemoteAccess beginSession()
          Begin a session with the target machine
 void createDir(String dir)
          Create a directory on the target machine
 String createRandomDir(String p)
          Create a random directory on the target machine
 void endSession()
          End the session with the target machine
 String getHost()
          Get the hostname of the target for the connection
 char getOSSeparator()
          Return the character that the target uses to separate path information
 com.ibm.tivoli.remoteaccess.RemoteAccess getRXAProtocol()
          Return the RXA Connection Object
abstract  String getType()
          Return this connection type
 String getUser()
          Get the username being used in the connection
 void initializeProps(Properties p)
          Initialize the properties of the connection
 boolean isExists(String path)
          Returns true/false to check a given file exists or not
 ArrayList<String> list(String path)
          Retrieves the list of files
 void receiveFile(String remotepath, String localpath)
          Receives the specified file from the target machine to a specified destination on the local machine
 void removeDir(String dir)
          Remove a directory on the target machine
 Entry runCommand(String c)
          Run the specified command on the target machine
 void setCmdArgsCharEncode(String enc)
          Sets encoding for the command arguments before executing the actual command
 void setHost(String s)
          Set the hostname of the target with which to connect
 void setRXAProtocol(com.ibm.tivoli.remoteaccess.RemoteAccess remote)
          Set the RXA connection object for this connection
 void setUser(String u)
          Set the username to be used when connecting to the target
 void transferFile(String localPath, String remotePath)
          Transfer the specified file from the local machine to a specified destination on the remote target
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hostName

protected String hostName
The hostname (address) of the target machine. This is a required parameter


userName

protected String userName
The name of a user with Administrative privileges on the target machine


password

protected byte[] password
The password for the user (specified as Remote User) on the target machine. This parameter may be optional in the case of SSH connections using a keystore, as well as for RSH connections


passphrase

protected byte[] passphrase
The passphrase that protects your private key, in the keystore specified by the Keystore Path parameter above


cmdArgsCharEncode

protected String cmdArgsCharEncode
The character encoding to use for AS400 command line arguments


keystore

protected String keystore
Full path to the file containing the keystore


timeout

protected int timeout
The desired CPU timeout period in milliseconds


port

protected int port
The port to use to connect to the target machine


as400SSL

protected boolean as400SSL
This parameter governs whether an SSL connection is enforced on the AS400 (i5/OS) connection


as400Proxy

protected String as400Proxy
This parameter defines an AS400 proxy server if so required


as400RunProg

protected boolean as400RunProg
An optional Remote CLFC parameter that defines the type of command execution to use for an AS400 (i5/OS) connection


initial_timeout

protected int initial_timeout
An optional Remote CLFC parameter that defines a timeout period for the initial connection to the target system. This has no effect on AS400 targets


COMMAND_RETURN_CODE

public static final String COMMAND_RETURN_CODE
String for Command Return Code Parameter

See Also:
Constant Field Values

COMMAND_STD_OUTPUT

public static final String COMMAND_STD_OUTPUT
String for Command Output Parameter

See Also:
Constant Field Values

COMMAND_STD_ERROR

public static final String COMMAND_STD_ERROR
String for Command Error Parameter

See Also:
Constant Field Values

HOSTNAME

public static final String HOSTNAME
String for Hostname parameter of Remote Machine (target)

See Also:
Constant Field Values

USERNAME

public static final String USERNAME
String for the username paremeter to be used when connecting to target

See Also:
Constant Field Values

PORT

public static final String PORT
String for the port parameter to be used when establishing connection with target

See Also:
Constant Field Values

PASSWORD

public static final String PASSWORD
String for the User password parameter to authenticate to the target

See Also:
Constant Field Values

PATH

public static final String PATH
String for the file path on the target

See Also:
Constant Field Values

SOURCEPATH

public static final String SOURCEPATH
String for the Source file path

See Also:
Constant Field Values

TIMEOUT

public static final String TIMEOUT
String for the Timeout duration parameter for executing the command (ms)

See Also:
Constant Field Values

KEYSTORE

public static final String KEYSTORE
String for the keystore parameter to be used when connecting to the remote machine using the SSH protocol

See Also:
Constant Field Values

PASSPHRASE

public static final String PASSPHRASE
String for the passphrase parameter for the keystore

See Also:
Constant Field Values

AS400_SSL

public static final String AS400_SSL
String for the Enable or disable SSL parameter over an AS400 connection

See Also:
Constant Field Values

AS400_PROXY

public static final String AS400_PROXY
String for the Proxy parameter to be used if required for AS400 connection

See Also:
Constant Field Values

AS400_RUNPROG

public static final String AS400_RUNPROG
String for the Secondary mechanism parameter for executing AS400 Programs

See Also:
Constant Field Values

HANDLE_TEXT_FILE

public static final String HANDLE_TEXT_FILE
String for the Parameter to handle as text file

See Also:
Constant Field Values

INITIAL_TIMEOUT

public static final String INITIAL_TIMEOUT
String for the Timeout parameter of the connection

See Also:
Constant Field Values

RECURSIVE_SEARCH

public static final String RECURSIVE_SEARCH
String for the Timeout parameter of the connection

See Also:
Constant Field Values

rtnCodeAttr

protected Attribute rtnCodeAttr
The return code from the executed command indicating the success of the requested operation


stdErrorAttr

protected Attribute stdErrorAttr
The standard error from the executed command


stdOutputAttr

protected Attribute stdOutputAttr
The standard output from the executed command


lp

protected LogProxy lp
Used for logging


parentDirToStdin

protected String parentDirToStdin
Parent directory to the folder containing the stdin destination folder


randomDir

protected String randomDir
Path to random directory created


EMPTYSTRING

protected static final String EMPTYSTRING
Empty String

See Also:
Constant Field Values
Constructor Detail

ConnectionImpl

public ConnectionImpl(LogProxy log)
ConnectionImpl Constructor

Parameters:
log - LogProxy for logging
Method Detail

initializeProps

public void initializeProps(Properties p)
Initialize the properties of the connection

Specified by:
initializeProps in interface Connection
Parameters:
p - Properties object containing the configurable connection attributes

beginSession

public abstract com.ibm.tivoli.remoteaccess.RemoteAccess beginSession()
                                                               throws RemoteConnectException
Begin a session with the target machine

Specified by:
beginSession in interface Connection
Returns:
RemoteAccess The RXA connection object connecting to the target
Throws:
RemoteConnectException

getType

public abstract String getType()
Return this connection type

Specified by:
getType in interface Connection
Returns:
String The connection protocol used for this connection. One of: WIN, REXEC, RSH, SSH

endSession

public void endSession()
End the session with the target machine

Specified by:
endSession in interface Connection

runCommand

public Entry runCommand(String c)
                 throws GeneralCLFCException
Run the specified command on the target machine

Specified by:
runCommand in interface Connection
Parameters:
c - String containing the command to be executed
Returns:
Entry containing the results from executing the command. It contains three attributes: command.out, command.error and command.returnCode.
Throws:
GeneralCLFCException

createRandomDir

public String createRandomDir(String p)
                       throws RemoteConnectException,
                              GeneralCLFCException
Create a random directory on the target machine

Specified by:
createRandomDir in interface Connection
Parameters:
p - The path to the parent directory where the random directory is to be created
Returns:
String specifying the path to the random directory that was created
Throws:
GeneralCLFCException
RemoteConnectException

createDir

public void createDir(String dir)
               throws GeneralCLFCException
Create a directory on the target machine

Specified by:
createDir in interface Connection
Parameters:
dir - Path of the folder to be created
Throws:
GeneralCLFCException - if the folder cannot be successfully created on the target

removeDir

public void removeDir(String dir)
               throws GeneralCLFCException
Remove a directory on the target machine

Specified by:
removeDir in interface Connection
Parameters:
dir - The path to the folder to be deleted
Throws:
GeneralCLFCException - if the folder cannot be successfully removed from the target

transferFile

public void transferFile(String localPath,
                         String remotePath)
                  throws GeneralCLFCException
Transfer the specified file from the local machine to a specified destination on the remote target

Specified by:
transferFile in interface Connection
Parameters:
localPath - Path to the source file on the local machine
remotePath - Path to where the file is to be stored on the remote machine
Throws:
GeneralCLFCException - if the transfer fails

receiveFile

public void receiveFile(String remotepath,
                        String localpath)
                 throws GeneralCLFCException
Receives the specified file from the target machine to a specified destination on the local machine

Specified by:
receiveFile in interface Connection
Parameters:
localPath - Path to the source file on the remote machine
remotePath - Path to where the file is to be stored on local machine
Throws:
GeneralCLFCException - if the transfer fails

isExists

public boolean isExists(String path)
                 throws GeneralCLFCException
Returns true/false to check a given file exists or not

Specified by:
isExists in interface Connection
Parameters:
path - path on the file
Returns:
true if the given file exists on the remote machine otherwise false
Throws:
GeneralCLFCException

list

public ArrayList<String> list(String path)
                       throws GeneralCLFCException
Retrieves the list of files

Specified by:
list in interface Connection
Parameters:
path - path on the remote machine
Throws:
GeneralCLFCException

getOSSeparator

public char getOSSeparator()
                    throws RemoteConnectException
Return the character that the target uses to separate path information

Specified by:
getOSSeparator in interface Connection
Returns:
char separator
Throws:
RemoteConnectException

getRXAProtocol

public com.ibm.tivoli.remoteaccess.RemoteAccess getRXAProtocol()
Return the RXA Connection Object

Specified by:
getRXAProtocol in interface Connection
Returns:
RemoteAccess connection object accessing the target

setHost

public void setHost(String s)
Set the hostname of the target with which to connect

Specified by:
setHost in interface Connection
Parameters:
s - The hostname of the target

getHost

public String getHost()
Get the hostname of the target for the connection

Specified by:
getHost in interface Connection
Returns:
String hostname

setUser

public void setUser(String u)
Set the username to be used when connecting to the target

Specified by:
setUser in interface Connection
Parameters:
u - Username

getUser

public String getUser()
Get the username being used in the connection

Specified by:
getUser in interface Connection
Returns:
String username

setRXAProtocol

public void setRXAProtocol(com.ibm.tivoli.remoteaccess.RemoteAccess remote)
Set the RXA connection object for this connection

Parameters:
remote - The protocol-specific connection object

setCmdArgsCharEncode

public void setCmdArgsCharEncode(String enc)
Sets encoding for the command arguments before executing the actual command

Specified by:
setCmdArgsCharEncode in interface Connection
Parameters:
enc - encoding to be used