Files
Spring Operator 822f8bb868 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* [ ] http://www.xmlmind.com (200) with 1 occurrences could not be migrated:
   ([https](https://www.xmlmind.com) result ConnectTimeoutException).
* [ ] http://blog.decaresystems.ie/index.php/2007/04/12/spring-batch/ (403) with 1 occurrences could not be migrated:
   ([https](https://blog.decaresystems.ie/index.php/2007/04/12/spring-batch/) result SSLHandshakeException).
* [ ] http://blog.dtzq.com/2012/08/spring-batch-amqp-itemreader-itemwriter.html (404) with 2 occurrences could not be migrated:
   ([https](https://blog.dtzq.com/2012/08/spring-batch-amqp-itemreader-itemwriter.html) result ClosedChannelException).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* [ ] http://java.dzone.com/articles/rip%E2%80%A6jdk-14 (301) with 1 occurrences migrated to:
  https://dzone.com/articles/rip%25E2%2580%25A6jdk-14 ([https](https://java.dzone.com/articles/rip%E2%80%A6jdk-14) result SSLHandshakeException).
* [ ] http://m2eclipse.sonatype.org/update (ConnectTimeoutException) with 1 occurrences migrated to:
  https://m2eclipse.sonatype.org/update ([https](https://m2eclipse.sonatype.org/update) result ConnectTimeoutException).
* [ ] http://www.itweek.co.uk/itweek/news/2189502/accenture-launches-batch (ConnectTimeoutException) with 1 occurrences migrated to:
  https://www.itweek.co.uk/itweek/news/2189502/accenture-launches-batch ([https](https://www.itweek.co.uk/itweek/news/2189502/accenture-launches-batch) result ConnectTimeoutException).
* [ ] http://api.example.com (UnknownHostException) with 1 occurrences migrated to:
  https://api.example.com ([https](https://api.example.com) result UnknownHostException).
* [ ] http://jira.codehaus.org/browse/WSTX-165 (UnknownHostException) with 1 occurrences migrated to:
  https://jira.codehaus.org/browse/WSTX-165 ([https](https://jira.codehaus.org/browse/WSTX-165) result UnknownHostException).
* [ ] http://book.git-scm.com/4_interactive_rebasing.html (301) with 1 occurrences migrated to:
  https://book.git-scm.com/4_interactive_rebasing.html ([https](https://book.git-scm.com/4_interactive_rebasing.html) result 404).
* [ ] http://docs.spring.io/downloads/nightly/milestone-download.php?project=BATCH (301) with 2 occurrences migrated to:
  https://docs.spring.io/downloads/nightly/milestone-download.php?project=BATCH ([https](https://docs.spring.io/downloads/nightly/milestone-download.php?project=BATCH) result 404).
* [ ] http://docs.spring.io/downloads/nightly/release-download.php?project=BATCH (301) with 1 occurrences migrated to:
  https://docs.spring.io/downloads/nightly/release-download.php?project=BATCH ([https](https://docs.spring.io/downloads/nightly/release-download.php?project=BATCH) result 404).
* [ ] http://help.github.com/send-pull-requests (404) with 1 occurrences migrated to:
  https://help.github.com/send-pull-requests ([https](https://help.github.com/send-pull-requests) result 404).
* [ ] http://jira.spring.io/browse/Update (301) with 2 occurrences migrated to:
  https://jira.spring.io/browse/Update ([https](https://jira.spring.io/browse/Update) result 404).
* [ ] http://q4e.googlecode.com/svn/trunk/updatesite (404) with 1 occurrences migrated to:
  https://q4e.googlecode.com/svn/trunk/updatesite ([https](https://q4e.googlecode.com/svn/trunk/updatesite) result 404).
* [ ] http://repository.springsource.com/maven/bundles/external (404) with 1 occurrences migrated to:
  https://repository.springsource.com/maven/bundles/external ([https](https://repository.springsource.com/maven/bundles/external) result 404).
* [ ] http://repository.springsource.com/maven/bundles/milestone (404) with 1 occurrences migrated to:
  https://repository.springsource.com/maven/bundles/milestone ([https](https://repository.springsource.com/maven/bundles/milestone) result 404).
* [ ] http://repository.springsource.com/maven/bundles/release (404) with 1 occurrences migrated to:
  https://repository.springsource.com/maven/bundles/release ([https](https://repository.springsource.com/maven/bundles/release) result 404).
* [ ] http://s3.amazonaws.com/maven.springframework.org/snapshot (404) with 1 occurrences migrated to:
  https://s3.amazonaws.com/maven.springframework.org/snapshot ([https](https://s3.amazonaws.com/maven.springframework.org/snapshot) result 404).
* [ ] http://shrub.appspot.com/maven.springframework.org/milestone/org/springframework/batch (404) with 1 occurrences migrated to:
  https://shrub.appspot.com/maven.springframework.org/milestone/org/springframework/batch ([https](https://shrub.appspot.com/maven.springframework.org/milestone/org/springframework/batch) result 404).
* [ ] http://shrub.appspot.com/maven.springframework.org/release/org/springframework/batch/ (404) with 1 occurrences migrated to:
  https://shrub.appspot.com/maven.springframework.org/release/org/springframework/batch/ ([https](https://shrub.appspot.com/maven.springframework.org/release/org/springframework/batch/) result 404).
* [ ] http://shrub.appspot.com/repository.springsource.com/maven/bundles/milestone/ (404) with 1 occurrences migrated to:
  https://shrub.appspot.com/repository.springsource.com/maven/bundles/milestone/ ([https](https://shrub.appspot.com/repository.springsource.com/maven/bundles/milestone/) result 404).
* [ ] http://shrub.appspot.com/repository.springsource.com/maven/bundles/release (404) with 1 occurrences migrated to:
  https://shrub.appspot.com/repository.springsource.com/maven/bundles/release ([https](https://shrub.appspot.com/repository.springsource.com/maven/bundles/release) result 404).
* [ ] http://www.springframework.org/test (404) with 25 occurrences migrated to:
  https://www.springframework.org/test ([https](https://www.springframework.org/test) result 404).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://db.apache.org/derby/papers/versionupgrade.html with 1 occurrences migrated to:
  https://db.apache.org/derby/papers/versionupgrade.html ([https](https://db.apache.org/derby/papers/versionupgrade.html) result 200).
* [ ] http://docs.oracle.com/javase/tutorial/java/generics/capture.html with 2 occurrences migrated to:
  https://docs.oracle.com/javase/tutorial/java/generics/capture.html ([https](https://docs.oracle.com/javase/tutorial/java/generics/capture.html) result 200).
* [ ] http://docs.spring.io/spring-batch/trunk/reference/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-batch/trunk/reference/ ([https](https://docs.spring.io/spring-batch/trunk/reference/) result 200).
* [ ] http://docs.spring.io/spring-batch/trunk/reference/html/index.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-batch/trunk/reference/html/index.html ([https](https://docs.spring.io/spring-batch/trunk/reference/html/index.html) result 200).
* [ ] http://docs.spring.io/spring-ws/sites/2.0/reference/html/oxm.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-ws/sites/2.0/reference/html/oxm.html ([https](https://docs.spring.io/spring-ws/sites/2.0/reference/html/oxm.html) result 200).
* [ ] http://docs.spring.io/spring/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/interceptor/TransactionAttributeEditor.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/interceptor/TransactionAttributeEditor.html ([https](https://docs.spring.io/spring/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/interceptor/TransactionAttributeEditor.html) result 200).
* [ ] http://github.com/spring-projects/spring-batch with 1 occurrences migrated to:
  https://github.com/spring-projects/spring-batch ([https](https://github.com/spring-projects/spring-batch) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1000 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1000 ([https](https://jira.spring.io/browse/BATCH-1000) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1001 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1001 ([https](https://jira.spring.io/browse/BATCH-1001) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1002 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1002 ([https](https://jira.spring.io/browse/BATCH-1002) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1003 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1003 ([https](https://jira.spring.io/browse/BATCH-1003) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1004 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1004 ([https](https://jira.spring.io/browse/BATCH-1004) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1005 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1005 ([https](https://jira.spring.io/browse/BATCH-1005) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1006 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1006 ([https](https://jira.spring.io/browse/BATCH-1006) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1007 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1007 ([https](https://jira.spring.io/browse/BATCH-1007) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1008 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1008 ([https](https://jira.spring.io/browse/BATCH-1008) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1009 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1009 ([https](https://jira.spring.io/browse/BATCH-1009) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1010 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1010 ([https](https://jira.spring.io/browse/BATCH-1010) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1011 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1011 ([https](https://jira.spring.io/browse/BATCH-1011) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1012 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1012 ([https](https://jira.spring.io/browse/BATCH-1012) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1013 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1013 ([https](https://jira.spring.io/browse/BATCH-1013) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1015 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1015 ([https](https://jira.spring.io/browse/BATCH-1015) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1016 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1016 ([https](https://jira.spring.io/browse/BATCH-1016) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1019 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1019 ([https](https://jira.spring.io/browse/BATCH-1019) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1020 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1020 ([https](https://jira.spring.io/browse/BATCH-1020) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1021 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1021 ([https](https://jira.spring.io/browse/BATCH-1021) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1023 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1023 ([https](https://jira.spring.io/browse/BATCH-1023) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1024 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1024 ([https](https://jira.spring.io/browse/BATCH-1024) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1025 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1025 ([https](https://jira.spring.io/browse/BATCH-1025) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1026 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1026 ([https](https://jira.spring.io/browse/BATCH-1026) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1027 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1027 ([https](https://jira.spring.io/browse/BATCH-1027) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1028 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1028 ([https](https://jira.spring.io/browse/BATCH-1028) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1030 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1030 ([https](https://jira.spring.io/browse/BATCH-1030) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1031 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1031 ([https](https://jira.spring.io/browse/BATCH-1031) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1032 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1032 ([https](https://jira.spring.io/browse/BATCH-1032) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1033 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1033 ([https](https://jira.spring.io/browse/BATCH-1033) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1034 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1034 ([https](https://jira.spring.io/browse/BATCH-1034) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1035 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1035 ([https](https://jira.spring.io/browse/BATCH-1035) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1037 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1037 ([https](https://jira.spring.io/browse/BATCH-1037) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1040 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1040 ([https](https://jira.spring.io/browse/BATCH-1040) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1041 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1041 ([https](https://jira.spring.io/browse/BATCH-1041) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1042 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1042 ([https](https://jira.spring.io/browse/BATCH-1042) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1043 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1043 ([https](https://jira.spring.io/browse/BATCH-1043) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1045 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1045 ([https](https://jira.spring.io/browse/BATCH-1045) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1047 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1047 ([https](https://jira.spring.io/browse/BATCH-1047) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1048 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1048 ([https](https://jira.spring.io/browse/BATCH-1048) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1049 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1049 ([https](https://jira.spring.io/browse/BATCH-1049) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1050 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1050 ([https](https://jira.spring.io/browse/BATCH-1050) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1051 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1051 ([https](https://jira.spring.io/browse/BATCH-1051) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1052 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1052 ([https](https://jira.spring.io/browse/BATCH-1052) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1053 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1053 ([https](https://jira.spring.io/browse/BATCH-1053) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1054 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1054 ([https](https://jira.spring.io/browse/BATCH-1054) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1055 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1055 ([https](https://jira.spring.io/browse/BATCH-1055) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1056 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1056 ([https](https://jira.spring.io/browse/BATCH-1056) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1057 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1057 ([https](https://jira.spring.io/browse/BATCH-1057) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1059 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1059 ([https](https://jira.spring.io/browse/BATCH-1059) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1061 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1061 ([https](https://jira.spring.io/browse/BATCH-1061) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1062 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1062 ([https](https://jira.spring.io/browse/BATCH-1062) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1063 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1063 ([https](https://jira.spring.io/browse/BATCH-1063) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1064 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1064 ([https](https://jira.spring.io/browse/BATCH-1064) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1065 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1065 ([https](https://jira.spring.io/browse/BATCH-1065) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1066 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1066 ([https](https://jira.spring.io/browse/BATCH-1066) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1067 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1067 ([https](https://jira.spring.io/browse/BATCH-1067) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1068 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1068 ([https](https://jira.spring.io/browse/BATCH-1068) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1069 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1069 ([https](https://jira.spring.io/browse/BATCH-1069) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1070 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1070 ([https](https://jira.spring.io/browse/BATCH-1070) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1071 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1071 ([https](https://jira.spring.io/browse/BATCH-1071) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1072 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1072 ([https](https://jira.spring.io/browse/BATCH-1072) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1073 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1073 ([https](https://jira.spring.io/browse/BATCH-1073) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1075 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1075 ([https](https://jira.spring.io/browse/BATCH-1075) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1076 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1076 ([https](https://jira.spring.io/browse/BATCH-1076) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1077 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1077 ([https](https://jira.spring.io/browse/BATCH-1077) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1078 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1078 ([https](https://jira.spring.io/browse/BATCH-1078) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1080 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1080 ([https](https://jira.spring.io/browse/BATCH-1080) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1081 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1081 ([https](https://jira.spring.io/browse/BATCH-1081) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1082 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1082 ([https](https://jira.spring.io/browse/BATCH-1082) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1083 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1083 ([https](https://jira.spring.io/browse/BATCH-1083) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1084 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1084 ([https](https://jira.spring.io/browse/BATCH-1084) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1085 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1085 ([https](https://jira.spring.io/browse/BATCH-1085) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1086 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1086 ([https](https://jira.spring.io/browse/BATCH-1086) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1087 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1087 ([https](https://jira.spring.io/browse/BATCH-1087) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1088 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1088 ([https](https://jira.spring.io/browse/BATCH-1088) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1089 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1089 ([https](https://jira.spring.io/browse/BATCH-1089) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1091 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1091 ([https](https://jira.spring.io/browse/BATCH-1091) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1092 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1092 ([https](https://jira.spring.io/browse/BATCH-1092) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1093 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1093 ([https](https://jira.spring.io/browse/BATCH-1093) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1095 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1095 ([https](https://jira.spring.io/browse/BATCH-1095) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1096 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1096 ([https](https://jira.spring.io/browse/BATCH-1096) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1097 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1097 ([https](https://jira.spring.io/browse/BATCH-1097) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1098 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1098 ([https](https://jira.spring.io/browse/BATCH-1098) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1099 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1099 ([https](https://jira.spring.io/browse/BATCH-1099) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1101 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1101 ([https](https://jira.spring.io/browse/BATCH-1101) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1102 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1102 ([https](https://jira.spring.io/browse/BATCH-1102) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1103 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1103 ([https](https://jira.spring.io/browse/BATCH-1103) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1104 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1104 ([https](https://jira.spring.io/browse/BATCH-1104) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1105 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1105 ([https](https://jira.spring.io/browse/BATCH-1105) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1106 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1106 ([https](https://jira.spring.io/browse/BATCH-1106) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1107 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1107 ([https](https://jira.spring.io/browse/BATCH-1107) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1108 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1108 ([https](https://jira.spring.io/browse/BATCH-1108) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1109 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1109 ([https](https://jira.spring.io/browse/BATCH-1109) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1110 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1110 ([https](https://jira.spring.io/browse/BATCH-1110) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1111 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1111 ([https](https://jira.spring.io/browse/BATCH-1111) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1112 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1112 ([https](https://jira.spring.io/browse/BATCH-1112) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1113 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1113 ([https](https://jira.spring.io/browse/BATCH-1113) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1116 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1116 ([https](https://jira.spring.io/browse/BATCH-1116) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1117 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1117 ([https](https://jira.spring.io/browse/BATCH-1117) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1118 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1118 ([https](https://jira.spring.io/browse/BATCH-1118) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1119 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1119 ([https](https://jira.spring.io/browse/BATCH-1119) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1120 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1120 ([https](https://jira.spring.io/browse/BATCH-1120) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1121 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1121 ([https](https://jira.spring.io/browse/BATCH-1121) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1122 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1122 ([https](https://jira.spring.io/browse/BATCH-1122) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1123 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1123 ([https](https://jira.spring.io/browse/BATCH-1123) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1124 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1124 ([https](https://jira.spring.io/browse/BATCH-1124) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1125 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1125 ([https](https://jira.spring.io/browse/BATCH-1125) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1126 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1126 ([https](https://jira.spring.io/browse/BATCH-1126) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1127 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1127 ([https](https://jira.spring.io/browse/BATCH-1127) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1128 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1128 ([https](https://jira.spring.io/browse/BATCH-1128) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1129 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1129 ([https](https://jira.spring.io/browse/BATCH-1129) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1130 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1130 ([https](https://jira.spring.io/browse/BATCH-1130) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1131 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1131 ([https](https://jira.spring.io/browse/BATCH-1131) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1132 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1132 ([https](https://jira.spring.io/browse/BATCH-1132) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1134 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1134 ([https](https://jira.spring.io/browse/BATCH-1134) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1135 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1135 ([https](https://jira.spring.io/browse/BATCH-1135) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1136 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1136 ([https](https://jira.spring.io/browse/BATCH-1136) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1138 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1138 ([https](https://jira.spring.io/browse/BATCH-1138) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1139 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1139 ([https](https://jira.spring.io/browse/BATCH-1139) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1141 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1141 ([https](https://jira.spring.io/browse/BATCH-1141) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1142 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1142 ([https](https://jira.spring.io/browse/BATCH-1142) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1143 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1143 ([https](https://jira.spring.io/browse/BATCH-1143) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1144 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1144 ([https](https://jira.spring.io/browse/BATCH-1144) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1145 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1145 ([https](https://jira.spring.io/browse/BATCH-1145) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1147 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1147 ([https](https://jira.spring.io/browse/BATCH-1147) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1150 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1150 ([https](https://jira.spring.io/browse/BATCH-1150) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1151 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1151 ([https](https://jira.spring.io/browse/BATCH-1151) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1152 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1152 ([https](https://jira.spring.io/browse/BATCH-1152) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1153 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1153 ([https](https://jira.spring.io/browse/BATCH-1153) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1154 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1154 ([https](https://jira.spring.io/browse/BATCH-1154) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1157 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1157 ([https](https://jira.spring.io/browse/BATCH-1157) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1159 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1159 ([https](https://jira.spring.io/browse/BATCH-1159) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1160 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1160 ([https](https://jira.spring.io/browse/BATCH-1160) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1161 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1161 ([https](https://jira.spring.io/browse/BATCH-1161) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1162 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1162 ([https](https://jira.spring.io/browse/BATCH-1162) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1163 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1163 ([https](https://jira.spring.io/browse/BATCH-1163) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1164 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1164 ([https](https://jira.spring.io/browse/BATCH-1164) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1165 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1165 ([https](https://jira.spring.io/browse/BATCH-1165) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1168 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1168 ([https](https://jira.spring.io/browse/BATCH-1168) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1169 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1169 ([https](https://jira.spring.io/browse/BATCH-1169) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1170 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1170 ([https](https://jira.spring.io/browse/BATCH-1170) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1171 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1171 ([https](https://jira.spring.io/browse/BATCH-1171) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1172 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1172 ([https](https://jira.spring.io/browse/BATCH-1172) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1174 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1174 ([https](https://jira.spring.io/browse/BATCH-1174) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1175 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1175 ([https](https://jira.spring.io/browse/BATCH-1175) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1176 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1176 ([https](https://jira.spring.io/browse/BATCH-1176) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1177 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1177 ([https](https://jira.spring.io/browse/BATCH-1177) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1178 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1178 ([https](https://jira.spring.io/browse/BATCH-1178) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1179 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1179 ([https](https://jira.spring.io/browse/BATCH-1179) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1180 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1180 ([https](https://jira.spring.io/browse/BATCH-1180) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1181 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1181 ([https](https://jira.spring.io/browse/BATCH-1181) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1183 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1183 ([https](https://jira.spring.io/browse/BATCH-1183) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1184 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1184 ([https](https://jira.spring.io/browse/BATCH-1184) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1185 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1185 ([https](https://jira.spring.io/browse/BATCH-1185) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1187 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1187 ([https](https://jira.spring.io/browse/BATCH-1187) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1188 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1188 ([https](https://jira.spring.io/browse/BATCH-1188) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1189 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1189 ([https](https://jira.spring.io/browse/BATCH-1189) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1190 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1190 ([https](https://jira.spring.io/browse/BATCH-1190) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1191 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1191 ([https](https://jira.spring.io/browse/BATCH-1191) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1192 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1192 ([https](https://jira.spring.io/browse/BATCH-1192) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1194 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1194 ([https](https://jira.spring.io/browse/BATCH-1194) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1195 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1195 ([https](https://jira.spring.io/browse/BATCH-1195) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1196 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1196 ([https](https://jira.spring.io/browse/BATCH-1196) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1197 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1197 ([https](https://jira.spring.io/browse/BATCH-1197) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1198 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1198 ([https](https://jira.spring.io/browse/BATCH-1198) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1200 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1200 ([https](https://jira.spring.io/browse/BATCH-1200) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1201 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1201 ([https](https://jira.spring.io/browse/BATCH-1201) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1203 with 38 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1203 ([https](https://jira.spring.io/browse/BATCH-1203) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1232 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1232 ([https](https://jira.spring.io/browse/BATCH-1232) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1239 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1239 ([https](https://jira.spring.io/browse/BATCH-1239) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1246 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1246 ([https](https://jira.spring.io/browse/BATCH-1246) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1253 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1253 ([https](https://jira.spring.io/browse/BATCH-1253) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1259 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1259 ([https](https://jira.spring.io/browse/BATCH-1259) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1262 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1262 ([https](https://jira.spring.io/browse/BATCH-1262) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1264 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1264 ([https](https://jira.spring.io/browse/BATCH-1264) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1265 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1265 ([https](https://jira.spring.io/browse/BATCH-1265) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1267 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1267 ([https](https://jira.spring.io/browse/BATCH-1267) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1268 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1268 ([https](https://jira.spring.io/browse/BATCH-1268) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1270 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1270 ([https](https://jira.spring.io/browse/BATCH-1270) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1271 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1271 ([https](https://jira.spring.io/browse/BATCH-1271) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1272 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1272 ([https](https://jira.spring.io/browse/BATCH-1272) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1275 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1275 ([https](https://jira.spring.io/browse/BATCH-1275) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1276 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1276 ([https](https://jira.spring.io/browse/BATCH-1276) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1277 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1277 ([https](https://jira.spring.io/browse/BATCH-1277) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1278 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1278 ([https](https://jira.spring.io/browse/BATCH-1278) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1279 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1279 ([https](https://jira.spring.io/browse/BATCH-1279) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1280 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1280 ([https](https://jira.spring.io/browse/BATCH-1280) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1281 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1281 ([https](https://jira.spring.io/browse/BATCH-1281) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1282 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1282 ([https](https://jira.spring.io/browse/BATCH-1282) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1284 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1284 ([https](https://jira.spring.io/browse/BATCH-1284) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1285 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1285 ([https](https://jira.spring.io/browse/BATCH-1285) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1287 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1287 ([https](https://jira.spring.io/browse/BATCH-1287) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1288 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1288 ([https](https://jira.spring.io/browse/BATCH-1288) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1289 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1289 ([https](https://jira.spring.io/browse/BATCH-1289) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1295 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1295 ([https](https://jira.spring.io/browse/BATCH-1295) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1297 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1297 ([https](https://jira.spring.io/browse/BATCH-1297) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1298 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1298 ([https](https://jira.spring.io/browse/BATCH-1298) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1299 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1299 ([https](https://jira.spring.io/browse/BATCH-1299) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1300 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1300 ([https](https://jira.spring.io/browse/BATCH-1300) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1301 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1301 ([https](https://jira.spring.io/browse/BATCH-1301) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1302 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1302 ([https](https://jira.spring.io/browse/BATCH-1302) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1303 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1303 ([https](https://jira.spring.io/browse/BATCH-1303) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1304 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1304 ([https](https://jira.spring.io/browse/BATCH-1304) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1305 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1305 ([https](https://jira.spring.io/browse/BATCH-1305) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1306 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1306 ([https](https://jira.spring.io/browse/BATCH-1306) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1307 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1307 ([https](https://jira.spring.io/browse/BATCH-1307) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1308 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1308 ([https](https://jira.spring.io/browse/BATCH-1308) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1309 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1309 ([https](https://jira.spring.io/browse/BATCH-1309) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1310 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1310 ([https](https://jira.spring.io/browse/BATCH-1310) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1311 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1311 ([https](https://jira.spring.io/browse/BATCH-1311) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1312 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1312 ([https](https://jira.spring.io/browse/BATCH-1312) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1313 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1313 ([https](https://jira.spring.io/browse/BATCH-1313) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1314 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1314 ([https](https://jira.spring.io/browse/BATCH-1314) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1315 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1315 ([https](https://jira.spring.io/browse/BATCH-1315) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1316 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1316 ([https](https://jira.spring.io/browse/BATCH-1316) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1317 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1317 ([https](https://jira.spring.io/browse/BATCH-1317) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1318 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1318 ([https](https://jira.spring.io/browse/BATCH-1318) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1319 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1319 ([https](https://jira.spring.io/browse/BATCH-1319) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1320 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1320 ([https](https://jira.spring.io/browse/BATCH-1320) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1321 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1321 ([https](https://jira.spring.io/browse/BATCH-1321) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1323 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1323 ([https](https://jira.spring.io/browse/BATCH-1323) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1325 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1325 ([https](https://jira.spring.io/browse/BATCH-1325) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1327 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1327 ([https](https://jira.spring.io/browse/BATCH-1327) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1331 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1331 ([https](https://jira.spring.io/browse/BATCH-1331) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1332 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1332 ([https](https://jira.spring.io/browse/BATCH-1332) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1333 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1333 ([https](https://jira.spring.io/browse/BATCH-1333) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1334 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1334 ([https](https://jira.spring.io/browse/BATCH-1334) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1335 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1335 ([https](https://jira.spring.io/browse/BATCH-1335) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1336 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1336 ([https](https://jira.spring.io/browse/BATCH-1336) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1339 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1339 ([https](https://jira.spring.io/browse/BATCH-1339) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1340 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1340 ([https](https://jira.spring.io/browse/BATCH-1340) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1341 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1341 ([https](https://jira.spring.io/browse/BATCH-1341) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1342 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1342 ([https](https://jira.spring.io/browse/BATCH-1342) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1343 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1343 ([https](https://jira.spring.io/browse/BATCH-1343) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1344 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1344 ([https](https://jira.spring.io/browse/BATCH-1344) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1345 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1345 ([https](https://jira.spring.io/browse/BATCH-1345) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1347 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1347 ([https](https://jira.spring.io/browse/BATCH-1347) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1348 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1348 ([https](https://jira.spring.io/browse/BATCH-1348) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1350 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1350 ([https](https://jira.spring.io/browse/BATCH-1350) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1351 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1351 ([https](https://jira.spring.io/browse/BATCH-1351) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1354 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1354 ([https](https://jira.spring.io/browse/BATCH-1354) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1355 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1355 ([https](https://jira.spring.io/browse/BATCH-1355) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1356 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1356 ([https](https://jira.spring.io/browse/BATCH-1356) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1357 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1357 ([https](https://jira.spring.io/browse/BATCH-1357) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1358 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1358 ([https](https://jira.spring.io/browse/BATCH-1358) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1359 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1359 ([https](https://jira.spring.io/browse/BATCH-1359) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1360 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1360 ([https](https://jira.spring.io/browse/BATCH-1360) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1361 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1361 ([https](https://jira.spring.io/browse/BATCH-1361) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1362 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1362 ([https](https://jira.spring.io/browse/BATCH-1362) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1363 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1363 ([https](https://jira.spring.io/browse/BATCH-1363) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1366 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1366 ([https](https://jira.spring.io/browse/BATCH-1366) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1367 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1367 ([https](https://jira.spring.io/browse/BATCH-1367) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1368 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1368 ([https](https://jira.spring.io/browse/BATCH-1368) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1369 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1369 ([https](https://jira.spring.io/browse/BATCH-1369) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1370 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1370 ([https](https://jira.spring.io/browse/BATCH-1370) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1371 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1371 ([https](https://jira.spring.io/browse/BATCH-1371) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1372 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1372 ([https](https://jira.spring.io/browse/BATCH-1372) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1374 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1374 ([https](https://jira.spring.io/browse/BATCH-1374) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1375 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1375 ([https](https://jira.spring.io/browse/BATCH-1375) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1376 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1376 ([https](https://jira.spring.io/browse/BATCH-1376) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1377 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1377 ([https](https://jira.spring.io/browse/BATCH-1377) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1380 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1380 ([https](https://jira.spring.io/browse/BATCH-1380) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1381 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1381 ([https](https://jira.spring.io/browse/BATCH-1381) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1382 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1382 ([https](https://jira.spring.io/browse/BATCH-1382) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1385 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1385 ([https](https://jira.spring.io/browse/BATCH-1385) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1387 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1387 ([https](https://jira.spring.io/browse/BATCH-1387) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1389 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1389 ([https](https://jira.spring.io/browse/BATCH-1389) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1390 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1390 ([https](https://jira.spring.io/browse/BATCH-1390) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1391 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1391 ([https](https://jira.spring.io/browse/BATCH-1391) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1392 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1392 ([https](https://jira.spring.io/browse/BATCH-1392) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1393 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1393 ([https](https://jira.spring.io/browse/BATCH-1393) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1394 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1394 ([https](https://jira.spring.io/browse/BATCH-1394) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1395 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1395 ([https](https://jira.spring.io/browse/BATCH-1395) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1397 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1397 ([https](https://jira.spring.io/browse/BATCH-1397) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1398 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1398 ([https](https://jira.spring.io/browse/BATCH-1398) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1399 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1399 ([https](https://jira.spring.io/browse/BATCH-1399) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1400 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1400 ([https](https://jira.spring.io/browse/BATCH-1400) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1401 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1401 ([https](https://jira.spring.io/browse/BATCH-1401) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1402 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1402 ([https](https://jira.spring.io/browse/BATCH-1402) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1404 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1404 ([https](https://jira.spring.io/browse/BATCH-1404) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1406 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1406 ([https](https://jira.spring.io/browse/BATCH-1406) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1407 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1407 ([https](https://jira.spring.io/browse/BATCH-1407) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1408 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1408 ([https](https://jira.spring.io/browse/BATCH-1408) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1409 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1409 ([https](https://jira.spring.io/browse/BATCH-1409) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1410 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1410 ([https](https://jira.spring.io/browse/BATCH-1410) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1411 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1411 ([https](https://jira.spring.io/browse/BATCH-1411) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1413 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1413 ([https](https://jira.spring.io/browse/BATCH-1413) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1414 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1414 ([https](https://jira.spring.io/browse/BATCH-1414) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1415 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1415 ([https](https://jira.spring.io/browse/BATCH-1415) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1416 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1416 ([https](https://jira.spring.io/browse/BATCH-1416) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1417 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1417 ([https](https://jira.spring.io/browse/BATCH-1417) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1418 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1418 ([https](https://jira.spring.io/browse/BATCH-1418) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1419 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1419 ([https](https://jira.spring.io/browse/BATCH-1419) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1420 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1420 ([https](https://jira.spring.io/browse/BATCH-1420) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1421 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1421 ([https](https://jira.spring.io/browse/BATCH-1421) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1422 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1422 ([https](https://jira.spring.io/browse/BATCH-1422) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1423 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1423 ([https](https://jira.spring.io/browse/BATCH-1423) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1424 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1424 ([https](https://jira.spring.io/browse/BATCH-1424) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1426 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1426 ([https](https://jira.spring.io/browse/BATCH-1426) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1427 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1427 ([https](https://jira.spring.io/browse/BATCH-1427) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1428 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1428 ([https](https://jira.spring.io/browse/BATCH-1428) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1429 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1429 ([https](https://jira.spring.io/browse/BATCH-1429) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1430 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1430 ([https](https://jira.spring.io/browse/BATCH-1430) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1432 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1432 ([https](https://jira.spring.io/browse/BATCH-1432) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1433 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1433 ([https](https://jira.spring.io/browse/BATCH-1433) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1434 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1434 ([https](https://jira.spring.io/browse/BATCH-1434) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1436 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1436 ([https](https://jira.spring.io/browse/BATCH-1436) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1437 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1437 ([https](https://jira.spring.io/browse/BATCH-1437) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1439 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1439 ([https](https://jira.spring.io/browse/BATCH-1439) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1441 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1441 ([https](https://jira.spring.io/browse/BATCH-1441) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1442 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1442 ([https](https://jira.spring.io/browse/BATCH-1442) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1443 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1443 ([https](https://jira.spring.io/browse/BATCH-1443) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1444 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1444 ([https](https://jira.spring.io/browse/BATCH-1444) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1446 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1446 ([https](https://jira.spring.io/browse/BATCH-1446) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1447 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1447 ([https](https://jira.spring.io/browse/BATCH-1447) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1448 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1448 ([https](https://jira.spring.io/browse/BATCH-1448) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1449 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1449 ([https](https://jira.spring.io/browse/BATCH-1449) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1450 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1450 ([https](https://jira.spring.io/browse/BATCH-1450) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1451 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1451 ([https](https://jira.spring.io/browse/BATCH-1451) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1452 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1452 ([https](https://jira.spring.io/browse/BATCH-1452) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1453 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1453 ([https](https://jira.spring.io/browse/BATCH-1453) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1454 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1454 ([https](https://jira.spring.io/browse/BATCH-1454) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1456 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1456 ([https](https://jira.spring.io/browse/BATCH-1456) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1457 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1457 ([https](https://jira.spring.io/browse/BATCH-1457) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1458 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1458 ([https](https://jira.spring.io/browse/BATCH-1458) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1460 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1460 ([https](https://jira.spring.io/browse/BATCH-1460) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1462 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1462 ([https](https://jira.spring.io/browse/BATCH-1462) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1463 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1463 ([https](https://jira.spring.io/browse/BATCH-1463) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1464 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1464 ([https](https://jira.spring.io/browse/BATCH-1464) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1465 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1465 ([https](https://jira.spring.io/browse/BATCH-1465) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1466 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1466 ([https](https://jira.spring.io/browse/BATCH-1466) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1467 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1467 ([https](https://jira.spring.io/browse/BATCH-1467) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1468 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1468 ([https](https://jira.spring.io/browse/BATCH-1468) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1469 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1469 ([https](https://jira.spring.io/browse/BATCH-1469) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1470 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1470 ([https](https://jira.spring.io/browse/BATCH-1470) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1471 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1471 ([https](https://jira.spring.io/browse/BATCH-1471) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1472 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1472 ([https](https://jira.spring.io/browse/BATCH-1472) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1473 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1473 ([https](https://jira.spring.io/browse/BATCH-1473) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1474 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1474 ([https](https://jira.spring.io/browse/BATCH-1474) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1475 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1475 ([https](https://jira.spring.io/browse/BATCH-1475) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1476 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1476 ([https](https://jira.spring.io/browse/BATCH-1476) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1477 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1477 ([https](https://jira.spring.io/browse/BATCH-1477) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1478 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1478 ([https](https://jira.spring.io/browse/BATCH-1478) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1479 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1479 ([https](https://jira.spring.io/browse/BATCH-1479) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1480 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1480 ([https](https://jira.spring.io/browse/BATCH-1480) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1481 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1481 ([https](https://jira.spring.io/browse/BATCH-1481) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1482 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1482 ([https](https://jira.spring.io/browse/BATCH-1482) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1483 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1483 ([https](https://jira.spring.io/browse/BATCH-1483) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1484 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1484 ([https](https://jira.spring.io/browse/BATCH-1484) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1486 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1486 ([https](https://jira.spring.io/browse/BATCH-1486) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1488 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1488 ([https](https://jira.spring.io/browse/BATCH-1488) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1490 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1490 ([https](https://jira.spring.io/browse/BATCH-1490) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1493 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1493 ([https](https://jira.spring.io/browse/BATCH-1493) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1494 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1494 ([https](https://jira.spring.io/browse/BATCH-1494) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1495 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1495 ([https](https://jira.spring.io/browse/BATCH-1495) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1496 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1496 ([https](https://jira.spring.io/browse/BATCH-1496) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1497 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1497 ([https](https://jira.spring.io/browse/BATCH-1497) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1498 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1498 ([https](https://jira.spring.io/browse/BATCH-1498) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1499 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1499 ([https](https://jira.spring.io/browse/BATCH-1499) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1502 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1502 ([https](https://jira.spring.io/browse/BATCH-1502) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1503 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1503 ([https](https://jira.spring.io/browse/BATCH-1503) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1507 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1507 ([https](https://jira.spring.io/browse/BATCH-1507) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1508 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1508 ([https](https://jira.spring.io/browse/BATCH-1508) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1510 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1510 ([https](https://jira.spring.io/browse/BATCH-1510) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1513 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1513 ([https](https://jira.spring.io/browse/BATCH-1513) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1520 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1520 ([https](https://jira.spring.io/browse/BATCH-1520) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1522 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1522 ([https](https://jira.spring.io/browse/BATCH-1522) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1525 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1525 ([https](https://jira.spring.io/browse/BATCH-1525) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1526 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1526 ([https](https://jira.spring.io/browse/BATCH-1526) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1527 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1527 ([https](https://jira.spring.io/browse/BATCH-1527) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1528 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1528 ([https](https://jira.spring.io/browse/BATCH-1528) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1529 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1529 ([https](https://jira.spring.io/browse/BATCH-1529) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1530 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1530 ([https](https://jira.spring.io/browse/BATCH-1530) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1531 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1531 ([https](https://jira.spring.io/browse/BATCH-1531) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1533 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1533 ([https](https://jira.spring.io/browse/BATCH-1533) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1534 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1534 ([https](https://jira.spring.io/browse/BATCH-1534) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1535 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1535 ([https](https://jira.spring.io/browse/BATCH-1535) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1536 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1536 ([https](https://jira.spring.io/browse/BATCH-1536) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1537 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1537 ([https](https://jira.spring.io/browse/BATCH-1537) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1540 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1540 ([https](https://jira.spring.io/browse/BATCH-1540) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1541 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1541 ([https](https://jira.spring.io/browse/BATCH-1541) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1542 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1542 ([https](https://jira.spring.io/browse/BATCH-1542) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1543 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1543 ([https](https://jira.spring.io/browse/BATCH-1543) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1545 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1545 ([https](https://jira.spring.io/browse/BATCH-1545) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1546 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1546 ([https](https://jira.spring.io/browse/BATCH-1546) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1547 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1547 ([https](https://jira.spring.io/browse/BATCH-1547) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1548 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1548 ([https](https://jira.spring.io/browse/BATCH-1548) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1550 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1550 ([https](https://jira.spring.io/browse/BATCH-1550) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1551 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1551 ([https](https://jira.spring.io/browse/BATCH-1551) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1552 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1552 ([https](https://jira.spring.io/browse/BATCH-1552) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1553 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1553 ([https](https://jira.spring.io/browse/BATCH-1553) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1556 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1556 ([https](https://jira.spring.io/browse/BATCH-1556) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1558 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1558 ([https](https://jira.spring.io/browse/BATCH-1558) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1559 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1559 ([https](https://jira.spring.io/browse/BATCH-1559) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1564 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1564 ([https](https://jira.spring.io/browse/BATCH-1564) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1566 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1566 ([https](https://jira.spring.io/browse/BATCH-1566) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1567 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1567 ([https](https://jira.spring.io/browse/BATCH-1567) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1568 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1568 ([https](https://jira.spring.io/browse/BATCH-1568) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1569 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1569 ([https](https://jira.spring.io/browse/BATCH-1569) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1571 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1571 ([https](https://jira.spring.io/browse/BATCH-1571) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1572 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1572 ([https](https://jira.spring.io/browse/BATCH-1572) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1573 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1573 ([https](https://jira.spring.io/browse/BATCH-1573) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1574 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1574 ([https](https://jira.spring.io/browse/BATCH-1574) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1575 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1575 ([https](https://jira.spring.io/browse/BATCH-1575) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1578 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1578 ([https](https://jira.spring.io/browse/BATCH-1578) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1579 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1579 ([https](https://jira.spring.io/browse/BATCH-1579) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1582 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1582 ([https](https://jira.spring.io/browse/BATCH-1582) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1587 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1587 ([https](https://jira.spring.io/browse/BATCH-1587) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1588 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1588 ([https](https://jira.spring.io/browse/BATCH-1588) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1589 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1589 ([https](https://jira.spring.io/browse/BATCH-1589) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1590 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1590 ([https](https://jira.spring.io/browse/BATCH-1590) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1591 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1591 ([https](https://jira.spring.io/browse/BATCH-1591) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1593 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1593 ([https](https://jira.spring.io/browse/BATCH-1593) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1594 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1594 ([https](https://jira.spring.io/browse/BATCH-1594) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1597 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1597 ([https](https://jira.spring.io/browse/BATCH-1597) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1598 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1598 ([https](https://jira.spring.io/browse/BATCH-1598) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1600 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1600 ([https](https://jira.spring.io/browse/BATCH-1600) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1601 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1601 ([https](https://jira.spring.io/browse/BATCH-1601) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1602 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1602 ([https](https://jira.spring.io/browse/BATCH-1602) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1603 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1603 ([https](https://jira.spring.io/browse/BATCH-1603) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1604 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1604 ([https](https://jira.spring.io/browse/BATCH-1604) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1605 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1605 ([https](https://jira.spring.io/browse/BATCH-1605) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1608 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1608 ([https](https://jira.spring.io/browse/BATCH-1608) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1609 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1609 ([https](https://jira.spring.io/browse/BATCH-1609) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1614 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1614 ([https](https://jira.spring.io/browse/BATCH-1614) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1615 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1615 ([https](https://jira.spring.io/browse/BATCH-1615) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1616 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1616 ([https](https://jira.spring.io/browse/BATCH-1616) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1618 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1618 ([https](https://jira.spring.io/browse/BATCH-1618) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1619 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1619 ([https](https://jira.spring.io/browse/BATCH-1619) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1620 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1620 ([https](https://jira.spring.io/browse/BATCH-1620) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1621 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1621 ([https](https://jira.spring.io/browse/BATCH-1621) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1622 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1622 ([https](https://jira.spring.io/browse/BATCH-1622) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1623 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1623 ([https](https://jira.spring.io/browse/BATCH-1623) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1624 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1624 ([https](https://jira.spring.io/browse/BATCH-1624) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1627 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1627 ([https](https://jira.spring.io/browse/BATCH-1627) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1628 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1628 ([https](https://jira.spring.io/browse/BATCH-1628) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1629 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1629 ([https](https://jira.spring.io/browse/BATCH-1629) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1630 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1630 ([https](https://jira.spring.io/browse/BATCH-1630) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1631 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1631 ([https](https://jira.spring.io/browse/BATCH-1631) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1632 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1632 ([https](https://jira.spring.io/browse/BATCH-1632) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1633 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1633 ([https](https://jira.spring.io/browse/BATCH-1633) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1634 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1634 ([https](https://jira.spring.io/browse/BATCH-1634) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1636 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1636 ([https](https://jira.spring.io/browse/BATCH-1636) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1637 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1637 ([https](https://jira.spring.io/browse/BATCH-1637) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1638 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1638 ([https](https://jira.spring.io/browse/BATCH-1638) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1639 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1639 ([https](https://jira.spring.io/browse/BATCH-1639) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1640 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1640 ([https](https://jira.spring.io/browse/BATCH-1640) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1643 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1643 ([https](https://jira.spring.io/browse/BATCH-1643) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1647 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1647 ([https](https://jira.spring.io/browse/BATCH-1647) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1648 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1648 ([https](https://jira.spring.io/browse/BATCH-1648) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1650 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1650 ([https](https://jira.spring.io/browse/BATCH-1650) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1664 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1664 ([https](https://jira.spring.io/browse/BATCH-1664) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1681 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1681 ([https](https://jira.spring.io/browse/BATCH-1681) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1701 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1701 ([https](https://jira.spring.io/browse/BATCH-1701) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1811 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1811 ([https](https://jira.spring.io/browse/BATCH-1811) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1849 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1849 ([https](https://jira.spring.io/browse/BATCH-1849) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1973 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1973 ([https](https://jira.spring.io/browse/BATCH-1973) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1980 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1980 ([https](https://jira.spring.io/browse/BATCH-1980) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1984 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1984 ([https](https://jira.spring.io/browse/BATCH-1984) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1997 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1997 ([https](https://jira.spring.io/browse/BATCH-1997) result 200).
* [ ] http://jira.spring.io/browse/BATCH-1999 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-1999 ([https](https://jira.spring.io/browse/BATCH-1999) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2000 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2000 ([https](https://jira.spring.io/browse/BATCH-2000) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2003 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2003 ([https](https://jira.spring.io/browse/BATCH-2003) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2004 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2004 ([https](https://jira.spring.io/browse/BATCH-2004) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2006 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2006 ([https](https://jira.spring.io/browse/BATCH-2006) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2007 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2007 ([https](https://jira.spring.io/browse/BATCH-2007) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2008 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2008 ([https](https://jira.spring.io/browse/BATCH-2008) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2009 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2009 ([https](https://jira.spring.io/browse/BATCH-2009) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2014 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2014 ([https](https://jira.spring.io/browse/BATCH-2014) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2018 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2018 ([https](https://jira.spring.io/browse/BATCH-2018) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2028 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2028 ([https](https://jira.spring.io/browse/BATCH-2028) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2031 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2031 ([https](https://jira.spring.io/browse/BATCH-2031) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2034 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2034 ([https](https://jira.spring.io/browse/BATCH-2034) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2035 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2035 ([https](https://jira.spring.io/browse/BATCH-2035) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2036 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2036 ([https](https://jira.spring.io/browse/BATCH-2036) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2037 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2037 ([https](https://jira.spring.io/browse/BATCH-2037) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2038 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2038 ([https](https://jira.spring.io/browse/BATCH-2038) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2040 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2040 ([https](https://jira.spring.io/browse/BATCH-2040) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2043 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2043 ([https](https://jira.spring.io/browse/BATCH-2043) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2044 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2044 ([https](https://jira.spring.io/browse/BATCH-2044) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2046 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2046 ([https](https://jira.spring.io/browse/BATCH-2046) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2049 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2049 ([https](https://jira.spring.io/browse/BATCH-2049) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2050 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2050 ([https](https://jira.spring.io/browse/BATCH-2050) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2052 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2052 ([https](https://jira.spring.io/browse/BATCH-2052) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2054 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2054 ([https](https://jira.spring.io/browse/BATCH-2054) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2056 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2056 ([https](https://jira.spring.io/browse/BATCH-2056) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2062 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2062 ([https](https://jira.spring.io/browse/BATCH-2062) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2063 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2063 ([https](https://jira.spring.io/browse/BATCH-2063) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2066 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2066 ([https](https://jira.spring.io/browse/BATCH-2066) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2067 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2067 ([https](https://jira.spring.io/browse/BATCH-2067) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2069 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2069 ([https](https://jira.spring.io/browse/BATCH-2069) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2071 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2071 ([https](https://jira.spring.io/browse/BATCH-2071) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2072 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2072 ([https](https://jira.spring.io/browse/BATCH-2072) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2073 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2073 ([https](https://jira.spring.io/browse/BATCH-2073) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2076 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2076 ([https](https://jira.spring.io/browse/BATCH-2076) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2077 with 3 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2077 ([https](https://jira.spring.io/browse/BATCH-2077) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2080 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2080 ([https](https://jira.spring.io/browse/BATCH-2080) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2086 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2086 ([https](https://jira.spring.io/browse/BATCH-2086) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2089 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2089 ([https](https://jira.spring.io/browse/BATCH-2089) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2096 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2096 ([https](https://jira.spring.io/browse/BATCH-2096) result 200).
* [ ] http://jira.spring.io/browse/BATCH-21 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-21 ([https](https://jira.spring.io/browse/BATCH-21) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2110 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2110 ([https](https://jira.spring.io/browse/BATCH-2110) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2111 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2111 ([https](https://jira.spring.io/browse/BATCH-2111) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2112 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2112 ([https](https://jira.spring.io/browse/BATCH-2112) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2122 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2122 ([https](https://jira.spring.io/browse/BATCH-2122) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2124 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2124 ([https](https://jira.spring.io/browse/BATCH-2124) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2126 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2126 ([https](https://jira.spring.io/browse/BATCH-2126) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2129 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2129 ([https](https://jira.spring.io/browse/BATCH-2129) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2130 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2130 ([https](https://jira.spring.io/browse/BATCH-2130) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2140 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2140 ([https](https://jira.spring.io/browse/BATCH-2140) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2141 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2141 ([https](https://jira.spring.io/browse/BATCH-2141) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2142 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2142 ([https](https://jira.spring.io/browse/BATCH-2142) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2148 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2148 ([https](https://jira.spring.io/browse/BATCH-2148) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2149 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2149 ([https](https://jira.spring.io/browse/BATCH-2149) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2150 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2150 ([https](https://jira.spring.io/browse/BATCH-2150) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2151 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2151 ([https](https://jira.spring.io/browse/BATCH-2151) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2153 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2153 ([https](https://jira.spring.io/browse/BATCH-2153) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2163 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2163 ([https](https://jira.spring.io/browse/BATCH-2163) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2169 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2169 ([https](https://jira.spring.io/browse/BATCH-2169) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2173 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2173 ([https](https://jira.spring.io/browse/BATCH-2173) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2174 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2174 ([https](https://jira.spring.io/browse/BATCH-2174) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2175 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2175 ([https](https://jira.spring.io/browse/BATCH-2175) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2179 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2179 ([https](https://jira.spring.io/browse/BATCH-2179) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2180 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2180 ([https](https://jira.spring.io/browse/BATCH-2180) result 200).
* [ ] http://jira.spring.io/browse/BATCH-2181 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-2181 ([https](https://jira.spring.io/browse/BATCH-2181) result 200).
* [ ] http://jira.spring.io/browse/BATCH-22 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-22 ([https](https://jira.spring.io/browse/BATCH-22) result 200).
* [ ] http://jira.spring.io/browse/BATCH-234 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-234 ([https](https://jira.spring.io/browse/BATCH-234) result 200).
* [ ] http://jira.spring.io/browse/BATCH-264 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-264 ([https](https://jira.spring.io/browse/BATCH-264) result 200).
* [ ] http://jira.spring.io/browse/BATCH-282 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-282 ([https](https://jira.spring.io/browse/BATCH-282) result 200).
* [ ] http://jira.spring.io/browse/BATCH-34 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-34 ([https](https://jira.spring.io/browse/BATCH-34) result 200).
* [ ] http://jira.spring.io/browse/BATCH-341 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-341 ([https](https://jira.spring.io/browse/BATCH-341) result 200).
* [ ] http://jira.spring.io/browse/BATCH-394 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-394 ([https](https://jira.spring.io/browse/BATCH-394) result 200).
* [ ] http://jira.spring.io/browse/BATCH-470 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-470 ([https](https://jira.spring.io/browse/BATCH-470) result 200).
* [ ] http://jira.spring.io/browse/BATCH-501 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-501 ([https](https://jira.spring.io/browse/BATCH-501) result 200).
* [ ] http://jira.spring.io/browse/BATCH-509 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-509 ([https](https://jira.spring.io/browse/BATCH-509) result 200).
* [ ] http://jira.spring.io/browse/BATCH-53 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-53 ([https](https://jira.spring.io/browse/BATCH-53) result 200).
* [ ] http://jira.spring.io/browse/BATCH-573 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-573 ([https](https://jira.spring.io/browse/BATCH-573) result 200).
* [ ] http://jira.spring.io/browse/BATCH-583 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-583 ([https](https://jira.spring.io/browse/BATCH-583) result 200).
* [ ] http://jira.spring.io/browse/BATCH-585 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-585 ([https](https://jira.spring.io/browse/BATCH-585) result 200).
* [ ] http://jira.spring.io/browse/BATCH-607 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-607 ([https](https://jira.spring.io/browse/BATCH-607) result 200).
* [ ] http://jira.spring.io/browse/BATCH-618 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-618 ([https](https://jira.spring.io/browse/BATCH-618) result 200).
* [ ] http://jira.spring.io/browse/BATCH-624 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-624 ([https](https://jira.spring.io/browse/BATCH-624) result 200).
* [ ] http://jira.spring.io/browse/BATCH-63 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-63 ([https](https://jira.spring.io/browse/BATCH-63) result 200).
* [ ] http://jira.spring.io/browse/BATCH-630 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-630 ([https](https://jira.spring.io/browse/BATCH-630) result 200).
* [ ] http://jira.spring.io/browse/BATCH-632 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-632 ([https](https://jira.spring.io/browse/BATCH-632) result 200).
* [ ] http://jira.spring.io/browse/BATCH-659 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-659 ([https](https://jira.spring.io/browse/BATCH-659) result 200).
* [ ] http://jira.spring.io/browse/BATCH-673 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-673 ([https](https://jira.spring.io/browse/BATCH-673) result 200).
* [ ] http://jira.spring.io/browse/BATCH-674 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-674 ([https](https://jira.spring.io/browse/BATCH-674) result 200).
* [ ] http://jira.spring.io/browse/BATCH-676 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-676 ([https](https://jira.spring.io/browse/BATCH-676) result 200).
* [ ] http://jira.spring.io/browse/BATCH-677 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-677 ([https](https://jira.spring.io/browse/BATCH-677) result 200).
* [ ] http://jira.spring.io/browse/BATCH-679 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-679 ([https](https://jira.spring.io/browse/BATCH-679) result 200).
* [ ] http://jira.spring.io/browse/BATCH-690 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-690 ([https](https://jira.spring.io/browse/BATCH-690) result 200).
* [ ] http://jira.spring.io/browse/BATCH-724 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-724 ([https](https://jira.spring.io/browse/BATCH-724) result 200).
* [ ] http://jira.spring.io/browse/BATCH-725 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-725 ([https](https://jira.spring.io/browse/BATCH-725) result 200).
* [ ] http://jira.spring.io/browse/BATCH-726 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-726 ([https](https://jira.spring.io/browse/BATCH-726) result 200).
* [ ] http://jira.spring.io/browse/BATCH-729 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-729 ([https](https://jira.spring.io/browse/BATCH-729) result 200).
* [ ] http://jira.spring.io/browse/BATCH-730 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-730 ([https](https://jira.spring.io/browse/BATCH-730) result 200).
* [ ] http://jira.spring.io/browse/BATCH-733 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-733 ([https](https://jira.spring.io/browse/BATCH-733) result 200).
* [ ] http://jira.spring.io/browse/BATCH-742 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-742 ([https](https://jira.spring.io/browse/BATCH-742) result 200).
* [ ] http://jira.spring.io/browse/BATCH-761 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-761 ([https](https://jira.spring.io/browse/BATCH-761) result 200).
* [ ] http://jira.spring.io/browse/BATCH-783 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-783 ([https](https://jira.spring.io/browse/BATCH-783) result 200).
* [ ] http://jira.spring.io/browse/BATCH-793 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-793 ([https](https://jira.spring.io/browse/BATCH-793) result 200).
* [ ] http://jira.spring.io/browse/BATCH-794 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-794 ([https](https://jira.spring.io/browse/BATCH-794) result 200).
* [ ] http://jira.spring.io/browse/BATCH-797 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-797 ([https](https://jira.spring.io/browse/BATCH-797) result 200).
* [ ] http://jira.spring.io/browse/BATCH-798 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-798 ([https](https://jira.spring.io/browse/BATCH-798) result 200).
* [ ] http://jira.spring.io/browse/BATCH-801 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-801 ([https](https://jira.spring.io/browse/BATCH-801) result 200).
* [ ] http://jira.spring.io/browse/BATCH-802 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-802 ([https](https://jira.spring.io/browse/BATCH-802) result 200).
* [ ] http://jira.spring.io/browse/BATCH-808 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-808 ([https](https://jira.spring.io/browse/BATCH-808) result 200).
* [ ] http://jira.spring.io/browse/BATCH-809 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-809 ([https](https://jira.spring.io/browse/BATCH-809) result 200).
* [ ] http://jira.spring.io/browse/BATCH-810 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-810 ([https](https://jira.spring.io/browse/BATCH-810) result 200).
* [ ] http://jira.spring.io/browse/BATCH-811 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-811 ([https](https://jira.spring.io/browse/BATCH-811) result 200).
* [ ] http://jira.spring.io/browse/BATCH-812 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-812 ([https](https://jira.spring.io/browse/BATCH-812) result 200).
* [ ] http://jira.spring.io/browse/BATCH-816 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-816 ([https](https://jira.spring.io/browse/BATCH-816) result 200).
* [ ] http://jira.spring.io/browse/BATCH-817 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-817 ([https](https://jira.spring.io/browse/BATCH-817) result 200).
* [ ] http://jira.spring.io/browse/BATCH-818 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-818 ([https](https://jira.spring.io/browse/BATCH-818) result 200).
* [ ] http://jira.spring.io/browse/BATCH-819 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-819 ([https](https://jira.spring.io/browse/BATCH-819) result 200).
* [ ] http://jira.spring.io/browse/BATCH-820 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-820 ([https](https://jira.spring.io/browse/BATCH-820) result 200).
* [ ] http://jira.spring.io/browse/BATCH-828 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-828 ([https](https://jira.spring.io/browse/BATCH-828) result 200).
* [ ] http://jira.spring.io/browse/BATCH-831 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-831 ([https](https://jira.spring.io/browse/BATCH-831) result 200).
* [ ] http://jira.spring.io/browse/BATCH-832 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-832 ([https](https://jira.spring.io/browse/BATCH-832) result 200).
* [ ] http://jira.spring.io/browse/BATCH-833 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-833 ([https](https://jira.spring.io/browse/BATCH-833) result 200).
* [ ] http://jira.spring.io/browse/BATCH-834 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-834 ([https](https://jira.spring.io/browse/BATCH-834) result 200).
* [ ] http://jira.spring.io/browse/BATCH-836 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-836 ([https](https://jira.spring.io/browse/BATCH-836) result 200).
* [ ] http://jira.spring.io/browse/BATCH-837 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-837 ([https](https://jira.spring.io/browse/BATCH-837) result 200).
* [ ] http://jira.spring.io/browse/BATCH-838 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-838 ([https](https://jira.spring.io/browse/BATCH-838) result 200).
* [ ] http://jira.spring.io/browse/BATCH-839 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-839 ([https](https://jira.spring.io/browse/BATCH-839) result 200).
* [ ] http://jira.spring.io/browse/BATCH-841 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-841 ([https](https://jira.spring.io/browse/BATCH-841) result 200).
* [ ] http://jira.spring.io/browse/BATCH-844 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-844 ([https](https://jira.spring.io/browse/BATCH-844) result 200).
* [ ] http://jira.spring.io/browse/BATCH-847 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-847 ([https](https://jira.spring.io/browse/BATCH-847) result 200).
* [ ] http://jira.spring.io/browse/BATCH-848 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-848 ([https](https://jira.spring.io/browse/BATCH-848) result 200).
* [ ] http://jira.spring.io/browse/BATCH-851 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-851 ([https](https://jira.spring.io/browse/BATCH-851) result 200).
* [ ] http://jira.spring.io/browse/BATCH-853 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-853 ([https](https://jira.spring.io/browse/BATCH-853) result 200).
* [ ] http://jira.spring.io/browse/BATCH-857 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-857 ([https](https://jira.spring.io/browse/BATCH-857) result 200).
* [ ] http://jira.spring.io/browse/BATCH-858 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-858 ([https](https://jira.spring.io/browse/BATCH-858) result 200).
* [ ] http://jira.spring.io/browse/BATCH-866 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-866 ([https](https://jira.spring.io/browse/BATCH-866) result 200).
* [ ] http://jira.spring.io/browse/BATCH-869 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-869 ([https](https://jira.spring.io/browse/BATCH-869) result 200).
* [ ] http://jira.spring.io/browse/BATCH-870 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-870 ([https](https://jira.spring.io/browse/BATCH-870) result 200).
* [ ] http://jira.spring.io/browse/BATCH-871 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-871 ([https](https://jira.spring.io/browse/BATCH-871) result 200).
* [ ] http://jira.spring.io/browse/BATCH-872 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-872 ([https](https://jira.spring.io/browse/BATCH-872) result 200).
* [ ] http://jira.spring.io/browse/BATCH-873 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-873 ([https](https://jira.spring.io/browse/BATCH-873) result 200).
* [ ] http://jira.spring.io/browse/BATCH-874 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-874 ([https](https://jira.spring.io/browse/BATCH-874) result 200).
* [ ] http://jira.spring.io/browse/BATCH-875 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-875 ([https](https://jira.spring.io/browse/BATCH-875) result 200).
* [ ] http://jira.spring.io/browse/BATCH-878 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-878 ([https](https://jira.spring.io/browse/BATCH-878) result 200).
* [ ] http://jira.spring.io/browse/BATCH-879 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-879 ([https](https://jira.spring.io/browse/BATCH-879) result 200).
* [ ] http://jira.spring.io/browse/BATCH-880 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-880 ([https](https://jira.spring.io/browse/BATCH-880) result 200).
* [ ] http://jira.spring.io/browse/BATCH-881 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-881 ([https](https://jira.spring.io/browse/BATCH-881) result 200).
* [ ] http://jira.spring.io/browse/BATCH-882 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-882 ([https](https://jira.spring.io/browse/BATCH-882) result 200).
* [ ] http://jira.spring.io/browse/BATCH-883 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-883 ([https](https://jira.spring.io/browse/BATCH-883) result 200).
* [ ] http://jira.spring.io/browse/BATCH-884 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-884 ([https](https://jira.spring.io/browse/BATCH-884) result 200).
* [ ] http://jira.spring.io/browse/BATCH-885 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-885 ([https](https://jira.spring.io/browse/BATCH-885) result 200).
* [ ] http://jira.spring.io/browse/BATCH-886 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-886 ([https](https://jira.spring.io/browse/BATCH-886) result 200).
* [ ] http://jira.spring.io/browse/BATCH-887 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-887 ([https](https://jira.spring.io/browse/BATCH-887) result 200).
* [ ] http://jira.spring.io/browse/BATCH-888 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-888 ([https](https://jira.spring.io/browse/BATCH-888) result 200).
* [ ] http://jira.spring.io/browse/BATCH-889 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-889 ([https](https://jira.spring.io/browse/BATCH-889) result 200).
* [ ] http://jira.spring.io/browse/BATCH-890 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-890 ([https](https://jira.spring.io/browse/BATCH-890) result 200).
* [ ] http://jira.spring.io/browse/BATCH-891 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-891 ([https](https://jira.spring.io/browse/BATCH-891) result 200).
* [ ] http://jira.spring.io/browse/BATCH-892 with 2 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-892 ([https](https://jira.spring.io/browse/BATCH-892) result 200).
* [ ] http://jira.spring.io/browse/BATCH-893 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-893 ([https](https://jira.spring.io/browse/BATCH-893) result 200).
* [ ] http://jira.spring.io/browse/BATCH-894 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-894 ([https](https://jira.spring.io/browse/BATCH-894) result 200).
* [ ] http://jira.spring.io/browse/BATCH-895 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-895 ([https](https://jira.spring.io/browse/BATCH-895) result 200).
* [ ] http://jira.spring.io/browse/BATCH-896 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-896 ([https](https://jira.spring.io/browse/BATCH-896) result 200).
* [ ] http://jira.spring.io/browse/BATCH-897 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-897 ([https](https://jira.spring.io/browse/BATCH-897) result 200).
* [ ] http://jira.spring.io/browse/BATCH-900 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-900 ([https](https://jira.spring.io/browse/BATCH-900) result 200).
* [ ] http://jira.spring.io/browse/BATCH-902 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-902 ([https](https://jira.spring.io/browse/BATCH-902) result 200).
* [ ] http://jira.spring.io/browse/BATCH-903 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-903 ([https](https://jira.spring.io/browse/BATCH-903) result 200).
* [ ] http://jira.spring.io/browse/BATCH-904 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-904 ([https](https://jira.spring.io/browse/BATCH-904) result 200).
* [ ] http://jira.spring.io/browse/BATCH-905 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-905 ([https](https://jira.spring.io/browse/BATCH-905) result 200).
* [ ] http://jira.spring.io/browse/BATCH-907 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-907 ([https](https://jira.spring.io/browse/BATCH-907) result 200).
* [ ] http://jira.spring.io/browse/BATCH-909 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-909 ([https](https://jira.spring.io/browse/BATCH-909) result 200).
* [ ] http://jira.spring.io/browse/BATCH-910 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-910 ([https](https://jira.spring.io/browse/BATCH-910) result 200).
* [ ] http://jira.spring.io/browse/BATCH-911 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-911 ([https](https://jira.spring.io/browse/BATCH-911) result 200).
* [ ] http://jira.spring.io/browse/BATCH-912 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-912 ([https](https://jira.spring.io/browse/BATCH-912) result 200).
* [ ] http://jira.spring.io/browse/BATCH-913 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-913 ([https](https://jira.spring.io/browse/BATCH-913) result 200).
* [ ] http://jira.spring.io/browse/BATCH-915 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-915 ([https](https://jira.spring.io/browse/BATCH-915) result 200).
* [ ] http://jira.spring.io/browse/BATCH-916 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-916 ([https](https://jira.spring.io/browse/BATCH-916) result 200).
* [ ] http://jira.spring.io/browse/BATCH-917 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-917 ([https](https://jira.spring.io/browse/BATCH-917) result 200).
* [ ] http://jira.spring.io/browse/BATCH-918 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-918 ([https](https://jira.spring.io/browse/BATCH-918) result 200).
* [ ] http://jira.spring.io/browse/BATCH-919 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-919 ([https](https://jira.spring.io/browse/BATCH-919) result 200).
* [ ] http://jira.spring.io/browse/BATCH-920 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-920 ([https](https://jira.spring.io/browse/BATCH-920) result 200).
* [ ] http://jira.spring.io/browse/BATCH-921 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-921 ([https](https://jira.spring.io/browse/BATCH-921) result 200).
* [ ] http://jira.spring.io/browse/BATCH-922 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-922 ([https](https://jira.spring.io/browse/BATCH-922) result 200).
* [ ] http://jira.spring.io/browse/BATCH-923 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-923 ([https](https://jira.spring.io/browse/BATCH-923) result 200).
* [ ] http://jira.spring.io/browse/BATCH-924 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-924 ([https](https://jira.spring.io/browse/BATCH-924) result 200).
* [ ] http://jira.spring.io/browse/BATCH-925 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-925 ([https](https://jira.spring.io/browse/BATCH-925) result 200).
* [ ] http://jira.spring.io/browse/BATCH-926 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-926 ([https](https://jira.spring.io/browse/BATCH-926) result 200).
* [ ] http://jira.spring.io/browse/BATCH-927 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-927 ([https](https://jira.spring.io/browse/BATCH-927) result 200).
* [ ] http://jira.spring.io/browse/BATCH-929 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-929 ([https](https://jira.spring.io/browse/BATCH-929) result 200).
* [ ] http://jira.spring.io/browse/BATCH-930 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-930 ([https](https://jira.spring.io/browse/BATCH-930) result 200).
* [ ] http://jira.spring.io/browse/BATCH-931 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-931 ([https](https://jira.spring.io/browse/BATCH-931) result 200).
* [ ] http://jira.spring.io/browse/BATCH-932 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-932 ([https](https://jira.spring.io/browse/BATCH-932) result 200).
* [ ] http://jira.spring.io/browse/BATCH-935 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-935 ([https](https://jira.spring.io/browse/BATCH-935) result 200).
* [ ] http://jira.spring.io/browse/BATCH-937 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-937 ([https](https://jira.spring.io/browse/BATCH-937) result 200).
* [ ] http://jira.spring.io/browse/BATCH-938 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-938 ([https](https://jira.spring.io/browse/BATCH-938) result 200).
* [ ] http://jira.spring.io/browse/BATCH-939 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-939 ([https](https://jira.spring.io/browse/BATCH-939) result 200).
* [ ] http://jira.spring.io/browse/BATCH-941 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-941 ([https](https://jira.spring.io/browse/BATCH-941) result 200).
* [ ] http://jira.spring.io/browse/BATCH-942 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-942 ([https](https://jira.spring.io/browse/BATCH-942) result 200).
* [ ] http://jira.spring.io/browse/BATCH-945 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-945 ([https](https://jira.spring.io/browse/BATCH-945) result 200).
* [ ] http://jira.spring.io/browse/BATCH-946 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-946 ([https](https://jira.spring.io/browse/BATCH-946) result 200).
* [ ] http://jira.spring.io/browse/BATCH-948 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-948 ([https](https://jira.spring.io/browse/BATCH-948) result 200).
* [ ] http://jira.spring.io/browse/BATCH-949 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-949 ([https](https://jira.spring.io/browse/BATCH-949) result 200).
* [ ] http://jira.spring.io/browse/BATCH-950 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-950 ([https](https://jira.spring.io/browse/BATCH-950) result 200).
* [ ] http://jira.spring.io/browse/BATCH-951 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-951 ([https](https://jira.spring.io/browse/BATCH-951) result 200).
* [ ] http://jira.spring.io/browse/BATCH-952 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-952 ([https](https://jira.spring.io/browse/BATCH-952) result 200).
* [ ] http://jira.spring.io/browse/BATCH-954 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-954 ([https](https://jira.spring.io/browse/BATCH-954) result 200).
* [ ] http://jira.spring.io/browse/BATCH-955 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-955 ([https](https://jira.spring.io/browse/BATCH-955) result 200).
* [ ] http://jira.spring.io/browse/BATCH-956 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-956 ([https](https://jira.spring.io/browse/BATCH-956) result 200).
* [ ] http://jira.spring.io/browse/BATCH-957 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-957 ([https](https://jira.spring.io/browse/BATCH-957) result 200).
* [ ] http://jira.spring.io/browse/BATCH-958 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-958 ([https](https://jira.spring.io/browse/BATCH-958) result 200).
* [ ] http://jira.spring.io/browse/BATCH-959 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-959 ([https](https://jira.spring.io/browse/BATCH-959) result 200).
* [ ] http://jira.spring.io/browse/BATCH-960 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-960 ([https](https://jira.spring.io/browse/BATCH-960) result 200).
* [ ] http://jira.spring.io/browse/BATCH-961 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-961 ([https](https://jira.spring.io/browse/BATCH-961) result 200).
* [ ] http://jira.spring.io/browse/BATCH-962 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-962 ([https](https://jira.spring.io/browse/BATCH-962) result 200).
* [ ] http://jira.spring.io/browse/BATCH-963 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-963 ([https](https://jira.spring.io/browse/BATCH-963) result 200).
* [ ] http://jira.spring.io/browse/BATCH-964 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-964 ([https](https://jira.spring.io/browse/BATCH-964) result 200).
* [ ] http://jira.spring.io/browse/BATCH-965 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-965 ([https](https://jira.spring.io/browse/BATCH-965) result 200).
* [ ] http://jira.spring.io/browse/BATCH-967 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-967 ([https](https://jira.spring.io/browse/BATCH-967) result 200).
* [ ] http://jira.spring.io/browse/BATCH-968 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-968 ([https](https://jira.spring.io/browse/BATCH-968) result 200).
* [ ] http://jira.spring.io/browse/BATCH-969 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-969 ([https](https://jira.spring.io/browse/BATCH-969) result 200).
* [ ] http://jira.spring.io/browse/BATCH-970 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-970 ([https](https://jira.spring.io/browse/BATCH-970) result 200).
* [ ] http://jira.spring.io/browse/BATCH-971 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-971 ([https](https://jira.spring.io/browse/BATCH-971) result 200).
* [ ] http://jira.spring.io/browse/BATCH-973 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-973 ([https](https://jira.spring.io/browse/BATCH-973) result 200).
* [ ] http://jira.spring.io/browse/BATCH-974 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-974 ([https](https://jira.spring.io/browse/BATCH-974) result 200).
* [ ] http://jira.spring.io/browse/BATCH-976 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-976 ([https](https://jira.spring.io/browse/BATCH-976) result 200).
* [ ] http://jira.spring.io/browse/BATCH-979 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-979 ([https](https://jira.spring.io/browse/BATCH-979) result 200).
* [ ] http://jira.spring.io/browse/BATCH-980 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-980 ([https](https://jira.spring.io/browse/BATCH-980) result 200).
* [ ] http://jira.spring.io/browse/BATCH-981 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-981 ([https](https://jira.spring.io/browse/BATCH-981) result 200).
* [ ] http://jira.spring.io/browse/BATCH-982 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-982 ([https](https://jira.spring.io/browse/BATCH-982) result 200).
* [ ] http://jira.spring.io/browse/BATCH-983 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-983 ([https](https://jira.spring.io/browse/BATCH-983) result 200).
* [ ] http://jira.spring.io/browse/BATCH-985 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-985 ([https](https://jira.spring.io/browse/BATCH-985) result 200).
* [ ] http://jira.spring.io/browse/BATCH-986 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-986 ([https](https://jira.spring.io/browse/BATCH-986) result 200).
* [ ] http://jira.spring.io/browse/BATCH-987 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-987 ([https](https://jira.spring.io/browse/BATCH-987) result 200).
* [ ] http://jira.spring.io/browse/BATCH-988 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-988 ([https](https://jira.spring.io/browse/BATCH-988) result 200).
* [ ] http://jira.spring.io/browse/BATCH-989 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-989 ([https](https://jira.spring.io/browse/BATCH-989) result 200).
* [ ] http://jira.spring.io/browse/BATCH-991 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-991 ([https](https://jira.spring.io/browse/BATCH-991) result 200).
* [ ] http://jira.spring.io/browse/BATCH-992 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-992 ([https](https://jira.spring.io/browse/BATCH-992) result 200).
* [ ] http://jira.spring.io/browse/BATCH-993 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-993 ([https](https://jira.spring.io/browse/BATCH-993) result 200).
* [ ] http://jira.spring.io/browse/BATCH-994 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-994 ([https](https://jira.spring.io/browse/BATCH-994) result 200).
* [ ] http://jira.spring.io/browse/BATCH-995 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-995 ([https](https://jira.spring.io/browse/BATCH-995) result 200).
* [ ] http://jira.spring.io/browse/BATCH-996 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-996 ([https](https://jira.spring.io/browse/BATCH-996) result 200).
* [ ] http://jira.spring.io/browse/BATCH-997 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-997 ([https](https://jira.spring.io/browse/BATCH-997) result 200).
* [ ] http://jira.spring.io/browse/BATCH-998 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-998 ([https](https://jira.spring.io/browse/BATCH-998) result 200).
* [ ] http://jira.spring.io/browse/BATCH-999 with 1 occurrences migrated to:
  https://jira.spring.io/browse/BATCH-999 ([https](https://jira.spring.io/browse/BATCH-999) result 200).
* [ ] http://maven.apache.org/plugins/maven-eclipse-plugin/ with 1 occurrences migrated to:
  https://maven.apache.org/plugins/maven-eclipse-plugin/ ([https](https://maven.apache.org/plugins/maven-eclipse-plugin/) result 200).
* [ ] http://projects.spring.io/spring-batch/ with 2 occurrences migrated to:
  https://projects.spring.io/spring-batch/ ([https](https://projects.spring.io/spring-batch/) result 200).
* [ ] http://projects.spring.io/spring-batch/faq.html with 1 occurrences migrated to:
  https://projects.spring.io/spring-batch/faq.html ([https](https://projects.spring.io/spring-batch/faq.html) result 200).
* [ ] http://projects.spring.io/spring-integration/ with 2 occurrences migrated to:
  https://projects.spring.io/spring-integration/ ([https](https://projects.spring.io/spring-integration/) result 200).
* [ ] http://spring.io/guides/gs/batch-processing/ with 1 occurrences migrated to:
  https://spring.io/guides/gs/batch-processing/ ([https](https://spring.io/guides/gs/batch-processing/) result 200).
* [ ] http://spring.io/projects with 2 occurrences migrated to:
  https://spring.io/projects ([https](https://spring.io/projects) result 200).
* [ ] http://spring.io/tools with 1 occurrences migrated to:
  https://spring.io/tools ([https](https://spring.io/tools) result 200).
* [ ] http://stackoverflow.com/questions/134882/undoing-a-git-rebase with 1 occurrences migrated to:
  https://stackoverflow.com/questions/134882/undoing-a-git-rebase ([https](https://stackoverflow.com/questions/134882/undoing-a-git-rebase) result 200).
* [ ] http://www.apache.org with 1 occurrences migrated to:
  https://www.apache.org ([https](https://www.apache.org) result 200).
* [ ] http://www.infoq.com/interviews/johnson-spring-portfolio with 1 occurrences migrated to:
  https://www.infoq.com/interviews/johnson-spring-portfolio ([https](https://www.infoq.com/interviews/johnson-spring-portfolio) result 200).
* [ ] http://www.infoq.com/news/2008/06/spring-batch with 1 occurrences migrated to:
  https://www.infoq.com/news/2008/06/spring-batch ([https](https://www.infoq.com/news/2008/06/spring-batch) result 200).
* [ ] http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd with 1 occurrences migrated to:
  https://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd ([https](https://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd) result 200).
* [ ] http://www.ow2.org/ with 1 occurrences migrated to:
  https://www.ow2.org/ ([https](https://www.ow2.org/) result 200).
* [ ] http://www.springframework.org/schema/beans/spring-beans-2.5.xsd with 3 occurrences migrated to:
  https://www.springframework.org/schema/beans/spring-beans-2.5.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-2.5.xsd) result 200).
* [ ] http://www.springframework.org/schema/beans/spring-beans-3.1.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/beans/spring-beans-3.1.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.1.xsd) result 200).
* [ ] http://www.springframework.org/schema/beans/spring-beans-3.2.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/beans/spring-beans-3.2.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.2.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/spring-integration.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/spring-integration.xsd ([https](https://www.springframework.org/schema/integration/spring-integration.xsd) result 200).
* [ ] http://www.springframework.org/schema/tool/spring-tool-2.5.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/tool/spring-tool-2.5.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-2.5.xsd) result 200).
* [ ] http://www.springframework.org/schema/tool/spring-tool-3.1.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/tool/spring-tool-3.1.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-3.1.xsd) result 200).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* [ ] http://docs.spring.io/spring-batch-admin/ with 2 occurrences migrated to:
  https://docs.spring.io/spring-batch-admin/ ([https](https://docs.spring.io/spring-batch-admin/) result 301).
* [ ] http://docs.spring.io/spring-batch-admin/getting-started.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-batch-admin/getting-started.html ([https](https://docs.spring.io/spring-batch-admin/getting-started.html) result 301).
* [ ] http://docs.spring.io/spring-batch/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-batch/ ([https](https://docs.spring.io/spring-batch/) result 301).
* [ ] http://forum.spring.io/forum/spring-projects/batch with 2 occurrences migrated to:
  https://forum.spring.io/forum/spring-projects/batch ([https](https://forum.spring.io/forum/spring-projects/batch) result 301).
* [ ] http://help.github.com/fork-a-repo/ with 2 occurrences migrated to:
  https://help.github.com/fork-a-repo/ ([https](https://help.github.com/fork-a-repo/) result 301).
* [ ] http://help.github.com/forking/ with 1 occurrences migrated to:
  https://help.github.com/forking/ ([https](https://help.github.com/forking/) result 301).
* [ ] http://help.github.com/send-pull-requests/ with 2 occurrences migrated to:
  https://help.github.com/send-pull-requests/ ([https](https://help.github.com/send-pull-requests/) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-1786 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-1786 ([https](https://jira.springsource.org/browse/BATCH-1786) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2011 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2011 ([https](https://jira.springsource.org/browse/BATCH-2011) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2042 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2042 ([https](https://jira.springsource.org/browse/BATCH-2042) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2059 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2059 ([https](https://jira.springsource.org/browse/BATCH-2059) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2060 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2060 ([https](https://jira.springsource.org/browse/BATCH-2060) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2061 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2061 ([https](https://jira.springsource.org/browse/BATCH-2061) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2083 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2083 ([https](https://jira.springsource.org/browse/BATCH-2083) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2085 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2085 ([https](https://jira.springsource.org/browse/BATCH-2085) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2090 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2090 ([https](https://jira.springsource.org/browse/BATCH-2090) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2092 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2092 ([https](https://jira.springsource.org/browse/BATCH-2092) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2106 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2106 ([https](https://jira.springsource.org/browse/BATCH-2106) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2172 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2172 ([https](https://jira.springsource.org/browse/BATCH-2172) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2185 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2185 ([https](https://jira.springsource.org/browse/BATCH-2185) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2186 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2186 ([https](https://jira.springsource.org/browse/BATCH-2186) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2189 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2189 ([https](https://jira.springsource.org/browse/BATCH-2189) result 301).
* [ ] http://jira.springsource.org/browse/BATCH-2204 with 1 occurrences migrated to:
  https://jira.springsource.org/browse/BATCH-2204 ([https](https://jira.springsource.org/browse/BATCH-2204) result 301).
* [ ] http://maven.apache.org/guides/mini/guide-apt-format.html with 1 occurrences migrated to:
  https://maven.apache.org/guides/mini/guide-apt-format.html ([https](https://maven.apache.org/guides/mini/guide-apt-format.html) result 301).
* [ ] http://mybatis.github.io/spring/ with 2 occurrences migrated to:
  https://mybatis.github.io/spring/ ([https](https://mybatis.github.io/spring/) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/BATCH with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/BATCH ([https](https://opensource.atlassian.com/projects/spring/browse/BATCH) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/BATCH?report=com.atlassian.jira.plugin.system.project:roadmap-panel with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/BATCH?report=com.atlassian.jira.plugin.system.project:roadmap-panel ([https](https://opensource.atlassian.com/projects/spring/browse/BATCH?report=com.atlassian.jira.plugin.system.project:roadmap-panel) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/secure/IssueNavigator.jspa?reset=true&mode=hide&pid=10090&status=5&status=6&updated:previous=-1w&sorter/field=updated&sorter/order=DESC with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/secure/IssueNavigator.jspa?reset=true&mode=hide&pid=10090&status=5&status=6&updated:previous=-1w&sorter/field=updated&sorter/order=DESC ([https](https://opensource.atlassian.com/projects/spring/secure/IssueNavigator.jspa?reset=true&mode=hide&pid=10090&status=5&status=6&updated:previous=-1w&sorter/field=updated&sorter/order=DESC) result 301).
* [ ] http://robokaso.github.com/Groovy-Spring-Batch-Template/ with 1 occurrences migrated to:
  https://robokaso.github.com/Groovy-Spring-Batch-Template/ ([https](https://robokaso.github.com/Groovy-Spring-Batch-Template/) result 301).
* [ ] http://www.spring.io with 1 occurrences migrated to:
  https://www.spring.io ([https](https://www.spring.io) result 301).
* [ ] http://www.spring.io/ with 2 occurrences migrated to:
  https://www.spring.io/ ([https](https://www.spring.io/) result 301).
* [ ] http://www.springsource.com/repository/app/ with 1 occurrences migrated to:
  https://www.springsource.com/repository/app/ ([https](https://www.springsource.com/repository/app/) result 301).
* [ ] http://www.theserverside.com/news/thread.tss?thread_id=47506 with 1 occurrences migrated to:
  https://www.theserverside.com/news/thread.tss?thread_id=47506 ([https](https://www.theserverside.com/news/thread.tss?thread_id=47506) result 301).
* [ ] http://www.theserverside.com/tt/articles/article.tss?l=SpringBatchOverview with 2 occurrences migrated to:
  https://www.theserverside.com/tt/articles/article.tss?l=SpringBatchOverview ([https](https://www.theserverside.com/tt/articles/article.tss?l=SpringBatchOverview) result 301).
* [ ] http://www.w3.org/Addressing/URL with 1 occurrences migrated to:
  https://www.w3.org/Addressing/URL ([https](https://www.w3.org/Addressing/URL) result 301).
* [ ] http://docs.spring.io/spring-batch-admin with 1 occurrences migrated to:
  https://docs.spring.io/spring-batch-admin ([https](https://docs.spring.io/spring-batch-admin) result 302).
* [ ] http://repo.spring.io/milestone with 1 occurrences migrated to:
  https://repo.spring.io/milestone ([https](https://repo.spring.io/milestone) result 302).
* [ ] http://repo.spring.io/release with 1 occurrences migrated to:
  https://repo.spring.io/release ([https](https://repo.spring.io/release) result 302).
* [ ] http://s3browse.com/explore/maven.springframework.org/snapshot/org/springframework/batch (301) with 1 occurrences migrated to:
  https://s3browser.com/explore/maven.springframework.org/snapshot/org/springframework/batch ([https](https://s3browse.com/explore/maven.springframework.org/snapshot/org/springframework/batch) result 302).
* [ ] http://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download with 1 occurrences migrated to:
  https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download ([https](https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download) result 302).
* [ ] http://spring.io/tools/sts/ with 2 occurrences migrated to:
  https://spring.io/tools/sts/ ([https](https://spring.io/tools/sts/) result 302).
* [ ] http://stackoverflow.com/a/20002493/2910265 with 1 occurrences migrated to:
  https://stackoverflow.com/a/20002493/2910265 ([https](https://stackoverflow.com/a/20002493/2910265) result 302).
* [ ] http://www.sping.io with 1 occurrences migrated to:
  https://www.sping.io ([https](https://www.sping.io) result 302).
* [ ] http://www.springsource.org/download with 1 occurrences migrated to:
  https://www.springsource.org/download ([https](https://www.springsource.org/download) result 302).

# Ignored
These URLs were intentionally ignored.

* http://localhost:8080 with 1 occurrences
* http://localhost:8080/reference/ with 1 occurrences
* http://test with 2 occurrences
* http://www.springframework.org/schema/batch with 9 occurrences
* http://www.springframework.org/schema/batch-integration with 2 occurrences
* http://www.springframework.org/schema/batch/test with 2 occurrences
* http://www.springframework.org/schema/beans with 17 occurrences
* http://www.springframework.org/schema/integration with 2 occurrences
* http://www.springframework.org/schema/tool with 13 occurrences
* http://www.w3.org/1999/XSL/Format with 4 occurrences
* http://www.w3.org/1999/XSL/Transform with 3 occurrences
* http://www.w3.org/2001/XMLSchema with 9 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 6 occurrences
* http://xmlns.jcp.org/xml/ns/javaee with 4 occurrences
2019-03-28 23:03:27 +01:00

869 lines
44 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Spring Batch Samples
### Overview
There is considerable variability in the types of input and output
formats in batch jobs. There are also a number of options to consider
in terms of how the types of strategies that will be used to handle
skips, recovery, and statistics. However, when approaching a new
batch job there are a few standard questions to answer to help
determine how the job will be written and how to use the services
offered by the spring batch framework. Consider the following:
* How do I configure this batch job? In the samples the pattern is to follow the convention of `[nameOf]Job.xml`. Each sample identifies the XML definition used to configure the job. Job configurations that use a common execution environment have many common items in their respective configurations.
* What is the input source? Each sample batch job identifies its input source.
* What is my output source? Each sample batch job identifies its output source.
* How are records read and validated from the input source? This refers to the input type and its format (e.g. flat file with fixed position, comma separated or XML, etc.)
* What is the policy of the job if a input record fails the validation step? The most important aspect is whether the record can be skipped so that processing can be continued.
* How do I process the data and write to the output source? How and what business logic is being applied to the processing of a record?
* How do I recover from an exception while operating on the output source? There are numerous recovery strategies that can be applied to handling errors on transactional targets. The samples provide a feeling for some of the choices.
* Can I restart the job and if so which strategy can I use to restart the job? The samples show some of the options available to jobs and what the decision criteria is for the respective choices.
Here is a list of samples with checks to indicate which features each one demonstrates:
Job/Feature | skip | retry | restart | automatic mapping | asynch launch | validation | delegation | write behind | non-squenetial | asynch process | filtering
:------------------------------------------------ | :--: | :---: | :-----: | :---------------: | :-----------: | :--------: | :--------: | :----------: | :------------: | :------------: | :-------:
[adhocLoop](#adhocloop) | | | | | X | | | | | |
[AmqpJobFunctionalTests](#amqp) | | | | | | | | | | X |
[beanWrapperMapperSample](#beanWrapperMapper) | | | | X | | | | | | |
[compositeItemWriterSample](#compositeItemWriter) | | | | | | | X | | | |
[customerFilter](#customerFilter) | | | | | | | | | | | X
[delegating](#delegating) | | | | | | | X | | | |
[football](#football-job) | | | | | | | | | | |
[headerFooter](#headerFooter) | | | | | | | | | | |
[hibernate](#hibernate) | | X | | | | | | X | | |
[ioSample](#ioSample) | | | | | | X | | X | | |
[infiniteLoop](#infiniteLoop) | | | | | | X | | | X | |
[loopflow](#loopFlow) | | | | | | | | | | |
[multiline](#multiline) | | | | | | | X | | | |
[multilineOrder](#multilineOrder) | | | | | | | X | | | |
[parallel](#parallel) | | | | | | | | | | X |
[partition](#partition) | | | | | | | | | | X |
[quartz](#quartz) | | | | | X | | | | | |
[restart](#restart) | | | X | | | | | | | |
[retry](#retry) | | X | | | | | | | | |
[skip](#skip) | X | | | | | | | | | |
[trade](#trade) | | | | | | X | | | | |
The [ioSampleJob](id:ioSample) has a number of special instances that show different IO features using the same job configuration but with different readers and writers:
Job/Feature | delimited input | fixed-length input | xml input | db paging input | db cursor input | delimited output | fixed-length output | xml output | db output | multiple files | multi-line | mulit-record
:-------------------------- | :-------------: | :----------------: | :-------: | :-------------: | :-------------: | :--------------: | :-----------------: | :--------: | :-------: | :------------: | :--------: | :----------:
delimited | x | | | | | | | x | | | |
[fixedLength](#fixedLength) | | x | | | | | | | x | | |
[ibatis](#ibatis) | | | | | x | | | | | | x |
[hibernate](#hibernate) | | | | | x | | | | | | x |
[jdbcCursor](#jdbcCursor) | | | | | x | | | | | | x |
jpa | | | | x | | | | | | | x |
[multiLine](#multiline) | x | | | | | | | x | | | x |
multiRecordtype | | x | | | | | | | x | | | x
multiResource | x | | | | | | | x | | | | x
[xml](#xml) | | | x | | | | | | | x | |
### Common Sample Source Structures
The easiest way to launch a sample job in Spring Batch is to open up
a unit test in your IDE and run it directly. Each sample has a
separate test case in the `org.springframework.batch.samples`
package. The name of the test case is `[JobName]FunctionalTests`.
**Note:** The test cases do not ship in the samples jar file, but they
are in the .zip distribution and in the source code, which
you can download using subversion (or browse in a web browser if
you need to). See here for a link to the source code repository.
You can also use the same Spring configuration as the unit test to
launch the job via a main method in `CommmandLineJobRunner`.
The samples source code has an Eclipse launch configuration to do
this, taking the hassle out of setting up a classpath to run the
job.
### [Adhoc Loop and JMX Demo](id:adhocloop)
This job is simply an infinite loop. It runs forever so it is
useful for testing features to do with stopping and starting jobs.
It is used, for instance, as one of the jobs that can be run from
JMX using the Eclipse launch configuration "jmxLauncher".
The JMX launcher uses an additional XML configuration file
(adhoc-job-launcher-context.xml) to set up a `JobOperator` for
running jobs asynchronously (i.e. in a background thread). This
follows the same pattern as the [Quartz sample](#quartz), so see that section
for more details of the `JobLauncher` configuration.
The rest of the configuration for this demo consists of exposing
some components from the application context as JMX managed beans.
The `JobOperator` is exposed so that it can be controlled from a
remote client (such as JConsole from the JDK) which does not have
Spring Batch on the classpath. See the Spring Core Reference Guide
for more details on how to customise the JMX configuration.
### [Jdbc Cursor and Batch Update](id:jdbcCursor)
The purpose of this sample is to show to usage of the
`JdbcCursorItemReader` and the `JdbcBatchItemWriter` to make
efficient updates to a database table.
The `JdbcBatchItemWriter` accepts a special form of
`PreparedStatementSetter` as a (mandatory) dependency. This is
responsible for copying fields from the item to be written to a
`PreparedStatement` matching the SQL query that has been
injected. The implementation of the
`CustomerCreditUpdatePreparedStatementSetter` shows best
practice of keeping all the information needed for the execution in
one place, since it contains a static constant value (`QUERY`)
which is used to configure the query for the writer.
### [Amqp Job Sample](id:amqp)
This sample shows the use of Spring Batch to write to an `AmqpItemWriter`.
The `AmqpItemReader` and Writer were contributed by Chris Schaefer and
a blog entry can be found at
[http://blog.dtzq.com/2012/08/spring-batch-amqp-itemreader-itemwriter.html](http://blog.dtzq.com/2012/08/spring-batch-amqp-itemreader-itemwriter.html).
It is modeled after the `JmsItemReader` / Writer implementations, which
are popular models for remote chunking. It leverages the `AmqpTemplate`.
This example requires the env to have a copy of rabbitmq installed
and running. The standard dashboard can be used to see the traffic
from the `MessageProducer` to the `AmqpItemWriter`. Make sure you
launch the `MessageProducer` before launching the test.
### [BeanWrapperMapper Sample](id:beanWrapperMapper)
This sample shows the use of automatic mapping from fields in a file
to a domain object. The `Trade` and `Person` objects needed
by the job are created from the Spring configuration using prototype
beans, and then their properties are set using the
`BeanWrapperFieldSetMapper`, which sets properties of the
prototype according to the field names in the file.
Nested property paths are resolved in the same way as normal Spring
binding occurs, but with a little extra leeway in terms of spelling
and capitalisation. Thus for instance, the `Trade` object has a
property called `customer` (lower case), but the file has been
configured to have a column name `CUSTOMER` (upper case), and
the mapper will accept the values happily. Underscores instead of
camel-casing (e.g. `CREDIT_CARD` instead of `creditCard`)
also work.
### [Composite ItemWriter Sample](id:compositeItemWriter)
This shows a common use case using a composite pattern, composing
instances of other framework readers or writers. It is also quite
common for business-specific readers or writers to wrap
off-the-shelf components in a similar way.
In this job the composite pattern is used just to make duplicate
copies of the output data. The delegates for the
`CompositeItemWriter` have to be separately registered as
streams in the `Step` where they are used, in order for the step
to be restartable. This is a common feature of all delegate
patterns.
### [Customer Filter Sample](id:customerFilter)
This shows the use of the `ItemProcessor` to filter out items by
returning null. When an item is filtered it leads to an increment
in the `filterCount` in the step execution.
### [Delegating Sample](id:delegating)
This sample shows the delegate pattern again, and also the
`ItemReaderAdapter` which is used to adapt a POJO to the
`ItemReader` interface.
### [Fixed Length Import Job](id:fixedLength)
The goal is to demonstrate a typical scenario of importing data
from a fixed-length file to database
This job shows a typical scenario, when reading input data and
processing the data is cleanly separated. The data provider is
responsible for reading input and mapping each record to a domain
object, which is then passed to the module processor. The module
processor handles the processing of the domain objects, in this case
it only writes them to database.
In this example we are using a simple fixed length record structure
that can be found in the project at
`data/iosample/input`. A considerable amount of
thought can go into designing the folder structures for batch file
management. The fixed length records look like this:
UK21341EAH4597898.34customer1
UK21341EAH4611218.12customer2
UK21341EAH4724512.78customer2
UK21341EAH48108109.25customer3
UK21341EAH49854123.39customer4
Looking back to the configuration file you will see where this is
documented in the property of the `FixedLengthTokenizer`. You can
infer the following properties:
FieldName | Length
--------- | :----:
ISIN | 12
Quantity | 3
Price | 5
Customer | 9
*Output target:* database - writes the data to database using a DAO
object
### [Football Job](id:football)
This is a (American) Football statistics loading job. We gave it the
id of `footballJob` in our configuration file. Before diving
into the batch job, we'll examine the two input files that need to
be loaded. First is `player.csv`, which can be found in the
samples project under
src/main/resources/data/footballjob/input/. Each line within this
file represents a player, with a unique id, the players name,
position, etc:
AbduKa00,Abdul-Jabbar,Karim,rb,1974,1996
AbduRa00,Abdullah,Rabih,rb,1975,1999
AberWa00,Abercrombie,Walter,rb,1959,1982
AbraDa00,Abramowicz,Danny,wr,1945,1967
AdamBo00,Adams,Bob,te,1946,1969
AdamCh00,Adams,Charlie,wr,1979,2003
...
One of the first noticeable characteristics of the file is that each
data element is separated by a comma, a format most are familiar
with known as 'CSV'. Other separators such as pipes or semicolons
could just as easily be used to delineate between unique
elements. In general, it falls into one of two types of flat file
formats: delimited or fixed length. (The fixed length case was
covered in the `fixedLengthImportJob`.
The second file, 'games.csv' is formatted the same as the previous
example, and resides in the same directory:
AbduKa00,1996,mia,10,nwe,0,0,0,0,0,29,104,,16,2
AbduKa00,1996,mia,11,clt,0,0,0,0,0,18,70,,11,2
AbduKa00,1996,mia,12,oti,0,0,0,0,0,18,59,,0,0
AbduKa00,1996,mia,13,pit,0,0,0,0,0,16,57,,0,0
AbduKa00,1996,mia,14,rai,0,0,0,0,0,18,39,,7,0
AbduKa00,1996,mia,15,nyg,0,0,0,0,0,17,96,,14,0
...
Each line in the file represents an individual player's performance
in a particular game, containing such statistics as passing yards,
receptions, rushes, and total touchdowns.
Our example batch job is going to load both files into a database,
and then combine each to summarise how each player performed for a
particular year. Although this example is fairly trivial, it shows
multiple types of input, and the general style is a common batch
scenario. That is, summarising a very large dataset so that it can
be more easily manipulated or viewed by an online web-based
application. In an enterprise solution the third step, the reporting
step, could be implemented through the use of Eclipse BIRT or one of
the many Java Reporting Engines. Given this description, we can then
easily divide our batch job up into 3 'steps': one to load the
player data, one to load the game data, and one to produce a summary
report:
**Note:** One of the nice features of Spring is a project called
Spring IDE. When you download the project you can install Spring
IDE and add the Spring configurations to the IDE project. This is
not a tutorial on Spring IDE but the visual view into Spring beans
is helpful in understanding the structure of a Job
Configuration. Spring IDE produces the following diagram:
![Spring Batch Football Object Model](src/site/resources/images/spring-batch-football-graph.jpg "Spring Batch Football Object Model")
This corresponds exactly with the `footballJob.xml` job
configuration file which can be found in the jobs folder under
`src/main/resources`. When you drill down into the football job
you will see that the configuration has a list of steps:
<property name="steps">
<list>
<bean id="playerload" parent="simpleStep" .../>
<bean id="gameLoad" parent="simpleStep" .../>
<bean id="playerSummarization" parent="simpleStep" .../>
</list>
</property>
A step is run until there is no more input to process, which in
this case would mean that each file has been completely
processed. To describe it in a more narrative form: the first step,
playerLoad, begins executing by grabbing one line of input from the
file, and parsing it into a domain object. That domain object is
then passed to a dao, which writes it out to the PLAYERS table. This
action is repeated until there are no more lines in the file,
causing the playerLoad step to finish. Next, the gameLoad step does
the same for the games input file, inserting into the GAMES
table. Once finished, the playerSummarization step can begin. Unlike
the first two steps, playerSummarization input comes from the
database, using a Sql statement to combine the GAMES and PLAYERS
table. Each returned row is packaged into a domain object and
written out to the PLAYER_SUMMARY table.
Now that we've discussed the entire flow of the batch job, we can
dive deeper into the first step: playerLoad:
<bean id="playerload" parent="simpleStep">
<property name="commitInterval" value="${job.commit.interval}" />
<property name="startLimit" value="100" />
<property name="itemReader"
ref="playerFileItemReader" />
<property name="itemWriter">
<bean
class="org.springframework.batch.sample.domain.football.internal.internal.PlayerItemWriter">
<property name="playerDao">
<bean
class="org.springframework.batch.sample.domain.football.internal.internal.JdbcPlayerDao">
<property name="dataSource"
ref="dataSource" />
</bean>
</property>
</bean>
</property>
</bean>
The root bean in this case is a `SimpleStepFactoryBean`, which
can be considered a 'blueprint' of sorts that tells the execution
environment basic details about how the batch job should be
executed. It contains four properties: (others have been removed for
greater clarity) commitInterval, startLimit, itemReader and
itemWriter . After performing all necessary startup, the framework
will periodically delegate to the reader and writer. In this way,
the developer can remain solely concerned with their business
logic.
* *ItemReader* the item reader is the source of the information
pipe. At the most basic level input is read in from an input
source, parsed into a domain object and returned. In this way, the
good batch architecture practice of ensuring all data has been
read before beginning processing can be enforced, along with
providing a possible avenue for reuse.
* *ItemWriter* this is the business logic. At a high level,
the item writer takes the item returned from the reader
and 'processes' it. In our case it's a data access object that is
simply responsible for inserting a record into the PLAYERS
table. As you can see the developer does very little.
The application developer simply provides a job configuration with a
configured number of steps, an ItemReader associated to some type
of input source, and ItemWriter associated to some type of
output source and a little mapping of data from flat records to
objects and the pipe is ready wired for processing.
Another property in the step configuration, the commitInterval,
gives the framework vital information about how to control
transactions during the batch run. Due to the large amount of data
involved in batch processing, it is often advantageous to 'batch'
together multiple logical units of work into one transaction, since
starting and committing a transaction is extremely expensive. For
example, in the playerLoad step, the framework calls read() on the
item reader. The item reader reads one record from the file, and
returns a domain object representation which is passed to the
processor. The writer then writes the one record to the database. It
can then be said that one iteration = one call to
`ItemReader.read()` = one line of the file. Therefore, setting
your commitInterval to 5 would result in the framework committing a
transaction after 5 lines have been read from the file, with 5
resultant entries in the PLAYERS table.
Following the general flow of the batch job, the next step is to
describe how each line of the file will be parsed from its string
representation into a domain object. The first thing the provider
will need is an `ItemReader`, which is provided as part of the Spring
Batch infrastructure. Because the input is flat-file based, a
`FlatFileItemReader` is used:
<bean id="playerFileItemReader"
class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource"
value="classpath:data/footballjob/input/${player.file.name}" />
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names"
value="ID,lastName,firstName,position,birthYear,debutYear" />
</bean>
</property>
<property name="fieldSetMapper">
<bean
class="org.springframework.batch.sample.domain.football.internal.internal.PlayerFieldSetMapper" />
</property>
</bean>
There are three required dependencies of the item reader; the first
is a resource to read in, which is the file to process. The second
dependency is a `LineTokenizer`. The interface for a
`LineTokenizer` is very simple, given a string; it will return a
`FieldSet` that wraps the results from splitting the provided
string. A `FieldSet` is Spring Batch's abstraction for flat file
data. It allows developers to work with file input in much the same
way as they would work with database input. All the developers need
to provide is a `FieldSetMapper` (similar to a Spring
`RowMapper`) that will map the provided `FieldSet` into an
`Object`. Simply by providing the names of each token to the
`LineTokenizer`, the `ItemReader` can pass the
`FieldSet` into our `PlayerMapper`, which implements the
`FieldSetMapper` interface. There is a single method,
`mapLine()`, which maps `FieldSet`s the same way that
developers are comfortable mapping `ResultSet`s into Java
`Object`s, either by index or field name. This behaviour is by
intention and design similar to the `RowMapper` passed into a
`JdbcTemplate`. You can see this below:
public class PlayerMapper implements FieldSetMapper {
public Object mapLine(FieldSet fs) {
if(fs == null){
return null;
}
Player player = new Player();
player.setID(fs.readString("ID"));
player.setLastName(fs.readString("lastName"));
player.setFirstName(fs.readString("firstName"));
player.setPosition(fs.readString("position"));
player.setDebutYear(fs.readInt("debutYear"));
player.setBirthYear(fs.readInt("birthYear"));
return player;
}
}
The flow of the `ItemReader`, in this case, starts with a call
to read the next line from the file. This is passed into the
provided `LineTokenizer`. The `LineTokenizer` splits the
line at every comma, and creates a `FieldSet` using the created
`String` array and the array of names passed in.
**Note:** it is only necessary to provide the names to create the
`FieldSet` if you wish to access the field by name, rather
than by index.
Once the domain representation of the data has been returned by the
provider, (i.e. a `Player` object in this case) it is passed to
the `ItemWriter`, which is essentially a Dao that uses a Spring
`JdbcTemplate` to insert a new row in the PLAYERS table.
The next step, gameLoad, works almost exactly the same as the
playerLoad step, except the games file is used.
The final step, playerSummarization, is much like the previous two
steps, in that it reads from a reader and returns a domain object to
a writer. However, in this case, the input source is the database,
not a file:
<bean id="playerSummarizationSource" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<property name="dataSource" ref="dataSource" />
<property name="mapper">
<bean
class="org.springframework.batch.sample.domain.football.internal.internal.PlayerSummaryMapper" />
</property>
<property name="sql">
<value>
SELECT games.player_id, games.year_no, SUM(COMPLETES),
SUM(ATTEMPTS), SUM(PASSING_YARDS), SUM(PASSING_TD),
SUM(INTERCEPTIONS), SUM(RUSHES), SUM(RUSH_YARDS),
SUM(RECEPTIONS), SUM(RECEPTIONS_YARDS), SUM(TOTAL_TD)
from games, players where players.player_id =
games.player_id group by games.player_id, games.year_no
</value>
</property>
</bean>
The `JdbcCursorItemReader` has three dependences:
* A `DataSource`
* The `RowMapper` to use for each row.
* The Sql statement used to create the cursor.
When the step is first started, a query will be run against the
database to open a cursor, and each call to `itemReader.read()`
will move the cursor to the next row, using the provided
`RowMapper` to return the correct object. As with the previous
two steps, each record returned by the provider will be written out
to the database in the PLAYER_SUMMARY table. Finally to run this
sample application you can execute the JUnit test
`FootballJobFunctionalTests`, and you'll see an output showing
each of the records as they are processed. Please keep in mind that
AoP is used to wrap the `ItemWriter` and output each record as it
is processed to the logger, which may impact performance.
### [Header Footer Sample](id:headerFooter)
This sample shows the use of callbacks and listeners to deal with
headers and footers in flat files. It uses two custom callbacks:
* `HeaderCopyCallback`: copies the header of a file from the
input to the output.
* `SummaryFooterCallback`: creates a summary footer at the end
of the output file.
### [Hibernate Sample](id:hibernate)
The purpose of this sample is to show a typical usage of Hibernate
as an ORM tool in the input and output of a job.
The job uses a `HibernateCursorItemReader` for the input, where
a simple HQL query is used to supply items. It also uses a
non-framework `ItemWriter` wrapping a DAO, which perhaps was
written as part of an online system.
The output reliability and robustness are improved by the use of
`Session.flush()` inside `ItemWriter.write()`. This
"write-behind" behaviour is provided by Hibernate implicitly, but we
need to take control of it so that the skip and retry features
provided by Spring Batch can work effectively.
### [Ibatis Sample](id:ibatis)
The goal of this sample is to show the use of Ibatis as a query
mapping tool. Its features are similar to the Hibernate sample, but
it uses Ibatis to drive its input and output.
### [Infinite Loop Sample](id:infiniteLoop)
This sample has a single step that is an infinite loop, reading and
writing fake data. It is used to demonstrate stop signals and
restart capabilities.
### [Loop Flow Sample](id:loopFlow)
Shows how to implement a job that repeats one of its steps up to a
limit set by a `JobExecutionDecider`.
### [Multiline](id:multiline)
The goal of this sample is to show some common tricks with multiline
records in file input jobs.
The input file in this case consists of two groups of trades
delimited by special lines in a file (BEGIN and END):
BEGIN
UK21341EAH4597898.34customer1
UK21341EAH4611218.12customer2
END
BEGIN
UK21341EAH4724512.78customer2
UK21341EAH4810809.25customer3
UK21341EAH4985423.39customer4
END
The goal of the job is to operate on the two groups, so the item
type is naturally `List<Trade`>. To get these items delivered
from an item reader we employ two components from Spring Batch: the
`AggregateItemReader` and the
`PrefixMatchingCompositeLineTokenizer`. The latter is
responsible for recognising the difference between the trade data
and the delimiter records. The former is responsible for
aggregating the trades from each group into a `List` and handing
out the list from its `read()` method. To help these components
perform their responsibilities we also provide some business
knowledge about the data in the form of a `FieldSetMapper`
(`TradeFieldSetMapper`). The `TradeFieldSetMapper` checks
its input for the delimiter fields (BEGIN, END) and if it detects
them, returns the special tokens that `AggregateItemReader`
needs. Otherwise it maps the input into a `Trade` object.
### [Multiline Order Job](id:multilineOrder)
The goal is to demonstrate how to handle a more complex file input
format, where a record meant for processing includes nested records
and spans multiple lines
The input source is file with multiline records.
`OrderItemReader` is an example of a non-default programmatic
item reader. It reads input until it detects that the multiline
record has finished and encapsulates the record in a single domain
object.
The output target is a file with multiline records. The concrete
`ItemWriter` passes the object to a an injected 'delegate
writer' which in this case writes the output to a file. The writer
in this case demonstrates how to write multiline output using a
custom aggregator transformer.
### [Parallel Sample](id:parallel)
The purpose of this sample is to show multi-threaded step execution
using the Process Indicator pattern.
The job reads data from the same file as the [Fixed Length Import sample](#fixedLength), but instead of
writing it out directly it goes through a staging table, and the
staging table is read in a multi-threaded step. Note that for such
a simple example where the item processing was not expensive, there
is unlikely to be much if any benefit in using a multi-threaded
step.
Multi-threaded step execution is easy to configure using Spring
Batch, but there are some limitations. Most of the out-of-the-box
`ItemReader` and `ItemWriter` implementations are not
designed to work in this scenario because they need to be
restartable and they are also stateful. There should be no surprise
about this, and reading a file (for instance) is usually fast enough
that multi-threading that part of the process is not likely to
provide much benefit, compared to the cost of managing the state.
The best strategy to cope with restart state from multiple
concurrent threads depends on the kind of input source involved:
* For file-based input (and output) restart sate is practically
impossible to manage. Spring Batch does not provide any features
or samples to help with this use case.
* With message middleware input it is trivial to manage restarts,
since there is no state to store (if a transaction rolls back the
messages are returned to the destination they came from).
* With database input state management is still necessary, but it
isn't particularly difficult. The easiest thing to do is rely on
a Process Indicator in the input data, which is a column in the
data indicating for each row if it has been processed or not. The
flag is updated inside the batch transaction, and then in the case
of a failure the updates are lost, and the records will show as
un-processed on a restart.
This last strategy is implemented in the `StagingItemReader`.
Its companion, the `StagingItemWriter` is responsible for
setting up the data in a staging table which contains the process
indicator. The reader is then driven by a simple SQL query that
includes a where clause for the processed flag, i.e.
SELECT ID FROM BATCH_STAGING WHERE JOB_ID=? AND PROCESSED=? ORDER BY ID
It is then responsible for updating the processed flag (which
happens inside the main step transaction).
### [Partitioning Sample](id:partition)
The purpose of this sample is to show multi-threaded step execution
using the `PartitionHandler` SPI. The example uses a
`TaskExecutorPartitionHandler` to spread the work of reading
some files acrosss multiple threads, with one `Step` execution
per thread. The key components are the `PartitionStep` and the
`MultiResourcePartitioner` which is responsible for dividing up
the work. Notice that the readers and writers in the `Step`
that is being partitioned are step-scoped, so that their state does
not get shared across threads of execution.
### [Quartz Sample](id:quartz)
The goal is to demonstrate how to schedule job execution using
Quartz scheduler. In this case there is no unit test to launch the
sample because it just re-uses the football job. There is a main
method in `JobRegistryBackgroundJobRunner` and an Eclipse launch
configuration which runs it with arguments to pick up the football
job.
The additional XML configuration for this job is in
`quartz-job-launcher.xml`, and it also re-uses
`footballJob.xml`
The configuration declares a `JobLauncher` bean. The launcher
bean is different from the other samples only in that it uses an
asynchronous task executor, so that the jobs are launched in a
separate thread to the main method:
<bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="jobRepository" />
<property name="taskExecutor">
<bean class="org.springframework.core.task.SimpleAsyncTaskExecutor" />
</property>
</bean>
Also, a Quartz `JobDetail` is defined using a Spring
`JobDetailBean` as a convenience.
<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="org.springframework.batch.sample.quartz.JobLauncherDetails" />
<property name="group" value="quartz-batch" />
<property name="jobDataAsMap">
<map>
<entry key="jobName" value="footballJob"/>
<entry key="jobLocator" value-ref="jobRegistry"/>
<entry key="jobLauncher" value-ref="jobLauncher"/>
</map>
</property>
</bean>
Finally, a trigger with a scheduler is defined that will launch the
job detail every 10 seconds:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetail" />
<property name="cronExpression" value="0/10 * * * * ?" />
</bean>
</property>
</bean>
The job is thus scheduled to run every 10 seconds. In fact it
should be successful on the first attempt, so the second and
subsequent attempts should through a
`JobInstanceAlreadyCompleteException`. In a production system,
the job detail would probably be modified to account for this
exception (e.g. catch it and re-submit with a new set of job
parameters). The point here is that Spring Batch guarantees that
the job execution is idempotent - you can never inadvertently
process the same data twice.
### [Restart Sample](id:restart)
The goal of this sample is to show how a job can be restarted after
a failure and continue processing where it left off.
To simulate a failure we "fake" a failure on the fourth record
though the use of a sample component
`ExceptionThrowingItemReaderProxy`. This is a stateful reader
that counts how many records it has processed and throws a planned
exception in a specified place. Since we re-use the same instance
when we restart the job it will not fail the second time.
### [Retry Sample](id:retry)
The purpose of this sample is to show how to use the automatic retry
capabilities of Spring Batch.
The retry is configured in the step through the
`SkipLimitStepFactoryBean`:
<bean id="step1" parent="simpleStep"
class="org.springframework.batch.core.step.item.FaultTolerantStepFactoryBean">
...
<property name="retryLimit" value="3" />
<property name="retryableExceptionClasses" value="java.lang.Exception" />
</bean>
Failed items will cause a rollback for all `Exception` types, up
to a limit of 3 attempts. On the 4th attempt, the failed item would
be skipped, and there would be a callback to a
`ItemSkipListener` if one was provided (via the "listeners"
property of the step factory bean).
An `ItemReader` is provided that will generate unique
`Trade` data by just incrementing a counter. Note that it uses
the counter in its `mark()` and `reset()` methods so that
the same content is returned after a rollback. The same content is
returned, but the instance of `Trade` is different, which means
that the implementation of `equals()` in the `Trade` object
is important. This is because to identify a failed item on retry
(so that the number of attempts can be counted) the framework by
default uses `Object.equals()` to compare the recently failed
item with a cache of previously failed items. Without implementing
a field-based `equals()` method for the domain object, our job
will spin round the retry for potentially quite a long time before
failing because the default implementation of `equals()` is
based on object reference, not on field content.
### [Skip Sample](id:skip)
The purpose of this sample is to show how to use the skip features
of Spring Batch. Since skip is really just a special case of retry
(with limit 0), the details are quite similar to the [Retry
Sample](#retry), but the use case is less artificial, since it
is based on the [Trade Sample](#trade).
The failure condition is still artificial, since it is triggered by
a special `ItemWriter` wrapper (`ItemTrackingItemWriter`).
The plan is that a certain item (the third) will fail business
validation in the writer, and the system can then respond by
skipping it. We also configure the step so that it will not roll
back on the validation exception, since we know that it didn't
invalidate the transaction, only the item. This is done through the
transaction attribute:
<bean id="step2" parent="skipLimitStep">
<property name="skipLimit" value="1" />
<!-- No rollback for exceptions that are marked with "+" in the tx attributes -->
<property name="transactionAttribute"
value="+org.springframework.batch.item.validator.ValidationException" />
....
</bean>
The format for the transaction attribute specification is given in
the Spring Core documentation (e.g. see the Javadocs for
[TransactionAttributeEditor](https://docs.spring.io/spring/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/interceptor/TransactionAttributeEditor.html)).
### [Tasklet Job](id:tasklet)
The goal is to show the simplest use of the batch framework with a
single job with a single step, which cleans up a directory and runs
a system command.
*Description:* The
`Job` itself is defined by the bean definition with
`id="taskletJob"`. In this example we have two steps.
* The first step defines a tasklet that is responsible for
clearing out a directory though a custom `Tasklet`. Each
tasklet has an `execute()` method which is called by the
step. All processing of business data should be handled by this
method.
* The second step uses another tasklet to execute a system (OS)
command line.
You can visualise the Spring configuration of a job through
Spring-IDE. See [Spring IDE](https://spring.io/tools). The
source view of the configuration is as follows:
<bean id="taskletJob" parent="simpleJob">
<property name="steps">
<list>
<bean id="deleteFilesInDir" parent="taskletStep">
<property name="tasklet">
<bean
class="org.springframework.batch.sample.tasklet.FileDeletingTasklet">
<property name="directoryResource" ref="directory" />
</bean>
</property>
</bean>
<bean id="executeSystemCommand" parent="taskletStep">
<property name="tasklet">
<bean
class="org.springframework.batch.sample.common.SystemCommandTasklet">
<property name="command" value="echo hello" />
<!-- 5 second timeout for the command to complete -->
<property name="timeout" value="5000" />
</bean>
</property>
</bean>
</list>
</property>
</bean>
<bean id="directory"
class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="build/test-outputs/test-dir" />
</bean>
For simplicity we are only displaying the job configuration itself
and leaving out the details of the supporting batch execution
environment configuration.
### [Trade Job](id:trade)
The goal is to show a reasonably complex scenario, that would
resemble the real-life usage of the framework.
This job has 3 steps. First, data about trades are imported from a
file to database. Second, the trades are read from the database and
credit on customer accounts is decreased appropriately. Last, a
report about customers is exported to a file.
### [XML Input Output](id:xml)
The goal here is to show the use of XML input and output through
streaming and Spring OXM marshallers and unmarshallers.
The job has a single step that copies `Trade` data from one XML
file to another. It uses XStream for the object XML conversion,
because this is simple to configure for basic use cases like this
one. See
[Spring OXM documentation](https://docs.spring.io/spring-ws/sites/2.0/reference/html/oxm.html) for details of other options.