Apache Beehive

Last updated
Apache Beehive
Developer(s) Apache Software Foundation
Final release
1.0.2 / December 4, 2006;17 years ago (2006-12-04)
Repository
Written in Java
Operating system Cross-platform
Type Java Application Framework
License Apache License 2.0
Website beehive.apache.org

Apache Beehive is a discontinued Java Application Framework that was designed to simplify the development of Java EE-based applications. It makes use of various open-source projects at Apache, such as XMLBeans. Apache Beehive uses Java 5, including JSR-175, 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.

Contents

History

Version 8.1 of BEA's WebLogic Workshop includes several improvements over version 7.0. The previous version was focused on creating industrial-strength web services quickly, and it failed due to low adoption and use. For version 8.1, BEA created a whole new Integrated Development Environment (IDE), which helped programmers to develop Java EE-based applications more quickly. The improvements in Version 8.1 over Version 7 garnered several awards.

Although Workshop 8.1 only had limited success, the WebLogic Workshop Framework, which was developed for the 8.1 version Workshop, was recognized as a solid framework. In order for it to be used with other Java EE-based application servers, BEA decided to open-source the project under the purview of the Apache Software Foundation. The latest version of Beehive was released on December 4, 2006, and retired to Apache Attic in January 2010.

Beehive components

Netui Page Flows

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

Controls

Controls are the core of the Beehive framework. A control can be defined as a program that can be used by the developer to access enterprise-level resources, such as Enterprise Java Beans (EJBs), web services etc. For example, consider accessing an old legacy EJB 2 bean. It involved a lot of routine code like getting access to a home interface, creating/finding an EJB using finder methods, and then accessing the remote methods of the bean. Using a control simplifies this process by handling most of the routine coding for the developer, letting them work on business logic rather than the inner-details of Java EE technology. Controls are also useful to advanced developers, allowing them to concentrate on things like constructing a Facade to a complex set of application APIs. In essence, a control to a legacy EJB 2 been ensured that the developer could simply use the control and call any business method of the EJB, using it in the same way as any other Java class. When EJB 3 came around, such simplification was already provided by the EJB specification itself, [1] [2] [3] [4] And Beehive controls were of little further use here. [5] [6] The Controls come with a standard set of controls wiz EJB Control, Web service Control, Database Control and JMS Control. Custom controls can also be developed, which in turn could make use of the controls already built-in.

Web services

This third component of Beehive enables a developer to create web services using meta-data/annotations. By using meta-data/annotations one can create complex web services utilizing features like conversation, state etc. Since all the metadata/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.

Related Research Articles

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

The Jakarta Transactions, one of the Jakarta EE APIs, enables distributed transactions to be done across multiple X/Open XA resources in a Java environment. JTA was a specification developed under the Java Community Process as JSR 907. JTA provides for:

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

Java Data Objects (JDO) is a specification of Java object persistence. One of its features is a transparency of the persistence services to the domain model. JDO persistent objects are ordinary Java programming language classes (POJOs); there is no requirement for them to implement certain interfaces or extend from special classes. JDO 1.0 was developed under the Java Community Process as JSR 12. JDO 2.0 was developed under JSR 243 and was released on May 10, 2006. JDO 2.1 was completed in Feb 2008, developed by the Apache JDO project. JDO 2.2 was released in October 2008. JDO 3.0 was released in April 2010.

<span class="mw-page-title-main">NetBeans</span> Integrated development environment software for software development

NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called modules. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java development, it has extensions for other languages like PHP, C, C++, HTML5, and JavaScript. Applications based on NetBeans, including the NetBeans IDE, can be extended by third party developers.

Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.

Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.

Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

<span class="mw-page-title-main">JOnAS</span>

JOnAS is an open-source implementation of the Java EE application server specification, developed and hosted by the OW2 consortium, having been originally been created by Groupe Bull. JOnAS is released under the LGPL 2.1 open-source license.

WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java-based web applications. It is the flagship product within IBM's WebSphere software suite. It was initially created by Donald F. Ferguson, who later became CTO of Software for Dell. The first version was launched in 1998. This project was an offshoot from IBM HTTP Server team starting with the Domino Go web server.

In software engineering, a plain old Java object (POJO) is an ordinary Java object, not bound by any special restriction. The term was coined by Martin Fowler, Rebecca Parsons and Josh MacKenzie in September 2000:

"We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely."

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.

EasyBeans is an open-source Enterprise JavaBeans (EJB) container hosted by the OW2 Consortium. The License used by EasyBeans is the LGPL. EasyBeans is the EJB 3.0 container of the JOnAS application server.

Jakarta Persistence is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.

OpenJPA is an open source implementation of the Java Persistence API specification. It is an object-relational mapping (ORM) solution for the Java language, which simplifies storing objects in databases. It is open-source software distributed under the Apache License 2.0.

The Jakarta Expression Language is a special purpose programming language mostly used in Jakarta EE web applications for embedding and evaluating expressions in web pages. The specification writers and expert groups of the Java EE web-tier technologies have worked on a unified expression language which was first included in the JSP 2.1 specification (JSR-245), and later specified by itself in JSR-341, part of Java EE 7.

<span class="mw-page-title-main">JBoss Seam</span> Web application framework

Seam was a web application framework developed by JBoss, a division of Red Hat.

Jakarta RESTful Web Services, is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern. JAX-RS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints.

<span class="mw-page-title-main">Spring Roo</span> Open-source software tool

Spring Roo is an open-source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Thymeleaf, Apache Maven and AspectJ. Spring Roo is a member of the Spring portfolio of projects.

The JBoss Enterprise Application Platform is a subscription-based/open-source Java EE-based application server runtime platform used for building, deploying, and hosting highly-transactional Java applications and services developed and maintained by Red Hat. The JBoss Enterprise Application Platform is part of Red Hat's Enterprise Middleware portfolio of software. Because it is Java-based, the JBoss application server operates across platforms; it is usable on any operating system that supports Java. JBoss Enterprise Application Platform was originally called JBoss and was developed by the eponymous company JBoss, acquired by Red Hat in 2006.

References

  1. "This release made it much easier to write EJBs, using 'annotations' rather than the complex 'deployment descriptors' used in version 2.x. The use of home and remote interfaces and the ejb-jar.xml file were also no longer required..." EJB
  2. EJB 3 example
  3. "Enterprise Java Beans (EJB) 3.0 is a deep overhaul and simplification of the EJB specification." http://www.jboss.org/ejb3
  4. "... the heavyweight programming paradigm in EJB 2.x, the flawed persistence model in EJB 2.x entity beans..." "In our view, one of the most important changes in EJB 3.1 is the redefinition of EJBs as simple managed bean POJOs with additional services." http://blog.caucho.com/?p=384 Archived 2010-11-23 at the Wayback Machine
  5. "... the EJB 3 client model has essentially standardized much of the value-add that the [Beehive] EJB control offered in terms of simplifying the EJB 2.1 client model" http://markmail.org/message/mh43akcleflzes3r
  6. Andre McCulloch, "OK, these are great points that lead me to believe that and [sic] EJB3 control does not provide much value add for Beehive right now." http://markmail.org/message/ktec5f4gsbw22ijb

Bibliography