Project: springxd
Issue XD-1972: Add ability to define nested jobs
h3. Narrative As a developer, I need to be able to create a Spring XD job module that consists of a job orchestrating the execution of other Spring Batch jobs using the Spring Batch Job Step (see section 5.3.6 here: http://docs.spring.io/spring-batch/reference/html/configureStep.html) within the same module definition. h3. Acceptance Criteria # Define the "contract" for a job module ## Currently the contract consists of a single job definition within the assembled {{ApplicationContext}} ({{context.getBean(Job.class)}}). ## The new version will need to document what job definition within the assembled {{ApplicationContext}} should be run as the entry point. I'm assuming it would be by id ({{context.getBean("job")}} for example) of the job but am open to other options. # A custom job module that orchestrates multiple Spring Batch jobs via Job steps should be able to be deployed and executed as a single Spring XD module. ## Spring XD launches the job that conforms to the previously defined "contract". ## Spring Batch manages the execution of the child jobs. # The existing OOTB jobs should work under the new "contract". h3. Assumptions # The UI should "just work" in that child jobs update the job repository independently so no updates should be needed for an MVP of this functionality. # *This will be a breaking change for users that have developed custom job modules.* h3. Out of Scope # Execution of child jobs that are remote (deployed on another node / {{ApplicationContext}}). # Dynamically assembling jobs via the shell's DSL or the UI.
Story points: 3