Merge pull request #8870 from shubhi22/BAEL-3298-spring-batch-retry
Bael 3298 Changing Date to LocalDateTime to resolve the timezone related build issue
This commit is contained in:
commit
92f61cec99
spring-batch
src
main
java/org/baeldung/batch
resources/output
test/resources/output/batchRetry
xml
@ -1,8 +1,10 @@
|
|||||||
package org.baeldung.batch.model;
|
package org.baeldung.batch.model;
|
||||||
|
|
||||||
import java.util.Date;
|
import org.baeldung.batch.service.adapter.LocalDateTimeAdapter;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
@XmlRootElement(name = "transactionRecord")
|
@XmlRootElement(name = "transactionRecord")
|
||||||
@ -11,7 +13,7 @@ public class Transaction {
|
|||||||
private int userId;
|
private int userId;
|
||||||
private int age;
|
private int age;
|
||||||
private String postCode;
|
private String postCode;
|
||||||
private Date transactionDate;
|
private LocalDateTime transactionDate;
|
||||||
private double amount;
|
private double amount;
|
||||||
|
|
||||||
/* getters and setters for the attributes */
|
/* getters and setters for the attributes */
|
||||||
@ -32,11 +34,12 @@ public class Transaction {
|
|||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getTransactionDate() {
|
@XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
|
||||||
|
public LocalDateTime getTransactionDate() {
|
||||||
return transactionDate;
|
return transactionDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTransactionDate(Date transactionDate) {
|
public void setTransactionDate(LocalDateTime transactionDate) {
|
||||||
this.transactionDate = transactionDate;
|
this.transactionDate = transactionDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
package org.baeldung.batch.service;
|
package org.baeldung.batch.service;
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
|
|
||||||
import org.baeldung.batch.model.Transaction;
|
import org.baeldung.batch.model.Transaction;
|
||||||
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
||||||
import org.springframework.batch.item.file.transform.FieldSet;
|
import org.springframework.batch.item.file.transform.FieldSet;
|
||||||
import org.springframework.validation.BindException;
|
import org.springframework.validation.BindException;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
public class RecordFieldSetMapper implements FieldSetMapper<Transaction> {
|
public class RecordFieldSetMapper implements FieldSetMapper<Transaction> {
|
||||||
|
|
||||||
public Transaction mapFieldSet(FieldSet fieldSet) throws BindException {
|
public Transaction mapFieldSet(FieldSet fieldSet) throws BindException {
|
||||||
|
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/M/yyy");
|
||||||
|
|
||||||
Transaction transaction = new Transaction();
|
Transaction transaction = new Transaction();
|
||||||
// you can either use the indices or custom names
|
// you can either use the indices or custom names
|
||||||
// I personally prefer the custom names easy for debugging and
|
// I personally prefer the custom names easy for debugging and
|
||||||
@ -20,13 +21,10 @@ public class RecordFieldSetMapper implements FieldSetMapper<Transaction> {
|
|||||||
transaction.setUsername(fieldSet.readString("username"));
|
transaction.setUsername(fieldSet.readString("username"));
|
||||||
transaction.setUserId(fieldSet.readInt("userid"));
|
transaction.setUserId(fieldSet.readInt("userid"));
|
||||||
transaction.setAmount(fieldSet.readDouble(3));
|
transaction.setAmount(fieldSet.readDouble(3));
|
||||||
|
|
||||||
// Converting the date
|
// Converting the date
|
||||||
String dateString = fieldSet.readString(2);
|
String dateString = fieldSet.readString(2);
|
||||||
try {
|
transaction.setTransactionDate(LocalDate.parse(dateString, formatter).atStartOfDay());
|
||||||
transaction.setTransactionDate(dateFormat.parse(dateString));
|
|
||||||
} catch (ParseException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return transaction;
|
return transaction;
|
||||||
|
|
||||||
|
19
spring-batch/src/main/java/org/baeldung/batch/service/adapter/LocalDateTimeAdapter.java
Normal file
19
spring-batch/src/main/java/org/baeldung/batch/service/adapter/LocalDateTimeAdapter.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package org.baeldung.batch.service.adapter;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.adapters.XmlAdapter;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
|
||||||
|
|
||||||
|
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
||||||
|
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(DATE_FORMAT);
|
||||||
|
|
||||||
|
public LocalDateTime unmarshal(String v) throws Exception {
|
||||||
|
return LocalDateTime.parse(v, DATE_TIME_FORMATTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String marshal(LocalDateTime v) throws Exception {
|
||||||
|
return DATE_TIME_FORMATTER.format(v);
|
||||||
|
}
|
||||||
|
}
|
@ -2,19 +2,19 @@
|
|||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>10000.0</amount>
|
<amount>10000.0</amount>
|
||||||
<transactionDate>2015-10-31T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-10-31 00:00:00</transactionDate>
|
||||||
<userId>1234</userId>
|
<userId>1234</userId>
|
||||||
<username>devendra</username>
|
<username>devendra</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>12321.0</amount>
|
<amount>12321.0</amount>
|
||||||
<transactionDate>2015-12-03T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-12-03 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>john</username>
|
<username>john</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>23411.0</amount>
|
<amount>23411.0</amount>
|
||||||
<transactionDate>2015-02-02T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-02-02 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>robin</username>
|
<username>robin</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
|
@ -2,19 +2,19 @@
|
|||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>10000.0</amount>
|
<amount>10000.0</amount>
|
||||||
<transactionDate>2015-10-31T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-10-31 00:00:00</transactionDate>
|
||||||
<userId>1234</userId>
|
<userId>1234</userId>
|
||||||
<username>devendra</username>
|
<username>devendra</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>12321.0</amount>
|
<amount>12321.0</amount>
|
||||||
<transactionDate>2015-12-03T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-12-03 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>john</username>
|
<username>john</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>23411.0</amount>
|
<amount>23411.0</amount>
|
||||||
<transactionDate>2015-02-02T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-02-02 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>robin</username>
|
<username>robin</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
|
@ -2,19 +2,19 @@
|
|||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>10000.0</amount>
|
<amount>10000.0</amount>
|
||||||
<transactionDate>2015-10-31T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-10-31 00:00:00</transactionDate>
|
||||||
<userId>1234</userId>
|
<userId>1234</userId>
|
||||||
<username>devendra</username>
|
<username>devendra</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>12321.0</amount>
|
<amount>12321.0</amount>
|
||||||
<transactionDate>2015-12-03T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-12-03 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>john</username>
|
<username>john</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>23411.0</amount>
|
<amount>23411.0</amount>
|
||||||
<transactionDate>2015-02-02T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-02-02 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>robin</username>
|
<username>robin</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
|
@ -2,19 +2,19 @@
|
|||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>10000.0</amount>
|
<amount>10000.0</amount>
|
||||||
<transactionDate>2015-10-31T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-10-31 00:00:00</transactionDate>
|
||||||
<userId>1234</userId>
|
<userId>1234</userId>
|
||||||
<username>devendra</username>
|
<username>devendra</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>12321.0</amount>
|
<amount>12321.0</amount>
|
||||||
<transactionDate>2015-12-03T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-12-03 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>john</username>
|
<username>john</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>23411.0</amount>
|
<amount>23411.0</amount>
|
||||||
<transactionDate>2015-02-02T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-02-02 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>robin</username>
|
<username>robin</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
|
@ -2,19 +2,19 @@
|
|||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>10000.0</amount>
|
<amount>10000.0</amount>
|
||||||
<transactionDate>2015-10-31T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-10-31 00:00:00</transactionDate>
|
||||||
<userId>1234</userId>
|
<userId>1234</userId>
|
||||||
<username>devendra</username>
|
<username>devendra</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>12321.0</amount>
|
<amount>12321.0</amount>
|
||||||
<transactionDate>2015-12-03T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-12-03 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>john</username>
|
<username>john</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
<transactionRecord>
|
<transactionRecord>
|
||||||
<amount>23411.0</amount>
|
<amount>23411.0</amount>
|
||||||
<transactionDate>2015-02-02T00:00:00+05:30</transactionDate>
|
<transactionDate>2015-02-02 00:00:00</transactionDate>
|
||||||
<userId>2134</userId>
|
<userId>2134</userId>
|
||||||
<username>robin</username>
|
<username>robin</username>
|
||||||
</transactionRecord>
|
</transactionRecord>
|
||||||
|
@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?><transactionRecord><transactionRecord><age>10</age><amount>10000.0</amount><postCode>430222</postCode><transactionDate>2015-10-31T00:00:00+05:30</transactionDate><userId>1234</userId><username>sammy</username></transactionRecord><transactionRecord><age>10</age><amount>12321.0</amount><postCode>430222</postCode><transactionDate>2015-12-03T00:00:00+05:30</transactionDate><userId>9999</userId><username>john</username></transactionRecord></transactionRecord>
|
<?xml version="1.0" encoding="UTF-8"?><transactionRecord><transactionRecord><age>10</age><amount>10000.0</amount><postCode>430222</postCode><transactionDate>2015-10-31 00:00:00</transactionDate><userId>1234</userId><username>sammy</username></transactionRecord><transactionRecord><age>10</age><amount>12321.0</amount><postCode>430222</postCode><transactionDate>2015-12-03 00:00:00</transactionDate><userId>9999</userId><username>john</username></transactionRecord></transactionRecord>
|
||||||
|
@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?><transactionRecord><transactionRecord><amount>10000.0</amount><transactionDate>2015-10-31T00:00:00+05:30</transactionDate><userId>1234</userId><username>devendra</username></transactionRecord><transactionRecord><amount>12321.0</amount><transactionDate>2015-12-03T00:00:00+05:30</transactionDate><userId>2134</userId><username>john</username></transactionRecord><transactionRecord><amount>23411.0</amount><transactionDate>2015-02-02T00:00:00+05:30</transactionDate><userId>2134</userId><username>robin</username></transactionRecord></transactionRecord>
|
<?xml version="1.0" encoding="UTF-8"?><transactionRecord><transactionRecord><amount>10000.0</amount><transactionDate>2015-10-31 00:00:00</transactionDate><userId>1234</userId><username>devendra</username></transactionRecord><transactionRecord><amount>12321.0</amount><transactionDate>2015-12-03 00:00:00</transactionDate><userId>2134</userId><username>john</username></transactionRecord><transactionRecord><amount>23411.0</amount><transactionDate>2015-02-02 00:00:00</transactionDate><userId>2134</userId><username>robin</username></transactionRecord></transactionRecord>
|
@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?><transactionRecord><transactionRecord><age>10</age><amount>10000.0</amount><postCode>430222</postCode><transactionDate>2015-10-31T00:00:00+05:30</transactionDate><userId>1234</userId><username>sammy</username></transactionRecord><transactionRecord><age>10</age><amount>12321.0</amount><postCode>430222</postCode><transactionDate>2015-12-03T00:00:00+05:30</transactionDate><userId>9999</userId><username>john</username></transactionRecord></transactionRecord>
|
<?xml version="1.0" encoding="UTF-8"?><transactionRecord><transactionRecord><age>10</age><amount>10000.0</amount><postCode>430222</postCode><transactionDate>2015-10-31 00:00:00</transactionDate><userId>1234</userId><username>sammy</username></transactionRecord><transactionRecord><age>10</age><amount>12321.0</amount><postCode>430222</postCode><transactionDate>2015-12-03 00:00:00</transactionDate><userId>9999</userId><username>john</username></transactionRecord></transactionRecord>
|
Loading…
x
Reference in New Issue
Block a user