Kohei Nozaki's blog 

jberetweb TODOs


Posted on Sunday Jan 04, 2015 at 10:37PM in jberetweb


Just for memo. I think this list could be moved to GitHub's issue tracker.

  • Operation support for various application archive / remote interface
  • Save preferences such as visible columns to cookie
  • Change some of Integer id columns to Long
  • Refreshing of execution detail part
  • Variable / closable table area
  • In-cell editing of a value of job parameter table
  • Add clear button to job parameter table
  • Improve pagination for larger data set
    • Jump to specified execution id or page number directly
    • Clickable page numbers (1 2 3 4 5...)
    • Selection of number of rows in single page
  • Job schedule managing (like cron) with EJB programmatic timer
  • Job name completion (with JobOperator#getJobNames() ?)
  • Filtering / Sorting
    • Show BatchStatus=FAILED only etc
    • Sorting in ascending order
  • Covering omitted information
    • job_execution.exitstatus, job_execution.restartposition etc
    • Checkpointinfo would be useful. just pass it to String.valueOf() after deserialize
  • Testing against MySQL, Derby, H2, newer WildFly etc
  • Row highlighting/coloring for various statuses (STARTING/STARTED/STOPPING/STOPPED/ABANDONED). currently cares COMPLETED/FAILED only.
  • Refactoring (especially I think current CSS/HTML design is terrible due to my bad in client side web technology)
  • Use of REST API (would following spec of BatchEE be good?)


Job operation features are implemented to jberetweb


Posted on Sunday Jan 04, 2015 at 09:26PM in jberetweb


Now jberetweb is able to operate JobOperator interface through remote EJB invocation, so finally jberetweb can start batch jobs. the Start Job window popups when "Start Job" anchor is clicked on the upper right corner. here's a screenshot:

スクリーンショット 2015-01-04 20.53.13

To use this feature, some preparation are needed. first, you have to expose a remote EJB interface of javax.batch.operations.JobOperator from your batch application archive. an example of simplest one is available here. also entire of the project is here.

You can just put this class to any package in your batch application archive. after that, you can see some notification of JNDI names in your WildFly console at every deployment like this:

21:06:45,501 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-10) JNDI bindings for session bean named JobOperatorFacade in deployment unit deployment "jbatchtest-1.0-SNAPSHOT.war" are as follows:

java:global/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator
java:app/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator
java:module/JobOperatorFacade!javax.batch.operations.JobOperator
java:jboss/exported/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator
java:global/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade
java:app/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade
java:module/JobOperatorFacade

Then save first one of yours ("java:global/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator" for example), then put that string to a build parameter of jberetweb (after "-DjobOperator.jndi="). please refer "How to use" section of README.md for build instruction.

Other operations such as restart, stop, abandon are implemented too so I will write more about it later. jberetweb can be obtained from GitHub.