This commit adds a proper assertion that the writer has been properly
opened prior to executing a write. This now returns a
WriterNotOpenException instead of the previous NullPointerException.
Resolves BATCH-2343
In merging BATCH-1955, we accidentally prevented the ability to use a
Map as an item, named parameters, and an ItemSqlParameterSourceProvider.
This commit re-enables that capability by checking if the
ItemSqlParameterSourceProvider is null. If it's not, it's used.
This commit moves all SNAPSHOT dependencies to the latest available
released versions. It also addresses a number of deprications in the
Spring Data realm. Specifically around the deprication of the
Neo4JOperations and the package reorganization within Hibernate.
This commit adds a builder for the JdbcBatchItemWriter that includes a
couple nicities to simplify configuration of basic use cases.
Resolves BATCH-2561
This commit upgrades the minimum requiremnt for Neo4J to be in alignment
with the rest of the Spring IO platform. Because of this, the Neo4J4
module has been removed since the main line is now at the current level.
Spring Batch 4.0 will be part of the Spring Boot 2.0 release and so to
be compatible with Spring Data Kay, the dependencies have been upgraded
and tests fixed.
Resolves BATCH-2560
This commit adds a builder for the `FlatFileItemReader` and commonly
used releated components (`BeanWrapperFieldSetMapper`,
`DelimitedLineTokenizer`, and `FixedLengthTokenizer`).
Resolves BATCH-2549
When determining if an exception should be skipped or not, the business
exception should be used. However, when an exception is thrown in the
listener, it's wrapped by a `StepListenerFailedException`. This leads
to it hiding the underlying exception. This commit will unwrap the
cause of a `StepListenerFailedException` and use that to determine if it
should be skipped or not.
Resolves BATCH-2322
Prior to this commit, when using the `JobStep`, if the child job was
stopped (left in the `STOPPED` state), the step executing that job was
marked as `COMPLETE`, preventing it from being restarted. This commit
now marks a step that was executing the stopped job also as stopped,
allowing for it to be restarted.
Resolves BATCH-2429
When using the `AsyncItemProcessor` and `AsyncItemWriter`, business
exceptions that occur during the process phase are hidden by an
`ExecutionException` that is returned wrapping the originally thrown
exception in the `AsyncItemWriter`. In this commit, we now unwrap any
`ExecutionException` that is returned and throw the cause. Debug
logging is also added to allow the logging of the original exception as
well.
Resolves BATCH-2386
When using the `MessageChannelPartitionHandler`, the reply channel is an
instance variable. However, when the handle method is called, if a
reply channel is not injected, it will create a new one. If multiple
jobs recycle the same instance of the partition handler, you may end up
having messages crossed/lost. This PR removes the creation of the reply
channel for each call to the handle method and documents that this
comonent should be step scoped.
Resolves BATCH-2288
The new Spring 5 baseline consists of Spring 5, Hibernate 5, and Java 8.
This commit addresses any changes to create a successful build of Spring
Batch under those guidances. Further commits will be coming to address
Java 8 specifics as areas of the project are touched.
Resolves BATCH-2536
Previously, AutomaticJobRegistrar listened to all ApplicationEvents
despite only being interested in two ApplicationContextEvents, namely
ContextRefreshedEvent and ContextClosedEvent. This could lead to
an AutomaticJobRegistrar instance being created earlier than necessary.
This commits tightens up AutomaticJobRegistrar so that it only listens
to ApplicationContextEvents.
Closes BATCH-2506
See https://github.com/spring-projects/spring-boot/issues/2395
DB2 connections to the AS/400 report incorrectly back as DB2 z/OS. The
current AS/400 reports Database Product Name as "DB2 UDB for AS/400".
Database Product Version has three possible return values based on
product used:
JTOpen reports "07.01.0000 V7R1m0".
Native Driver reports "V7R1M0".
PRDID reports "QSQ07010"
http://www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.java/src/tpc/imjcc_c0053013.dita
Also added code to handle DB2 Server for VM and VSE. This code should
handle the different DB2 Versions.
Spring Community Contributor
Hibernate 5 changed the signature of the Session#close() method from
returning a Connection to being void. To support both verions, we've
moved to making the call via reflection.
This commit also upgrades the ActiveMQ version used in testing to be
compliant with the Spring IO Platform.
Resolves BATCH-2496
It has been tested with Jackson 2.3.3 which is the Jackson version
used with the Spring dependency.
Tests have been updated to use Hamcrest matchers and made a bit more reusable.
This adds a new ItemReader that works with the Spring Data 4 updated
Neo4JOperations implementation as well as the updated data conversion
techniques.
Resolves BATCH-2473
The library is considered to be used by people who download their
dependencies manually. If you use a dependency-manager then you should
use hamcrest-library. It has a dependency on hamcrest-core and does not
need exclusion of hamcrest-core for other dependencies.