From: Aron Roberts Date: Mon, 9 Apr 2012 19:11:09 +0000 (-0700) Subject: CSPACE-4814: Imports now report total records imported, number of records imported... X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=4d7fcebe863a6fc50083e694b2d0240bec43a69a;p=tmp%2Fjakarta-migration.git CSPACE-4814: Imports now report total records imported, number of records imported by docType, in part to help support automated tests. --- diff --git a/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java b/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java index 482e768c4..8fe6b217f 100644 --- a/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java +++ b/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java @@ -181,7 +181,7 @@ public class ImportsResource extends AbstractCollectionSpaceResourceImpl { try { String report = "NORESULTS"; report = importCommand.run(outputDir, destWorkspaces); - result = "SUCCESS"+report+""; + result = "SUCCESS"+report+""; } catch (Exception e){ result = "ERROR"+Tools.errorToString(e, true)+""; } @@ -204,7 +204,7 @@ public class ImportsResource extends AbstractCollectionSpaceResourceImpl { try { String report = "NORESULTS"; report = importCommand.run(outputDir, destWorkspaces); - result = "SUCCESS"+report+""; + result = "SUCCESS"+report+""; } catch (Exception e){ result = "ERROR"+Tools.errorToString(e, true)+""; } diff --git a/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java b/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java index b68ef11a3..255ba79f7 100644 --- a/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java +++ b/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java @@ -1,7 +1,9 @@ package org.collectionspace.services.imports.nuxeo; import java.io.File; +import java.util.HashMap; import java.util.Map; +import java.util.TreeSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.collectionspace.services.client.PoxPayloadIn; @@ -46,7 +48,10 @@ public class ImportCommand { DocumentModel docModel = null; DocumentRef keyDocRef, valueDocRef; String docType; - StringBuffer dump = new StringBuffer("NO RESULTS"); + StringBuffer dump = new StringBuffer(); + Map recordsImportedForDocType = new HashMap(); + Integer numRecordsImportedForDocType = new Integer(0); + int totalRecordsImported = 0; try { System.out.println("importTree reading file: "+file+(file!=null ? " exists? "+file.exists() : " file param is null")); reader = new LoggedXMLDirectoryReader(file); //our overload of XMLDirectoryReader. @@ -60,13 +65,6 @@ public class ImportCommand { // potential workaround DocumentTranslationMap dtm = pipe.run(); Map documentRefs = dtm.getDocRefMap(); - if (documentRefs.size() > 0) { - dump.setLength(0); - // Assumes that every import request must necessarily - // be attempting to import at least one record. - } else { - throw new Exception("No records were successfully imported"); - } dump.append(""); for (Map.Entry entry: documentRefs.entrySet()) { keyDocRef = (DocumentRef) entry.getKey(); @@ -76,7 +74,7 @@ public class ImportCommand { } // System.out.println("value="+entry.getValue()); // System.out.println("key="+entry.getKey()); - + docModel = repoSession.getDocument((DocumentRef) entry.getValue()); // System.out.println("value doctype="+docModel.getDocumentType().toString()); @@ -85,15 +83,30 @@ public class ImportCommand { docType = docModel.getDocumentType().getName(); // System.out.println(docType); dump.append(""+docType+""); - dump.append(""+keyDocRef.toString()+""); + dump.append(""+keyDocRef.toString()+""); dump.append(""); // System.out.println(dump.toString()); - + if (recordsImportedForDocType.containsKey(docType)) { + numRecordsImportedForDocType = (Integer) recordsImportedForDocType.get(docType); + numRecordsImportedForDocType = Integer.valueOf(numRecordsImportedForDocType.intValue() + 1); + recordsImportedForDocType.put(docType, numRecordsImportedForDocType); + } else { + recordsImportedForDocType.put(docType, 1); + } + totalRecordsImported++; } dump.append(""); } catch (Exception e) { throw e; } finally { + dump.append(""+totalRecordsImported+""); + dump.append(""); + TreeSet keys = new TreeSet(recordsImportedForDocType.keySet()); + for (String key : keys) { + dump.append(""+key+""); + dump.append(""+recordsImportedForDocType.get(key).intValue()+""); + } + dump.append(""); if (reader != null) { dump.append(""+(((LoggedXMLDirectoryReader)reader).report())+""); reader.close();