# HG changeset patch # User Sascha L. Teichmann # Date 1325789929 0 # Node ID b20b710aa86f108a2c674ac77b24f1f1f720f08b # Parent 7bddd4601707b24a065d882d3e7c2e47cee29437 Bubble up modifications up to main(). flys-aft/trunk@3605 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 7bddd4601707 -r b20b710aa86f flys-aft/ChangeLog --- a/flys-aft/ChangeLog Thu Jan 05 17:46:18 2012 +0000 +++ b/flys-aft/ChangeLog Thu Jan 05 18:58:49 2012 +0000 @@ -1,3 +1,12 @@ +2012-01-05 Sascha L. Teichmann + + * doc/conf.xml: Added demo notification url. + + * src/main/java/de/intevation/aft/River.java, + src/main/java/de/intevation/aft/Rivers.java, + src/main/java/de/intevation/aft/Sync.java: Modifications + are bubbled up to main() to send notifactions. + 2012-01-05 Sascha L. Teichmann * src/main/java/de/intevation/aft/DischargeTable.java: Store diff -r 7bddd4601707 -r b20b710aa86f flys-aft/doc/conf.xml --- a/flys-aft/doc/conf.xml Thu Jan 05 17:46:18 2012 +0000 +++ b/flys-aft/doc/conf.xml Thu Jan 05 18:58:49 2012 +0000 @@ -1,5 +1,13 @@ + + + + + + + + /the/path/to/the/dips/file diff -r 7bddd4601707 -r b20b710aa86f flys-aft/src/main/java/de/intevation/aft/River.java --- a/flys-aft/src/main/java/de/intevation/aft/River.java Thu Jan 05 17:46:18 2012 +0000 +++ b/flys-aft/src/main/java/de/intevation/aft/River.java Thu Jan 05 18:58:49 2012 +0000 @@ -35,7 +35,7 @@ } - public void sync(SyncContext context) throws SQLException { + public boolean sync(SyncContext context) throws SQLException { log.info("sync river: " + this); Map dipsGauges = context.getDIPSGauges(); @@ -81,7 +81,6 @@ messstellenRs.close(); - List updateGauges = new ArrayList(); ResultSet gaugesRs = flysStatements @@ -110,13 +109,14 @@ "' found in FLYS, AFT and DIPS. -> Update"); updateGauges.add(aftDIPSGauge); } + gaugesRs.close(); - createGauges(context, aftDIPSGauges); + boolean modified = createGauges(context, aftDIPSGauges); - gaugesRs.close(); + return modified; } - protected void createGauges( + protected boolean createGauges( SyncContext context, Map gauges ) @@ -130,6 +130,8 @@ SymbolicStatement.Instance insertStmnt = flysStatements.getStatement("insert.gauge"); + boolean modified = false; + for (Map.Entry entry: gauges.entrySet()) { Long officialNumber = entry.getKey(); DIPSGauge gauge = entry.getValue(); @@ -167,12 +169,12 @@ gauge.setFlysId(gaugeId); createDischargeTables(context, officialNumber, gauge); - flysStatements.commitTransaction(); + modified = true; } catch (SQLException sqle) { flysStatements.rollbackTransaction(); - throw sqle; + log.error(sqle, sqle); } finally { if (rs != null) { @@ -180,6 +182,8 @@ } } } + + return modified; } protected void createDischargeTables( diff -r 7bddd4601707 -r b20b710aa86f flys-aft/src/main/java/de/intevation/aft/Rivers.java --- a/flys-aft/src/main/java/de/intevation/aft/Rivers.java Thu Jan 05 17:46:18 2012 +0000 +++ b/flys-aft/src/main/java/de/intevation/aft/Rivers.java Thu Jan 05 18:58:49 2012 +0000 @@ -20,7 +20,7 @@ public Rivers() { } - public void sync(SyncContext context) throws SQLException { + public boolean sync(SyncContext context) throws SQLException { log.info("sync: rivers"); @@ -57,9 +57,13 @@ aftRs.close(); + boolean modified = false; + for (River river: commonRivers) { - river.sync(context); + modified |= river.sync(context); } + + return modified; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 7bddd4601707 -r b20b710aa86f flys-aft/src/main/java/de/intevation/aft/Sync.java --- a/flys-aft/src/main/java/de/intevation/aft/Sync.java Thu Jan 05 17:46:18 2012 +0000 +++ b/flys-aft/src/main/java/de/intevation/aft/Sync.java Thu Jan 05 18:58:49 2012 +0000 @@ -23,6 +23,8 @@ public static final String XPATH_DIPS = "/sync/dips/file/text()"; public static final String XPATH_REPAIR = "/sync/dips/repair/text()"; + public static final String XPATH_NOTIFICATIONS = + "/sync/notifications/notification"; public static final String CONFIG_FILE = System.getProperty("config.file", "config.xml"); @@ -93,6 +95,8 @@ new ConnectionBuilder(FLYS, config); SyncContext syncContext = null; + + boolean modified = false; try { syncContext = new SyncContext( aftConnectionBuilder.getConnectedStatements(), @@ -100,7 +104,7 @@ dips); syncContext.init(); Rivers rivers = new Rivers(); - rivers.sync(syncContext); + modified = rivers.sync(syncContext); } catch (SQLException sqle) { log.error("syncing failed", sqle);