Welcome!

Weblogic Authors: JP Morgenthal, RealWire News Distribution

Related Topics: Weblogic

Weblogic: Article

Open Source Technologies

Apache beehive and workshop

Earlier this year, BEA donated several proprietary technologies to the open source community primarily to increase the adoption of BEA WebLogic Workshop, which is the basic entry point into the WebLogic Platform suite. Although for typical J2EE applications deployed on the WebLogic Server, Workshop serves only as a basic IDE; for development in WebLogic Portal, BEA WebLogic Integration or BEA Liquid Data for WebLogic, Workshop forms the only IDE that you can really use.

By open sourcing several technologies such as XML Beans, Java PageFlows, Controls, and others, BEA hopes that several plugins will be created so that more popular development tools can be used to develop J2EE and Web services applications on WebLogic Workshop.

XMLBeans
In September 2003, BEA released the XMLBeans technology to open source. Like OR mapping tools allow you to make relational data to objects, XMLBeans provide a way to map XML data to objects. XMLBeans fully support XML Schemas and provide an easy API to access XML data as if you were accessing data in a JavaBean. XMLBeans 1.0 is currently a stable release, and a lot of work is being done to make it more suitable for large Web services applications.

Assume you have an XML Schema. You can easily generate a set of classes that allow you to work with this schema. In BEA WebLogic Workshop, this can be done using an XML Schema project. You get a JAR file with the classes that are used to work with any XML file that conforms to this schema. For example, you can access data from the XML file using these simple commands.


// Load an XML document
MyDocument myDocument = MyDocument.Factory.parse(inputFile);
Document doc = myDocument.getDocument();

// get an element from the head
Header header = doc.getHeader();
Element element = header.getElement();
Attribute attribute = element.getAttribute();

One good way to use XMLBeans is as Data Transfer objects from your View layer to your Model layer.

Apache Beehive Project
The Beehive project was created with the Java PageFlow technologies that were introduced in BEA WebLogic Workshop. The main focus of the project is to simplify J2EE and Web services programming by using annotations. Java PageFlows are directly on top of Struts, and provides support for JSR-175, a metadata specification that allows you to reduce the J2EE coding required.

In addition to PageFlows, the Beehive project also has support for the technology called "Controls" - a component framework with support for metadata. The final piece of the Beehive project is JSR-181 - an annotation-driven model for Web services.

Initially, development for Java PageFlows and Controls could only be done using WebLogic Workshop as your IDE. Recently the Eclipse Foundation launched a project called "Pollinate" to build support for Beehive into the Eclipse IDEs. Other popular IDEs, such as IDEA IntelliJ, NetBeans, and JBuilder will soon fully support Beehive projects. (Note: This is not to say that you cannot use these IDEs today. See the Beehive Wiki in the References for more information.)

Beehive has been released under the Apache License v2.0 and is being promoted widely by BEA. Only 50% of the committers to Beehive are BEA employees, which should encourage other developers to contribute to this project.

My Take
Personally, I believe BEA made a great decision by open sourcing several of their proprietary technologies. Not only will this foster a greater adoption of BEA WebLogic Workshop as a tool, but as more J2EE applications are built faster, it will help the WebLogic Server find greater adoption. J2EE and Web services developers will be able to build applications faster and more easily using the metadata annotation for a lot of core/redundant tasks (like writing getters and setters for your Java Beans).

References

  • Apache XML Beans Web site: http://xmlbeans.apache.org
  • BEA's dev2dev from BEA: http://dev2dev.bea.com
  • Apache Beehive: http://incubator.apache.org/beehive
  • Beehive Wiki: http://wiki.apache.org/beehive
  • Eclipse Pollinate: www.eclipse.org/pollinate
  • More Stories By Kunal Mittal

    Kunal Mittal is a consultant for implementation and strategy for Web services and services-oriented architectures. He has co-authored and contributed to several books on Java, WebLogic and Web services.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.