MCPcopy Index your code
hub / github.com/apache/openwebbeans

github.com/apache/openwebbeans @openwebbeans-4.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release openwebbeans-4.1.0 ↗ · + Follow
8,750 symbols 27,916 edges 1,576 files 1,506 documented · 17%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Maven Central License Build Status Build Status ASF

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
Jakarta CDI 4.0 implementation (Jakarta EE 10), requires Java 11+.

owb_2.0.x

owb_2.0.x
CDI 2.0 (JSR-365) implementation (Java EE 8), requires Java 8+.

owb_1.7.x

owb_1.7.x
CDI 1.2 (JSR-346) implementation (Java EE 7), requires Java 7+.

owb_1.2.x

owb_1.2.x
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

<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

<dependency>
    <groupId>org.apache.openwebbeans</groupId>
    <artifactId>openwebbeans-web</artifactId>
    <version>${owb.version}</version>
</dependency>

JSF Integration

<dependency>
    <groupId>org.apache.openwebbeans</groupId>
    <artifactId>openwebbeans-jsf</artifactId>
    <version>${owb.version}</version>
</dependency>

Tomcat Integration

<dependency>
    <groupId>org.apache.openwebbeans</groupId>
    <artifactId>openwebbeans-tomcat</artifactId>
    <version>${owb.version}</version>
</dependency>

Arquillian Integration (Testing)

<dependency>
    <groupId>org.apache.openwebbeans</groupId>
    <artifactId>openwebbeans-arquillian</artifactId>
    <version>${owb.version}</version>
    <scope>test</scope>
</dependency>

JUnit 5 Integration (Testing)

<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

Extension points exported contracts — how you extend this code

ConversationService (Interface)
Conversation related SPI. @version $Rev$ $Date$ [6 implementers]
webbeans-spi/src/main/java/org/apache/webbeans/spi/ConversationService.java
DescriptiveException (Interface)
This interface defines an exception which can later get catched and an additional description can be added. This is use [15 …
webbeans-impl/src/main/java/org/apache/webbeans/exception/helper/DescriptiveException.java
LoggerFactory (Interface)
(no doc) [10 implementers]
samples/standalone-sample/src/main/java/org/apache/webbeans/se/sample/LoggerFactory.java
Unwrap (Interface)
(no doc) [38 implementers]
webbeans-jetty9/src/main/java/org/apache/webbeans/web/jetty9/JettySecurityService.java
Unwrap (Interface)
(no doc) [38 implementers]
webbeans-tomcat/src/main/java/org/apache/webbeans/web/tomcat/TomcatSecurityService.java
ILoginController (Interface)
(no doc) [5 implementers]
samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/ILoginController.java
Provider (Interface)
(no doc) [5 implementers]
webbeans-junit5/src/test/java/org/apache/openwebbeans/junit5/features/AlternativeTest.java
DefaultDiscoveryModeModule (Interface)
Will get loaded normal with bean-discovery-mode="all"
webbeans-tck/src/test/java/org/apache/webbeans/tck/test/beandiscovery/scoped/DefaultDiscoveryModeModule.java

Core symbols most depended-on inside this repo

assertNotNull
called by 564
webbeans-impl/src/main/java/org/apache/webbeans/util/Asserts.java
getName
called by 331
webbeans-impl/src/main/java/org/apache/webbeans/deployment/stereotype/IStereoTypeModel.java
getBeanManager
called by 326
webbeans-spi/src/main/java/org/apache/webbeans/spi/ContainerLifecycle.java
add
called by 247
webbeans-impl/src/main/java/org/apache/webbeans/util/UrlSet.java
size
called by 244
webbeans-impl/src/main/java/org/apache/webbeans/util/UrlSet.java
getName
called by 230
webbeans-impl/src/test/java/org/apache/webbeans/test/injection/generics/zoo/Animal.java
append
called by 219
webbeans-impl/src/main/java/org/apache/webbeans/exception/helper/ViolationMessageBuilder.java
getClass
called by 210
webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java

Shape

Method 6,783
Class 1,815
Interface 144
Enum 8

Languages

Java100%

Modules by API surface

webbeans-impl/src/test/java/org/apache/webbeans/test/portable/AnnotatedTypeImplTest.java229 symbols
webbeans-impl/src/test/java/org/apache/webbeans/test/interceptors/factory/beans/TonsOfMethodsInterceptedClass.java131 symbols
webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java91 symbols
webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java74 symbols
webbeans-web/src/test/java/org/apache/webbeans/web/tests/MockServletRequest.java69 symbols
webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java58 symbols
webbeans-impl/src/main/java/org/apache/webbeans/configurator/BeanConfiguratorImpl.java58 symbols
webbeans-impl/src/main/java/org/apache/webbeans/configurator/TrackingAnnotatedTypeConfiguratorImpl.java56 symbols
webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java52 symbols
webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/test/MockServletContext.java51 symbols
webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java50 symbols
webbeans-impl/src/main/java/org/apache/webbeans/container/InjectableBeanManager.java48 symbols

For agents

$ claude mcp add openwebbeans \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact