Class SmbOutboundGateway
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.AbstractMessageProducingHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
org.springframework.integration.smb.outbound.SmbOutboundGateway
- All Implemented Interfaces:
org.reactivestreams.Subscriber<Message<?>>
,Aware
,BeanClassLoaderAware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,ApplicationContextAware
,Ordered
,ExpressionCapable
,Orderable
,MessageProducer
,HeaderPropagationAware
,IntegrationPattern
,NamedComponent
,IntegrationManagement
,TrackableComponent
,MessageHandler
,reactor.core.CoreSubscriber<Message<?>>
Outbound Gateway for performing remote file operations via SMB.
- Since:
- 6.0
- Author:
- Gregory Bragg
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway
AbstractRemoteFileOutboundGateway.Command, AbstractRemoteFileOutboundGateway.Option
Nested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
AbstractReplyProducingMessageHandler.RequestHandler
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplate
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
ConstructorDescriptionSmbOutboundGateway
(RemoteFileTemplate<jcifs.smb.SmbFile> remoteFileTemplate, String command) Construct an instance with the supplied remote file template and command ('ls', 'nlst', 'put' or 'mput').SmbOutboundGateway
(RemoteFileTemplate<jcifs.smb.SmbFile> remoteFileTemplate, String command, String expression) Construct an instance with the supplied remote file template, a command ('ls', 'get' etc), and an expression to determine the filename.SmbOutboundGateway
(RemoteFileTemplate<jcifs.smb.SmbFile> remoteFileTemplate, MessageSessionCallback<jcifs.smb.SmbFile, ?> messageSessionCallback) Construct an instance with the supplied remote file template and callback for performing operations on the session.SmbOutboundGateway
(SessionFactory<jcifs.smb.SmbFile> sessionFactory, String command) Construct an instance with the supplied session factory and command ('ls', 'nlst', 'put' or 'mput').SmbOutboundGateway
(SessionFactory<jcifs.smb.SmbFile> sessionFactory, String command, String expression) Construct an instance with the supplied session factory, a command ('ls', 'get' etc), and an expression to determine the filename.SmbOutboundGateway
(SessionFactory<jcifs.smb.SmbFile> sessionFactory, MessageSessionCallback<jcifs.smb.SmbFile, ?> messageSessionCallback) Construct an instance using the provided session factory and callback for performing operations on the session. -
Method Summary
Modifier and TypeMethodDescriptionprotected List<AbstractFileInfo<jcifs.smb.SmbFile>>
asFileInfoList
(Collection<jcifs.smb.SmbFile> files) protected jcifs.smb.SmbFile
enhanceNameWithSubDirectory
(jcifs.smb.SmbFile file, String directory) Subclasses may implement this method to provide component type information.protected String
getFilename
(jcifs.smb.SmbFile file) protected String
getFilename
(AbstractFileInfo<jcifs.smb.SmbFile> file) protected String
getFullFileName
(String remoteDirectory, jcifs.smb.SmbFile smbFile) By default, this method contacts the remote directory with the remote file name to build a full remote file path.protected long
getModified
(jcifs.smb.SmbFile file) protected boolean
isDirectory
(jcifs.smb.SmbFile file) protected boolean
isLink
(jcifs.smb.SmbFile file) Symbolic links are currently not supported in the JCIFS v2.x.x dependent library, so this method will always return false.Methods inherited from class org.springframework.integration.file.remote.gateway.AbstractRemoteFileOutboundGateway
assertRemoteFileTemplateMutability, doChmod, doInit, filterFile, filterFiles, filterMputFiles, get, getRemoteFilename, getRemoteFileTemplate, handleRequestMessage, isChmodCapable, ls, mGet, mPut, mv, nlst, purgeDots, purgeLinks, put, remoteFileTemplateExplicitlySet, rm, setAutoCreateDirectory, setAutoCreateLocalDirectory, setCharset, setChmod, setChmodOctal, setFileExistsMode, setFileNameExpression, setFileNameGenerator, setFilter, setLocalDirectory, setLocalDirectoryExpression, setLocalDirectoryExpressionString, setLocalFilenameGeneratorExpression, setLocalFilenameGeneratorExpressionString, setMputFilter, setOption, setOptions, setRemoteDirectoryExpression, setRemoteFileSeparator, setRenameExpression, setRenameExpressionString, setTemporaryFileSuffix, setTemporaryRemoteDirectoryExpression, setUseTemporaryFileName
Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
doInvokeAdvisedRequestHandler, getBeanClassLoader, getIntegrationPatternType, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReply
Methods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, setupMessageProcessor, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeaders
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConvention
Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface reactor.core.CoreSubscriber
currentContext
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAs
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
SmbOutboundGateway
public SmbOutboundGateway(SessionFactory<jcifs.smb.SmbFile> sessionFactory, MessageSessionCallback<jcifs.smb.SmbFile, ?> messageSessionCallback) Construct an instance using the provided session factory and callback for performing operations on the session.- Parameters:
sessionFactory
- the session factory.messageSessionCallback
- the callback.
-
SmbOutboundGateway
public SmbOutboundGateway(RemoteFileTemplate<jcifs.smb.SmbFile> remoteFileTemplate, MessageSessionCallback<jcifs.smb.SmbFile, ?> messageSessionCallback) Construct an instance with the supplied remote file template and callback for performing operations on the session.- Parameters:
remoteFileTemplate
- the remote file template.messageSessionCallback
- the callback.
-
SmbOutboundGateway
public SmbOutboundGateway(SessionFactory<jcifs.smb.SmbFile> sessionFactory, String command, String expression) Construct an instance with the supplied session factory, a command ('ls', 'get' etc), and an expression to determine the filename.- Parameters:
sessionFactory
- the session factory.command
- the command.expression
- the filename expression.
-
SmbOutboundGateway
public SmbOutboundGateway(RemoteFileTemplate<jcifs.smb.SmbFile> remoteFileTemplate, String command, String expression) Construct an instance with the supplied remote file template, a command ('ls', 'get' etc), and an expression to determine the filename.- Parameters:
remoteFileTemplate
- the remote file template.command
- the command.expression
- the filename expression.
-
SmbOutboundGateway
Construct an instance with the supplied session factory and command ('ls', 'nlst', 'put' or 'mput').The
remoteDirectory
expression isnull
assuming to use theworkingDirectory
from the SMB Client.- Parameters:
sessionFactory
- the session factory.command
- the command.
-
SmbOutboundGateway
Construct an instance with the supplied remote file template and command ('ls', 'nlst', 'put' or 'mput').The
remoteDirectory
expression isnull
assuming to use theworkingDirectory
from the SMB Client.- Parameters:
remoteFileTemplate
- the remote file template.command
- the command.
-
-
Method Details
-
getComponentType
Description copied from class:IntegrationObjectSupport
Subclasses may implement this method to provide component type information.- Specified by:
getComponentType
in interfaceNamedComponent
- Overrides:
getComponentType
in classMessageHandlerSupport
-
isDirectory
protected boolean isDirectory(jcifs.smb.SmbFile file) - Specified by:
isDirectory
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
-
isLink
protected boolean isLink(jcifs.smb.SmbFile file) Symbolic links are currently not supported in the JCIFS v2.x.x dependent library, so this method will always return false.- Specified by:
isLink
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
- Returns:
- false
-
getFilename
- Specified by:
getFilename
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
-
getFilename
- Specified by:
getFilename
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
-
getModified
protected long getModified(jcifs.smb.SmbFile file) - Specified by:
getModified
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
-
asFileInfoList
protected List<AbstractFileInfo<jcifs.smb.SmbFile>> asFileInfoList(Collection<jcifs.smb.SmbFile> files) - Specified by:
asFileInfoList
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
-
enhanceNameWithSubDirectory
- Specified by:
enhanceNameWithSubDirectory
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
-
getFullFileName
Description copied from class:AbstractRemoteFileOutboundGateway
By default, this method contacts the remote directory with the remote file name to build a full remote file path. The remote file protocol-specific implementation may override this method for other approach.- Overrides:
getFullFileName
in classAbstractRemoteFileOutboundGateway<jcifs.smb.SmbFile>
- Parameters:
remoteDirectory
- the directory remote file belongs.smbFile
- the remote file to take a name and adjust its path according provided remote directory.- Returns:
- the full path for the remote file
-