Skip to content
This repository was archived by the owner on Mar 12, 2020. It is now read-only.

Commit 4c8fd57

Browse files
author
Eric Meyer
committed
Fixes defect in add-to-item configuration parsing: add-to-item was only read from delta configuration elements. add-to-item elements in snapshots were ignored. delta add-to-item elements were incorrectly used by the publisher's snapshots. Updates README for release 1.9.
1 parent 7709309 commit 4c8fd57

File tree

5 files changed

+118
-6
lines changed

5 files changed

+118
-6
lines changed

README

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ Then run the tool by executing the run.sh script.
2121

2222
Release Notes
2323
-------------
24+
1.9 - 2011-12-26
25+
26+
* Fixes defect in add-to-item configuration parsing: add-to-item was only
27+
read from delta configuration elements. add-to-item elements in snapshots
28+
were ignored. delta add-to-item elements were incorrectly used by the
29+
publisher's snapshots.
30+
2431
1.8 - 2011-12-08
2532

2633
* Adds configuration attribute for item property-case (preserve, lower, upper

src/main/java/com/t11e/discovery/datatool/ConfigurationManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ private GenericApplicationContext createApplicationContext(final InputStream is)
276276
defineAndInstantiateSqlActionFromItemActionNode(complete, applicationContext, propertyCase, action, ns);
277277
}
278278
for (final Node action : (List<Node>) sqlPublisher.selectNodes(
279-
"c:snapshot/c:set-item | c:snapshot/c:remove-item | c:delta/c:add-to-item"
279+
"c:snapshot/c:set-item | c:snapshot/c:remove-item | c:snapshot/c:add-to-item"
280280
.replace("c:", ns)))
281281
{
282282
defineAndInstantiateSqlActionFromItemActionNode(complete, applicationContext, propertyCase, action, ns);

src/test/java/com/t11e/discovery/datatool/AddToItemTest.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,66 @@ Collections.<String> emptySet(),
141141
.getText());
142142
}
143143

