OpenWebBeans, Web Beans Container Implementation

Abstract

Open Web Beans will be an ASL-licensed implementation of the Web Beans Specification which is defined as JSR-299. .

Proposal

Web Beans specification is an effort for defining stateful, contextual component models and its management for the enterprise applications that run on the Java EE 6 containers. It is a big step that it unifies the EJB (Enterprise Java Beans) and JSF (Java Server Faces) standart component models easily with simplifying the complex programming model from the developer perspective. Currently there is no standard based approach for integrating EJB session beans as a JSF based managed bean. Moreover, EJB does not define any contextual component model. Developer is responsible for managing all the lifecycle of the EJB components. Web Beans provides the management and lifecycle of the components within the container with a standart fashion. It uses the Java 5.0 annotation capability to further easing the configuration efforts.

Altough Web Beans simplifies the EJB programming model within the enterprise projects, it could also be used outside of the Java EE containers, such as Apache Tomcat with its powerful component and context model.

Open Web Beans Project is responsible for implementing the runtime container contract for the Web Beans specification. Besides the implementation, Open Web Beans Project will implement the core built-in components that further simplifies the developer complex interactions with other Java EE specific enterprise operations. For example, it defines the JMS (Java Messaging Service) Web Beans Component used for enterprise messaging, Logging Component for logging, Security Component for security etc.

Background

The development of this project is started by the individual developer as an open source project that is hosted on the sourceforge. Using the Open Web Beans project, enterprise developers unifies the EJB and JSF technlogies together easily. Neither of these standarts solves the all problems of the Java EE environment. While the EJB components solves the security, transactions, concurrency and scalability problems, JSF defines the web-tier presentation framework with its graphical component models, events and managed bean facility.

Web Beans enables the developers to unify these component models easily within well defined semantics. Applications that uses the Open Web Beans Project may get more advanced context and component model provided by the project.

Rationale

Current Web Beans specificatin is in the EDR (Early Draft Review) level now, and no reference implementation is available yet. Introducing the early implementation of the specification to the enterprise community with using other Apache related projects, such as Open EJB, Open JPA and MyFaces, will attract a diverse community. Moreover, Open Web Beans will work closely with the other Apache projects such that it depends on the Open EJB, Open JPA and My Faces. Moreover, Geronimo may include it as a Web Beans Container when it implements Java EE 6 specification as a runtime environment in which Web Beans executes.

Current Web Beans specification may be used in the Java EE 5 environment. Its very powerful type safe and EL component model injection mechanisms and other very useful stuffs could attracts the community that will use it in their current enterprise projects.

Initial Goals

The initial goals of the Open Web Beans Project are

Fully implement the JSR-299 specification.

Attracts a community around the current code base.

Active relationship with the other dependent projects to further develop some useful Web Beans Components.

Current Status

Meritocracy

Initial developer of the project is familiar with the meritocracy principles of Apache. He knows that the open source gets power from its great developers and freedom. He also developed some other open source projects. We will follow the normal meritocracy rules also with other potential contributors.

Community

There is a great community within the Open EJB, Open JPA, Geronimo and MyFaces Apache projects. Open Web Beans project is very related with these projects and in the some cases, it enhances these projects. We are thinking that Open Web Beans project gets strong community because it simplifies and unifies the using of these projects. It simplifies the developer effort for building complex enterprise applications.

Core Developers

Open Web Beans project has been developing by the open source developer Gurkan Erdogdu as a sole contributor.

Alignment

Open Web Beans project will be a candidate for use in Geronimo AS as a default Web Beans Container. Other projects could benefit from the Open Web Beans project as a general purpose component and context management.

Open Web Beans project is closely aligned with the Open EJB, Open JPA and MyFaces projects perfectly. It depends on these projects to satisfy its requirements.

Known Risks

Orphaned products

Even if the initial committer of the project has no plan to leave the active development, it must necessary to get other committers for the project. So that it less dependent on the single developer. The source code of the project is well documented and new committers could easily grasp the details. Initial committer continues to support actively this project.

Inexperience with Open Source

Initial developer have worked on open source project before, including the JBoss Cache IDE while committer as the JBoss IDE.

Homogeneous Developers

Altough the initial committer of the project is single, developer team may be increased within the active project lifecycle from the different locations.

Reliance on Salaried Developers

Project currently has no salaried developers. All the commitment is done by the volunteer developer.

Relationships with Other Apache Products

Open Web Beans will likely be used in the Geronimo and Apache Tomcat. It also requires Open JPA, Open EJB and MyFaces.

An Excessive Fascination with the Apache Brand

Open Web Beans project initial committer is the strong supporter of the open source projects. Initial committer of the project thinks that ASF has great place that provides wider colloboration and support of the open source project and it respects meritrocracy. Also, Open Web Beans project is embraced by the Geronimo and other Apache projects. Open Web Beans project is closely related with the some of the other Apache projects.

Documentation

Currently there is no documentation about the project. But the all the source code is well documented.