easy-batch v5.3.0 Release Notes

Release Date: 2020-01-14 // over 4 years ago
  • ๐Ÿš€ This is a minor release which is the last release of the v5.x line. Here are the major changes:

    ๐Ÿ†• New features

    • Issue #333: Add Header/Footer callbacks in FileRecordWriter
    • ๐Ÿ”ง Issue #350: Add configurable JobReportFormatter in JobReportEmailSender

    โœจ Enhancements

    • ๐ŸŒฒ Issue #315: Replace Java Util Logging with SLF4J
    • Issue #320: Error Threshold - Zero Errors
    • ๐Ÿ”€ Issue #338: Inefficient JobMetrics merge loops in DefaultJobReportMerger
    • Issue #317: Unused XMLStreamException

    ๐Ÿ› Bug fixes

    • Issue #349: Incorrect writeCount when the transaction in HibernateRecordWriter is rolled back
    • Issue #348: Incorrect writeCount when the transaction in JpaRecordWriter is rolled back
    • Issue #347: Incorrect writeCount when the transaction in JdbcRecordWriter is rolled back
    • Issue #314: Error while setting a date (java.util.Date) field in JdbcRecordWriter
    • ๐Ÿ”Š Issue #345: HtmlJobReportFormatter should not generate apache velocity logs
    • Issue #337: XmlRecordReader throws a ClassCastException when reading a comment line
    • Issue #319: Excel reader Skipping Empty Columns

    ๐Ÿ—„ Deprecations

    For removal

    • ๐Ÿšš org.easybatch.xml.XmlWrapperTagWriter is deprecated in v5.3 and will be removed in v6
    • ๐Ÿšš org.easybatch.tools.monitoring.CliJobMonitoringListener, org.easybatch.tools.reporting.HtmlJobReportFormatter andorg.easybatch.tools.reporting.JobReportEmailSender are deprecated in v5.3 and will be removed in v6. The entire easybatch-tools module will be removed
    • ๐Ÿšš Quartz support is deprecated in v5.3 and will be removed in v6. All classes in easybatch-quartz module are deprecated and the entire module will be removed in v6
    • ๐Ÿš€ MongoDB support will be removed in v6. Please note that this decision has been made after releasing v5.3, hence you will not find any @Deprecated annotation on classes of this module in the v5.3 release.
    • ๐Ÿšš org.easybatch.jms.JmsPoisonMessage, org.easybatch.jms.JmsPoisonRecord, org.easybatch.jms.JmsPoisonRecordBroadcaster and org.easybatch.jms.JmsPoisonRecordFilter are deprecated in v5.3 and will be removed in v6. The JmsRecordReader will return null based on a timeout and not a JmsPoisonMessage.
    • ๐Ÿšš org.easybatch.core.record.PoisonRecord, org.easybatch.core.listener.PoisonRecordBroadcaster and org.easybatch.core.filter.PoisonRecordFilter are deprecated in v5.3 and will be removed in v6. The org.jeasy.batch.core.reader.BlockingQueueRecordReader will return null based on a timeout and not a PoisonRecord
    • ๐Ÿšš The constructor org.jeasy.batch.core.reader.BlockingQueueRecordReader#BlockingQueueRecordReader(java.util.concurrent.BlockingQueue<org.jeasy.batch.core.record.Record>, int) will be removed in v6. Please note that this constructor was not marked with @Deprecated in v5.3 by mistake.
    • ๐Ÿšš The constructor BlockingQueueRecordWriter(final List<BlockingQueue<Record>> will be removed in v6 as this writer will operate on a single blocking queue.
    • ๐Ÿšš org.easybatch.core.listener.RecordProcessingTimeListener is deprecated in v5.3 and will be removed in v6
    • ๐Ÿšš org.easybatch.core.filter.RecordNumberBetweenFilter, org.easybatch.core.filter.RecordNumberEqualToFilter, org.easybatch.core.filter.RecordNumberGreaterThanFilter and org.easybatch.core.filter.RecordNumberLowerThanFilter are deprecated in v5.3 and will be removed in v6
    • ๐Ÿšš JobReportFormatter and DefaultJobReportFormatter are deprecated in v5.3 and will be removed in v6

    With replacement

    • ๐Ÿšš org.easybatch.core.filter.FilteredRecordsSavingRecordFilter is deprecated in v5.3 and will be removed in v6. Use the new org.easybatch.core.filter.FilteredRecordsCollector instead
    • ๐Ÿšš org.easybatch.core.filter.StartWithStringRecordFilter is deprecated in v5.3 and will be removed in v6. Use org.easybatch.core.filter.StartsWithStringRecordFilter instead
    • ๐Ÿšš org.easybatch.core.filter.EmptyRecordFilter is deprecated in v5.3 and will be removed in v6. Use org.easybatch.core.filter.EmptyStringRecordFilter instead
    • ๐Ÿšš org.easybatch.core.filter.EndWithStringRecordFilter is deprecated in v5.3 and will be removed in v6. Use org.easybatch.core.filter.EndsWithStringRecordFilter instead
    • ๐Ÿ—„ Usages of java.util.date (namely in Header class) are deprecated and will be replaced with java.time.LocalDateTime starting from v6
    • ๐Ÿ—„ Usages of java.io.File (namely in constrcutors of all file based record readers/writers) are deprecated and will be replaced with java.nio.file.Path starting from v6
    • ๐Ÿšš PayloadExtractor is deprecated in v5.3 and will be removed in v6. Use Utils#extractPayloads instead
    • ๐Ÿ—„ The constructor org.jeasy.batch.extensions.yaml.YamlRecordReader#YamlRecordReader(java.io.InputStream, java.lang.String) will be replaced with one that takes a java.nio.charset.Charset instead of a String for the charset name. Please note that this constructor was not marked with @Deprecated in v5.3 by mistake.
    • ๐Ÿ—„ The constructor org.jeasy.batch.json.JsonRecordReader#JsonRecordReader(java.io.InputStream, java.lang.String) will be replaced with one that takes a java.nio.charset.Charset instead of a String for the charset name. Please note that this constructor was not marked with @Deprecated in v5.3 by mistake.

    ๐Ÿ—„ For more details about deprecations and replacements, please refer to the Javadocs.

    What's next?

    โšก๏ธ The next version will be v6 and will be based on Java 8. The root package name will be updated from org.easybatch to org.jeasy.batch for consistency with other Jeasy projects. Artifact IDs will also change to match the same naming pattern as other projects.

    โœ… I would like to thank all contributors (@anarayn, @MALPI , @jcamiloradamesa , @IvanAtanasov, @sheikhu, @vian42, @verdi8 and @psoares-resilient) for submitting bug reports, testing fixes and contributing to the project with awesome PRs!