From: Aron Roberts Date: Wed, 4 Apr 2012 04:09:05 +0000 (-0700) Subject: CSPACE-4814: Attempt to improve usefulness of reporting of records successfully imported. X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=662b60faf68330517f65f98ca83e6325b2c64de4;p=tmp%2Fjakarta-migration.git CSPACE-4814: Attempt to improve usefulness of reporting of records successfully imported. --- diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/import-1objectexit-post-form.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/import-1objectexit-post-form.xml new file mode 100644 index 000000000..209ad37af --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/import-1objectexit-post-form.xml @@ -0,0 +1,10 @@ + + + + + Sebastián & Barnes + OE2010.2 + + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml index f18748973..c19fd849e 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml @@ -15,12 +15,30 @@ /cspace-services/imports imports/import-1objectexit-post.xml - + imports/res/import-1objectexit-post.res.xml - + + + 200 + POST + /cspace-services/imports?type=xml + imports/import-1objectexit-post-form.xml + + + imports/res/import-1objectexit-post.res.xml + + + + + + + + + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-1objectexit-post.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-1objectexit-post.res.xml index 7a312408d..294dbc5ae 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-1objectexit-post.res.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-1objectexit-post.res.xml @@ -1,7 +1,3 @@ - - - - 6.0221415 - - +SUCCESSREAD: Variable path value here +/ObjectExit/Variable CSID value here + \ No newline at end of file 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 6fc0db06c..abdf68af4 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 @@ -147,7 +147,7 @@ public class ImportsResource extends ResourceBase { String inputFilename = payloadToFilename(xmlPayload); result = createFromFilename(inputFilename); rb = javax.ws.rs.core.Response.ok(); - } catch (Exception e) { + } catch (Exception e) { result = Tools.errorToString(e, true); rb = javax.ws.rs.core.Response.status(javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR); } @@ -334,7 +334,7 @@ public class ImportsResource extends ResourceBase { } catch (Exception e) { throw bigReThrow(e, ServiceMessages.CREATE_FAILED); } - return response; + return response; } String page = "\n" 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 a8097fc3f..9204102fe 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,13 +1,21 @@ package org.collectionspace.services.imports.nuxeo; import java.io.File; +import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.collectionspace.services.client.PoxPayloadIn; +import org.collectionspace.services.client.PoxPayloadOut; +import org.collectionspace.services.common.context.ServiceContext; import org.collectionspace.services.nuxeo.client.java.NuxeoClientEmbedded; import org.collectionspace.services.nuxeo.client.java.NuxeoConnectorEmbedded; +import org.collectionspace.services.nuxeo.util.NuxeoUtils; +import org.nuxeo.ecm.core.api.DocumentModel; +import org.nuxeo.ecm.core.api.DocumentRef; import org.nuxeo.ecm.core.api.repository.RepositoryInstance; import org.nuxeo.ecm.core.io.DocumentPipe; import org.nuxeo.ecm.core.io.DocumentReader; +import org.nuxeo.ecm.core.io.DocumentTranslationMap; import org.nuxeo.ecm.core.io.DocumentWriter; import org.nuxeo.ecm.core.io.impl.DocumentPipeImpl; import org.nuxeo.ecm.core.io.impl.plugins.DocumentModelWriter; @@ -24,34 +32,70 @@ public class ImportCommand { RepositoryInstance repoSession = client.openRepository(); try { return importTree(repoSession, file, dest); + } catch (Exception e) { + throw e; } finally { // repository.close(); client.releaseRepository(repoSession); } } - String importTree(RepositoryInstance repository, File file, String toPath) throws Exception { + String importTree(RepositoryInstance repoSession, File file, String toPath) throws Exception { DocumentReader reader = null; DocumentWriter writer = null; - String dump = "NO RESULTS"; + DocumentModel docModel = null; + ServiceContext ctx = null; + StringBuffer dump = new StringBuffer("NO RESULTS"); 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. - writer = new DocumentModelWriter(repository, toPath, 10); + writer = new DocumentModelWriter(repoSession, toPath, 10); DocumentPipe pipe = new DocumentPipeImpl(10); // pipe.addTransformer(transformer); pipe.setReader(reader); pipe.setWriter(writer); - pipe.run(); + DocumentTranslationMap dtm = pipe.run(); + DocumentRef keyDocRef, valueDocRef; + String docType; + Map documentRefs = dtm.getDocRefMap(); + if (documentRefs.size() > 0) { + dump.setLength(0); + } + dump.append(""); + for (Map.Entry entry: documentRefs.entrySet()) { + keyDocRef = (DocumentRef) entry.getKey(); + valueDocRef = (DocumentRef) entry.getValue(); + if (keyDocRef == null || valueDocRef == null) { + continue; + } + // 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()); + + dump.append(""); + docModel = repoSession.getDocument(valueDocRef); + docType = docModel.getDocumentType().getName(); + // System.out.println(docType); + dump.append(""+docType+""); + dump.append(""+keyDocRef.toString()+""); + dump.append(""); + // System.out.println(dump.toString()); + + } + dump.append(""); + } catch (Exception e) { + throw e; } finally { if (reader != null) { + dump.append(""+(((LoggedXMLDirectoryReader)reader).report())+""); reader.close(); - dump = ((LoggedXMLDirectoryReader)reader).report(); } if (writer != null) { writer.close(); } } - return dump; + return dump.toString(); } } \ No newline at end of file