jobList.addAll(completedJobInfos.getJobInfoList()); JobInfos jobInfos = new JobInfos(); jaxbContext = JAXBContext.newInstance(JobInfos.class); jobInfos.setJobInfoList(jobList); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.marshal(jobInfos, file);
public JobInfo getCompletedJobForId(String id, File file) { for (JobInfo jobInfo: getCompletedJobs(file).getJobInfoList()) { if (jobInfo.jobId.equals(id)) { return jobInfo; } } return null; }
protected void reapCompletedJobs(File file) { if (file != null && file.exists()) { JobInfos jobInfos = getCompletedJobs(file); if (jobInfos != null) { for (JobInfo jobInfo: jobInfos.getJobInfoList()) { addToCompletedJobs(new CompletedJob(jobInfo.jobId,jobInfo.commandCompletionDate,jobInfo.getJobsFile())); } } } }
public void doPersist(JobInfos jobInfos, JobInfo jobInfo) { File file = jobInfo.getJobsFile(); synchronized (file) { if (jobInfos == null) { jobInfos = new JobInfos(); } try { JAXBContext jaxbContext = JAXBContext.newInstance(JobInfos.class); jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); CopyOnWriteArrayList<JobInfo> jobList = new CopyOnWriteArrayList<JobInfo>(jobInfos.getJobInfoList()); jobInfos.setJobInfoList(jobList); jobList.add(jobInfo); jaxbMarshaller.marshal(jobInfos, file); jobManager.addToCompletedJobs(new CompletedJob(jobInfo.jobId,jobInfo.commandCompletionDate,jobInfo.getJobsFile())); jobManager.purgeJob(jobInfo.jobId); } catch (JAXBException e) { throw new RuntimeException(adminStrings.getLocalString("error.persisting.jobs","Error while persisting jobs",jobInfo.jobId,e.getLocalizedMessage()),e); } } }
/** * This will return a list of jobs which have crossed the JOBS_RETENTION_PERIOD * and need to be purged * @return list of jobs to be purged */ public ArrayList<JobInfo> getExpiredJobs(File file) { ArrayList<JobInfo> expiredJobs = new ArrayList<JobInfo>(); synchronized (file) { JobInfos jobInfos = getCompletedJobs(file); for(JobInfo job:jobInfos.getJobInfoList()) { long executedTime = job.commandExecutionDate; long currentTime = System.currentTimeMillis(); long jobsRetentionPeriod = 86400000; managedJobConfig = domain.getExtensionByType(ManagedJobConfig.class); jobsRetentionPeriod = convert(managedJobConfig.getJobRetentionPeriod()); if (currentTime - executedTime > jobsRetentionPeriod && (job.state.equals(AdminCommandState.State.COMPLETED.name()) || job.state.equals(AdminCommandState.State.REVERTED.name()))) { expiredJobs.add(job); } } } return expiredJobs; }
for (JobInfo info : completedJobs.getJobInfoList()) { if (!skipJob(info.jobName)) { jobsToReport.add(info);