/** * Build a list of batch work units and set them up in STARTING state but don't start them yet. */ @Override public List<BatchPartitionWorkUnit> buildNewParallelPartitions(PartitionsBuilderConfig config) throws JobRestartException, JobStartException { List<JSLJob> jobModels = config.getJobModels(); Properties[] partitionPropertiesArray = config.getPartitionProperties(); List<BatchPartitionWorkUnit> batchWorkUnits = new ArrayList<BatchPartitionWorkUnit>(jobModels.size()); int instance = 0; for (JSLJob parallelJob : jobModels){ Properties partitionProps = (partitionPropertiesArray == null) ? null : partitionPropertiesArray[instance]; if (logger.isLoggable(Level.FINER)) { logger.finer("Starting execution for jobModel = " + parallelJob.toString()); } RuntimeJobExecution jobExecution = JobExecutionHelper.startPartition(parallelJob, partitionProps); jobExecution.setPartitionInstance(instance); if (logger.isLoggable(Level.FINE)) { logger.fine("JobExecution constructed: " + jobExecution); } BatchPartitionWorkUnit batchWork = new BatchPartitionWorkUnit(this, jobExecution, config); registerCurrentInstanceAndExecution(jobExecution, batchWork.getController()); batchWorkUnits.add(batchWork); instance++; } return batchWorkUnits; }
/** * Build a list of batch work units and set them up in STARTING state but don't start them yet. */ @Override public List<BatchPartitionWorkUnit> buildNewParallelPartitions(PartitionsBuilderConfig config) throws JobRestartException, JobStartException { List<JSLJob> jobModels = config.getJobModels(); Properties[] partitionPropertiesArray = config.getPartitionProperties(); List<BatchPartitionWorkUnit> batchWorkUnits = new ArrayList<BatchPartitionWorkUnit>(jobModels.size()); int instance = 0; for (JSLJob parallelJob : jobModels){ Properties partitionProps = (partitionPropertiesArray == null) ? null : partitionPropertiesArray[instance]; if (logger.isLoggable(Level.FINER)) { logger.finer("Starting execution for jobModel = " + parallelJob.toString()); } RuntimeJobExecution jobExecution = JobExecutionHelper.startPartition(parallelJob, partitionProps); jobExecution.setPartitionInstance(instance); if (logger.isLoggable(Level.FINE)) { logger.fine("JobExecution constructed: " + jobExecution); } BatchPartitionWorkUnit batchWork = new BatchPartitionWorkUnit(this, jobExecution, config); registerCurrentInstanceAndExecution(jobExecution, batchWork.getController()); batchWorkUnits.add(batchWork); instance++; } return batchWorkUnits; }