144+
@Test
145+
public void deltaOnly()
146+
{
147+
assertChangeset("test-delta-only-set-add-remove", null, "snapshot",
148+
Collections.<String> emptyList(),
149+
Collections.<String> emptyList(),
150+
Collections.<String> emptyList(),
151+
false);
152+
153+
assertChangeset("test-delta-only-set-add-remove", null, "snapshot",
154+
Collections.<String> emptyList(),
155+
Collections.<String> emptyList(),
156+
Collections.<String> emptyList(),
157+
true);
158+
}
159+
160+
@Test
161+
public void deltaOnlyWithProfile()
162+
{
163+
final Document doc = assertChangeset("test-delta-only-set-add-remove", newProfile(), "delta",
164+
Arrays.asList("1", "2", "3"),
165+
Arrays.asList("4", "5"),
166+
Arrays.asList("1", "2", "3"),
167+
false);
168+
assertXpath("2010-01-01T00:00:00.000", doc,
169+
"/changeset/set-item[@id='1']/properties/struct/entry[@name='lastupdated']/string/text()");
170+
assertXpath("2010-01-01T00:00:00.000", doc,
171+
"/changeset/set-item[@id='2']/properties/struct/entry[@name='lastupdated']/string/text()");
172+
assertXpath("2010-01-01T00:00:00.000", doc,
173+
"/changeset/set-item[@id='3']/properties/struct/entry[@name='lastupdated']/string/text()");
174+
assertXpath("billy", doc,
175+
"/changeset/add-to-item[@id='1']/properties/struct/entry[@name='first_name']/string/text()");
176+
assertXpath("joe", doc,
177+
"/changeset/add-to-item[@id='2']/properties/struct/entry[@name='first_name']/string/text()");
178+
assertXpath("bob", doc,
179+
"/changeset/add-to-item[@id='3']/properties/struct/entry[@name='first_name']/string/text()");
180+
}
181+
182+
@Test
183+
public void snapshotOnly()
184+
{
185+
final Document doc = assertChangeset("test-snapshot-only-set-add-remove", null, "snapshot",
186+
Arrays.asList("1", "2", "3"),
187+
Arrays.asList("4", "5"),
188+
Arrays.asList("1", "2", "3"),
189+
false);
190+
assertXpath("2010-01-01T00:00:00.000", doc,
191+
"/changeset/set-item[@id='1']/properties/struct/entry[@name='lastupdated']/string/text()");
192+
assertXpath("2010-01-01T00:00:00.000", doc,
193+
"/changeset/set-item[@id='2']/properties/struct/entry[@name='lastupdated']/string/text()");
194+
assertXpath("2010-01-01T00:00:00.000", doc,
195+
"/changeset/set-item[@id='3']/properties/struct/entry[@name='lastupdated']/string/text()");
196+
assertXpath("billy", doc,
197+
"/changeset/add-to-item[@id='1']/properties/struct/entry[@name='first_name']/string/text()");
198+
assertXpath("joe", doc,
199+
"/changeset/add-to-item[@id='2']/properties/struct/entry[@name='first_name']/string/text()");
200+
assertXpath("bob", doc,
201+
"/changeset/add-to-item[@id='3']/properties/struct/entry[@name='first_name']/string/text()");
202+
}
203+
144204
private String newProfile()
145205
{
146206
return "test-" + new Random(System.currentTimeMillis()).nextLong();

src/test/java/com/t11e/discovery/datatool/AddToItemTest.xml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,5 +129,49 @@
129129
</remove-item>
130130
</delta>
131131
</sqlPublisher>
132+
133+
<sqlPublisher name="test-delta-only-set-add-remove" dataSource="dataSource" profile="profile">
134+
<delta>
135+
<set-item idColumn="id">
136+
<query><![CDATA[
137+
SELECT id, lastUpdated
138+
FROM vertical_master_items master
139+
]]></query>
140+
</set-item>
141+
<add-to-item idColumn="id">
142+
<query><![CDATA[
143+
SELECT id, first_name
144+
FROM vertical_master_items master
145+
]]></query>
146+
</add-to-item>
147+
<remove-item idColumn="id">
148+
<query><![CDATA[
149+
select id from vertical_deleted
150+
]]></query>
151+
</remove-item>
152+
</delta>
153+
</sqlPublisher>
154+
155+
<sqlPublisher name="test-snapshot-only-set-add-remove" dataSource="dataSource" profile="profile">
156+
<snapshot>
157+
<set-item idColumn="id">
158+
<query><![CDATA[
159+
SELECT id, lastUpdated
160+
FROM vertical_master_items master
161+
]]></query>
162+
</set-item>
163+
<add-to-item idColumn="id">
164+
<query><![CDATA[
165+
SELECT id, first_name
166+
FROM vertical_master_items master
167+
]]></query>
168+
</add-to-item>
169+
<remove-item idColumn="id">
170+
<query><![CDATA[
171+
select id from vertical_deleted
172+
]]></query>
173+
</remove-item>
174+
</snapshot>
175+
</sqlPublisher>
132176
</publishers>
133177
</config>

src/test/java/com/t11e/discovery/datatool/VerticalTableTestCreate.sql

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
create table vertical_master_items (
22
id bigint generated by default as identity,
3-
lastUpdated timestamp);
3+
lastUpdated timestamp,
4+
first_name varchar(255) default null);
45

5-
insert into vertical_master_items (id, lastUpdated) values
6-
(1, '2010-01-01-00.00.00.000000'),
7-
(2, '2010-01-01-00.00.00.000000'),
8-
(3, '2010-01-01-00.00.00.000000');
6+
insert into vertical_master_items (id, lastUpdated, first_name) values
7+
(1, '2010-01-01-00.00.00.000000', 'billy'),
8+
(2, '2010-01-01-00.00.00.000000', 'joe'),
9+
(3, '2010-01-01-00.00.00.000000', 'bob');
910

1011
create table vertical_deleted (
1112
id bigint primary key,

0 commit comments

Comments
 (0)