Class SpaceItemWriter
- java.lang.Object
-
- org.duracloud.snapshot.service.impl.StepExecutionSupport
-
- org.duracloud.snapshot.service.impl.SpaceItemWriter
-
- All Implemented Interfaces:
org.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>,org.springframework.batch.core.StepExecutionListener,org.springframework.batch.core.StepListener,org.springframework.batch.item.ItemWriter<org.duracloud.common.model.ContentItem>
public class SpaceItemWriter extends StepExecutionSupport implements org.springframework.batch.item.ItemWriter<org.duracloud.common.model.ContentItem>, org.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>
This class is responsible for reading the contents and properties of a duracloud content item, writing it to disk, appending its md5 and sha256 to separate text files, appending the item properties to a json file, and writing the item to the snapshot content repo.- Author:
- Erik Paulsson Date: 2/7/14
-
-
Field Summary
-
Fields inherited from class org.duracloud.snapshot.service.impl.StepExecutionSupport
ERRORS_KEY, ITEMS_READ_KEY
-
-
Constructor Summary
Constructors Constructor Description SpaceItemWriter(Snapshot snapshot, org.duracloud.retrieval.source.RetrievalSource retrievalSource, java.io.File contentDir, org.duracloud.retrieval.mgmt.OutputWriter outputWriter, java.io.File propsFile, java.io.File md5ManifestFile, java.io.File sha256ManifestFile, SnapshotManager snapshotManager, SpaceManifestSnapshotManifestVerifier spaceManifestSnapshotManifestVerifier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.springframework.batch.core.ExitStatusafterStep(org.springframework.batch.core.StepExecution stepExecution)voidafterWrite(java.util.List<? extends org.duracloud.common.model.ContentItem> items)voidbeforeStep(org.springframework.batch.core.StepExecution stepExecution)voidbeforeWrite(java.util.List<? extends org.duracloud.common.model.ContentItem> items)protected voidcloseDatabase()protected voiddeleteDatabase()protected intgetTotalChecksumsPerformed()voidonWriteError(java.lang.Exception e, java.util.List<? extends org.duracloud.common.model.ContentItem> items)protected voidretrieveFile(org.duracloud.common.model.ContentItem contentItem, java.io.File directory)protected voidretrieveFile(org.duracloud.common.model.ContentItem contentItem, java.io.File directory, boolean writeChecksums, boolean lastItem)protected voidretrieveSnapshotProperties()voidwrite(java.util.List<? extends org.duracloud.common.model.ContentItem> items)protected voidwriteContentProperties(java.lang.String contentId, java.util.Map<java.lang.String,java.lang.String> props, boolean lastItem)protected voidwriteMD5Checksum(java.lang.String contentId, java.lang.String md5Checksum)protected voidwriteSHA256Checksum(java.lang.String contentId, java.lang.String sha256Checksum)-
Methods inherited from class org.duracloud.snapshot.service.impl.StepExecutionSupport
addError, addToItemsRead, addToLong, clearErrors, failExecution, getErrors, getExecutionContext, getItemsRead, getLongValue, getStepExecution, resetContextState, setIsTest, skipLinesAlreadyRead, verifySpace
-
-
-
-
Constructor Detail
-
SpaceItemWriter
public SpaceItemWriter(Snapshot snapshot, org.duracloud.retrieval.source.RetrievalSource retrievalSource, java.io.File contentDir, org.duracloud.retrieval.mgmt.OutputWriter outputWriter, java.io.File propsFile, java.io.File md5ManifestFile, java.io.File sha256ManifestFile, SnapshotManager snapshotManager, SpaceManifestSnapshotManifestVerifier spaceManifestSnapshotManifestVerifier)
- Parameters:
snapshot-retrievalSource-contentDir-outputWriter-propsFile-md5ManifestFile-sha256ManifestFile-snapshotManager-spaceManifestSnapshotManifestVerifier-
-
-
Method Detail
-
closeDatabase
protected void closeDatabase()
-
deleteDatabase
protected void deleteDatabase()
-
write
public void write(java.util.List<? extends org.duracloud.common.model.ContentItem> items) throws java.io.IOException- Specified by:
writein interfaceorg.springframework.batch.item.ItemWriter<org.duracloud.common.model.ContentItem>- Throws:
java.io.IOException
-
retrieveFile
protected void retrieveFile(org.duracloud.common.model.ContentItem contentItem, java.io.File directory) throws java.io.IOException- Throws:
java.io.IOException
-
retrieveFile
protected void retrieveFile(org.duracloud.common.model.ContentItem contentItem, java.io.File directory, boolean writeChecksums, boolean lastItem) throws java.io.IOException- Throws:
java.io.IOException
-
getTotalChecksumsPerformed
protected int getTotalChecksumsPerformed()
-
writeMD5Checksum
protected void writeMD5Checksum(java.lang.String contentId, java.lang.String md5Checksum) throws java.io.IOException- Throws:
java.io.IOException
-
writeSHA256Checksum
protected void writeSHA256Checksum(java.lang.String contentId, java.lang.String sha256Checksum) throws java.io.IOException- Throws:
java.io.IOException
-
writeContentProperties
protected void writeContentProperties(java.lang.String contentId, java.util.Map<java.lang.String,java.lang.String> props, boolean lastItem) throws java.io.IOException- Throws:
java.io.IOException
-
retrieveSnapshotProperties
protected void retrieveSnapshotProperties()
-
afterStep
public org.springframework.batch.core.ExitStatus afterStep(org.springframework.batch.core.StepExecution stepExecution)
- Specified by:
afterStepin interfaceorg.springframework.batch.core.StepExecutionListener- Overrides:
afterStepin classStepExecutionSupport
-
beforeStep
public void beforeStep(org.springframework.batch.core.StepExecution stepExecution)
- Specified by:
beforeStepin interfaceorg.springframework.batch.core.StepExecutionListener- Overrides:
beforeStepin classStepExecutionSupport
-
onWriteError
public void onWriteError(java.lang.Exception e, java.util.List<? extends org.duracloud.common.model.ContentItem> items)- Specified by:
onWriteErrorin interfaceorg.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>
-
beforeWrite
public void beforeWrite(java.util.List<? extends org.duracloud.common.model.ContentItem> items)
- Specified by:
beforeWritein interfaceorg.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>
-
afterWrite
public void afterWrite(java.util.List<? extends org.duracloud.common.model.ContentItem> items)
- Specified by:
afterWritein interfaceorg.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>
-
-