{"id":22281728,"url":"https://github.com/jberet/jsr352","last_synced_at":"2026-01-11T17:58:47.335Z","repository":{"id":5559697,"uuid":"6764581","full_name":"jberet/jsr352","owner":"jberet","description":"Implementation of Jakarta Batch Specification and API","archived":false,"fork":false,"pushed_at":"2025-04-15T12:35:44.000Z","size":76851,"stargazers_count":129,"open_issues_count":40,"forks_count":77,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-19T02:14:07.027Z","etag":null,"topics":["batch","batch-processing","jakarta","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jberet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-11-19T17:48:12.000Z","updated_at":"2025-04-11T09:41:00.000Z","dependencies_parsed_at":"2023-01-14T11:28:49.242Z","dependency_job_id":"e9fc3a0f-59f5-4a55-8d74-68ec7a2cfe09","html_url":"https://github.com/jberet/jsr352","commit_stats":{"total_commits":1241,"total_committers":25,"mean_commits":49.64,"dds":0.08622078968573732,"last_synced_commit":"efc0ad258553a24c93203ee34683ebb4427ed1f7"},"previous_names":[],"tags_count":87,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberet%2Fjsr352","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberet%2Fjsr352/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberet%2Fjsr352/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberet%2Fjsr352/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jberet","download_url":"https://codeload.github.com/jberet/jsr352/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254159140,"owners_count":22024558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["batch","batch-processing","jakarta","java"],"created_at":"2024-12-03T16:21:20.332Z","updated_at":"2026-01-11T17:58:47.319Z","avatar_url":"https://github.com/jberet.png","language":"Java","funding_links":[],"categories":["批处理框架"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n   \u003cimg src=\"./images/jberet_logo_600px.png\" alt=\"JBeret logo\" title=\"JBeret\" height=\"150\" width=\"600\"/\u003e\n\u003c/p\u003e\n\n\nJBeret 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. \n\n#### Build JBeret\nTo build and run default set of tests:\n    \n    mvn install\n\nSome tests require additional steps and thus are not included in the default run. For instance, MongoDB-related tests\nneed to start MongoDB first. To build and run all tests:\n    \n    # start MongoDB database\n    mongod\n    \n    # build JBeret, activate allTests maven profile to run all tests\n    mvn install -DallTests\n    \nSome tests involves very large data set (e.g., over 1 million rows of CSV or Excel data), and may\ncause memory errors in some machines:\n\n    OutOfMemoryError: unable to create new native thread\n\nIncrease `ulimit` to avoid such errors. For example,\n\n    ulimit -u 2048add\n\n#### JBeret Modules:\n* [jberet-core](https://github.com/jberet/jsr352/tree/main/jberet-core): core batch runtime engine\n* [jberet-se](https://github.com/jberet/jsr352/tree/main/jberet-se): impl classes specific to Java SE runtime environment\n* [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\n* [jberet-rest-api](https://github.com/jberet/jberet-rest): REST API for batch job management\n* [jberet-ui](https://github.com/jberet/jberet-ui): front-end UI web app for batch job management\n* [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.\n* [test-apps](https://github.com/jberet/jsr352/tree/main/test-apps): test applications\n* [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\n* [wildfly-jberet-samples](https://github.com/jberet/jberet-wildfly-samples): Sample batch processing apps that can be deployed to WildFly or JBoss EAP 7\n* [quarkus-jberet](https://github.com/quarkiverse/quarkus-jberet): The Quarkus JBeret Extension adds support for Jakarta Batch applications\n\n#### 3rd-party \u0026 Community Extensions:\n* [JBoss Tools for Batch (Eclipse extensions, Wizards, Visual editing, etc)](https://tools.jboss.org/features/batch.html)\n* [jberet-eap6](https://github.com/fcorneli/jberet-eap6)\n* [jberetweb, job repository viewer](https://github.com/lbtc-xxx/jberetweb)\n\n#### Project Resources:\n* [JBeret Issues \u0026 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)\n* [JBeret Documentation](https://docs.jboss.org/jberet/)\n* [JBoss EAP Quickstarts for Batch Processing](https://github.com/jboss-developer/jboss-eap-quickstarts)\n* [JBeret-dev Mailing List](https://lists.jboss.org/mailman/listinfo/jberet-dev)\n* [WildFly Forum](https://groups.google.com/g/wildfly)\n* [JBeret Forum](https://developer.jboss.org/en/jberet/)\n* [JBoss Batch API project](https://github.com/jboss/jboss-batch-api_spec)\n* [Jakarta Batch Expert Group Discussion](https://github.com/eclipse-ee4j/batch-api/issues)\n* Download JBeret jars and distro zip from [JBoss.org nexus](https://repository.jboss.org/nexus/index.html#nexus-search;quick~jberet)\n\n#### Batch sample \u0026 test applications:\n  - \u003chttps://github.com/jberet/jberet-wildfly-samples\u003e, web apps that demonstrate the following:\n    + JsonItemReader, JsonItemWriter\n    + CsvItemReader, CsvItemWriter\n    + XmlItemReader, XmlItemWriter\n    + MongoItemReader, MongoItemWriter\n    + JNDI lookup of Jackson JsonFactory, MappingJsonFactory \u0026 XmlFactory in WildFly for batch reader and writer\n    + JNDI lookup of MongoClient in WildFly\n    + job xml files showing the use of various reader/writer configuration properties\n    + jberet-support module can be installed in WildFly and referenced by multiple apps via either MANIFEST.MF or jboss-deployment-structure.xml\n  - \u003chttps://github.com/jberet/jsr352/tree/main/test-apps\u003e\n    + test apps running in Java SE environment to verify core batch requirements\n    + test apps running in Java SE environment to verify additional JBeret features (inheritance, scripting support, infinispan job repository, etc)\n\n#### org.jberet artifacts may be retrieved from Maven Central or JBoss Public Repository\n    \u003crepositories\u003e\n        \u003crepository\u003e\n            \u003cid\u003ejboss-public-repository-group\u003c/id\u003e\n            \u003cname\u003eJBoss Public Repository Group\u003c/name\u003e\n            \u003curl\u003ehttps://repository.jboss.org/nexus/content/groups/public/\u003c/url\u003e\n        \u003c/repository\u003e\n    \u003c/repositories\u003e\n    ...\n    \u003cdependencies\u003e\n            \u003cdependency\u003e\n                \u003cgroupId\u003ejakarta.batch\u003c/groupId\u003e\n                \u003cartifactId\u003ejakarta.batch-api\u003c/artifactId\u003e\n                \u003cversion\u003e${version.jakarta.batch.batch-api}\u003c/version\u003e\n                \u003cscope\u003eprovided\u003c/scope\u003e\n            \u003c/dependency\u003e\n\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jberet\u003c/groupId\u003e\n            \u003cartifactId\u003ejberet-core\u003c/artifactId\u003e\n            \u003cversion\u003e1.0.2.Final\u003c/version\u003e \u003c!-- replace it with the desired version --\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jberet\u003c/groupId\u003e\n            \u003cartifactId\u003ejberet-support\u003c/artifactId\u003e\n            \u003cversion\u003e1.0.2.Final\u003c/version\u003e \u003c!-- replace it with the desired version --\u003e\n        \u003c/dependency\u003e\n\n#### Batch application dependencies\n##### Minimal application dependencies:\n        \u003cdependency\u003e\n                \u003cgroupId\u003ejakarta.batch\u003c/groupId\u003e\n                \u003cartifactId\u003ejakarta.batch-api\u003c/artifactId\u003e\n            \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ejavax.inject\u003c/groupId\u003e\n            \u003cartifactId\u003ejavax.inject\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ejavax.enterprise\u003c/groupId\u003e\n            \u003cartifactId\u003ecdi-api\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jboss.spec.javax.transaction\u003c/groupId\u003e\n            \u003cartifactId\u003ejboss-transaction-api_1.2_spec\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jberet\u003c/groupId\u003e\n            \u003cartifactId\u003ejberet-core\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jboss.marshalling\u003c/groupId\u003e\n            \u003cartifactId\u003ejboss-marshalling\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jboss.logging\u003c/groupId\u003e\n            \u003cartifactId\u003ejboss-logging\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jboss.weld\u003c/groupId\u003e\n            \u003cartifactId\u003eweld-core\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.wildfly.security\u003c/groupId\u003e\n            \u003cartifactId\u003ewildfly-security-manager\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.google.guava\u003c/groupId\u003e\n            \u003cartifactId\u003eguava\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \nA note on webapp or Jakarta EE application packaging: Jakarta EE API jars\nare already available in the appserver, and should not be included in WAR, JAR, or EAR files. Their maven dependency\nscope should be set to `provided`. In addition, if the application is deployed to JBoss EAP or WildFly, almost all of\nthe above dependencies are already available as JBoss modules, and should not be duplicated in application package.\n        \n##### maven BOM dependency used to encapsulate all the dependencies required by JBeret Java SE.\n\n    \u003cdependencyManagement\u003e\n        \u003cdependencies\u003e\n            \u003cdependency\u003e\n                \u003cgroupId\u003eorg.jberet\u003c/groupId\u003e\n                \u003cartifactId\u003ejberet-se-bom\u003c/artifactId\u003e\n                \u003cversion\u003e2.1.2.Final-SNAPSHOT\u003c/version\u003e\n                \u003ctype\u003epom\u003c/type\u003e\n                \u003cscope\u003eimport\u003c/scope\u003e\n            \u003c/dependency\u003e\n        \u003c/dependencies\u003e\n    \u003c/dependencyManagement\u003e\n    \n##### The following is also required for Java SE batch applications (h2 can be omitted when using in-memory batch job repository):\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jberet\u003c/groupId\u003e\n            \u003cartifactId\u003ejberet-se\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jboss.weld.se\u003c/groupId\u003e\n            \u003cartifactId\u003eweld-se\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.h2database\u003c/groupId\u003e\n            \u003cartifactId\u003eh2\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \n##### Optional application dependencies depending on application usage:\n        \u003c!-- any JDBC driver jars, e.g., h2, when using jdbc batch job repository --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.h2database\u003c/groupId\u003e\n            \u003cartifactId\u003eh2\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n\n         \u003c!-- infinispan and jgroups jars, when infinispan job repository is used.\n              Additional infinispan cachestore jars (e.g., infinispan-cachestore-jdbc, infinispan-cachestore-mongodb,\n              infinispan-cachestore-leveldb, infinispan-cachestore-rest, infinispan-cachestore-cassandra, etc) may be\n              needed if such a cachestore is used. --\u003e\n         \u003cdependency\u003e\n             \u003cgroupId\u003eorg.infinispan\u003c/groupId\u003e\n             \u003cartifactId\u003einfinispan-core\u003c/artifactId\u003e\n         \u003c/dependency\u003e\n         \u003cdependency\u003e\n             \u003cgroupId\u003eorg.infinispan\u003c/groupId\u003e\n             \u003cartifactId\u003einfinispan-commons\u003c/artifactId\u003e\n         \u003c/dependency\u003e\n         \u003cdependency\u003e\n             \u003cgroupId\u003eorg.jgroups\u003c/groupId\u003e\n             \u003cartifactId\u003ejgroups\u003c/artifactId\u003e\n         \u003c/dependency\u003e\n\n         \u003c!-- MongoDB jars, when MongoDB job repository is used --\u003e\n         \u003cdependency\u003e\n             \u003cgroupId\u003eorg.mongodb\u003c/groupId\u003e\n             \u003cartifactId\u003emongo-java-driver\u003c/artifactId\u003e\n             \u003cversion\u003e${version.org.mongodb.mongo-java-driver}\u003c/version\u003e\n             \u003cscope\u003eprovided\u003c/scope\u003e\n         \u003c/dependency\u003e\n\n        \u003c!-- replace Java built-in StAX provider with aalto-xml or woodstox\n             (woodstox dependencies not shown here)\n        --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.fasterxml\u003c/groupId\u003e\n            \u003cartifactId\u003eaalto-xml\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.codehaus.woodstox\u003c/groupId\u003e\n            \u003cartifactId\u003estax2-api\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n        \n        \u003c!-- jberet-support includes common reusable batch ItemReader \u0026 ItemWriter classes for\n             various data types such as CSV, XML, JSON, Fixed length, Excel, MongoDB, JDBC, JMS, HornetQ, etc.\n             The application should further provide appropriate transitive dependencies from \n             jberet-support, depending on its usage.\n        --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.jberet\u003c/groupId\u003e\n            \u003cartifactId\u003ejberet-support\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjberet%2Fjsr352","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjberet%2Fjsr352","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjberet%2Fjsr352/lists"}