@Test(expected=NoSuchJobException.class) public void testGetJobInstanceCountZeroInstancesReturned() throws Exception { when(jobExplorer.getJobInstanceCount("myJob")).thenReturn(0); jsrJobOperator.getJobInstanceCount("myJob"); }
@Test public void testGetJobInstanceCount() throws Exception { when(jobExplorer.getJobInstanceCount("myJob")).thenReturn(4); assertEquals(4, jsrJobOperator.getJobInstanceCount("myJob")); }
@Test(expected=NoSuchJobException.class) public void testGetJobInstanceCountNoSuchJob() throws Exception { when(jobExplorer.getJobInstanceCount("myJob")).thenThrow(new org.springframework.batch.core.launch.NoSuchJobException("expected")); jsrJobOperator.getJobInstanceCount("myJob"); }
@Test public void testStartMultipleTimesSameParameters() throws Exception { jsrJobOperator = BatchRuntime.getJobOperator(); int jobInstanceCountBefore = 0; try { jobInstanceCountBefore = jsrJobOperator.getJobInstanceCount("myJob3"); } catch (NoSuchJobException ignore) { } javax.batch.runtime.JobExecution execution1 = runJob("jsrJobOperatorTestJob", new Properties(), TIMEOUT); javax.batch.runtime.JobExecution execution2 = runJob("jsrJobOperatorTestJob", new Properties(), TIMEOUT); javax.batch.runtime.JobExecution execution3 = runJob("jsrJobOperatorTestJob", new Properties(), TIMEOUT); assertEquals(BatchStatus.COMPLETED, execution1.getBatchStatus()); assertEquals(BatchStatus.COMPLETED, execution2.getBatchStatus()); assertEquals(BatchStatus.COMPLETED, execution3.getBatchStatus()); int jobInstanceCountAfter = jsrJobOperator.getJobInstanceCount("myJob3"); assertTrue((jobInstanceCountAfter - jobInstanceCountBefore) == 3); }
@Override public int getJobInstanceCount(final String jobName) { return operator.getJobInstanceCount(jobName); }
public int getJobInstanceCount(String jobName) throws NoSuchJobException, JobSecurityException { return jobOp.getJobInstanceCount(jobName); }
@GET @Path("job-instance/count/{name}") @Produces(MediaType.TEXT_PLAIN) public int getJobInstanceCount(final @PathParam("name") String jobName) { return operator.getJobInstanceCount(jobName); }
@Override public int getJobInstanceCount(final String jobName) throws NoSuchJobException, JobSecurityException { return getDelegate().getJobInstanceCount(jobName); }
@Override public void execute() throws MojoExecutionException, MojoFailureException { getLog().info("Job instances: " + getOrCreateOperator().getJobInstanceCount(jobName)); } }
@Override public int getJobInstanceCount(String jobName) throws NoSuchJobException, JobSecurityException { Transaction tran = suspendTran(); try { return jobOperator.getJobInstanceCount(jobName); } 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; }
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(); } }
@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(); } }
final int jobInstanceCount = operator.getJobInstanceCount(name);
/** * {@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 then {@code 0} is returned. * </p> */ @Override public int getJobInstanceCount(final String jobName) throws NoSuchJobException, JobSecurityException { checkState(jobName); final ClassLoader current = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(); try { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(classLoader); try { return delegate.getJobInstanceCount(jobName); } catch (NoSuchJobException ignore) { } return 0; } finally { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(current); } }
data = jobOperator.getJobInstanceCount(je.getJobName()); break; case INSTANCE_ID:
/** * */ @Test(expected = IllegalArgumentException.class) public void testGetJobInstanceCountFail() 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).getJobInstanceCount(null); will(throwException(new IllegalArgumentException())); oneOf(mockTranMgr).resume(mockTran); } }); buildJobOperator(mockJobOperator, mockTranMgr).getJobInstanceCount(null); }
/** * */ @Test public void testGetJobInstanceCountNoTran() throws Exception { final JobOperator mockJobOperator = mockery.mock(JobOperator.class); final TransactionManager mockTranMgr = mockery.mock(TransactionManager.class); final int retMe = 1; mockery.checking( new Expectations() { { oneOf(mockTranMgr).suspend(); will(returnValue(null)); oneOf(mockJobOperator).getJobInstanceCount(null); will(returnValue(retMe)); } }); assertEquals(retMe, buildJobOperator(mockJobOperator, mockTranMgr).getJobInstanceCount(null) ); }
/** * */ @Test public void testGetJobInstanceCount() throws Exception { final JobOperator mockJobOperator = mockery.mock(JobOperator.class); final TransactionManager mockTranMgr = mockery.mock(TransactionManager.class); final Transaction mockTran = mockery.mock(Transaction.class); final int retMe = 1; mockery.checking( new Expectations() { { oneOf(mockTranMgr).suspend(); will(returnValue(mockTran)); oneOf(mockJobOperator).getJobInstanceCount(null); will(returnValue(retMe)); oneOf(mockTranMgr).resume(mockTran); } }); assertEquals(retMe, buildJobOperator(mockJobOperator, mockTranMgr).getJobInstanceCount(null) ); }