Partition план не будет работать, если внутри расколаJSR 352 Java Batch: План раздела не будет работать, если внутри раскола
Следующий пример просто: работа -> сплит -> поток -> шаг -> chunk -> partition
Проблема в том, что параметры, установленные в плане разделов, не будут работать, если я поставлю поток внутри раскола. Если вы удалите раскол и просто поместите поток внутри задания, он работает правильно. Следующий пример Виль печать просто: нуля нуля
, но если я удалю раскол, он будет печатать valueTest1 valueTest2
Спасибо! Матиас
Работа XML
<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<split id="mySplit">
<flow id="myFlow">
<step id="myStep" >
<chunk>
<reader ref="testbatch.MyItemReader">
<properties>
<property name="prop1" value="#{partitionPlan['prop1']}"/>
</properties>
</reader>
<writer ref="testbatch.MyItemWriter"/>
</chunk>
<partition>
<plan partitions="2" >
<properties partition="0">
<property name="prop1" value="valueTest1"/>
</properties>
<properties partition="1">
<property name="prop1" value="valueTest2"/>
</properties>
</plan>
</partition>
</step>
</flow>
</split>
</job>
READER
package testbatch;
import javax.batch.api.BatchProperty;
import javax.batch.api.chunk.AbstractItemReader;
import javax.inject.Named;
@Named
public class MyItemReader extends AbstractItemReader {
@BatchProperty
String prop1;
@Override
public Object readItem() throws Exception {
System.out.println(prop1);
return null;
}
}
ГЛАВНАЯ
package testbatch;
import javax.batch.operations.JobOperator;
import javax.batch.runtime.BatchRuntime;
public class TestBatch {
public static void main(String[] args) {
JobOperator jobOperator = BatchRuntime.getJobOperator();
jobOperator.start("myJob", null);
}
}