Files
spring-cloud-task/spring-cloud-task-samples/single-step-batch-job
Glenn Renfro 5cec7af1dd Updated test to make each batch instance unique.
This solves issue where Batch Instances were cleared out unnecessesarily
2020-10-20 14:33:58 -04:00
..
2020-09-24 14:42:16 -04:00
2020-09-23 17:42:37 -05:00

= Single Step Batch JOb

This is a Spring Cloud Task application that autoconfigures a single step Spring Batch job based on the profiles that are active.

The profiles that are available are:

* `ffreader` - Activates a FlatFileItemReader that reads from the `test.txt` file provided.
* `ffwriter` - Activates a FlatFileItemWriter that writes to the `result.txt` file.
* `jdbcreader` - Activates a JdbcCursorItemReader that reads from the `item_sample` table.
* `jdbcwriter` - Activates a JdbcItemReader that writes to the `item` table.

== Requirements:

* Java 8 or Above

== Classes:

* SingleStepBatchJobApplication - the Spring Boot Main Application

== Build:

[source,shell,indent=2]
----
$ mvn clean package
----

== Run:

[source,shell,indent=2]
----
$ java -jar target/single-step-batch-job-2.3.0-SNAPSHOT.jar --spring.config.name=<property file containing batch, reader, and writer properties>
----

== Examples

=== FlatFileItemReader with a FlatFileItemWriter batch job
In this example the batch job will read from the test.txt file from the resources directory and write a `result.txt` file to the root directory of the project.
```
java -Dspring.profiles.active=ffreader,ffwriter -jar target/single-step-batch-job-2.3.0-SNAPSHOT.jar
```

=== FlatFileItemReader with a JdbcItemWriter batch job
In this example the batch job will read from the test.txt file from the resources directory and write the result to the `item` table in your data store.
```
java -Dspring.profiles.active=ffreader,jdbcwriter -jar target/single-step-batch-job-2.3.0-SNAPSHOT.jar
```

Before running create the following table:
```
CREATE TABLE IF NOT EXISTS item
(
   item_name varchar(55)
);
```

=== JdbcCursorItemReader with a JdbcItemWriter batch job
In this example the batch job will read from the `item_sample` table in your data store and write the result to the `item` table in your data store.
```
java -Dspring.profiles.active=jdbcreader,jdbcwriter -jar target/single-step-batch-job-2.3.0-SNAPSHOT.jar
```

Before running create the following tables:
```
CREATE TABLE IF NOT EXISTS item
(
   item_name varchar(55)
);
CREATE TABLE IF NOT EXISTS item_sample
(
   ITEM_NAME varchar(55)
);

INSERT INTO item_sample (item_name) VALUES ('foo');
INSERT INTO item_sample (item_name) VALUES ('bar');
INSERT INTO item_sample (item_name) VALUES ('baz');
INSERT INTO item_sample (item_name) VALUES ('boo');
INSERT INTO item_sample (item_name) VALUES ('qux');
INSERT INTO item_sample (item_name) VALUES ('Job');
```

=== JdbcCursorItemReader with FlatfileItemWriter batch job
In this example the batch job will read from the `item_sample` table in your data store and write the result to the `result.txt` file to the root directory of the project.
```
java -Dspring.profiles.active=jdbcreader,ffwriter -jar target/single-step-batch-job-2.3.0-SNAPSHOT.jar
```

Before running create the following table:
```
CREATE TABLE IF NOT EXISTS item_sample
(
   ITEM_NAME varchar(55)
);

INSERT INTO item_sample (item_name) VALUES ('foo');
INSERT INTO item_sample (item_name) VALUES ('bar');
INSERT INTO item_sample (item_name) VALUES ('baz');
INSERT INTO item_sample (item_name) VALUES ('boo');
INSERT INTO item_sample (item_name) VALUES ('qux');
INSERT INTO item_sample (item_name) VALUES ('Job');
```