28.7. Configuring jBPM in Seam


Seam's jBPM integration is not installed by default. To enable jBPM, you must install a built-in component. You must also explicitly list your process and pageflow definitions. In components.xml:
<bpm:jbpm> 
  <bpm:pageflow-definitions> 
    <value>createDocument.jpdl.xml</value> 
    <value>editDocument.jpdl.xml</value> 
    <value>approveDocument.jpdl.xml</value> 
  </bpm:pageflow-definitions> 
  <bpm:process-definitions> 
    <value>documentLifecycle.jpdl.xml</value> 
  </bpm:process-definitions> 
</bpm:jbpm>
Copy to Clipboard Toggle word wrap
If you only have pageflows, no further configuration is required. If you have business process definitions, you must provide a jBPM configuration, and a Hibernate configuration for jBPM. The Seam DVD Store demo includes example jbpm.cfg.xml and hibernate.cfg.xml files that will work with Seam:
<jbpm-configuration> 
  <jbpm-context> 
    <service name="persistence"> 
      <factory> 
        <bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory"> 
          <field name="isTransactionEnabled"><false/></field> 
        </bean> 
      </factory> 
    </service> 
    <service name="tx" factory="org.jbpm.tx.TxServiceFactory" /> 
    <service name="message" 
     factory="org.jbpm.msg.db.DbMessageServiceFactory" /> 
    <service name="scheduler" 
             factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" /> 
    <service name="logging" 
             factory="org.jbpm.logging.db.DbLoggingServiceFactory" /> 
    <service name="authentication" 
             factory="org.jbpm.security.authentication
                          .DefaultAuthenticationServiceFactory"/> 
  </jbpm-context> 
</jbpm-configuration>
Copy to Clipboard Toggle word wrap
Note that jBPM transaction control is disabled — JTA transactions should be controlled by either Seam or EJB3.

28.7.1. Packaging

There is no well-defined packaging format for jBPM configuration and process or pageflow definition files. While other standard packaging formats may be developed, the Seam examples are packaged into the root of the EAR, and follow this structure:
my-application.ear/
    jboss-seam.jar
    lib/
       jboss-el.jar
       jbpm-jpdl.jar
    META-INF/
        MANIFEST.MF
        application.xml
    my-application.war/
        META-INF/
            MANIFEST.MF
        WEB-INF/
            web.xml
            components.xml
            faces-config.xml
            lib/
                jsf-facelets.jar
                jboss-seam-ui.jar
        login.jsp
        register.jsp
        ...
    my-application.jar/
        META-INF/
            MANIFEST.MF
            persistence.xml
        seam.properties
        org/
            jboss/
                myapplication/
                    User.class
                    Login.class
                    LoginBean.class
                    Register.class
                    RegisterBean.class
                    ...
    jbpm.cfg.xml
    hibernate.cfg.xml
    createDocument.jpdl.xml
    editDocument.jpdl.xml
    approveDocument.jpdl.xml
    documentLifecycle.jpdl.xml
Copy to Clipboard Toggle word wrap
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat