> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aseeflow.org/llms.txt
> Use this file to discover all available pages before exploring further.

# CDI and Java EE Integration

The `camunda-engine-cdi` and `camunda-engine-cdi-jakarta` modules provide programming model integration with CDI (Context and Dependency Injection).
CDI is the Jakarta EE/Java EE standard for Dependency Injection. The ASEE Flow CDI integration leverages both the configuration of the ASEE Flow engine
and the extensibility of CDI. The most prominent features are:

* A custom El-Resolver for resolving CDI beans (including EJBs) from the process.
* Support for `@BusinessProcessScoped` beans (CDI beans, the lifecycle of which are bound to a process instance).
* Declarative control over a process instance using annotations.
* The Process Engine is hooked-up to the CDI event bus.
* Works with Jakarta EE, Java EE, and Java SE.
* Support for unit testing.

<Info>
  **Quarkus Engine Extension**

  Since Quarkus ArC does not aim to fully implement CDI 2.0, you cannot use the full range of features the `camunda-engine-cdi` module provides.
  Read about the limitations in the [Quarkus Integration](/user-guide/quarkus-integration/cdi-integration#limitations) guide.
</Info>

## Maven Dependency

To use the `camunda-engine-cdi` module inside your application, you must include the following Maven dependency:

<Info>
  Please import the [ASEE Flow BOM](/get-started/apache-maven) to ensure correct versions for every ASEE Flow project.
</Info>

```xml theme={null}
<dependency>
  <groupId>org.aseeflow.bpm</groupId>
  <artifactId>aseeflow-engine-cdi</artifactId>
</dependency>
```

For Jakarta EE 9+ containers, use the following dependency instead:

```xml theme={null}
<dependency>
  <groupId>org.aseeflow.bpm</groupId>
  <artifactId>aseeflow-engine-cdi-jakarta</artifactId>
</dependency>
```

## In this section

* [**JTA Transaction Integration**](/user-guide/cdi-java-ee-integration/jta-transaction-integration) — Integrate with JTA transactions.
* [**Expression Resolving**](/user-guide/cdi-java-ee-integration/expression-resolving) — Resolve CDI beans in expressions.
* [**Contextual Programming Model**](/user-guide/cdi-java-ee-integration/contextual-programming-model) — Use CDI contexts with the engine.
* [**Built-In Beans**](/user-guide/cdi-java-ee-integration/built-in-beans) — The beans the integration provides.
* [**CDI Event Bridge**](/user-guide/cdi-java-ee-integration/the-cdi-event-bridge) — Bridge engine events to CDI events.
