Package org.springframework.yarn.batch.repository

Source Code of org.springframework.yarn.batch.repository.RemoteJobRepository

/*
* Copyright 2014 the original author or authors.
*
* 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.springframework.yarn.batch.repository;

import java.util.Collection;

import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobInstance;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException;
import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.repository.JobRestartException;
import org.springframework.util.Assert;
//import org.springframework.yarn.batch.repository.bindings.UpdateExecutionContextReq;
//import org.springframework.yarn.batch.repository.bindings.UpdateExecutionContextRes;
import org.springframework.yarn.batch.repository.bindings.repo.AddWithStepExecutionReq;
import org.springframework.yarn.batch.repository.bindings.repo.AddWithStepExecutionRes;
import org.springframework.yarn.batch.repository.bindings.repo.CreateJobExecutionReq;
import org.springframework.yarn.batch.repository.bindings.repo.CreateJobExecutionRes;
import org.springframework.yarn.batch.repository.bindings.repo.CreateJobExecutionWithJobInstanceReq;
import org.springframework.yarn.batch.repository.bindings.repo.CreateJobExecutionWithJobInstanceRes;
import org.springframework.yarn.batch.repository.bindings.repo.CreateJobInstanceReq;
import org.springframework.yarn.batch.repository.bindings.repo.CreateJobInstanceRes;
import org.springframework.yarn.batch.repository.bindings.repo.GetLastJobExecutionReq;
import org.springframework.yarn.batch.repository.bindings.repo.GetLastJobExecutionRes;
import org.springframework.yarn.batch.repository.bindings.repo.GetLastStepExecutionReq;
import org.springframework.yarn.batch.repository.bindings.repo.GetLastStepExecutionRes;
import org.springframework.yarn.batch.repository.bindings.repo.GetStepExecutionCountReq;
import org.springframework.yarn.batch.repository.bindings.repo.GetStepExecutionCountRes;
import org.springframework.yarn.batch.repository.bindings.repo.IsJobInstanceExistsReq;
import org.springframework.yarn.batch.repository.bindings.repo.IsJobInstanceExistsRes;
import org.springframework.yarn.batch.repository.bindings.repo.UpdateExecutionContextReq;
import org.springframework.yarn.batch.repository.bindings.repo.UpdateWithJobExecutionReq;
import org.springframework.yarn.batch.repository.bindings.repo.UpdateWithJobExecutionRes;
import org.springframework.yarn.batch.repository.bindings.repo.UpdateWithStepExecutionReq;
import org.springframework.yarn.batch.repository.bindings.repo.UpdateWithStepExecutionRes;
import org.springframework.yarn.integration.ip.mind.AppmasterMindScOperations;

public class RemoteJobRepository extends AbstractRemoteDao implements JobRepository {

  public RemoteJobRepository() {
    super();
  }

  public RemoteJobRepository(AppmasterMindScOperations appmasterScOperations) {
    super(appmasterScOperations);
  }

  @Override
  public boolean isJobInstanceExists(String jobName, JobParameters jobParameters) {
    Assert.notNull(jobName, "Job name must not be null.");
    Assert.notNull(jobParameters, "JobParameters must not be null.");

    try {
      IsJobInstanceExistsReq request = JobRepositoryRpcFactory.buildIsJobInstanceExistsReq(jobName, jobParameters);
      IsJobInstanceExistsRes response = (IsJobInstanceExistsRes) getAppmasterScOperations().doMindRequest(request);
      return response.response;
    } catch (Exception e) {
      throw convertException(e);
    }
  }

  @Override
  public JobExecution createJobExecution(String jobName, JobParameters jobParameters)
      throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException {

    Assert.notNull(jobName, "Job name must not be null.");
    Assert.notNull(jobParameters, "JobParameters must not be null.");

    JobExecution jobExecution = null;
    try {
      CreateJobExecutionReq request = JobRepositoryRpcFactory.buildCreateJobExecutionReq(jobName, jobParameters);
      CreateJobExecutionRes response = (CreateJobExecutionRes) getAppmasterScOperations().doMindRequest(request);
      jobExecution = JobRepositoryRpcFactory.convertJobExecutionType(response.jobExecution);
    } catch (Exception e) {
      throw convertException(e);
    }
    return jobExecution;

  }

  @Override
  public void update(JobExecution jobExecution) {

    try {
      UpdateWithJobExecutionReq request = JobRepositoryRpcFactory.buildSaveJobExecutionReq(jobExecution);
      UpdateWithJobExecutionRes response = (UpdateWithJobExecutionRes) getAppmasterScOperations().doMindRequest(request);
      jobExecution.setId(response.getId());
      jobExecution.setVersion(response.getVersion());
    } catch (Exception e) {
      throw convertException(e);
    }

  }

  @Override
  public void add(StepExecution stepExecution) {

    try {
      AddWithStepExecutionReq request = JobRepositoryRpcFactory.buildAddWithStepExecutionReq(stepExecution);
      AddWithStepExecutionRes response = (AddWithStepExecutionRes) getAppmasterScOperations().doMindRequest(request);
      stepExecution.setId(response.getId());
      stepExecution.setVersion(response.getVersion());
    } catch (Exception e) {
      throw convertException(e);
    }
  }

  @Override
  public void addAll(Collection<StepExecution> stepExecutions) {
//    jobRepository.addAll(stepExecutions);
  }

  @Override
  public void update(StepExecution stepExecution) {
    try {
      UpdateWithStepExecutionReq request = JobRepositoryRpcFactory.buildUpdateWithStepExecutionReq(stepExecution);
      UpdateWithStepExecutionRes response = (UpdateWithStepExecutionRes) getAppmasterScOperations().doMindRequest(request);
      stepExecution.setId(response.getId());
      stepExecution.setVersion(response.getVersion());
    } catch (Exception e) {
      throw convertException(e);
    }
  }

  @Override
  public void updateExecutionContext(StepExecution stepExecution) {
    UpdateExecutionContextReq request = JobRepositoryRpcFactory.buildUpdateExecutionContextReq(stepExecution);
    getAppmasterScOperations().doMindRequest(request);
    // TODO: handle response
    //UpdateExecutionContextRes response = (UpdateExecutionContextRes) getAppmasterScOperations().doMindRequest(request);
  }

  @Override
  public void updateExecutionContext(JobExecution jobExecution) {
    UpdateExecutionContextReq request = JobRepositoryRpcFactory.buildUpdateExecutionContextReq(jobExecution);
    getAppmasterScOperations().doMindRequest(request);
    // TODO: handle response
    //UpdateExecutionContextRes response = (UpdateExecutionContextRes) getAppmasterScOperations().doMindRequest(request);
  }

  @Override
  public StepExecution getLastStepExecution(JobInstance jobInstance, String stepName) {

    GetLastStepExecutionReq request = JobRepositoryRpcFactory.buildGetLastStepExecutionReq(jobInstance, stepName);
    GetLastStepExecutionRes response = (GetLastStepExecutionRes) getAppmasterScOperations().doMindRequest(request);
    return JobRepositoryRpcFactory.convertStepExecutionType(response.stepExecution);
  }

  @Override
  public int getStepExecutionCount(JobInstance jobInstance, String stepName) {
    GetStepExecutionCountReq request = JobRepositoryRpcFactory.buildGetStepExecutionCountReq(jobInstance, stepName);
    GetStepExecutionCountRes response = (GetStepExecutionCountRes) getAppmasterScOperations().doMindRequest(request);
    return response.count;
  }

  @Override
  public JobExecution getLastJobExecution(String jobName, JobParameters jobParameters) {
    GetLastJobExecutionReq request = JobRepositoryRpcFactory.buildGetLastJobExecutionReq(jobName, jobParameters);
    GetLastJobExecutionRes response = (GetLastJobExecutionRes) getAppmasterScOperations().doMindRequest(request);
    return JobRepositoryRpcFactory.convertJobExecutionType(response.jobExecution);
  }

  @Override
  public JobInstance createJobInstance(String jobName, JobParameters jobParameters) {
    Assert.notNull(jobName, "Job name must not be null.");
    Assert.notNull(jobParameters, "JobParameters must not be null.");

    JobInstance jobInstance = null;
    try {
      CreateJobInstanceReq request = JobRepositoryRpcFactory.buildCreateJobInstanceReq(jobName, jobParameters);
      CreateJobInstanceRes response = (CreateJobInstanceRes) getAppmasterScOperations().doMindRequest(request);
      jobInstance = JobRepositoryRpcFactory.convertJobInstanceType(response.jobInstance);
    } catch (Exception e) {
      throw convertException(e);
    }
    return jobInstance;
  }

  @Override
  public JobExecution createJobExecution(JobInstance jobInstance, JobParameters jobParameters, String jobConfigurationLocation) {
    Assert.notNull(jobInstance, "Job instance must not be null.");
    Assert.notNull(jobParameters, "JobParameters must not be null.");

    JobExecution jobExecution = null;
    try {
      CreateJobExecutionWithJobInstanceReq request = JobRepositoryRpcFactory.buildCreateJobExecutionWithJobInstanceReq(jobInstance, jobParameters, jobConfigurationLocation);
      CreateJobExecutionWithJobInstanceRes response = (CreateJobExecutionWithJobInstanceRes) getAppmasterScOperations().doMindRequest(request);
      jobExecution = JobRepositoryRpcFactory.convertJobExecutionType(response.jobExecution);
    } catch (Exception e) {
      throw convertException(e);
    }
    return jobExecution;
  }

}
TOP

Related Classes of org.springframework.yarn.batch.repository.RemoteJobRepository

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.