<?xml version="1.0" encoding="UTF-8"?>
<!--
  See the NOTICE file distributed with this work for additional information
  regarding copyright ownership. Licensed under the Apache License,
  Version 2.0 (the "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<job id="checkpoint-storage-test" version="1.0" xmlns="http://xmlns.jcp.org/xml/ns/javaee">
  <step id="test">
    <chunk item-count="1">
      <reader ref="org.apache.batchee.test.data.DefaultDataRepresentationServiceTest$DummyReaderWithCheckpoint">
      </reader>
      <writer ref="org.apache.batchee.test.data.DefaultDataRepresentationServiceTest$DummyWriterWithCheckpoint" />
    </chunk>
  </step>
</job>
