Package org.pentaho.di.job.entries.ftp
Class JobEntryFTP
- java.lang.Object
-
- org.pentaho.di.job.entry.JobEntryBase
-
- org.pentaho.di.job.entries.ftp.JobEntryFTP
-
- All Implemented Interfaces:
Cloneable
,org.pentaho.di.core.AttributesInterface
,org.pentaho.di.core.CheckResultSourceInterface
,org.pentaho.di.core.ExtensionDataInterface
,org.pentaho.di.core.logging.LoggingObjectInterface
,org.pentaho.di.core.logging.LoggingObjectLifecycleInterface
,org.pentaho.di.core.variables.VariableSpace
,JobEntryInterface
,ResourceHolderInterface
public class JobEntryFTP extends JobEntryBase implements Cloneable, JobEntryInterface
This defines an FTP job entry.- Since:
- 05-11-2003
- Author:
- Matt
-
-
Field Summary
Fields Modifier and Type Field Description int
ifFileExists
int
ifFileExistsCreateUniq
int
ifFileExistsFail
int
ifFileExistsSkip
String
SifFileExists
String
SifFileExistsCreateUniq
String
SifFileExistsFail
String
SifFileExistsSkip
String
SUCCESS_IF_AT_LEAST_X_FILES_DOWNLOADED
String
SUCCESS_IF_ERRORS_LESS
String
SUCCESS_IF_NO_ERRORS
-
Fields inherited from class org.pentaho.di.job.entry.JobEntryBase
attributesMap, containerObjectId, entryStepSetVariablesMap, extensionDataMap, log, metaStore, parentJob, parentJobMeta, rep, variables
-
-
Constructor Summary
Constructors Constructor Description JobEntryFTP()
JobEntryFTP(String n)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
check(List<org.pentaho.di.core.CheckResultInterface> remarks, JobMeta jobMeta, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore)
Allows JobEntry objects to check themselves for consistencyObject
clone()
This method is called when a job entry is duplicated in Spoon.boolean
evaluates()
This method must return true if the job entry supports the true/false outgoing hops.org.pentaho.di.core.Result
execute(org.pentaho.di.core.Result previousResult, int nr)
Execute the job entry.String
getControlEncoding()
Get the control encoding to be used for ftp'ingString
getDateTimeFormat()
String
getFtpDirectory()
protected InetAddress
getInetAddress(String realServername)
String
getLimit()
String
getMoveToDirectory()
String
getPassword()
String
getPort()
String
getProxyHost()
String
getProxyPassword()
String
getProxyPort()
String
getProxyUsername()
boolean
getRemove()
List<ResourceReference>
getResourceDependencies(JobMeta jobMeta)
Gets a list of all the resource dependencies that the step is depending on.String
getServerName()
String
getSocksProxyHost()
String
getSocksProxyPassword()
String
getSocksProxyPort()
String
getSocksProxyUsername()
String
getSuccessCondition()
String
getTargetDirectory()
int
getTimeout()
String
getUserName()
String
getWildcard()
String
getXML()
This method is called by PDI whenever a job entry needs to serialize its settings to XML.protected void
hookInOtherParsers(com.enterprisedt.net.ftp.FTPClient ftpClient)
Hook in known parsers, and then those that have been specified in the variable ftp.file.parser.class.namesprotected com.enterprisedt.net.ftp.FTPClient
initFTPClient()
boolean
isActiveConnection()
boolean
isAddDateBeforeExtension()
boolean
isAddToResult()
boolean
isBinaryMode()
boolean
isCreateMoveFolder()
boolean
isDateInFilename()
boolean
isMoveFiles()
boolean
isOnlyGettingNewFiles()
boolean
isSpecifyFormat()
boolean
isTimeInFilename()
void
loadRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_jobentry, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers)
This method is called by PDI whenever a job entry needs to read its configuration from a PDI repository.void
loadXML(Node entrynode, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep, org.pentaho.metastore.api.IMetaStore metaStore)
This method is called by PDI whenever a job entry needs to read its settings from XML.protected boolean
needsDownload(String filename)
See if the filename on the FTP server needs downloading.String
normalizePath(String path)
normalize / to \ and remove trailing slashes from a pathvoid
saveRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_job)
This method is called by PDI whenever a job entry needs to save its settings to a PDI repository.void
setActiveConnection(boolean passive)
void
setAddDateBeforeExtension(boolean AddDateBeforeExtension)
void
setAddToResult(boolean isaddresultin)
void
setBinaryMode(boolean binaryMode)
void
setControlEncoding(String encoding)
Set the encoding to be used for ftp'ing.void
setCreateMoveFolder(boolean createmovefolderin)
void
setDateInFilename(boolean adddate)
void
setDateTimeFormat(String date_time_format)
void
setFtpDirectory(String directory)
void
setLimit(String nr_limitin)
void
setMoveFiles(boolean movefilesin)
void
setMoveToDirectory(String movetoin)
void
setOnlyGettingNewFiles(boolean onlyGettingNewFilesin)
void
setPassword(String password)
void
setPort(String port)
void
setProxyHost(String proxyHost)
void
setProxyPassword(String proxyPassword)
void
setProxyPort(String proxyPort)
void
setProxyUsername(String proxyUsername)
void
setRemove(boolean remove)
void
setServerName(String serverName)
void
setSocksProxyHost(String socksProxyHost)
void
setSocksProxyPassword(String socksProxyPassword)
void
setSocksProxyPort(String socksProxyPort)
void
setSocksProxyUsername(String socksPoxyUsername)
void
setSpecifyFormat(boolean SpecifyFormat)
void
setSuccessCondition(String success_condition)
void
setTargetDirectory(String targetDirectory)
void
setTimeInFilename(boolean addtime)
void
setTimeout(int timeout)
void
setUserName(String userName)
void
setWildcard(String wildcard)
-
Methods inherited from class org.pentaho.di.job.entry.JobEntryBase
addDatetimeToFilename, check, clear, copyVariablesFrom, environmentSubstitute, environmentSubstitute, equals, exportResources, exportResources, fieldSubstitute, getAttribute, getAttributes, getAttributesMap, getBooleanValueOfVariable, getContainerObjectId, getDescription, getDialogClassName, getEntryStepSetVariable, getEntryStepSetVariablesMap, getExtensionDataMap, getFilename, getHolderType, getLogChannel, getLogChannelId, getLogLevel, getMetaStore, getName, getObjectCopy, getObjectId, getObjectName, getObjectRevision, getObjectType, getParent, getParentJob, getParentJobMeta, getParentVariableSpace, getPluginId, getRealFilename, getReferencedObjectDescriptions, getRegistrationDate, getRepository, getRepositoryDirectory, getSQLStatements, getSQLStatements, getSQLStatements, getTypeDesc, getTypeId, getUsedDatabaseConnections, getVariable, getVariable, getVariables, hasChanged, hashCode, hasRepositoryReferences, initializeVariablesFrom, injectVariables, isBasic, isDebug, isDetailed, isDummy, isEvaluation, isForcingSeparateLogging, isFTP, isGatheringMetrics, isHTTP, isJob, isMail, isReferencedObjectEnabled, isRowlevel, isSFTP, isShell, isSpecial, isStart, isTransformation, isUnconditional, listVariables, loadReferencedObject, loadReferencedObject, loadRep, loadXML, loadXML, logBasic, logBasic, logDebug, logDebug, logDetailed, logDetailed, logError, logError, logError, logMinimal, logMinimal, logRowlevel, logRowlevel, lookupRepositoryReferences, parseRepositoryObjects, resetErrorsBeforeExecution, saveRep, setAttribute, setAttributes, setAttributesMap, setChanged, setChanged, setContainerObjectId, setDescription, setEntryStepSetVariable, setForcingSeparateLogging, setGatheringMetrics, setID, setLogLevel, setMetaStore, setName, setObjectId, setParentJob, setParentJobMeta, setParentVariableSpace, setPluginId, setRepository, setTypeId, setVariable, shareVariablesWith, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.pentaho.di.job.entry.JobEntryInterface
check, clear, exportResources, exportResources, getDescription, getDialogClassName, getFilename, getLogChannel, getName, getObjectId, getParentJob, getParentJobMeta, getPluginId, getRealFilename, getReferencedObjectDescriptions, getSQLStatements, getSQLStatements, getSQLStatements, getTypeId, getUsedDatabaseConnections, hasChanged, hasRepositoryReferences, isDummy, isEvaluation, isJob, isMail, isReferencedObjectEnabled, isShell, isSpecial, isStart, isTransformation, isUnconditional, loadReferencedObject, loadReferencedObject, loadRep, loadXML, lookupRepositoryReferences, resetErrorsBeforeExecution, saveRep, setChanged, setChanged, setDescription, setMetaStore, setName, setObjectId, setParentJob, setParentJobMeta, setPluginId, setRepository
-
-
-
-
Field Detail
-
ifFileExistsSkip
public int ifFileExistsSkip
-
SifFileExistsSkip
public String SifFileExistsSkip
-
ifFileExistsCreateUniq
public int ifFileExistsCreateUniq
-
SifFileExistsCreateUniq
public String SifFileExistsCreateUniq
-
ifFileExistsFail
public int ifFileExistsFail
-
SifFileExistsFail
public String SifFileExistsFail
-
ifFileExists
public int ifFileExists
-
SifFileExists
public String SifFileExists
-
SUCCESS_IF_AT_LEAST_X_FILES_DOWNLOADED
public String SUCCESS_IF_AT_LEAST_X_FILES_DOWNLOADED
-
SUCCESS_IF_ERRORS_LESS
public String SUCCESS_IF_ERRORS_LESS
-
SUCCESS_IF_NO_ERRORS
public String SUCCESS_IF_NO_ERRORS
-
-
Constructor Detail
-
JobEntryFTP
public JobEntryFTP(String n)
-
JobEntryFTP
public JobEntryFTP()
-
-
Method Detail
-
clone
public Object clone()
Description copied from class:JobEntryBase
This method is called when a job entry is duplicated in Spoon. It needs to return a deep copy of this job entry object. It is essential that the implementing class creates proper deep copies if the job entry configuration is stored in modifiable objects, such as lists or custom helper objects.- Specified by:
clone
in interfaceJobEntryInterface
- Overrides:
clone
in classJobEntryBase
- Returns:
- a clone of the object
-
getXML
public String getXML()
Description copied from class:JobEntryBase
This method is called by PDI whenever a job entry needs to serialize its settings to XML. It is called when saving a job in Spoon. The method returns an XML string, containing the serialized settings. The string contains a series of XML tags, typically one tag per setting. The helper class org.pentaho.di.core.xml.XMLHandler is typically used to construct the XML string.- Specified by:
getXML
in interfaceJobEntryInterface
- Overrides:
getXML
in classJobEntryBase
- Returns:
- the xml representation of the job entry
-
loadXML
public void loadXML(Node entrynode, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.KettleXMLException
Description copied from interface:JobEntryInterface
This method is called by PDI whenever a job entry needs to read its settings from XML. The XML node containing the job entry's settings is passed in as an argument. Again, the helper class org.pentaho.di.core.xml.XMLHandler is typically used to conveniently read the settings from the XML node.- Specified by:
loadXML
in interfaceJobEntryInterface
- Overrides:
loadXML
in classJobEntryBase
- Parameters:
entrynode
- the top-level XML nodedatabases
- the list of databasesslaveServers
- the list of slave serversrep
- the repository objectmetaStore
- The metaStore to optionally load from.- Throws:
org.pentaho.di.core.exception.KettleXMLException
- if any errors occur during the loading of the XML
-
loadRep
public void loadRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_jobentry, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers) throws org.pentaho.di.core.exception.KettleException
Description copied from interface:JobEntryInterface
This method is called by PDI whenever a job entry needs to read its configuration from a PDI repository. The job entry id given in the arguments should be used as the identifier when using the repository's serialization methods.- Specified by:
loadRep
in interfaceJobEntryInterface
- Overrides:
loadRep
in classJobEntryBase
- Parameters:
rep
- the repository objectmetaStore
- the MetaStore to useid_jobentry
- the id of the job entrydatabases
- the list of databasesslaveServers
- the list of slave servers- Throws:
org.pentaho.di.core.exception.KettleException
- if any errors occur during the load
-
saveRep
public void saveRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_job) throws org.pentaho.di.core.exception.KettleException
Description copied from interface:JobEntryInterface
This method is called by PDI whenever a job entry needs to save its settings to a PDI repository. The repository object passed in as the first argument provides a convenient set of methods for serializing job entry settings. When calling repository serialization methods, job id and job entry id are required. The job id is passed in to saveRep() as an argument, and the job entry id can be obtained by a call to getObjectId() inherited from the base class.- Specified by:
saveRep
in interfaceJobEntryInterface
- Overrides:
saveRep
in classJobEntryBase
- Parameters:
rep
- the repositorymetaStore
- the MetaStore to useid_job
- the id_job- Throws:
org.pentaho.di.core.exception.KettleException
- if any errors occur during the save
-
setLimit
public void setLimit(String nr_limitin)
-
getLimit
public String getLimit()
-
setSuccessCondition
public void setSuccessCondition(String success_condition)
-
getSuccessCondition
public String getSuccessCondition()
-
setCreateMoveFolder
public void setCreateMoveFolder(boolean createmovefolderin)
-
isCreateMoveFolder
public boolean isCreateMoveFolder()
-
setAddDateBeforeExtension
public void setAddDateBeforeExtension(boolean AddDateBeforeExtension)
-
isAddDateBeforeExtension
public boolean isAddDateBeforeExtension()
-
setAddToResult
public void setAddToResult(boolean isaddresultin)
-
isAddToResult
public boolean isAddToResult()
-
setDateInFilename
public void setDateInFilename(boolean adddate)
-
isDateInFilename
public boolean isDateInFilename()
-
setTimeInFilename
public void setTimeInFilename(boolean addtime)
-
isTimeInFilename
public boolean isTimeInFilename()
-
isSpecifyFormat
public boolean isSpecifyFormat()
-
setSpecifyFormat
public void setSpecifyFormat(boolean SpecifyFormat)
-
getDateTimeFormat
public String getDateTimeFormat()
-
setDateTimeFormat
public void setDateTimeFormat(String date_time_format)
-
isMoveFiles
public boolean isMoveFiles()
- Returns:
- Returns the movefiles.
-
setMoveFiles
public void setMoveFiles(boolean movefilesin)
- Parameters:
movefilesin
- The movefiles to set.
-
getMoveToDirectory
public String getMoveToDirectory()
- Returns:
- Returns the movetodirectory.
-
setMoveToDirectory
public void setMoveToDirectory(String movetoin)
- Parameters:
movetoin
- The movetodirectory to set.
-
isBinaryMode
public boolean isBinaryMode()
- Returns:
- Returns the binaryMode.
-
setBinaryMode
public void setBinaryMode(boolean binaryMode)
- Parameters:
binaryMode
- The binaryMode to set.
-
getFtpDirectory
public String getFtpDirectory()
- Returns:
- Returns the directory.
-
setFtpDirectory
public void setFtpDirectory(String directory)
- Parameters:
directory
- The directory to set.
-
getPassword
public String getPassword()
- Returns:
- Returns the password.
-
setPassword
public void setPassword(String password)
- Parameters:
password
- The password to set.
-
getServerName
public String getServerName()
- Returns:
- Returns the serverName.
-
setServerName
public void setServerName(String serverName)
- Parameters:
serverName
- The serverName to set.
-
getPort
public String getPort()
- Returns:
- Returns the port.
-
setPort
public void setPort(String port)
- Parameters:
port
- The port to set.
-
getUserName
public String getUserName()
- Returns:
- Returns the userName.
-
setUserName
public void setUserName(String userName)
- Parameters:
userName
- The userName to set.
-
getWildcard
public String getWildcard()
- Returns:
- Returns the wildcard.
-
setWildcard
public void setWildcard(String wildcard)
- Parameters:
wildcard
- The wildcard to set.
-
getTargetDirectory
public String getTargetDirectory()
- Returns:
- Returns the targetDirectory.
-
setTargetDirectory
public void setTargetDirectory(String targetDirectory)
- Parameters:
targetDirectory
- The targetDirectory to set.
-
setTimeout
public void setTimeout(int timeout)
- Parameters:
timeout
- The timeout to set.
-
getTimeout
public int getTimeout()
- Returns:
- Returns the timeout.
-
setRemove
public void setRemove(boolean remove)
- Parameters:
remove
- The remove to set.
-
getRemove
public boolean getRemove()
- Returns:
- Returns the remove.
-
isOnlyGettingNewFiles
public boolean isOnlyGettingNewFiles()
- Returns:
- Returns the onlyGettingNewFiles.
-
setOnlyGettingNewFiles
public void setOnlyGettingNewFiles(boolean onlyGettingNewFilesin)
- Parameters:
onlyGettingNewFiles
- The onlyGettingNewFiles to set.
-
getControlEncoding
public String getControlEncoding()
Get the control encoding to be used for ftp'ing- Returns:
- the used encoding
-
setControlEncoding
public void setControlEncoding(String encoding)
Set the encoding to be used for ftp'ing. This determines how names are translated in dir e.g. It does impact the contents of the files being ftp'ed.- Parameters:
encoding
- The encoding to be used.
-
getProxyHost
public String getProxyHost()
- Returns:
- Returns the hostname of the ftp-proxy.
-
setProxyHost
public void setProxyHost(String proxyHost)
- Parameters:
proxyHost
- The hostname of the proxy.
-
setProxyPassword
public void setProxyPassword(String proxyPassword)
- Parameters:
proxyPassword
- The password which is used to authenticate at the socks proxy.
-
getProxyPassword
public String getProxyPassword()
- Returns:
- Returns the password which is used to authenticate at the proxy.
-
setSocksProxyPassword
public void setSocksProxyPassword(String socksProxyPassword)
- Parameters:
proxyPassword
- The password which is used to authenticate at the proxy.
-
getSocksProxyPassword
public String getSocksProxyPassword()
- Returns:
- Returns the password which is used to authenticate at the socks proxy.
-
setProxyPort
public void setProxyPort(String proxyPort)
- Parameters:
proxyPort
- The port of the ftp-proxy.
-
getProxyPort
public String getProxyPort()
- Returns:
- Returns the port of the ftp-proxy.
-
getProxyUsername
public String getProxyUsername()
- Returns:
- Returns the username which is used to authenticate at the proxy.
-
setProxyUsername
public void setProxyUsername(String proxyUsername)
- Parameters:
proxyUsername
- The username which is used to authenticate at the proxy.
-
getSocksProxyUsername
public String getSocksProxyUsername()
- Returns:
- Returns the username which is used to authenticate at the socks proxy.
-
setSocksProxyUsername
public void setSocksProxyUsername(String socksPoxyUsername)
- Parameters:
proxyUsername
- The username which is used to authenticate at the socks proxy.
-
setSocksProxyHost
public void setSocksProxyHost(String socksProxyHost)
- Parameters:
socksProxyHost
- The host name of the socks proxy host
-
getSocksProxyHost
public String getSocksProxyHost()
- Returns:
- The host name of the socks proxy host
-
setSocksProxyPort
public void setSocksProxyPort(String socksProxyPort)
- Parameters:
socksProxyPort
- The port number the socks proxy host is using
-
getSocksProxyPort
public String getSocksProxyPort()
- Returns:
- The port number the socks proxy host is using
-
initFTPClient
protected com.enterprisedt.net.ftp.FTPClient initFTPClient()
-
getInetAddress
protected InetAddress getInetAddress(String realServername) throws UnknownHostException
- Throws:
UnknownHostException
-
execute
public org.pentaho.di.core.Result execute(org.pentaho.di.core.Result previousResult, int nr)
Description copied from interface:JobEntryInterface
Execute the job entry. The previous result and number of rows are provided to the method for the purpose of chaining job entries, transformations, etc.- Specified by:
execute
in interfaceJobEntryInterface
- Parameters:
previousResult
- the previous resultnr
- the number of rows- Returns:
- the Result object from execution of this job entry
-
normalizePath
public String normalizePath(String path) throws Exception
normalize / to \ and remove trailing slashes from a path- Parameters:
path
-- Returns:
- normalized path
- Throws:
Exception
-
evaluates
public boolean evaluates()
Description copied from class:JobEntryBase
This method must return true if the job entry supports the true/false outgoing hops. For JobEntryBase, this method always returns false- Specified by:
evaluates
in interfaceJobEntryInterface
- Overrides:
evaluates
in classJobEntryBase
- Returns:
- false
-
needsDownload
protected boolean needsDownload(String filename)
See if the filename on the FTP server needs downloading. The default is to check the presence of the file in the target directory. If you need other functionality, extend this class and build it into a plugin.- Parameters:
filename
- The local filename to checkremoteFileSize
- The size of the remote file- Returns:
- true if the file needs downloading
-
isActiveConnection
public boolean isActiveConnection()
- Returns:
- the activeConnection
-
setActiveConnection
public void setActiveConnection(boolean passive)
- Parameters:
activeConnection
- the activeConnection to set
-
check
public void check(List<org.pentaho.di.core.CheckResultInterface> remarks, JobMeta jobMeta, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore)
Description copied from class:JobEntryBase
Allows JobEntry objects to check themselves for consistency- Specified by:
check
in interfaceJobEntryInterface
- Overrides:
check
in classJobEntryBase
- Parameters:
remarks
- List of CheckResult objects indicating consistency statusjobMeta
- the metadata object for the job entryspace
- the variable space to resolve string expressions with variables withrepository
- the repository to load Kettle objects frommetaStore
- the MetaStore to load common elements from
-
getResourceDependencies
public List<ResourceReference> getResourceDependencies(JobMeta jobMeta)
Description copied from class:JobEntryBase
Gets a list of all the resource dependencies that the step is depending on. In JobEntryBase, this method returns an empty resource dependency list.- Specified by:
getResourceDependencies
in interfaceJobEntryInterface
- Overrides:
getResourceDependencies
in classJobEntryBase
- Returns:
- an empty list of ResourceReferences
- See Also:
ResourceReference
-
hookInOtherParsers
protected void hookInOtherParsers(com.enterprisedt.net.ftp.FTPClient ftpClient) throws com.enterprisedt.net.ftp.FTPException, IOException
Hook in known parsers, and then those that have been specified in the variable ftp.file.parser.class.names- Parameters:
ftpClient
-- Throws:
com.enterprisedt.net.ftp.FTPException
IOException
-
-