What is Beehive

What is Beehive

The Apache Beehive is a Java Application Framework designed to make the development of Java EE based applications quicker and easier. It makes use of various open-source projects at Apache like XMLBeans. It leverages the latest innovations in Java 5 which includes JSR-175 which is a facility for annotating fields, methods and classes so that they can be treated in special ways by runtime tools. It builds on the framework developed for BEA Systems Weblogic Workshop for its 8.1 series. BEA later decided to donate the code to Apache, so that a wider audience could get an opportunity to use Beehive.

Version 8.1 of BEA’s Weblogic Workshop includes a number of significant enhancements to version 7.0. The previous version was more focused on creating industrial-strength web services quickly. However 7.0 did not have many customers, and it failed to create a stir in the market. However for version 8.1, BEA created a whole new IDE which helped programmers to develop Java EE based applications more quickly. This was significantly better than 7.0 with more advanced features and also won several awards and gained a lot of critical acclaim. However a new revolution was brewing in the Java universe in the form of Eclipse and it seemed like everyone was moving towards it. Although Workshop 8.1 did not succeed as much as it intended to, the Weblogic Workshop Framework which was developed for 8.1 version Workshop was recognized as a good solid framework and hence in order that it can be used with other Java EE based application servers, BEA decided to open-source the project under the purview of the Apache Software Foundation.

READ  Cross-site scripting - part 2

Beehive components

Netui Page Flows
This is an application framework built on top of Apache Struts which allows easier tooling and automatic updating of the various Struts configuration files.

Controls

This is the heart of the Beehive framework. A control can be defined as a program which can be used by the developer to quickly gain access to enterprise-level resources such as Enterprise Java Beans (EJBs), web services etc. For example consider accessing a EJB. It involves a lot of boiler-plate code like getting an access to home interface, then creating/finding a EJB using finder methods and then accessing the remote methods of the bean. Using a control simplifies this because it does most of the boiler-plate or routine coding for the developer, who can concentrate more on business logic rather than worrying about the inner-details of Java EE technology. If the developer is high-quality, even then it is useful because then the developer can concentrate on more useful things like constructing a Facade to a complex set of application API’s. In essence a control to an EJB ensures that the developer can simply use the control and call any business method of the EJB, using it in the same way as any other Java class. The Controls come with a standard set of controls wiz EJB Control, Webservice Control, Database Control and JMS Control. Custom controls can also be developed which in turn could make use of the controls already built-in.

Webservices
This is the third component of Beehive and it enables a developer to create webservices using meta-data/annotations quickly. In essence by using meta-data/annotations one can create complex web services utilizing features like conversation, state etc quickly and since all the meta-data/annotations are in one file, it is easier to debug and maintain. Using this approach any plain Java class can be converted into a web service just by the addition of annotations into the Java source files. This is based on JSR-181 which builds on JSR-175.

  • NetUI: An annotation-driven web application programming framework that is built atop Struts. NetUI centralizes navigation logic, state, metadata, and exception handling in a single encapsulated and reusable Page Flow Controller class. In addition, NetUI provides a set of JSP tags for rendering HTML / XHTML and higher-level UI constructs such as data grids and trees and has first-class integration with JavaServer Faces and Struts.
  • Controls: A lightweight, metadata-driven component framework for building that reduces the complexity of being a client of enterprise resources. Controls provide a unified client abstraction that can be implemented to access a diverse set of enterprise resources using a single configuration model.
  • Web Service Metadata (WSM): An implementation of JSR 181 which standardizes a simplified, annotation-driven model for building Java web services.
READ  J2EE Checklists

In addition, Beehive includes a set of system controls that are abstractions for low-level J2EE resource APIs such as EJB, JMS, JDBC, and web services

External Beehive related links