diff --git a/samples/pom.xml b/samples/pom.xml
index e2b8b90b8..248f014da 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -191,6 +191,112 @@
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ generate-sql
+ generate-sources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-clover-plugin
+
+
+ ${basedir}/src/test/resources/clover.license
+
+
+
+
+ pre-site
+
+ instrument
+
+
+
+
diff --git a/samples/src/main/sql/business-schema.sql.vpp b/samples/src/main/sql/business-schema.sql.vpp
new file mode 100644
index 000000000..4f47abacd
--- /dev/null
+++ b/samples/src/main/sql/business-schema.sql.vpp
@@ -0,0 +1,3 @@
+#parse("${includes}/destroy.sql.vpp")
+
+#parse("${includes}/init.sql.vpp")
\ No newline at end of file
diff --git a/samples/src/main/sql/db2.properties b/samples/src/main/sql/db2.properties
new file mode 100644
index 000000000..532bd942b
--- /dev/null
+++ b/samples/src/main/sql/db2.properties
@@ -0,0 +1,6 @@
+platform=db2
+# SQL language oddities
+BIGINT = BIGINT
+IDENTITY =
+# for generating drop statements...
+SEQUENCE = SEQUENCE
diff --git a/samples/src/main/sql/db2.vpp b/samples/src/main/sql/db2.vpp
new file mode 100644
index 000000000..3713aa6f5
--- /dev/null
+++ b/samples/src/main/sql/db2.vpp
@@ -0,0 +1,2 @@
+#macro (sequence $name)CREATE SEQUENCE ${name};
+#end
diff --git a/samples/src/main/sql/derby.properties b/samples/src/main/sql/derby.properties
new file mode 100644
index 000000000..9f34bc337
--- /dev/null
+++ b/samples/src/main/sql/derby.properties
@@ -0,0 +1,7 @@
+platform=db2
+# SQL language oddities
+BIGINT = BIGINT
+IDENTITY =
+GENERATED = GENERATED BY DEFAULT AS IDENTITY
+# for generating drop statements...
+SEQUENCE = SEQUENCE
diff --git a/samples/src/main/sql/derby.vpp b/samples/src/main/sql/derby.vpp
new file mode 100644
index 000000000..3713aa6f5
--- /dev/null
+++ b/samples/src/main/sql/derby.vpp
@@ -0,0 +1,2 @@
+#macro (sequence $name)CREATE SEQUENCE ${name};
+#end
diff --git a/samples/src/main/sql/destroy.sql.vpp b/samples/src/main/sql/destroy.sql.vpp
new file mode 100644
index 000000000..b2e03ec20
--- /dev/null
+++ b/samples/src/main/sql/destroy.sql.vpp
@@ -0,0 +1,8 @@
+-- Autogenerated: do not edit this file
+DROP TABLE TRADE $!{IFEXISTS};
+DROP ${SEQUENCE} TRADE_SEQ $!{IFEXISTS};
+DROP TABLE CUSTOMER $!{IFEXISTS};
+DROP ${SEQUENCE} CUSTOMER_SEQ $!{IFEXISTS};
+DROP TABLE PLAYERS $!{IFEXISTS};
+DROP TABLE GAMES $!{IFEXISTS};
+DROP TABLE PLAYER_SUMMARY $!{IFEXISTS};
diff --git a/samples/src/main/sql/hsqldb.properties b/samples/src/main/sql/hsqldb.properties
new file mode 100644
index 000000000..d72d28999
--- /dev/null
+++ b/samples/src/main/sql/hsqldb.properties
@@ -0,0 +1,7 @@
+platform=hsqldb
+# SQL language oddities
+BIGINT = BIGINT
+IDENTITY = IDENTITY
+IFEXISTS = IF EXISTS
+# for generating drop statements...
+SEQUENCE = TABLE
diff --git a/samples/src/main/sql/hsqldb.vpp b/samples/src/main/sql/hsqldb.vpp
new file mode 100644
index 000000000..6259ee124
--- /dev/null
+++ b/samples/src/main/sql/hsqldb.vpp
@@ -0,0 +1,4 @@
+#macro (sequence $name)CREATE TABLE ${name} (
+ ID BIGINT IDENTITY
+);
+#end
diff --git a/samples/src/main/sql/init.sql.vpp b/samples/src/main/sql/init.sql.vpp
new file mode 100644
index 000000000..2169d7ebc
--- /dev/null
+++ b/samples/src/main/sql/init.sql.vpp
@@ -0,0 +1,66 @@
+-- Autogenerated: do not edit this file
+CREATE TABLE TRADE (
+ ID ${BIGINT} $!{IDENTITY} PRIMARY KEY $!{GENERATED},
+ VERSION ${BIGINT},
+ ISIN VARCHAR(45) NOT NULL,
+ QUANTITY ${BIGINT},
+ PRICE FLOAT,
+ CUSTOMER VARCHAR(45)
+);
+
+#sequence( "TRADE_SEQ" )
+
+CREATE TABLE CUSTOMER (
+ ID ${BIGINT} $!{IDENTITY} PRIMARY KEY $!{GENERATED},
+ VERSION ${BIGINT},
+ NAME VARCHAR(45),
+ CREDIT FLOAT
+);
+
+#sequence( "CUSTOMER_SEQ" )
+
+INSERT INTO customer (id, version, name, credit) VALUES (1, 0, 'customer1', 100000);
+INSERT INTO customer (id, version, name, credit) VALUES (2, 0, 'customer2', 100000);
+INSERT INTO customer (id, version, name, credit) VALUES (3, 0, 'customer3', 100000);
+INSERT INTO customer (id, version, name, credit) VALUES (4, 0, 'customer4', 100000);
+
+
+CREATE TABLE PLAYERS (
+ PLAYER_ID char(8) NOT NULL PRIMARY KEY,
+ LAST_NAME varchar(35) not null,
+ FIRST_NAME varchar(25) not null,
+ POSITION varchar(10),
+ YEAR_OF_BIRTH ${BIGINT} not null,
+ YEAR_DRAFTED ${BIGINT} not null);
+
+CREATE TABLE GAMES (
+ PLAYER_ID char(8) not null PRIMARY KEY,
+ YEAR ${BIGINT} not null,
+ TEAM char(3) not null,
+ WEEK ${BIGINT} not null,
+ OPPONENT char(3),
+ COMPLETES ${BIGINT},
+ ATTEMPTS ${BIGINT},
+ PASSING_YARDS ${BIGINT},
+ PASSING_TD ${BIGINT},
+ INTERCEPTIONS ${BIGINT},
+ RUSHES ${BIGINT},
+ RUSH_YARDS ${BIGINT},
+ RECEPTIONS ${BIGINT},
+ RECEPTIONS_YARDS ${BIGINT},
+ TOTAL_TD ${BIGINT}
+);
+
+CREATE TABLE PLAYER_SUMMARY (
+ ID CHAR(8) NOT NULL PRIMARY KEY,
+ YEAR ${BIGINT} NOT NULL,
+ COMPLETES ${BIGINT} NOT NULL ,
+ ATTEMPTS ${BIGINT} NOT NULL ,
+ PASSING_YARDS ${BIGINT} NOT NULL ,
+ PASSING_TD ${BIGINT} NOT NULL ,
+ INTERCEPTIONS ${BIGINT} NOT NULL ,
+ RUSHES ${BIGINT} NOT NULL ,
+ RUSH_YARDS ${BIGINT} NOT NULL ,
+ RECEPTIONS ${BIGINT} NOT NULL ,
+ RECEPTIONS_YARDS ${BIGINT} NOT NULL ,
+ TOTAL_TD ${BIGINT} NOT NULL );
\ No newline at end of file
diff --git a/samples/src/main/sql/oracle10g.properties b/samples/src/main/sql/oracle10g.properties
new file mode 100644
index 000000000..7f8e634e6
--- /dev/null
+++ b/samples/src/main/sql/oracle10g.properties
@@ -0,0 +1,7 @@
+platform=oracle10g
+# SQL language oddities
+BIGINT = NUMBER(38)
+IDENTITY =
+GENERATED =
+# for generating drop statements...
+SEQUENCE = SEQUENCE
diff --git a/samples/src/main/sql/oracle10g.vpp b/samples/src/main/sql/oracle10g.vpp
new file mode 100644
index 000000000..3713aa6f5
--- /dev/null
+++ b/samples/src/main/sql/oracle10g.vpp
@@ -0,0 +1,2 @@
+#macro (sequence $name)CREATE SEQUENCE ${name};
+#end
diff --git a/samples/src/main/sql/postgresql.properties b/samples/src/main/sql/postgresql.properties
new file mode 100644
index 000000000..c716d74b2
--- /dev/null
+++ b/samples/src/main/sql/postgresql.properties
@@ -0,0 +1,7 @@
+platform=postgresql
+# SQL language oddities
+BIGINT = BIGINT
+IDENTITY =
+GENERATED =
+# for generating drop statements...
+SEQUENCE = SEQUENCE
diff --git a/samples/src/main/sql/postgresql.vpp b/samples/src/main/sql/postgresql.vpp
new file mode 100644
index 000000000..3713aa6f5
--- /dev/null
+++ b/samples/src/main/sql/postgresql.vpp
@@ -0,0 +1,2 @@
+#macro (sequence $name)CREATE SEQUENCE ${name};
+#end
diff --git a/samples/src/test/java/org/springframework/batch/sample/FootballJobFunctionalTests.java b/samples/src/test/java/org/springframework/batch/sample/FootballJobFunctionalTests.java
index ccfcf715d..2422316a1 100644
--- a/samples/src/test/java/org/springframework/batch/sample/FootballJobFunctionalTests.java
+++ b/samples/src/test/java/org/springframework/batch/sample/FootballJobFunctionalTests.java
@@ -3,7 +3,7 @@ package org.springframework.batch.sample;
public class FootballJobFunctionalTests extends AbstractValidatingBatchLauncherTests {
protected String[] getConfigLocations() {
- return new String[] {"jobs/footballJob.xml"};
+ return new String[] {"jobs/footballJob.xml###"};
}
protected void validatePostConditions() throws Exception {