blob: 842b43c5f98b8a7eb77ae9dd7ec7e166eb198ccc [file] [view]
<div align="center">
<img src="https://openwebbeans.apache.org/resources/images/logo.png" width="300" />
</div>
<br>
![Maven Central](https://img.shields.io/maven-central/v/org.apache.openwebbeans/openwebbeans-impl)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Build Status](https://github.com/apache/openwebbeans/workflows/CI/badge.svg)](https://github.com/apache/openwebbeans/actions)
[![Build Status ASF](https://ci-builds.apache.org/buildStatus/icon?job=OpenWebBeans%2FOpenWebBeans+CI+%28main%29&subject=ASF-Build)](https://ci-builds.apache.org/job/OpenWebBeans/job/OpenWebBeans%20CI%20%28main%29/)
Apache OpenWebBeans (OWB) - Apache's implementation of the Contexts and Dependency Injection (CDI) / Jakarta CDI specification
## Branches
### main
Jakarta CDI 4.1 implementation (Jakarta EE 11), requires Java 17+.
### owb_4.0.x
![owb_4.0.x](https://img.shields.io/maven-central/v/org.apache.openwebbeans/openwebbeans-impl?versionPrefix=4.0&color=cyan)
Jakarta CDI 4.0 implementation (Jakarta EE 10), requires Java 11+.
### owb_2.0.x
![owb_2.0.x](https://img.shields.io/maven-central/v/org.apache.openwebbeans/openwebbeans-impl?versionPrefix=2.0&color=cyan)
CDI 2.0 (JSR-365) implementation (Java EE 8), requires Java 8+.
### owb_1.7.x
![owb_1.7.x](https://img.shields.io/maven-central/v/org.apache.openwebbeans/openwebbeans-impl?versionPrefix=1.7&color=cyan)
CDI 1.2 (JSR-346) implementation (Java EE 7), requires Java 7+.
### owb_1.2.x
![owb_1.2.x](https://img.shields.io/maven-central/v/org.apache.openwebbeans/openwebbeans-impl?versionPrefix=1.2&color=cyan)
CDI 1.0 (JSR-299) implementation (Java EE 6), requires Java 5+.
## Minimum Requirements (main)
- Java 17+
- CDI 4.1 (Jakarta CDI / Jakarta EE 11)
- TCK compliant
## Installation
```
mvn clean install
```
## Usage
### Core Dependency
```xml
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-impl</artifactId>
<version>${owb.version}</version>
</dependency>
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-spi</artifactId>
<version>${owb.version}</version>
</dependency>
```
### Web / Servlet Integration
```xml
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-web</artifactId>
<version>${owb.version}</version>
</dependency>
```
### JSF Integration
```xml
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-jsf</artifactId>
<version>${owb.version}</version>
</dependency>
```
### Tomcat Integration
```xml
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-tomcat</artifactId>
<version>${owb.version}</version>
</dependency>
```
### Arquillian Integration (Testing)
```xml
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-arquillian</artifactId>
<version>${owb.version}</version>
<scope>test</scope>
</dependency>
```
### JUnit 5 Integration (Testing)
```xml
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-junit5</artifactId>
<version>${owb.version}</version>
<scope>test</scope>
</dependency>
```
## Modules
OWB is modularly built — a full CDI container in under 1 MB total. Available modules include:
- `openwebbeans-impl` — core CDI container implementation
- `openwebbeans-spi` — SPI interfaces
- `openwebbeans-web` — Servlet / web container integration
- `openwebbeans-jsf` — Jakarta Faces integration
- `openwebbeans-tomcat` — Apache Tomcat integration
- `openwebbeans-jetty9` — Jetty 9 integration
- `openwebbeans-ejb` — EJB integration
- `openwebbeans-jms` — JMS integration
- `openwebbeans-el22` — EL 2.2+ integration
- `openwebbeans-osgi` — OSGi environment support
- `openwebbeans-se` — Java SE standalone support
- `openwebbeans-slf4j` — SLF4J logging bridge
- `openwebbeans-junit5` — JUnit 5 test support
- `openwebbeans-arquillian` — Arquillian test support
- `openwebbeans-gradle` — Gradle build support
## Java SE Usage
OWB can run as a standalone CDI container in plain Java SE applications (Swing, JavaFX, Eclipse RCP, etc.) without any application server or servlet container.
## More Information
Please visit https://openwebbeans.apache.org for full documentation, examples, and release notes.
Issue tracker: https://issues.apache.org/jira/browse/OWB