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.
Previously, the JRuby engine that was being used pulled in an old
version of JRuby. The engine is incompatible with more recent JRuby 1.x
releases which causes problems for the Spring IO Platform which uses
JRuby 1.7.x.
This commit updates the tests to use the latest version of JRuby 1.x
(1.7.22) which contains its own JSR 223 integration, i.e. there’s no
need for a separate script engine dependency.
Previously, FlatFileItemReaderTests made a precise assertion that
involved the toString output from ByteArrayResource. This output
has changed between Spring Framework 4.0.x and Spring Framework 4.2.x.
As a result, the test fails when run as part of the Spring IO Platform
build which forces the version of Spring Framework to 4.2.x.
This commit updates the failing test so that it passes against both
Spring Framework 4.0.x and Spring Framework 4.2.x by relaxing the
assertion a little so that it is not dependent on the precise output
of ByteArrayResource's toString method.
Spring Integration 4.2 has fixed a bug where integration components
were being started too early. SmokeTests was relying on this bug to
start the test class which is also a @MessageEndpoint.
This commit updates the test to use a nested inner-class for the
endpoint and a bean declaration in the XML configuration. This allows
the test to pass against both Spring Integration 4.0 and 4.2.
The README file on samples describes the partitionJob as an example of the asynch process feature, so I changed the class of the taskExecutor to SimpleAsyncTaskExecutor
With Java 1.5 StringBuilder is preferred over StringBuffer for single
threaded access as is has less overhead.
This is evidenced by the class comment of StringBuffer and Effective
Java 2nd Edition Item 67: Avoid excessive synchronization.
> The StringBuilder class should generally be used in preference to
> this one, as it supports all of the same operations but it is faster,
> as it performs no synchronization.
- replace StringBuffer with StringBuilder where possible
Issue: BATCH-2407
The source code contains various @SuppressWarnings("unchecked") that
are no longer unnecessary since the relevant APIs have been upgraded to
support Java 5 generics.
- remove @SuppressWarnings("unchecked") where no longer unnecessary
Issue: BATCH-2411
In various places in the code base a debug message is constructed
unconditionally. This adds unnecessary overhead in the common case when
debug logging is off.
- add guards around debug statements in non-test code
Issue: BATCH-2412
This commit adds the feature of allowing a delegate ItemWriter to be an
ItemStreamWriter and have Spring Batch respect the ItemStream lifecycle
events without explicitly configuring the delegate as a stream.
This is a follow-on from adc2f79. It removes the remaining references
to ParameterizedRowMapper and should, therefore, make things fully
compatible with Spring Framework 4.2.
Spring IO Platform 2.0 will remove the managed versions .properties
file as support for it has been removed in Spring Boot 1.3.
This commit moves the build onto a new version of the Spring IO Plugin
that uses the Maven bom rather than the properties file.
UNKNOWN
* additionally prevent restart of step executions with status STARTING,
STARTED or STOPPING
* additionally prevent restart of job executions with status UNKNOWN or
STOPPING
InnoDB is the only option for transactional tables in MySql. This
change makes all the table definitions consistent (there previously were
a few that were MyISAM).
BATCH-2373
If no resources are found to be passed to the delegate ItemStream,
ItemStream#open is not called. This commit updates the close side to
not call the delegate's close method if the open was not called.
BATCH-2378
The solution for BATCH-2079 was too agressive in that it removed table
references from columns in places that ended up in where clauses. Since
SQL does not support the use of column aliases in where clauses, the
table references are needed. This fix should address adding the aliases
back where needed, while keeping them out in the windowing paging query
use cases where they were problematic.
BATCH-2360
When closing the RepositoryItemReader, this commit now resets the
current item index and page index to be 0 so that it can be reused
imediately (instead of requiring the reader be step scoped for the reset
to occur).
BATCH-2365
To support Spring Framework 4.2 which removes ParameterizedRowMapper,
all references to that were switched to RowMapper. As of Spring 3, the
interfaces are identicle so this should cause no backward compatability
issues.
BATCH-2369