{"id":18645827,"url":"https://github.com/spring-projects-experimental/spring-batch-experimental","last_synced_at":"2025-04-11T12:31:37.250Z","repository":{"id":203821521,"uuid":"709928400","full_name":"spring-projects-experimental/spring-batch-experimental","owner":"spring-projects-experimental","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-10T15:34:04.000Z","size":157,"stargazers_count":8,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-25T13:51:20.526Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spring-projects-experimental.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-25T17:11:36.000Z","updated_at":"2025-01-10T15:33:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"293bcce5-f88b-4ec6-9cfa-8b426b9a6a96","html_url":"https://github.com/spring-projects-experimental/spring-batch-experimental","commit_stats":null,"previous_names":["spring-projects-experimental/spring-batch-experimental"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects-experimental%2Fspring-batch-experimental","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects-experimental%2Fspring-batch-experimental/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects-experimental%2Fspring-batch-experimental/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects-experimental%2Fspring-batch-experimental/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spring-projects-experimental","download_url":"https://codeload.github.com/spring-projects-experimental/spring-batch-experimental/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248401965,"owners_count":21097328,"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":[],"created_at":"2024-11-07T06:17:22.346Z","updated_at":"2025-04-11T12:31:37.227Z","avatar_url":"https://github.com/spring-projects-experimental.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About this repository\n\nThis repository contains experimental features in Spring Batch.\nExperimental features are *not* intended to be used in production.\nThey are shared here to be explored by the community and to gather feedback.\nPlease refer to the [Enabling experimental features](#enabling-experimental-features) section for more details about how to enable experimental features.\n\nThe currently available experimental features are the following:\n\n* [New chunk-oriented step implementation](#new-chunk-oriented-step-implementation)\n\n**Important note:** The versioning in this repository follows the [semantic versioning specification](https://semver.org/#spec-item-4).\nPublic APIs should not be considered as stable and may change at any time :exclamation:\n\n# Enabling experimental features\n\nExperimental features are not released to Maven Central, but they are available from the Spring Milestones repository:\n\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n      \u003cid\u003espring-milestones\u003c/id\u003e\n      \u003cname\u003eSpring Milestones\u003c/name\u003e\n      \u003curl\u003ehttps://repo.spring.io/milestone\u003c/url\u003e\n      \u003csnapshots\u003e\n        \u003cenabled\u003efalse\u003c/enabled\u003e\n      \u003c/snapshots\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\nYou can also import the latest snapshots from the Spring Snapshots repository:\n\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003espring-snapshots\u003c/id\u003e\n        \u003cname\u003eSpring Snapshots\u003c/name\u003e\n        \u003curl\u003ehttps://repo.spring.io/snapshot\u003c/url\u003e\n        \u003csnapshots\u003e\n            \u003cenabled\u003etrue\u003c/enabled\u003e\n        \u003c/snapshots\u003e\n        \u003creleases\u003e\n            \u003cenabled\u003efalse\u003c/enabled\u003e\n        \u003c/releases\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\nExperimental features are based on the latest Spring Batch 5+ release, which requires Java 17+.\n\nTo import experimental features in your project, you need to add the following dependency:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework.batch\u003c/groupId\u003e\n    \u003cartifactId\u003espring-batch-experimental\u003c/artifactId\u003e\n    \u003cversion\u003e0.4.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nDepending on the feature you are testing, other dependencies might be required. This will be mentioned in the section describing the feature.\n\nTo build the project and install it in your local Maven repository, use the following command:\n\n```shell\n$\u003e./mvnw clean install\n```\n\n# New chunk-oriented step implementation\n\n*Original issue:* https://github.com/spring-projects/spring-batch/issues/3950\n\nThis is not a new feature, but rather a new implementation of the chunk-oriented processing model. The goal is to address\nthe problems with the current implementation as explained in [#3950](https://github.com/spring-projects/spring-batch/issues/3950).\n\nThe new implementation does **not** address fault-tolerance and concurrency features for the moment. Those will be addressed incrementally\nin future versions. Our main focus for now is correctness, ie simplify the code with minimal to no behavioral changes.\n\nThe new implementation is in the `ChunkOrientedStep` class, which can be used as follows:\n\n```java\n@Bean\npublic Step chunkOrientedStep(JobRepository jobRepository, JdbcTransactionManager transactionManager,\n                              ItemReader\u003cPerson\u003e itemReader, ItemProcessor\u003cPerson, Person\u003e itemProcessor, ItemWriter\u003cPerson\u003e itemWriter) {\n    return new ChunkOrientedStep\u003c\u003e(\"step\", 2, itemReader, itemProcessor, itemWriter, jobRepository, transactionManager);\n}\n```\n\nThe first two parameters are the step name and chunk size. Other parameters are self explanatory.\nOnce defined, this step can then be added to a Spring Batch job flow like any other step type.\nYou can find a complete example in the [ChunkOrientedStepIntegrationTests](./src/test/java/org/springframework/experimental/batch/core/step/item/ChunkOrientedStepIntegrationTests.java) file.\n\n# Contribute\n\nThe best way to contribute to this project is by trying out the experimental features and sharing your feedback!\n\nIf you find an issue, please report it on the [issue tracker](https://github.com/spring-projects-experimental/spring-batch-experimental/issues). You are welcome to share your feedback on the original issue related to each feature.\n\n# License\n\n[Apache License Version 2.0](./LICENSE.txt).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-projects-experimental%2Fspring-batch-experimental","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspring-projects-experimental%2Fspring-batch-experimental","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-projects-experimental%2Fspring-batch-experimental/lists"}