Hi Michel
how to set the item data(e.g total # of records from db) in headercallback's write method..
Here config file is as below
Code:
<bean id="itemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter">
<property name="resource" ref="outputResource" />
<property name="marshaller" ref="LedgerMarshaller" />
<property name="rootTagName" value="BatchJob" />
<property name="headerCallback" ref="headerCallback" />
</bean>
and classes for as below
Code:
public class ProductHeaderStaxCallback implements StaxWriterCallback {
@Override
public void write(XMLEventWriter writer) throws IOException {
try {
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
XMLEvent event = eventFactory.createStartElement("", "", "source");
writer.add(event);
// event = eventFactory.createAttribute("generated", DateFormat.getDateTimeInstance().format(new Date()));
// writer.add(event);
Characters studentNameChars = eventFactory.createCharacters("scan");
writer.add(studentNameChars);
event = eventFactory.createEndElement("", "", "source");
writer.add(event);
XMLEvent event1 = eventFactory.createStartElement("", "", "Datetime");
writer.add(event1);
//event1 = eventFactory.createAttribute("generated", DateFormat.getDateTimeInstance().format(new Date()));
// writer.add(event1);
Characters studentNameChars1 = eventFactory.createCharacters(DateFormat.getDateTimeInstance().format(new Date()));
writer.add(studentNameChars1);
event1 = eventFactory.createEndElement("", "", "Datetime");
writer.add(event1);
Ledger ledger = Ledger.getInstance();
ledger.getRowcount(); System.out.println("RowCount!!!"+ledger.getRowcount());
} catch (XMLStreamException e) {
}
}
I have tried with above, getting null value as rowcount .