@@ -13,10 +13,14 @@ include::attributes.adoc[]
1313.Available Item Readers
1414[options="header"]
1515|===============
16- |Item Reader|Description
16+ |Item Reader|Description|Thread-safe
17+ |`AbstractItemStreamItemReader`|Abstract base class that combines the `ItemStream` and `ItemReader` interfaces.|Yes
1718|`AbstractItemCountingItemStreamItemReader`|Abstract base class that provides basic
1819 restart capabilities by counting the number of items returned from
19- an `ItemReader`.
20+ an `ItemReader`.|No
21+ |`AbstractPagingItemReader`|Abstract base class that provides basic paging features|No
22+ |`AbstractPaginatedDataItemReader`|Abstract base class that provides basic paging features based on Spring Data's
23+ paginated facilities|No
2024|`AggregateItemReader`|An `ItemReader` that delivers a list as its
2125 item, storing up objects from the injected `ItemReader` until they
2226 are ready to be packed out as a collection. This class must be used
@@ -25,46 +29,49 @@ include::attributes.adoc[]
2529 records by returning an `AggregateItem` which responds `true` to its
2630 query methods (`isHeader()` and `isFooter()`). Note that this reader
2731 is not part of the library of readers provided by Spring Batch
28- but given as a sample in `spring-batch-samples`.
32+ but given as a sample in `spring-batch-samples`.|Yes
2933|`AmqpItemReader`|Given a Spring `AmqpTemplate`, it provides
3034 synchronous receive methods. The `receiveAndConvert()` method
31- lets you receive POJO objects.
35+ lets you receive POJO objects.|Yes
3236|`KafkaItemReader`|An `ItemReader` that reads messages from an Apache Kafka topic.
3337It can be configured to read messages from multiple partitions of the same topic.
34- This reader stores message offsets in the execution context to support restart capabilities.
38+ This reader stores message offsets in the execution context to support restart capabilities.|No
3539|`FlatFileItemReader`|Reads from a flat file. Includes `ItemStream`
36- and `Skippable` functionality. See link:readersAndWriters.html#flatFileItemReader["`FlatFileItemReader`"].
40+ and `Skippable` functionality. See link:readersAndWriters.html#flatFileItemReader["`FlatFileItemReader`"].|No
3741|`HibernateCursorItemReader`|Reads from a cursor based on an HQL query. See
38- link:readersAndWriters.html#cursorBasedItemReaders[`Cursor-based ItemReaders`].
39- |`HibernatePagingItemReader`|Reads from a paginated HQL query.
42+ link:readersAndWriters.html#cursorBasedItemReaders[`Cursor-based ItemReaders`].|No
43+ |`HibernatePagingItemReader`|Reads from a paginated HQL query.|Yes
4044|`ItemReaderAdapter`|Adapts any class to the
41- `ItemReader` interface.
45+ `ItemReader` interface.|Yes
4246|`JdbcCursorItemReader`|Reads from a database cursor over JDBC. See
43- link:readersAndWriters.html#cursorBasedItemReaders["`Cursor-based ItemReaders`"].
47+ link:readersAndWriters.html#cursorBasedItemReaders["`Cursor-based ItemReaders`"].|No
4448|`JdbcPagingItemReader`|Given an SQL statement, pages through the rows,
4549 such that large datasets can be read without running out of
46- memory.
50+ memory.|Yes
4751|`JmsItemReader`|Given a Spring `JmsOperations` object and a JMS
4852 destination or destination name to which to send errors, provides items
4953 received through the injected `JmsOperations#receive()`
50- method.
51- |`JpaPagingItemReader`|Given a JPQL statement, pages through the
54+ method.|Yes
55+ |`JpaCursorItemReader`|Executes a JPQL query and iterates over the returned result set|No
56+ |`JpaPagingItemReader`|Given a JPQL query, pages through the
5257 rows, such that large datasets can be read without running out of
53- memory.
54- |`ListItemReader`|Provides the items from a list, one at a
55- time.
58+ memory.|Yes
59+ |`ListItemReader`|Provides the items from a list, one at a time.|No
5660|`MongoItemReader`|Given a `MongoOperations` object and a JSON-based MongoDB
57- query, provides items received from the `MongoOperations#find()` method.
61+ query, provides items received from the `MongoOperations#find()` method.|Yes
5862|`Neo4jItemReader`|Given a `Neo4jOperations` object and the components of a
5963 Cyhper query, items are returned as the result of the Neo4jOperations.query
60- method.
64+ method.|Yes
6165|`RepositoryItemReader`|Given a Spring Data `PagingAndSortingRepository` object,
6266 a `Sort`, and the name of method to execute, returns items provided by the
63- Spring Data repository implementation.
67+ Spring Data repository implementation.|Yes
6468|`StoredProcedureItemReader`|Reads from a database cursor resulting from the
65- execution of a database stored procedure. See link:readersAndWriters.html#StoredProcedureItemReader[`StoredProcedureItemReader`]
66- |`StaxEventItemReader`|Reads over StAX. see link:readersAndWriters.html#StaxEventItemReader[`StaxEventItemReader`].
67- |`JsonItemReader`|Reads items from a Json document. see link:readersAndWriters.html#JsonItemReader[`JsonItemReader`].
69+ execution of a database stored procedure. See link:readersAndWriters.html#StoredProcedureItemReader[`StoredProcedureItemReader`]|No
70+ |`StaxEventItemReader`|Reads over StAX. see link:readersAndWriters.html#StaxEventItemReader[`StaxEventItemReader`].|No
71+ |`JsonItemReader`|Reads items from a Json document. see link:readersAndWriters.html#JsonItemReader[`JsonItemReader`].|No
72+ |`AvroItemReader`|Reads items from a resource containing serialized Avro objects.|No
73+ |`LdifReader`|Reads items from a LDIF resource and returns them as `LdapAttributes`|No
74+ |`MappingLdifReader`|Reads items from a LDIF resource and uses a `RecordMapper` to map them to domain objects|No
6875
6976|===============
7077
@@ -75,55 +82,55 @@ This reader stores message offsets in the execution context to support restart c
7582.Available Item Writers
7683[options="header"]
7784|===============
78- |Item Writer|Description
79- |`AbstractItemStreamItemWriter`|Abstract base class that combines the
80- `ItemStream` and
81- `ItemWriter` interfaces.
85+ |Item Writer|Description|Thread-safe
86+ |`AbstractItemStreamItemWriter`|Abstract base class that combines the`ItemStream` and`ItemWriter` interfaces.|Yes
8287|`AmqpItemWriter`|Given a Spring `AmqpTemplate`, provides
8388 for a synchronous `send` method. The `convertAndSend(Object)`
84- method lets you send POJO objects.
89+ method lets you send POJO objects.|Yes
8590|`CompositeItemWriter`|Passes an item to the `write` method of each item
86- in an injected `List` of `ItemWriter` objects.
91+ in an injected `List` of `ItemWriter` objects.|Yes
8792|`FlatFileItemWriter`|Writes to a flat file. Includes `ItemStream` and
88- Skippable functionality. See link:readersAndWriters.html#flatFileItemWriter["`FlatFileItemWriter`"].
93+ Skippable functionality. See link:readersAndWriters.html#flatFileItemWriter["`FlatFileItemWriter`"].|No
8994|`HibernateItemWriter`|This item writer is Hibernate-session aware
9095 and handles some transaction-related work that a non-"`hibernate-aware`"
9196 item writer would not need to know about and then delegates
92- to another item writer to do the actual writing.
97+ to another item writer to do the actual writing.|Yes
9398|`ItemWriterAdapter`|Adapts any class to the
94- `ItemWriter` interface.
99+ `ItemWriter` interface.|Yes
95100|`JdbcBatchItemWriter`|Uses batching features from a
96101 `PreparedStatement`, if available, and can
97102 take rudimentary steps to locate a failure during a
98- `flush`.
103+ `flush`.|Yes
99104|`JmsItemWriter`|Using a `JmsOperations` object, items are written
100- to the default queue through the `JmsOperations#convertAndSend()` method.
105+ to the default queue through the `JmsOperations#convertAndSend()` method.|Yes
101106|`JpaItemWriter`|This item writer is JPA `EntityManager`-aware
102107 and handles some transaction-related work that a non-"`JPA-aware`"
103108 `ItemWriter` would not need to know about and
104- then delegates to another writer to do the actual writing.
109+ then delegates to another writer to do the actual writing.|Yes
105110|`KafkaItemWriter`|Using a `KafkaTemplate` object, items are written to the default topic through the
106111 `KafkaTemplate#sendDefault(Object, Object)` method by using a `Converter` to map the key from the item.
107- A delete flag can also be configured to send delete events to the topic.
112+ A delete flag can also be configured to send delete events to the topic.|No
108113|`MimeMessageItemWriter`|Using Spring's `JavaMailSender`, items of type `MimeMessage`
109- are sent as mail messages.
114+ are sent as mail messages.|Yes
110115|`MongoItemWriter`|Given a `MongoOperations` object, items are written
111116 through the `MongoOperations.save(Object)` method. The actual write is delayed
112- until the last possible moment before the transaction commits.
117+ until the last possible moment before the transaction commits.|Yes
113118|`Neo4jItemWriter`|Given a `Neo4jOperations` object, items are persisted through the
114119 `save(Object)` method or deleted through the `delete(Object)`, as dictated by the
115- `ItemWriter's` configuration
120+ `ItemWriter's` configuration|Yes
116121|`PropertyExtractingDelegatingItemWriter`|Extends `AbstractMethodInvokingDelegator`
117122 creating arguments on the fly. Arguments are created by retrieving
118123 the values from the fields in the item to be processed (through a
119124 `SpringBeanWrapper`), based on an injected array of field
120- names.
125+ names.|Yes
121126|`RepositoryItemWriter`|Given a Spring Data `CrudRepository` implementation,
122- items are saved through the method specified in the configuration.
127+ items are saved through the method specified in the configuration.|Yes
123128|`StaxEventItemWriter`|Uses a `Marshaller` implementation to
124129 convert each item to XML and then writes it to an XML file by using
125- StAX.
130+ StAX.|No
126131|`JsonFileItemWriter`|Uses a `JsonObjectMarshaller` implementation to
127- convert each item to Json and then writes it to a Json file.
132+ convert each item to Json and then writes it to a Json file.|No
133+ |`AvroItemWriter`|Serializes data to an `WritableResource` using Avro|No
134+ |`ListItemWriter`|Item writer that writes items to a `List`.|No
128135
129136|===============
0 commit comments