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
- Host: GitHub
- URL: https://github.com/jberet/jsr352
- Owner: jberet
- License: epl-2.0
- Created: 2012-11-19T17:48:12.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2025-04-15T12:35:44.000Z (11 months ago)
- Last Synced: 2025-04-19T02:14:07.027Z (10 months ago)
- Topics: batch, batch-processing, jakarta, java
- Language: Java
- Homepage:
- Size: 73.3 MB
- Stars: 129
- Watchers: 13
- Forks: 77
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-java - JBeret
README
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