Project

General

Profile

« Previous | Next » 

Revision 6135

add option for replicating system metadata (dataone)
https://redmine.dataone.org/issues/1626

View differences:

ReplicationService.java
291 291
		String replicate = null;
292 292
		String server = null;
293 293
		String dataReplicate = null;
294
		String systemMetadataReplicate = null;
294 295
		String hub = null;
295 296
		Writer out = null;
296 297
		try {
......
309 310

  
310 311
				//Get data replication value
311 312
				dataReplicate = ((String[]) params.get("datareplicate"))[0];
313
				//Get system metadata replication value
314
				systemMetadataReplicate = ((String[]) params.get("systemmetadatareplicate"))[0];
312 315
				//Get hub value
313 316
				hub = ((String[]) params.get("hub"))[0];
314 317

  
315 318
				String toDateSql = DatabaseService.getInstance().getDBAdapter().toDate("01/01/1980","MM/DD/YYYY");
316 319
				String sql = "INSERT INTO xml_replication "
317
						+ "(server, last_checked, replicate, datareplicate, hub) "
318
						+ "VALUES (?," + toDateSql + ",?,?,?)";
320
						+ "(server, last_checked, replicate, datareplicate, systemmetadatareplicate, hub) "
321
						+ "VALUES (?," + toDateSql + ",?,?,?,?)";
319 322
				
320 323
				pstmt = dbConn.prepareStatement(sql);
321 324
						
322 325
				pstmt.setString(1, server);
323 326
				pstmt.setInt(2, Integer.parseInt(replicate));
324 327
				pstmt.setInt(3, Integer.parseInt(dataReplicate));
325
				pstmt.setInt(4, Integer.parseInt(hub));
328
				pstmt.setInt(4, Integer.parseInt(systemMetadataReplicate));
329
				pstmt.setInt(5, Integer.parseInt(hub));
326 330
				
327 331
				String sqlReport = "XMLAccessAccess.getXMLAccessForDoc - SQL: " + sql;
328 332
				sqlReport += " [" + server + "," + replicate + 
......
336 340
				out.write("Server " + server + " added");
337 341
				response.setContentType("text/html");
338 342
				out.write("<html><body><table border=\"1\">");
339
				out.write("<tr><td><b>server</b></td><td><b>last_checked</b></td><td>");
340
				out.write("<b>replicate</b></td>");
343
				out.write("<tr><td><b>server</b></td>");
344
				out.write("<td><b>last_checked</b></td>");
345
				out.write("<td><b>replicate</b></td>");
341 346
				out.write("<td><b>datareplicate</b></td>");
347
				out.write("<td><b>systemmetadatareplicate</b></td>");
342 348
				out.write("<td><b>hub</b></td></tr>");
343
				pstmt = dbConn.prepareStatement("SELECT * FROM xml_replication");
349
				pstmt = dbConn.prepareStatement("SELECT serverid, server, last_checked, replicate, datareplicate, systemmetadatareplicate, hub FROM xml_replication");
344 350
				//increase dbconnection usage
345 351
				dbConn.increaseUsageCount(1);
346 352

  
......
352 358
					out.write(rs.getString(3) + "</td><td>");
353 359
					out.write(rs.getString(4) + "</td><td>");
354 360
					out.write(rs.getString(5) + "</td><td>");
355
					out.write(rs.getString(6) + "</td></tr>");
361
					out.write(rs.getString(6) + "</td><td>");
362
					out.write(rs.getString(7) + "</td></tr>");
356 363

  
357 364
					tablehasrows = rs.next();
358 365
				}
......
376 383
				out.write("Server " + server + " deleted");
377 384
				response.setContentType("text/html");
378 385
				out.write("<html><body><table border=\"1\">");
379
				out.write("<tr><td><b>server</b></td><td><b>last_checked</b></td><td>");
380
				out.write("<b>replicate</b></td>");
386
				out.write("<tr><td><b>server</b></td>");
387
				out.write("<td><b>last_checked</b></td>");
388
				out.write("<td><b>replicate</b></td>");
381 389
				out.write("<td><b>datareplicate</b></td>");
390
				out.write("<td><b>systemmetadatareplicate</b></td>");
382 391
				out.write("<td><b>hub</b></td></tr>");
