Example usage for org.springframework.batch.core.step.factory SimpleStepFactoryBean setItemWriter

List of usage examples for org.springframework.batch.core.step.factory SimpleStepFactoryBean setItemWriter

Introduction

In this page you can find the example usage for org.springframework.batch.core.step.factory SimpleStepFactoryBean setItemWriter.

Prototype

public void setItemWriter(ItemWriter<? super S> itemWriter) 

Source Link

Usage

From source file:org.duracloud.snapshot.service.impl.RestoreJobBuilder.java

/**
 * @param restoration /*from ww  w.  j av a 2  s. c o m*/
 * @param jobManagerConfig 
 * @param reader
 * @param writer
 * @return
 * @throws Exception
 */
private Step buildRestoreContentStep(String restorationId, String destinationSpaceId, ContentStore contentStore,
        SnapshotJobManagerConfig jobManagerConfig) throws Exception {

    SyncEndpoint endpoint = new DuraStoreSyncEndpoint(contentStore, jobManagerConfig.getDuracloudUsername(),
            destinationSpaceId, false, false);

    File watchDir = new File(ContentDirUtils.getSourcePath(restorationId, jobManagerConfig.getContentRootDir())
            + File.separator + "data");

    if (!watchDir.exists()) {
        throw new RuntimeException("The content directory for the restored snapshot "
                + "does not exist in bridge storage: missing watchDir: " + watchDir.getAbsolutePath());
    }

    FileSystemReader reader = new FileSystemReader(watchDir);

    SyncWriter writer = new SyncWriter(restorationId, watchDir, endpoint, contentStore, destinationSpaceId,
            restoreManager);

    SimpleStepFactoryBean<File, File> stepFactory = new SimpleStepFactoryBean<>();
    stepFactory.setJobRepository(jobRepository);
    stepFactory.setTransactionManager(transactionManager);
    stepFactory.setBeanName("restoreContentStep");
    stepFactory.setItemReader(reader);
    stepFactory.setItemWriter(writer);
    stepFactory.setCommitInterval(1);
    stepFactory.setThrottleLimit(20);
    stepFactory.setTaskExecutor(taskExecutor);
    stepFactory.setListeners(new StepListener[] { writer });
    return stepFactory.getObject();
}

From source file:org.duracloud.snapshot.service.impl.SnapshotJobBuilder.java

@Override
public Job buildJob(Snapshot snapshot, SnapshotJobManagerConfig config) throws SnapshotException {

    Job job;/*from   w  w w  . j  av  a2  s .  c  om*/
    try {

        DuracloudEndPointConfig source = snapshot.getSource();
        StoreClientUtil clientUtil = new StoreClientUtil();

        ContentStore contentStore = clientUtil.createContentStore(source.getHost(), source.getPort(),
                SnapshotServiceConstants.DURASTORE_CONTEXT, config.getDuracloudUsername(),
                config.getDuracloudPassword(), source.getStoreId());

        List<String> spaces = new ArrayList<>();
        spaces.add(source.getSpaceId());

        RetrievalSource retrievalSource = new DuraStoreStitchingRetrievalSource(contentStore, spaces, false);

        ItemReader<ContentItem> itemReader = new SpaceItemReader(retrievalSource);

        File contentDir = new File(
                ContentDirUtils.getDestinationPath(snapshot.getName(), config.getContentRootDir()));
        if (!contentDir.exists()) {
            contentDir.mkdirs();
        }

        File workDir = config.getWorkDir();
        OutputWriter outputWriter = new CSVFileOutputWriter(workDir);

        BufferedWriter propsWriter = createWriter(contentDir,
                SnapshotServiceConstants.CONTENT_PROPERTIES_JSON_FILENAME);
        BufferedWriter md5Writer = createWriter(contentDir, MANIFEST_MD5_TXT_FILE_NAME);
        BufferedWriter sha256Writer = createWriter(contentDir, MANIFEST_SHA256_TXT_FILE_NAME);

        ItemWriter itemWriter = new SpaceItemWriter(snapshot, retrievalSource, contentDir, outputWriter,
                propsWriter, md5Writer, sha256Writer, snapshotManager);

        SimpleStepFactoryBean<ContentItem, File> stepFactory = new SimpleStepFactoryBean<>();
        stepFactory.setJobRepository(jobRepository);
        stepFactory.setTransactionManager(transactionManager);
        stepFactory.setBeanName("step1");
        stepFactory.setItemReader(itemReader);
        stepFactory.setItemWriter(itemWriter);
        stepFactory.setCommitInterval(1);
        stepFactory.setThrottleLimit(20);
        stepFactory.setTaskExecutor(taskExecutor);
        Step step = (Step) stepFactory.getObject();

        JobBuilderFactory jobBuilderFactory = new JobBuilderFactory(jobRepository);
        JobBuilder jobBuilder = jobBuilderFactory.get(SnapshotServiceConstants.SNAPSHOT_JOB_NAME);
        SimpleJobBuilder simpleJobBuilder = jobBuilder.start(step);
        simpleJobBuilder.listener(jobListener);

        job = simpleJobBuilder.build();
        log.debug("build job {}", job);

    } catch (Exception e) {
        log.error("Error creating job: {}", e.getMessage(), e);
        throw new SnapshotException(e.getMessage(), e);
    }
    return job;
}

From source file:org.duracloud.snapshot.service.impl.RestoreJobBuilder.java

/**
 * @param jobManagerConfig //from   ww w .  j a va  2 s. c o m
 * @param restoration 
 * @return
 */
private Step buildRestoreContentPropertiesStep(String restorationId, String destinationSpaceId,
        ContentStore contentStore, SnapshotJobManagerConfig jobManagerConfig) throws Exception {

    File contentPropertiesJsonFile = new File(
            ContentDirUtils.getSourcePath(restorationId, jobManagerConfig.getContentRootDir()),
            SnapshotServiceConstants.CONTENT_PROPERTIES_JSON_FILENAME);

    if (!contentPropertiesJsonFile.exists()) {
        throw new RuntimeException("The restored content properties file is missing : "
                + contentPropertiesJsonFile.getAbsolutePath());
    }

    ContentPropertiesFileReader reader = new ContentPropertiesFileReader(contentPropertiesJsonFile);

    ContentPropertiesWriter writer = new ContentPropertiesWriter(contentStore, destinationSpaceId);

    SimpleStepFactoryBean<ContentProperties, ContentProperties> stepFactory = new SimpleStepFactoryBean<ContentProperties, ContentProperties>();
    stepFactory.setJobRepository(jobRepository);
    stepFactory.setTransactionManager(transactionManager);
    stepFactory.setBeanName("restoreContentPropertiesStep");
    stepFactory.setItemReader(reader);
    stepFactory.setItemWriter(writer);
    stepFactory.setCommitInterval(1);
    stepFactory.setThrottleLimit(20);
    stepFactory.setTaskExecutor(taskExecutor);
    stepFactory.setListeners(new StepListener[] { writer });
    return stepFactory.getObject();
}