jBPM4 Productization Requirements

Version 10

    Realized productization

    Features

    • jPDL
      • Control flow activities: start, state, decision, fork, join, end, task, sub-process, custom
      • Automatic activities: java, script, hql, sql, mail
      • Timers
      • Asynchronous continuations
    • JBoss integration
      • Deployment as a service archive
      • ProcessEngine in JNDI

    QA

    • Integration test suite is formed by modules examples and the test-db
    • Module examples contains tests that are explained in the user guide.  Aka public test suite.  The examples are also included as a project in the distribution.   
    • Module test-db contains tests that verify all aspects of functionality using public API.  Aka private test suite.
    • Both modules examples and test-db only make use of public API.
    • CI is set up for the matrix {jdks}x{jboss's}x{databases}.  See job jbpm4-jboss: http://hudson.qa.jboss.com/hudson/view/JBPM4/

    Engine

    • A release is only done if the continuous integration runs OK.
    • Clear, minimal session facade API
    • XSD Schema for the jPDL language
    • Automatic installer for installing jBPM into JBoss
      • Parameters: jboss version, database, jdbc parameters, identity component
      • Support is only given on these automated installations

    Documentation

    Designer

    • Each piece of supported functionality in the jPDL language must be supported by the designer
    • Designer plugins included in JBossTools/JBDS

    Migration

    • jBPM 3 should be able to run side by side with jBPM 4

    Roadmap and prioritization

    Work in progress

    • Integration with JBoss IDM (Jeff Yu is working on this)
    • Process conversion tool (Jim Ma is working on this)
    • Controlled minimal tests for concurrent DB access: SOSE's (Joram Barrez)
    • Designer support for older versions (Koen Aers)
      • Support for multiple, configurable runtimes

    Prioritization of new productization requirements

    • Clustering
    • Automated QA for console and/or documentation of manual test procedures
    • Automated QA for designer and/or documentation of manual test procedures
    • SEAM integration
      • Pageflow
      • Pageflow designer
    • JMS support (and/or JCA inflow support) for asynchronous messaging
    • ProcessInstance migration in case of new process definition deployment
    • jBPM-ESB integration
      • Locate services through the registry
      • Invoke services without regard to their underlying implementation
      • Support synchronous or asynchronous calls
      • Make invocation layer pluggable so that third-party ESBs can be integrated as well
      • Part of community download ?   
    • Putting script code in privileged blocks to allow security mgr to control authorization inside scripts. (Marc Schoenefeld)

    Process

    • jBPM is consumed by EAP and SOA-P
    • EAP and SOA-P can create issues in JBPM's bug tracker: https://jira.jboss.org/jira/browse/JBPM
      • Platform people are responsible for creating platform issues and linking them to project issues.
      • jBPM bug tracker will have releases defined corresponding the platform releases.  E.g. SOA 4.3 CP02, EAP 5.0
      • The jBPM team will discuss these issues with the platform team
      • The jBPM team will assign product related issues into a platform release and the responsible team member
    • Each jBPM community release can be identified as a product version.
      • A product branch is created in the project
      • Only productization issues (bug fixes) are committed to that branch
      • The platforms consume that product branch in their build
    • The jBPM team will commit issues before the platform code freeze date
    • The platform teams are responsible for creating the platform tags that are based on the platform branches