Skip to content

Commit e60df00

Browse files
committed
feat: int-aws s3-inbound-channel-adapter xsd schema
1 parent 195c8f9 commit e60df00

File tree

1 file changed

+270
-0
lines changed

1 file changed

+270
-0
lines changed
Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xsd:schema xmlns="http://www.springframework.org/schema/integration/aws"
3+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4+
xmlns:tool="http://www.springframework.org/schema/tool"
5+
xmlns:integration="http://www.springframework.org/schema/integration"
6+
targetNamespace="http://www.springframework.org/schema/integration/aws"
7+
elementFormDefault="qualified">
8+
9+
<xsd:import namespace="http://www.springframework.org/schema/beans"
10+
schemaLocation="https://www.springframework.org/schema/beans/spring-beans-4.3.xsd"/>
11+
<xsd:import namespace="http://www.springframework.org/schema/tool"
12+
schemaLocation="https://www.springframework.org/schema/tool/spring-tool-4.3.xsd"/>
13+
<xsd:import namespace="http://www.springframework.org/schema/integration"
14+
schemaLocation="https://www.springframework.org/schema/integration/spring-integration-5.2.xsd"/>
15+
16+
<xsd:annotation>
17+
<xsd:documentation><![CDATA[
18+
Defines the configuration elements for Spring Integration's AWS Adapters.
19+
]]></xsd:documentation>
20+
</xsd:annotation>
21+
22+
<xsd:element name="s3-inbound-channel-adapter">
23+
<xsd:annotation>
24+
<xsd:documentation><![CDATA[
25+
Configures a 'SourcePollingChannelAdapter' Endpoint for the
26+
'org.springframework.integration.aws.inbound.S3InboundFileSynchronizingMessageSource' that
27+
synchronizes a local directory with the contents of a remote Amazon S3 bucket.
28+
]]></xsd:documentation>
29+
</xsd:annotation>
30+
<xsd:complexType>
31+
<xsd:complexContent>
32+
<xsd:extension base="s3InboundChannelAdapter">
33+
<xsd:attribute name="local-directory" type="xsd:string" use="required">
34+
<xsd:annotation>
35+
<xsd:documentation><![CDATA[
36+
Identifies the directory path (e.g.,
37+
"/local/mytransfers") where files
38+
will be transferred TO.
39+
]]></xsd:documentation>
40+
</xsd:annotation>
41+
</xsd:attribute>
42+
<xsd:attribute name="temporary-file-suffix" type="xsd:string">
43+
<xsd:annotation>
44+
<xsd:documentation><![CDATA[
45+
Extension used when downloading files.
46+
We change it right after we know it's downloaded.
47+
Default ".writing".
48+
]]></xsd:documentation>
49+
</xsd:annotation>
50+
</xsd:attribute>
51+
<xsd:attribute name="local-filename-generator-expression" type="xsd:string">
52+
<xsd:annotation>
53+
<xsd:documentation><![CDATA[
54+
Allows you to provide a SpEL expression to
55+
generate the file name of
56+
the local (transferred) file. The root
57+
object of the SpEL
58+
evaluation is the name of the original
59+
file.
60+
For example, a valid expression would be "#this.toUpperCase() +
61+
'.a'" where #this represents the
62+
original name of the remote
63+
file.
64+
]]></xsd:documentation>
65+
</xsd:annotation>
66+
</xsd:attribute>
67+
<xsd:attribute name="local-filter" type="xsd:string">
68+
<xsd:annotation>
69+
<xsd:appinfo>
70+
<tool:annotation kind="ref">
71+
<tool:expected-type type="org.springframework.integration.file.filters.FileListFilter"/>
72+
</tool:annotation>
73+
</xsd:appinfo>
74+
<xsd:documentation><![CDATA[
75+
Allows you to specify a reference to a
76+
[org.springframework.integration.file.filters.FileListFilter]
77+
bean. It is used to determine which files will generate messages
78+
after they have been synchronized. It will be combined with a filter that
79+
will prevent accessing files that are in the process of being synchronized
80+
(files having the 'temporary-file-suffix' suffix).
81+
The default is an FileSystemPersistentAcceptOnceFileListFilter
82+
which filters duplicate file names (processed during the current execution).
83+
]]></xsd:documentation>
84+
</xsd:annotation>
85+
</xsd:attribute>
86+
<xsd:attribute name="auto-create-local-directory" type="xsd:boolean">
87+
<xsd:annotation>
88+
<xsd:documentation><![CDATA[
89+
Tells this adapter if the local directory must
90+
be auto-created if it doesn't exist. Default is TRUE.
91+
]]></xsd:documentation>
92+
</xsd:annotation>
93+
</xsd:attribute>
94+
<xsd:attribute name="delete-remote-files" type="xsd:boolean">
95+
<xsd:annotation>
96+
<xsd:documentation><![CDATA[
97+
Specify whether to delete the remote source file after copying.
98+
By default, the remote files will NOT be deleted.
99+
]]></xsd:documentation>
100+
</xsd:annotation>
101+
</xsd:attribute>
102+
<xsd:attribute name="preserve-timestamp" type="xsd:boolean">
103+
<xsd:annotation>
104+
<xsd:documentation><![CDATA[
105+
Specify whether to preserve the modified timestamp from the remote source
106+
file on the local file after copying.
107+
By default, the remote timestamp will NOT be preserved.
108+
]]></xsd:documentation>
109+
</xsd:annotation>
110+
</xsd:attribute>
111+
<xsd:attribute name="remote-file-metadata-store" type="xsd:string">
112+
<xsd:annotation>
113+
<xsd:appinfo>
114+
<tool:annotation kind="ref">
115+
<tool:expected-type type="org.springframework.integration.metadata.MetadataStore"/>
116+
</tool:annotation>
117+
</xsd:appinfo>
118+
<xsd:documentation><![CDATA[
119+
Reference to [org.springframework.integration.metadata.MetadataStore] bean
120+
to hold a remote file info (host, port, remote directory)
121+
for transfer downstream in message headers when local file is pulled.
122+
]]></xsd:documentation>
123+
</xsd:annotation>
124+
</xsd:attribute>
125+
<xsd:attribute name="metadata-store-prefix" type="xsd:string">
126+
<xsd:annotation>
127+
<xsd:documentation><![CDATA[
128+
Specify a prefix for keys in metadata store
129+
to not clash with other keys in the shared store.
130+
By default bean name is used.
131+
]]></xsd:documentation>
132+
</xsd:annotation>
133+
</xsd:attribute>
134+
<xsd:attribute name="scanner" type="xsd:string">
135+
<xsd:annotation>
136+
<xsd:appinfo>
137+
<tool:annotation kind="ref">
138+
<tool:expected-type type="org.springframework.integration.file.DirectoryScanner"/>
139+
</tool:annotation>
140+
</xsd:appinfo>
141+
<xsd:documentation><![CDATA[
142+
Switch the local FileReadingMessageSource to use a custom
143+
DirectoryScanner.
144+
]]></xsd:documentation>
145+
</xsd:annotation>
146+
</xsd:attribute>
147+
</xsd:extension>
148+
</xsd:complexContent>
149+
</xsd:complexType>
150+
</xsd:element>
151+
152+
<xsd:complexType name="pollingInboundChannelAdapter">
153+
<xsd:all>
154+
<xsd:element ref="integration:poller" minOccurs="0"/>
155+
</xsd:all>
156+
<xsd:attributeGroup ref="integration:channelAdapterAttributes"/>
157+
<xsd:attribute name="send-timeout" type="xsd:long">
158+
<xsd:annotation>
159+
<xsd:documentation><![CDATA[
160+
Timeout in milliseconds to wait for a Message to be sent to the
161+
output channel.
162+
]]></xsd:documentation>
163+
</xsd:annotation>
164+
</xsd:attribute>
165+
</xsd:complexType>
166+
167+
<xsd:complexType name="s3InboundChannelAdapter">
168+
<xsd:complexContent>
169+
<xsd:extension base="pollingInboundChannelAdapter">
170+
<xsd:attribute name="session-factory" type="xsd:string" use="required">
171+
<xsd:annotation>
172+
<xsd:appinfo>
173+
<tool:annotation kind="ref">
174+
<tool:expected-type
175+
type="org.springframework.integration.file.remote.session.SessionFactory"/>
176+
</tool:annotation>
177+
</xsd:appinfo>
178+
<xsd:documentation><![CDATA[
179+
Reference to an [org.springframework.integration.file.remote.session.SessionFactory] bean with
180+
a [software.amazon.awssdk.services.s3.model.S3Object] generic type parameter.
181+
Mutually exclusive with 's3'.
182+
]]></xsd:documentation>
183+
</xsd:annotation>
184+
</xsd:attribute>
185+
<xsd:attribute name="remote-file-separator" type="xsd:string" default="/">
186+
<xsd:annotation>
187+
<xsd:documentation><![CDATA[
188+
Allows you to provide remote file/directory
189+
separator character. DEFAULT: '/'
190+
]]></xsd:documentation>
191+
</xsd:annotation>
192+
</xsd:attribute>
193+
<xsd:attribute name="remote-directory" type="xsd:string">
194+
<xsd:annotation>
195+
<xsd:documentation><![CDATA[
196+
Identifies the remote directory path (e.g., "/remote/mytransfers")
197+
Mutually exclusive with 'remote-directory-expression'.
198+
]]></xsd:documentation>
199+
</xsd:annotation>
200+
</xsd:attribute>
201+
<xsd:attribute name="remote-directory-expression" type="xsd:string">
202+
<xsd:annotation>
203+
<xsd:documentation><![CDATA[
204+
Specify a SpEL expression which will be used to evaluate the directory
205+
path to where the files will be transferred
206+
(e.g., "headers.['remote_dir'] + '/myTransfers'" for outbound endpoints)
207+
There is no root object (message) for inbound endpoints
208+
(e.g., "@someBean.fetchDirectory");
209+
]]></xsd:documentation>
210+
</xsd:annotation>
211+
</xsd:attribute>
212+
<xsd:attribute name="filename-pattern" type="xsd:string">
213+
<xsd:annotation>
214+
<xsd:documentation><![CDATA[
215+
Allows you to provide a file name pattern to determine the file names that need to be scanned.
216+
This is based on simple pattern matching (e.g., "*.txt, fo*.txt" etc.)
217+
]]></xsd:documentation>
218+
</xsd:annotation>
219+
</xsd:attribute>
220+
<xsd:attribute name="filename-regex" type="xsd:string">
221+
<xsd:annotation>
222+
<xsd:documentation><![CDATA[
223+
Allows you to provide a Regular Expression to determine the file names that need to be scanned.
224+
(e.g., "f[o]+\.txt" etc.)
225+
]]></xsd:documentation>
226+
</xsd:annotation>
227+
</xsd:attribute>
228+
<xsd:attribute name="filter" type="xsd:string">
229+
<xsd:annotation>
230+
<xsd:appinfo>
231+
<tool:annotation kind="ref">
232+
<tool:expected-type type="org.springframework.integration.file.filters.FileListFilter"/>
233+
</tool:annotation>
234+
</xsd:appinfo>
235+
<xsd:documentation><![CDATA[
236+
Allows you to specify a reference to a
237+
[org.springframework.integration.file.filters.FileListFilter]
238+
bean. This filter is applied to files on the remote server and
239+
only files that pass the filter are retrieved.
240+
]]></xsd:documentation>
241+
</xsd:annotation>
242+
</xsd:attribute>
243+
<xsd:attribute name="filter-expression" type="xsd:string">
244+
<xsd:annotation>
245+
<xsd:documentation><![CDATA[
246+
Filter SpEL expression.
247+
]]></xsd:documentation>
248+
</xsd:annotation>
249+
</xsd:attribute>
250+
<xsd:attribute name="comparator" type="xsd:string">
251+
<xsd:annotation>
252+
<xsd:documentation><![CDATA[
253+
Specify a Comparator to be used when ordering Files. If none is provided, the
254+
order in which files are processed is the order they are received from the S3 server.
255+
The generic type of the Comparator is 'java.io.File'.
256+
]]></xsd:documentation>
257+
</xsd:annotation>
258+
</xsd:attribute>
259+
<xsd:attribute name="max-fetch-size" type="xsd:int">
260+
<xsd:annotation>
261+
<xsd:documentation><![CDATA[
262+
Limit the number of files to fetch.
263+
]]></xsd:documentation>
264+
</xsd:annotation>
265+
</xsd:attribute>
266+
</xsd:extension>
267+
</xsd:complexContent>
268+
</xsd:complexType>
269+
270+
</xsd:schema>

0 commit comments

Comments
 (0)