An open API service indexing awesome lists of open source software.

https://github.com/jberet/jsr352

Implementation of Jakarta Batch Specification and API
https://github.com/jberet/jsr352

batch batch-processing jakarta java

Last synced: about 1 month ago
JSON representation

Implementation of Jakarta Batch Specification and API

Awesome Lists containing this project

README

          


JBeret logo

JBeret is an implementation of [Jakarta Batch](https://jakarta.ee/specifications/batch/). It is also included in [WildFly, the new and improved JBoss Application Server](https://wildfly.org/) to provide portable batch processing support in Jakarta EE environment.

#### Build JBeret
To build and run default set of tests:

mvn install

Some tests require additional steps and thus are not included in the default run. For instance, MongoDB-related tests
need to start MongoDB first. To build and run all tests:

# start MongoDB database
mongod

# build JBeret, activate allTests maven profile to run all tests
mvn install -DallTests

Some tests involves very large data set (e.g., over 1 million rows of CSV or Excel data), and may
cause memory errors in some machines:

OutOfMemoryError: unable to create new native thread

Increase `ulimit` to avoid such errors. For example,

ulimit -u 2048add

#### JBeret Modules:
* [jberet-core](https://github.com/jberet/jsr352/tree/main/jberet-core): core batch runtime engine
* [jberet-se](https://github.com/jberet/jsr352/tree/main/jberet-se): impl classes specific to Java SE runtime environment
* [jberet-support](https://github.com/jberet/jberet-support): a collection of reusable batch readers and writers (e.g., CSV, fixed length, Excel, Json, XML, Mongo, JDBC, JMS, HornetQ, PDF, etc) for batch applications, and JNDI support
* [jberet-rest-api](https://github.com/jberet/jberet-rest): REST API for batch job management
* [jberet-ui](https://github.com/jberet/jberet-ui): front-end UI web app for batch job management
* [jberet-se-bom](https://github.com/jberet/jsr352/tree/main/jberet-se-bom): a maven BOM to encapsulate all the dependencies required by JBeret Java SE.
* [test-apps](https://github.com/jberet/jsr352/tree/main/test-apps): test applications
* [tck-porting-impl](https://github.com/jberet/jberet-tck-porting): support running [Jakarta Batch TCK](https://jakarta.ee/specifications/batch/) with JBeret in Java SE
* [wildfly-jberet-samples](https://github.com/jberet/jberet-wildfly-samples): Sample batch processing apps that can be deployed to WildFly or JBoss EAP 7
* [quarkus-jberet](https://github.com/quarkiverse/quarkus-jberet): The Quarkus JBeret Extension adds support for Jakarta Batch applications

#### 3rd-party & Community Extensions:
* [JBoss Tools for Batch (Eclipse extensions, Wizards, Visual editing, etc)](https://tools.jboss.org/features/batch.html)
* [jberet-eap6](https://github.com/fcorneli/jberet-eap6)
* [jberetweb, job repository viewer](https://github.com/lbtc-xxx/jberetweb)

#### Project Resources:
* [JBeret Issues & Bugs](https://issues.jboss.org/browse/JBERET-55?jql=project%20%3D%20JBERET), [Issues Awaiting Volunteers](https://issues.jboss.org/browse/JBERET-143?jql=project%20%3D%20JBERET%20AND%20fixVersion%20%3D%20%22Awaiting%20Volunteers%22)
* [JBeret Documentation](https://docs.jboss.org/jberet/)
* [JBoss EAP Quickstarts for Batch Processing](https://github.com/jboss-developer/jboss-eap-quickstarts)
* [JBeret-dev Mailing List](https://lists.jboss.org/mailman/listinfo/jberet-dev)
* [WildFly Forum](https://groups.google.com/g/wildfly)
* [JBeret Forum](https://developer.jboss.org/en/jberet/)
* [JBoss Batch API project](https://github.com/jboss/jboss-batch-api_spec)
* [Jakarta Batch Expert Group Discussion](https://github.com/eclipse-ee4j/batch-api/issues)
* Download JBeret jars and distro zip from [JBoss.org nexus](https://repository.jboss.org/nexus/index.html#nexus-search;quick~jberet)

#### Batch sample & test applications:
- , web apps that demonstrate the following:
+ JsonItemReader, JsonItemWriter
+ CsvItemReader, CsvItemWriter
+ XmlItemReader, XmlItemWriter
+ MongoItemReader, MongoItemWriter
+ JNDI lookup of Jackson JsonFactory, MappingJsonFactory & XmlFactory in WildFly for batch reader and writer
+ JNDI lookup of MongoClient in WildFly
+ job xml files showing the use of various reader/writer configuration properties
+ jberet-support module can be installed in WildFly and referenced by multiple apps via either MANIFEST.MF or jboss-deployment-structure.xml
-
+ test apps running in Java SE environment to verify core batch requirements
+ test apps running in Java SE environment to verify additional JBeret features (inheritance, scripting support, infinispan job repository, etc)

#### org.jberet artifacts may be retrieved from Maven Central or JBoss Public Repository


jboss-public-repository-group
JBoss Public Repository Group
https://repository.jboss.org/nexus/content/groups/public/


...


jakarta.batch
jakarta.batch-api
${version.jakarta.batch.batch-api}
provided


org.jberet
jberet-core
1.0.2.Final


org.jberet
jberet-support
1.0.2.Final

#### Batch application dependencies
##### Minimal application dependencies:

jakarta.batch
jakarta.batch-api


javax.inject
javax.inject


javax.enterprise
cdi-api


org.jboss.spec.javax.transaction
jboss-transaction-api_1.2_spec


org.jberet
jberet-core


org.jboss.marshalling
jboss-marshalling


org.jboss.logging
jboss-logging


org.jboss.weld
weld-core


org.wildfly.security
wildfly-security-manager


com.google.guava
guava


A note on webapp or Jakarta EE application packaging: Jakarta EE API jars
are already available in the appserver, and should not be included in WAR, JAR, or EAR files. Their maven dependency
scope should be set to `provided`. In addition, if the application is deployed to JBoss EAP or WildFly, almost all of
the above dependencies are already available as JBoss modules, and should not be duplicated in application package.

##### maven BOM dependency used to encapsulate all the dependencies required by JBeret Java SE.




org.jberet
jberet-se-bom
2.1.2.Final-SNAPSHOT
pom
import




##### The following is also required for Java SE batch applications (h2 can be omitted when using in-memory batch job repository):

org.jberet
jberet-se


org.jboss.weld.se
weld-se


com.h2database
h2


##### Optional application dependencies depending on application usage:


com.h2database
h2



org.infinispan
infinispan-core


org.infinispan
infinispan-commons


org.jgroups
jgroups



org.mongodb
mongo-java-driver
${version.org.mongodb.mongo-java-driver}
provided



com.fasterxml
aalto-xml


org.codehaus.woodstox
stax2-api




org.jberet
jberet-support