List of usage examples for org.springframework.batch.core.step.factory SimpleStepFactoryBean setItemWriter
public void setItemWriter(ItemWriter<? super S> itemWriter)
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(); }