383 392

  
384
				pstmt = dbConn.prepareStatement("SELECT * FROM xml_replication");
393
				pstmt = dbConn.prepareStatement("SELECT serverid, server, last_checked, replicate, datareplicate, systemmetadatareplicate, hub FROM xml_replication");
385 394
				//increase dbconnection usage
386 395
				dbConn.increaseUsageCount(1);
387 396
				pstmt.execute();
......
392 401
					out.write(rs.getString(3) + "</td><td>");
393 402
					out.write(rs.getString(4) + "</td><td>");
394 403
					out.write(rs.getString(5) + "</td><td>");
395
					out.write(rs.getString(6) + "</td></tr>");
404
					out.write(rs.getString(6) + "</td><td>");
405
					out.write(rs.getString(7) + "</td></tr>");
396 406
					tablehasrows = rs.next();
397 407
				}
398 408
				out.write("</table></body></html>");
......
401 411
			} else if (subaction.equals("list")) {
402 412
				response.setContentType("text/html");
403 413
				out.write("<html><body><table border=\"1\">");
404
				out.write("<tr><td><b>server</b></td><td><b>last_checked</b></td><td>");
405
				out.write("<b>replicate</b></td>");
414
				out.write("<tr><td><b>server</b></td>");
415
				out.write("<td><b>last_checked</b></td>");
416
				out.write("<td><b>replicate</b></td>");
406 417
				out.write("<td><b>datareplicate</b></td>");
418
				out.write("<td><b>systemmetadatareplicate</b></td>");
407 419
				out.write("<td><b>hub</b></td></tr>");
408
				pstmt = dbConn.prepareStatement("SELECT * FROM xml_replication");
420
				pstmt = dbConn.prepareStatement("SELECT serverid, server, last_checked, replicate, datareplicate, systemmetadatareplicate, hub FROM xml_replication");
409 421
				pstmt.execute();
410 422
				ResultSet rs = pstmt.getResultSet();
411 423
				boolean tablehasrows = rs.next();
......
414 426
					out.write(rs.getString(3) + "</td><td>");
415 427
					out.write(rs.getString(4) + "</td><td>");
416 428
					out.write(rs.getString(5) + "</td><td>");
417
					out.write(rs.getString(6) + "</td></tr>");
429
					out.write(rs.getString(6) + "</td><td>");
430
					out.write(rs.getString(7) + "</td></tr>");
431

  
418 432
					tablehasrows = rs.next();
419 433
				}
420 434
				out.write("</table></body></html>");
......
1505 1519
			doclist.append(prepareRevisionDoc(dbConn, revisionSql.toString(),
1506 1520
					replicateData));
1507 1521
			
1508
			// add the system metadata entries		 
1509
			Date since = new Date(System.currentTimeMillis());
1510
			since = serverList.getLastCheckedDate(server);
1511
			List<String> systemMetadataEntries = 
1512
				IdentifierManager.getInstance().getUpdatedSystemMetadataIds(since);
1513
			for (int i = 0; i < systemMetadataEntries.size(); i++) {
1514
				String guid = systemMetadataEntries.get(i);
1515
				doclist.append("<updatedSystemMetadata>");
1516
				doclist.append("<guid>");
1517
				doclist.append(guid);
1518
				doclist.append("</guid>");
1519
				doclist.append("</updatedSystemMetadata>");
1522
			// add the system metadata entries if configured to replicate them
1523
			boolean replicateSystemMetadata = serverList.getSystemMetadataReplicationValue(server);
1524
			if (replicateSystemMetadata) {
1525
				Date since = new Date(System.currentTimeMillis());
1526
				since = serverList.getLastCheckedDate(server);
1527
				List<String> systemMetadataEntries = 
1528
					IdentifierManager.getInstance().getUpdatedSystemMetadataIds(since);
1529
				for (int i = 0; i < systemMetadataEntries.size(); i++) {
1530
					String guid = systemMetadataEntries.get(i);
1531
					doclist.append("<updatedSystemMetadata>");
1532
					doclist.append("<guid>");
1533
					doclist.append(guid);
1534
					doclist.append("</guid>");
1535
					doclist.append("</updatedSystemMetadata>");
1536
				}
1520 1537
			}
1521 1538

  
1522 1539
			doclist.append("</updates></replication>");

Also available in: Unified diff