Package org.frankframework.filesystem
Class AbstractFileSystemPipe<F,FS extends IBasicFileSystem<F>>
java.lang.Object
org.frankframework.core.TransactionAttributes
org.frankframework.pipes.AbstractPipe
org.frankframework.pipes.FixedForwardPipe
org.frankframework.filesystem.AbstractFileSystemPipe<F,FS>
- All Implemented Interfaces:
FrankElement
,HasApplicationContext
,HasName
,HasPhysicalDestination
,HasTransactionAttribute
,IConfigurable
,IForwardTarget
,IPipe
,IScopeProvider
,IWithParameters
,NameAware
,EventThrowing
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
,org.springframework.context.Lifecycle
- Direct Known Subclasses:
LocalFileSystemPipe
,Samba1Pipe
,Samba2Pipe
@Forward(name="fileNotFound",description="the input file was expected to exist, but was not found") @Forward(name="folderNotFound",description="the folder does not exist") @Forward(name="fileAlreadyExists",description="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="a folder is to be created that already exists.")
@EnterpriseIntegrationPattern(ENDPOINT)
public abstract class AbstractFileSystemPipe<F,FS extends IBasicFileSystem<F>>
extends FixedForwardPipe
implements HasPhysicalDestination
Base class for Pipes 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.pipes.AbstractPipe
parameterNamesMustBeUnique
Fields inherited from class org.frankframework.core.TransactionAttributes
log
Fields inherited from interface org.frankframework.core.IPipe
LONG_DURATION_MONITORING_EVENT, MESSAGE_SIZE_MONITORING_EVENT, PIPE_EXCEPTION_MONITORING_EVENT
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addActions
(List<FileSystemActor.FileSystemAction> specificActions) void
Checks for correct configuration of forward.doPipe
(Message message, PipeLineSession session) This is where the action takes place.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) protected void
setFileSystem
(FS 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()
Perform necessary action to start the pipe.void
stop()
Perform necessary actions to stop thePipe
.
For instance, closing JMS connections, DBMS connections etc.Methods inherited from class org.frankframework.pipes.FixedForwardPipe
getParameterValue, setIfParam, setIfValue, setOnlyIfSessionKey, setOnlyIfValue, setSkipOnEmptyInput, setUnlessSessionKey, setUnlessValue, skipPipe
Methods inherited from class org.frankframework.pipes.AbstractPipe
addForward, addParameter, consumesSessionVariable, createBean, findForward, getAdapter, getEventSourceName, getForwards, getParameterList, hasRegisteredForward, isRunning, registerEvent, setApplicationContext, setChompCharSize, setDurationThreshold, setElementToMove, setElementToMoveChain, setElementToMoveSessionKey, setEmptyInputReplacement, setGetInputFromFixedValue, setGetInputFromSessionKey, setHideRegex, setLocker, setLogIntermediaryResults, setMaxThreads, setName, setPreserveInput, setRemoveCompactMsgNamespaces, setRestoreMovedElements, setSecLogSessionKeys, setSizeStatistics, setStoreResultInSessionKey, setWriteToSecLog, sizeStatisticsEnabled, throwEvent
Methods inherited from class org.frankframework.core.TransactionAttributes
configureTransactionAttributes, isTransacted, isTransacted, setTransacted, setTransactionTimeout
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.frankframework.core.HasApplicationContext
getApplicationContext, getConfigurationClassLoader
Methods inherited from interface org.frankframework.core.HasTransactionAttribute
getTransactionAttribute, getTransactionTimeout, getTxDef, setTransactionAttribute
Methods inherited from interface org.frankframework.core.IForwardTarget
getName
Methods inherited from interface org.frankframework.core.IPipe
getChompCharSize, getDurationThreshold, getElementToMove, getElementToMoveChain, getElementToMoveSessionKey, getEmptyInputReplacement, getGetInputFromFixedValue, getGetInputFromSessionKey, getHideRegex, getLocker, getLogIntermediaryResults, getMaxThreads, getSecLogSessionKeys, getStoreResultInSessionKey, isPreserveInput, isRemoveCompactMsgNamespaces, isRestoreMovedElements, isWriteToSecLog, setPipeLine, throwEvent
-
Constructor Details
-
AbstractFileSystemPipe
public AbstractFileSystemPipe()
-
-
Method Details
-
configure
Description copied from class:FixedForwardPipe
Checks for correct configuration of forward.- Specified by:
configure
in interfaceIConfigurable
- Overrides:
configure
in classFixedForwardPipe
- Throws:
ConfigurationException
- in case it was not able to configure the component.
-
start
public void start()Description copied from interface:IPipe
Perform necessary action to start the pipe. This method is executed after theIConfigurable.configure()
method, for each start and stop command of the adapter.- Specified by:
start
in interfaceIPipe
- Specified by:
start
in interfaceorg.springframework.context.Lifecycle
- Overrides:
start
in classAbstractPipe
-
stop
public void stop()Description copied from interface:IPipe
Perform necessary actions to stop thePipe
.
For instance, closing JMS connections, DBMS connections etc.- Specified by:
stop
in interfaceIPipe
- Specified by:
stop
in interfaceorg.springframework.context.Lifecycle
- Overrides:
stop
in classAbstractPipe
-
doPipe
@Nullable public PipeRunResult doPipe(@Nonnull Message message, @Nonnull PipeLineSession session) throws PipeRunException Description copied from interface:IPipe
This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for theFixedResultPipe
, the Pipe can schedule the input to be closed at session exit, by callingMessage.closeOnCloseOf(PipeLineSession)
This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.- Specified by:
doPipe
in interfaceIPipe
- Throws:
PipeRunException
-
getPhysicalDestinationName
- Specified by:
getPhysicalDestinationName
in interfaceHasPhysicalDestination
-
getDomain
- Specified by:
getDomain
in interfaceHasPhysicalDestination
-
setFileSystem
-
addActions
-
setAction
-
getAction
-
setFilename
-
setDestination
-
setInputFolder
-
setCreateFolder
-
setOverwrite
-
setRotateDays
-
setRotateSize
-
setNumberOfBackups
-
setWildcard
-
setExcludeWildcard
-
setRemoveNonEmptyFolder
-
setWriteLineSeparator
-
setCharset
-
setDeleteEmptyFolder
-
setOutputFormat
-
setTypeFilter
-