@Test(expected=NoSuchJobException.class) public void testGetJobInstancesNullInstancesReturned() { jsrJobOperator.getJobInstances("myJob", 0, 3); }
@Test(expected=NoSuchJobException.class) public void testGetJobInstancesZeroInstancesReturned() { List<JobInstance> instances = new ArrayList<>(); when(jobExplorer.getJobInstances("myJob", 0, 3)).thenReturn(instances); jsrJobOperator.getJobInstances("myJob", 0, 3); }
@Test public void testGetJobInstancesRoseyScenario() { List<JobInstance> instances = new ArrayList<>(); instances.add(new JobInstance(1L, "myJob")); instances.add(new JobInstance(2L, "myJob")); instances.add(new JobInstance(3L, "myJob")); when(jobExplorer.getJobInstances("myJob", 0, 3)).thenReturn(instances); List<javax.batch.runtime.JobInstance> jobInstances = jsrJobOperator.getJobInstances("myJob", 0, 3); assertEquals(3, jobInstances.size()); assertEquals(1L, jobInstances.get(0).getInstanceId()); assertEquals(2L, jobInstances.get(1).getInstanceId()); assertEquals(3L, jobInstances.get(2).getInstanceId()); }
public List<JobInstance> getJobInstances(String jobName, int start, int end) throws NoSuchJobException, JobSecurityException { return jobOp.getJobInstances(jobName, start, end); }
@Override public List<JobInstance> getJobInstances(final String jobName, final int start, final int count) throws NoSuchJobException, JobSecurityException { return getDelegate().getJobInstances(jobName, start, count); }
@GET @Path("job-instances/{name}") public RestJobInstance[] getJobInstances(final @PathParam("name") String jobName, final @QueryParam("start") int start, final @QueryParam("count") int count) { final List<RestJobInstance> restJobInstances = RestJobInstance.wrap(operator.getJobInstances(jobName, start, count)); return restJobInstances.toArray(new RestJobInstance[restJobInstances.size()]); }
@Override public List<JobInstance> getJobInstances(String jobName, int start, int count) throws NoSuchJobException, JobSecurityException { Transaction tran = suspendTran(); try { return jobOperator.getJobInstances(jobName, start, count); } finally { resumeTran(tran); } }
private static List<JobExecution> getJobExecutions(@NotNull KapuaId scopeId, @NotNull KapuaId jobId) { List<JobExecution> jobExecutions = Lists.newArrayList(); String jobName = getJbatchJobName(scopeId, jobId); try { int jobInstanceCount = JOB_OPERATOR.getJobInstanceCount(jobName); List<JobInstance> jobInstances = JOB_OPERATOR.getJobInstances(jobName, 0, jobInstanceCount); jobInstances.forEach(ji -> jobExecutions.addAll(getJbatchJobExecutions(ji))); } catch (NoSuchJobException e) { LOG.debug("Error while getting Job: " + jobName, e); // This exception is thrown when there is no job, this means that the job never run before // So we can ignore it and return `null` } catch (NoSuchJobExecutionException e) { LOG.debug("Error while getting execution status for Job: " + jobName, e); // This exception is thrown when there is no execution is running. // So we can ignore it and return `null` } return jobExecutions; }
@GET @Path("/jobs/name/{jobName}") @Produces(MediaType.APPLICATION_JSON) public Response listBatchJobsByName( @PathParam("jobName") String jobName) { try { final List<JobExecutionEntity> executionEntities = new ArrayList<>(); final JobOperator jobOperator = BatchRuntime.getJobOperator(); final int end = jobOperator.getJobInstanceCount(jobName); final List<JobInstance> jobInstances = jobOperator.getJobInstances(jobName, 0, end); for (JobInstance jobInstance : jobInstances) { final List<JobExecution> executions = jobOperator.getJobExecutions(jobInstance); for (JobExecution execution : executions) { executionEntities.add(JobExecutionEntity.create(execution)); } } return Response.ok("{ \"jobs\": \n" + mapper.writeValueAsString(executionEntities) + "\n}").build(); } catch (Exception e) { return Response.ok(EMPTY_JSON_LIST).build(); } }
private static List<JobExecution> getJobExecutions(@NotNull KapuaId scopeId, @NotNull KapuaId jobId) { List<JobExecution> jobExecutions = Lists.newArrayList(); String jobName = getJbatchJobName(scopeId, jobId); try { int jobInstanceCount = JOB_OPERATOR.getJobInstanceCount(jobName); List<JobInstance> jobInstances = JOB_OPERATOR.getJobInstances(jobName, 0, jobInstanceCount); jobInstances.forEach(ji -> jobExecutions.addAll(getJbatchJobExecutions(ji))); } catch (NoSuchJobException e) { LOG.debug("Error while getting Job: " + jobName, e); // This exception is thrown when there is no job, this means that the job never run before // So we can ignore it and return `null` } catch (NoSuchJobExecutionException e) { LOG.debug("Error while getting execution status for Job: " + jobName, e); // This exception is thrown when there is no execution is running. // So we can ignore it and return `null` } return jobExecutions; }
@GET @Path("/jobs") @Produces(MediaType.APPLICATION_JSON) public Response listBatchJobs() { try { final List<JobExecutionEntity> executionEntities = new ArrayList<>(); final JobOperator jobOperator = BatchRuntime.getJobOperator(); final Set<String> names = jobOperator.getJobNames(); for (String name : names) { final int end = jobOperator.getJobInstanceCount(name); final List<JobInstance> jobInstances = jobOperator.getJobInstances(name, 0, end); for (JobInstance jobInstance : jobInstances) { final List<JobExecution> executions = jobOperator.getJobExecutions(jobInstance); for (JobExecution execution : executions) { executionEntities.add(JobExecutionEntity.create(execution)); } } } return Response.ok("{ \"jobs\": \n" + mapper.writeValueAsString(executionEntities) + "\n}").build(); } catch (Exception e) { return Response.ok(EMPTY_JSON_LIST).build(); } }
@Override public void execute() throws MojoExecutionException, MojoFailureException { final List<JobInstance> jobInstances = getOrCreateOperator().getJobInstances(jobName, start, count); getLog().info("Job instances (" + jobInstances.size() + "):"); for (final JobInstance instance : jobInstances) { getLog().info(" - #" + instance.getInstanceId() + " -> " + instance.getJobName()); } } }
private List<JobExecution> findJobExecutions() throws JobSecurityException, NoSuchJobException, NoSuchJobInstanceException { List<JobExecution> jobExecutions = new ArrayList<>(); JobOperator jobOperator = AbstractListCommand.getJobOperatorFromBatchRuntime(); if (jobName != null) { List<JobInstance> exe = jobOperator.getJobInstances(jobName, 0, Integer.MAX_VALUE - 1); if (exe != null) { for (JobInstance ji : exe) { jobExecutions.addAll(jobOperator.getJobExecutions(ji)); } } } else { Set<String> jobNames = jobOperator.getJobNames(); if (jobNames != null) { for (String jn : jobOperator.getJobNames()) { List<JobInstance> exe = jobOperator.getJobInstances(jn, 0, Integer.MAX_VALUE - 1); if (exe != null) { for (JobInstance ji : exe) { jobExecutions.addAll(jobOperator.getJobExecutions(ji)); } } } } } return jobExecutions; }
final List<JobInstance> instances = new ArrayList<JobInstance>(operator.getJobInstances(name, start, pageSize)); Collections.sort(instances, JobInstanceIdComparator.INSTANCE);
@Override public TabularData getJobInstances(final String jobName, final int start, final int count) { final List<JobInstance> instances = operator.getJobInstances(jobName, start, count); try { final TabularDataSupport data = new TabularDataSupport(JOB_INSTANCES_TABULAR_TYPE); for (final JobInstance n : instances) { data.put(new CompositeDataSupport(JOB_INSTANCES_COMPOSITE_TYPE, JOB_INSTANCES_ATTRIBUTES, new Object[] { n.getJobName(), n.getInstanceId() })); } return data; } catch (final OpenDataException e) { return null; } }
/** * {@inheritDoc} * <p> * This does not throw a {@link javax.batch.operations.NoSuchJobException} if the repository does not contain the * job, but the job is allowed. If this case is true an empty list is returned. * </p> */ @Override public List<JobInstance> getJobInstances(final String jobName, final int start, final int count) throws NoSuchJobException, JobSecurityException { checkState(jobName); final ClassLoader current = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(); try { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(classLoader); try { return delegate.getJobInstances(jobName, start, count); } catch (NoSuchJobException ignore) { } return Collections.emptyList(); } finally { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(current); } }
private static List<JobExecution> getJobExecutionForInstance(long instId) throws JobSecurityException, NoSuchJobException, NoSuchJobInstanceException, NoSuchJobExecutionException { JobOperator jobOperator = AbstractListCommand.getJobOperatorFromBatchRuntime(); JobInstance jobInstance = null; for (String jn : jobOperator.getJobNames()) { List<JobInstance> exe = jobOperator.getJobInstances(jn, 0, Integer.MAX_VALUE - 1); if (exe != null) { for (JobInstance ji : exe) { if (ji.getInstanceId() == instId) { jobInstance = ji; break; } } } } List<JobExecution> jeList = new ArrayList<JobExecution>(); if (jobInstance == null) throw new RuntimeException("No Job Executions found for instanceid = " + instId); List<JobExecution> lst = AbstractListCommand.getJobOperatorFromBatchRuntime().getJobExecutions(jobInstance); if (lst != null) { for (JobExecution je : lst) { jeList.add(jobOperator.getJobExecution(je.getExecutionId())); } } return jeList; }
/** * */ @Test public void testGetJobInstancesNoTran() throws Exception { final JobOperator mockJobOperator = mockery.mock(JobOperator.class); final TransactionManager mockTranMgr = mockery.mock(TransactionManager.class); final List<JobInstance> retMe = new ArrayList<JobInstance>(); mockery.checking( new Expectations() { { oneOf(mockTranMgr).suspend(); will(returnValue(null)); oneOf(mockJobOperator).getJobInstances(null, 0, 0); will(returnValue(retMe)); } }); assertEquals(retMe, buildJobOperator(mockJobOperator, mockTranMgr).getJobInstances(null, 0, 0) ); }
/** * */ @Test(expected = IllegalArgumentException.class) public void testGetJobInstancesFail() throws Exception { final JobOperator mockJobOperator = mockery.mock(JobOperator.class); final TransactionManager mockTranMgr = mockery.mock(TransactionManager.class); final Transaction mockTran = mockery.mock(Transaction.class); mockery.checking( new Expectations() { { oneOf(mockTranMgr).suspend(); will(returnValue(mockTran)); oneOf(mockJobOperator).getJobInstances(null, 0, 0); will(throwException(new IllegalArgumentException())); oneOf(mockTranMgr).resume(mockTran); } }); buildJobOperator(mockJobOperator, mockTranMgr).getJobInstances(null, 0 ,0); }
/** * */ @Test public void testGetJobInstances() throws Exception { final JobOperator mockJobOperator = mockery.mock(JobOperator.class); final TransactionManager mockTranMgr = mockery.mock(TransactionManager.class); final Transaction mockTran = mockery.mock(Transaction.class); final List<JobInstance> retMe = new ArrayList<JobInstance>(); mockery.checking( new Expectations() { { oneOf(mockTranMgr).suspend(); will(returnValue(mockTran)); oneOf(mockJobOperator).getJobInstances(null, 0, 0); will(returnValue(retMe)); oneOf(mockTranMgr).resume(mockTran); } }); assertEquals(retMe, buildJobOperator(mockJobOperator, mockTranMgr).getJobInstances(null, 0, 0) ); }