# The happy path: 60 rows in, 58 products out

$ java -jar target/spring-batch-1.0.0.jar --spring.profiles.active=clean \
    --import.file=file:scenario-data/clean-demo/input.csv \
    --spring.datasource.url=jdbc:h2:file:.../scenario-data/clean-demo/db

2026-09-13T06:23:05.509Z  INFO 5242 --- [           main] o.s.batch.core.step.AbstractStep         : Executing step: [importStep]
2026-09-13T06:23:05.530Z  WARN 5242 --- [           main] c.a.b.p.ProductValidatingProcessor       : filtering abc-0012: does not match ^[A-Z]{3}-\d{4}$
2026-09-13T06:23:05.543Z  WARN 5242 --- [           main] c.a.b.p.ProductValidatingProcessor       : filtering ABC-0033: priceCents must be positive, was 0
2026-09-13T06:23:05.570Z  INFO 5242 --- [           main] o.s.batch.core.step.AbstractStep         : Step: [importStep] executed in 61ms
2026-09-13T06:23:05.590Z  INFO 5242 --- [           main] o.s.batch.core.step.AbstractStep         : Executing step: [reportStep]
REPORT: 58 products now in the PRODUCT table
2026-09-13T06:23:05.600Z  INFO 5242 --- [           main] o.s.batch.core.step.AbstractStep         : Step: [reportStep] executed in 13ms
JOB FINISHED: status=COMPLETED exitCode=COMPLETED

$ SELECT read_count, filter_count, write_count, commit_count FROM BATCH_STEP_EXECUTION;
READ_COUNT | FILTER_COUNT | WRITE_COUNT | COMMIT_COUNT
60         | 2            | 58          | 6
(1 row, 21 ms)
