/** * Execute a query and coerce the result into a java List * @param query Query to execute * @return List of jobs that matched the query. (Empty list if none did). * @throws RemoteInvocationException If the server throws an error */ private List<JobExecutionInfo> executeQuery(JobExecutionQuery query) throws RemoteInvocationException { JobExecutionQueryResult result = this.client.get(query); if (result != null && result.hasJobExecutions()) { return result.getJobExecutions(); } return Collections.emptyList(); }
@Override public JobExecutionQueryResult get(ComplexResourceKey<JobExecutionQuery, EmptyRecord> key) { JobExecutionQuery query = key.getKey(); JobExecutionInfoArray jobExecutionInfos = new JobExecutionInfoArray(); try { for (JobExecutionInfo jobExecutionInfo : this.jobHistoryStore.get(query)) { jobExecutionInfos.add(jobExecutionInfo); } } catch (Throwable t) { LOGGER .error(String.format("Failed to execute query [id = %s, type = %s]", query.getId(), query.getIdType().name()), t); return null; } JobExecutionQueryResult result = new JobExecutionQueryResult(); result.setJobExecutions(jobExecutionInfos); ResourceContext rc = this.getContext(); rc.setResponseHeader("Access-Control-Allow-Origin", "*"); this.setContext(rc); return result; }
@Test public void testBadGet() throws Exception { JobExecutionQuery queryByJobId = new JobExecutionQuery(); queryByJobId.setIdType(QueryIdTypeEnum.JOB_ID); queryByJobId.setId(JobExecutionQuery.Id.create(this.expected1.getJobId() + "1")); JobExecutionQueryResult result = this.client.get(queryByJobId); Assert.assertTrue(result.getJobExecutions().isEmpty()); }
/** * Setter for jobExecutions * * @see JobExecutionQueryResult.Fields#jobExecutions */ public JobExecutionQueryResult setJobExecutions(JobExecutionInfoArray value, SetMode mode) { putWrapped(FIELD_JobExecutions, JobExecutionInfoArray.class, value, mode); return this; }
/** * Getter for jobExecutions * * @see JobExecutionQueryResult.Fields#jobExecutions */ public JobExecutionInfoArray getJobExecutions(GetMode mode) { return obtainWrapped(FIELD_JobExecutions, JobExecutionInfoArray.class, mode); }
/** * Existence checker for jobExecutions * * @see JobExecutionQueryResult.Fields#jobExecutions */ public boolean hasJobExecutions() { return contains(FIELD_JobExecutions); }
/** * Remover for jobExecutions * * @see JobExecutionQueryResult.Fields#jobExecutions */ public void removeJobExecutions() { remove(FIELD_JobExecutions); }
@Test public void testBatchGet() throws Exception { JobExecutionQuery queryByJobId1 = new JobExecutionQuery(); queryByJobId1.setIdType(QueryIdTypeEnum.JOB_ID); queryByJobId1.setId(JobExecutionQuery.Id.create(this.expected1.getJobId())); JobExecutionQuery queryByJobId2 = new JobExecutionQuery(); queryByJobId2.setIdType(QueryIdTypeEnum.JOB_ID); queryByJobId2.setId(JobExecutionQuery.Id.create(this.expected2.getJobId())); List<JobExecutionQuery> queries = Lists.newArrayList(queryByJobId1, queryByJobId2); List<JobExecutionQueryResult> result = Lists.newArrayList(this.client.batchGet(queries)); Assert.assertEquals(result.size(), 2); Assert.assertEquals(result.get(0).getJobExecutions().size(), 1); Assert.assertEquals(result.get(1).getJobExecutions().size(), 1); JobExecutionInfo actual1 = result.get(0).getJobExecutions().get(0); JobExecutionInfo actual2 = result.get(1).getJobExecutions().get(0); if (actual1.getJobName().equals(this.expected1.getJobName())) { assertJobExecution(actual1, this.expected1); assertJobExecution(actual2, this.expected2); } else { assertJobExecution(actual1, this.expected2); assertJobExecution(actual2, this.expected1); } }
/** * Setter for jobExecutions * * @param value * Must not be null. For more control, use setters with mode instead. * @see JobExecutionQueryResult.Fields#jobExecutions */ public JobExecutionQueryResult setJobExecutions( @Nonnull JobExecutionInfoArray value) { putWrapped(FIELD_JobExecutions, JobExecutionInfoArray.class, value, SetMode.DISALLOW_NULL); return this; }
/** * Getter for jobExecutions * * @return * Required field. Could be null for partial record. * @see JobExecutionQueryResult.Fields#jobExecutions */ @Nonnull public JobExecutionInfoArray getJobExecutions() { return obtainWrapped(FIELD_JobExecutions, JobExecutionInfoArray.class, GetMode.STRICT); }
/** * Execute a query and coerce the result into a java List * @param query Query to execute * @return List of jobs that matched the query. (Empty list if none did). * @throws RemoteInvocationException If the server throws an error */ private List<JobExecutionInfo> executeQuery(JobExecutionQuery query) throws RemoteInvocationException { JobExecutionQueryResult result = this.client.get(query); if (result != null && result.hasJobExecutions()) { return result.getJobExecutions(); } return Collections.emptyList(); }
@Override public JobExecutionQueryResult get(ComplexResourceKey<JobExecutionQuery, EmptyRecord> key) { JobExecutionQuery query = key.getKey(); JobExecutionInfoArray jobExecutionInfos = new JobExecutionInfoArray(); try { for (JobExecutionInfo jobExecutionInfo : this.jobHistoryStore.get(query)) { jobExecutionInfos.add(jobExecutionInfo); } } catch (Throwable t) { LOGGER .error(String.format("Failed to execute query [id = %s, type = %s]", query.getId(), query.getIdType().name()), t); return null; } JobExecutionQueryResult result = new JobExecutionQueryResult(); result.setJobExecutions(jobExecutionInfos); ResourceContext rc = this.getContext(); rc.setResponseHeader("Access-Control-Allow-Origin", "*"); this.setContext(rc); return result; }
@Test public void testGet() throws Exception { JobExecutionQuery queryByJobId = new JobExecutionQuery(); queryByJobId.setIdType(QueryIdTypeEnum.JOB_ID); queryByJobId.setId(JobExecutionQuery.Id.create(this.expected1.getJobId())); JobExecutionQueryResult result = this.client.get(queryByJobId); JobExecutionInfoArray jobExecutionInfos = result.getJobExecutions(); Assert.assertEquals(jobExecutionInfos.size(), 1); JobExecutionInfo actual = jobExecutionInfos.get(0); assertJobExecution(actual, this.expected1); }