Package org.frankframework.filesystem
Class AbstractFileSystemSender<F,S extends IBasicFileSystem<F>>
java.lang.Object
org.frankframework.senders.AbstractSender
org.frankframework.senders.AbstractSenderWithParameters
org.frankframework.filesystem.AbstractFileSystemSender<F,S>
- All Implemented Interfaces:
FrankElement
,HasApplicationContext
,HasName
,HasPhysicalDestination
,IConfigurable
,IScopeProvider
,ISender
,ISenderWithParameters
,IWithParameters
,NameAware
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
,org.springframework.context.Lifecycle
- Direct Known Subclasses:
AmazonS3Sender
,ExchangeFileSystemSender
,FileSystemSenderWithAttachments
,FtpFileSystemSender
,ImapSender
,LocalFileSystemSender
,Samba1Sender
,Samba2Sender
,SftpFileSystemSender
@EnterpriseIntegrationPattern(ENDPOINT)
@Forward(name="fileNotFound",description="if the input file was expected to exist, but was not found") @Forward(name="folderNotFound",description="if the folder does not exist") @Forward(name="fileAlreadyExists",description="if a file that should have been created as new already exists, or if a file already exists when it should have been created as folder") @Forward(name="folderAlreadyExists",description="if a folder is to be created that already exists")
public abstract class AbstractFileSystemSender<F,S extends IBasicFileSystem<F>>
extends AbstractSenderWithParameters
implements HasPhysicalDestination
Base class for Senders that use a
FileSystem
.- Author:
- Gerrit van Brakel
- See Also:
- Specific parameters
- action Overrides attribute
action
., filename Overrides attributefilename
. If not present, the input message is used., destination Destination for actionrename
andmove
. Overrides attributedestination
., contents Content for actionwrite
andappend
., inputFolder Folder for actionslist
,mkdir
andrmdir
. This is a sub folder of baseFolder. Overrides attributeinputFolder
. If not present, the input message is used., typeFilter Filter for actionlist
. SpecifyFILES_ONLY
,FOLDERS_ONLY
orFILES_AND_FOLDERS
. By default, only files are listed.
-
Field Summary
Fields inherited from class org.frankframework.senders.AbstractSenderWithParameters
parameterNamesMustBeUnique, paramList
Fields inherited from class org.frankframework.senders.AbstractSender
log
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addActions
(List<FileSystemActor.FileSystemAction> specificActions) void
Configure this component.sendMessage
(Message message, PipeLineSession session) Send a message to some destination (as configured in the Sender object).void
void
setCharset
(String charset) void
setCreateFolder
(boolean createFolder) void
setDeleteEmptyFolder
(boolean deleteEmptyFolder) void
setDestination
(String destination) void
setExcludeWildcard
(String excludeWildcard) void
setFilename
(String filename) void
setFileSystem
(S fileSystem) void
setInputFolder
(String inputFolder) void
setNumberOfBackups
(int numberOfBackups) void
setOutputFormat
(DocumentFormat outputFormat) void
setOverwrite
(boolean overwrite) void
setRemoveNonEmptyFolder
(boolean removeNonEmptyFolder) void
setRotateDays
(int rotateDays) void
setRotateSize
(int rotateSize) void
setTypeFilter
(TypeFilter typeFilter) void
setWildcard
(String wildcard) void
setWriteLineSeparator
(boolean writeLineSeparator) void
start()
This method will be called to start the sender.void
stop()
Stop/close the sender and deallocate resources.Methods inherited from class org.frankframework.senders.AbstractSenderWithParameters
addParameter, checkStringAttributeOrParameter, consumesSessionVariable, getParameterList, getParameterOverriddenAttributeValue, getParameterOverriddenAttributeValue, getParameterValueList
Methods inherited from class org.frankframework.senders.AbstractSender
createBean, getLogPrefix, getName, isRunning, setApplicationContext, setName
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContext
Methods inherited from interface org.frankframework.core.HasApplicationContext
getApplicationContext, getConfigurationClassLoader
Methods inherited from interface org.frankframework.core.ISender
isSynchronous, sendMessageOrThrow
-
Constructor Details
-
AbstractFileSystemSender
public AbstractFileSystemSender()
-
-
Method Details
-
configure
Description copied from interface:IConfigurable
Configure this component.configure()
is called once at startup of the framework in the configure method of the owner of thisIConfigurable
. Purpose of this method is to check whether the static configuration of the object is correct. As much as possible class-instantiating should take place in theconfigure()
, to improve performance.In the case of a container, this will propagate the configure signal to all components that apply.
- Specified by:
configure
in interfaceIConfigurable
- Overrides:
configure
in classAbstractSenderWithParameters
- Throws:
ConfigurationException
- in case it was not able to configure the component.
-
start
public void start()Description copied from interface:ISender
This method will be called to start the sender. After this method is called the sendMessage method may be called. Purpose of this method is to reduce creating connections to databases etc. in thesendMessage()
method.- Specified by:
start
in interfaceISender
- Specified by:
start
in interfaceorg.springframework.context.Lifecycle
- Overrides:
start
in classAbstractSender
-
stop
public void stop()Description copied from interface:ISender
Stop/close the sender and deallocate resources.- Specified by:
stop
in interfaceISender
- Specified by:
stop
in interfaceorg.springframework.context.Lifecycle
- Overrides:
stop
in classAbstractSender
-
sendMessage
@Nonnull public SenderResult sendMessage(@Nonnull Message message, @Nonnull PipeLineSession session) throws SenderException, TimeoutException Description copied from interface:ISender
Send a message to some destination (as configured in the Sender object). This method may only be called after theconfigure()
method is called.The following table shows the difference between synchronous and a-synchronous senders:
synchronous a-synchronous ISender.isSynchronous()
returnstrue
false
return value of sendMessage()
isthe reply-message the messageId of the message sent the correlationID specified with sendMessage()
may be ignored is sent with the message a {link TimeOutException} may be thrown if a timeout occurs waiting for a reply should not be expected Multiple objects may try to call this method at the same time, from different threads. Implementations of this method should therefore be thread-safe, or
synchronized
.- Specified by:
sendMessage
in interfaceISender
- Throws:
SenderException
TimeoutException
-
getPhysicalDestinationName
- Specified by:
getPhysicalDestinationName
in interfaceHasPhysicalDestination
-
getDomain
- Specified by:
getDomain
in interfaceHasPhysicalDestination
-
setFileSystem
-
getFileSystem
-
addActions
-
setAction
-
getAction
-
setFilename
-
setDestination
-
setInputFolder
-
setCreateFolder
-
setOverwrite
-
setRotateDays
-
setRotateSize
-
setNumberOfBackups
-
setWildcard
-
setExcludeWildcard
-
setRemoveNonEmptyFolder
-
setWriteLineSeparator
-
setCharset
-
setDeleteEmptyFolder
-
setOutputFormat
-
setTypeFilter
-