blob: 0c8f90636fd8acbf6a1ca4a23e8f9c9443145db9 [file] [log] [blame]
/*
* Copyright 2012 International Business Machines Corp.
*
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership. Licensed under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.batchee.container.services;
import org.apache.batchee.container.impl.JobContextImpl;
import org.apache.batchee.container.impl.StepContextImpl;
import org.apache.batchee.container.impl.jobinstance.RuntimeJobExecution;
import org.apache.batchee.container.util.BatchFlowInSplitWorkUnit;
import org.apache.batchee.container.util.BatchPartitionWorkUnit;
import org.apache.batchee.container.util.BatchWorkUnit;
import org.apache.batchee.container.util.FlowInSplitBuilderConfig;
import org.apache.batchee.container.util.PartitionsBuilderConfig;
import org.apache.batchee.spi.BatchService;
import javax.batch.operations.JobExecutionAlreadyCompleteException;
import javax.batch.operations.JobExecutionNotMostRecentException;
import javax.batch.operations.JobExecutionNotRunningException;
import javax.batch.operations.JobRestartException;
import javax.batch.operations.JobStartException;
import javax.batch.operations.NoSuchJobExecutionException;
import javax.batch.runtime.JobInstance;
import java.util.List;
import java.util.Properties;
public interface BatchKernelService extends BatchService {
InternalJobExecution getJobExecution(long executionId) throws NoSuchJobExecutionException;
InternalJobExecution restartJob(long executionID, Properties overrideJobParameters) throws JobRestartException, JobExecutionAlreadyCompleteException,
JobExecutionNotMostRecentException, NoSuchJobExecutionException;
InternalJobExecution startJob(String jobXML, Properties jobParameters) throws JobStartException;
void stopJob(long executionID) throws NoSuchJobExecutionException, JobExecutionNotRunningException;
void jobExecutionDone(RuntimeJobExecution jobExecution);
int getJobInstanceCount(String jobName);
JobInstance getJobInstance(long instanceId);
List<BatchPartitionWorkUnit> buildNewParallelPartitions(PartitionsBuilderConfig config, JobContextImpl jc, StepContextImpl sc) throws JobRestartException, JobStartException;
List<BatchPartitionWorkUnit> buildOnRestartParallelPartitions(PartitionsBuilderConfig config, JobContextImpl jc, StepContextImpl sc) throws JobRestartException,
JobExecutionAlreadyCompleteException, JobExecutionNotMostRecentException;
void startGeneratedJob(BatchWorkUnit batchWork);
void restartGeneratedJob(BatchWorkUnit batchWork) throws JobRestartException;
boolean isExecutionRunning(long executionId);
BatchFlowInSplitWorkUnit buildNewFlowInSplitWorkUnit(
FlowInSplitBuilderConfig config, JobContextImpl jc);
BatchFlowInSplitWorkUnit buildOnRestartFlowInSplitWorkUnit(
FlowInSplitBuilderConfig config, JobContextImpl jc);
}