Sun Microsystems has announced the official release of the Java EE 6 specification, along with Glassfish V3 (the Java EE 6 reference implementation), and NetBeans 6.8, which enables you to easily build Java EE 6 applications.
Java EE 6
This revision of Java EE is all about simplification. There are some important new additions and updates as well. The updates include Servlets 3.0, JSF 2.0, EJB 3.1, Java Persistence 2.0, Java EE Connector API updates, and more. For EJBs and persistence, look for a model more like Spring and Hibernate, with resource dependancy injection and easier configuration.
As for what's been added, the two most anticipated features are:
- Java Context and Dependancy Injections (CDI): Formerly known as "Web Beans", and always known as JSR-299, CDI takes your plain-old-Java-objects (POJOs) and enables them for scaling in your enterprise applications. Inspired by Sprint, it simplifies development and deployment, and unifies existing Java EE APIs.
- Java EE Profiles: These are subsets of Java EE (which is otherwise quite large). There are currently two profiles: a web profile which is Tomcat-like, and includes a web server with support for Servlets, JSPs, and JSF; and the full Java EE profile which includes everything. However, Java EE 6 allows you to define your own, custom, profiles. New profiles are expected to be defined through the JCP process, which will address specific application deployment patterns.
Other additions include the new Web Services and Interoperability (WSIT) features that came from the Microsoft collaboration, and many new APIs for REST-based services, and REST-based administration of your enterprise applications.
The all encompassing Java EE 6 specification can be found here. Table 1 (at the end of this article) provides a list of the individual specifications and versions that make up Java EE 6, with links to the JSRs and specifications themselves.
"Over the years the Java EE platform has grown and matured to cover a wide range of enterprise and web application needs. Java EE 6 is designed to be more lightweight and modular to help simplify development, serve more applications and address various deployment scenarios. The innovative features and productivity improvements now available in Java EE 6 are the result of an extensive, collaborative development effort between Sun, the JCP and open source community members," says Karen Tegan Padir, vice president of MySQL and Software Infrastructure at Sun. "The introduction of Java EE 6 Profiles brings new flexibility to the platform and helps to address the needs of the various communities by adding new functionality and ease of use capabilities. We expect Profiles to usher in a new era of innovation and the possibility of many exciting new products for the Java EE platform."
You can download the Java EE 6 specification and SDK here.
Glassfish is the Java EE reference implementation, but over the past few years, Sun has been successful in marketing it as a licensed, supported, production-ready application server. Using Glassfish as your enterprise's application server has multiple advantages:
- Since it's the reference implementation, it's always up to date with the latest Java EE specification release and future drafts.
- It's dual-licensed as open-source and commercial. Therefore it's freely available, and Sun offers support plans as well.
- It's integrated with Open Solaris, which is an open-source version of an OS that many enterprises depend on for their enterprise infrastructure already.
- It's fully embeddable, with APIs and interfaces specifically to make this possible and straightforward.
With Glassfish v3, Sun offers the latest Java EE 6 support with some interesting packaging. For the first time, Glassfish is based on OSGi, allowing for the dynamic addition of new functionality both from Sun and third parties. It also helps to keep the base footprint of the application server small, pulling in only the modules that are required by your application. As a result, this helps reduce both deployment and start-up time. In fact, Glassfish v3 starts up twice as fast as Glassfish v2, and over three times as fast when running the Web Profile edition.
"In addition to delivering the tremendous enhancements available in Java EE 6, Sun GlassFish Enterprise Server v3 provides features to help improve start-up time and reduce resource utilization plus fine-grained monitoring capabilities that offer improved observability for both developers and IT operators. People should think of GlassFish v3 as a pluggable runtime that can host many types of containers and enable rapid, iterative development with multiple programming languages -- allowing customers to consolidate to a single platform/runtime," said Padir went on to say. "Because Sun GlassFish Enterprise Server v3 is based on open source technology, customers have more control over their product deployments and don't have to choose between open source and enterprise features. GlassFish Enterprise Server offers transparency through the publicly available roadmap of product requirements and priorities that is strengthened by external contributions and a vibrant community."
If you haven't kept up with the progress of the Glassfish v3 prelude suite, the pre-release of the version announced today, here's a rundown. The Glassfish v3 platform will now come in different flavors, or "bundles", to make it easier to target a deployment for your application. Here is a summary:
- Glassfish Enterprise Server: Full bundle; OSGi-based; Embedded API; RESTful admin API; Lightweight and fast startup; Session retention for easier debugging.
- Glassfish Metro: Deployable subset includes XML/WS/REST/JSON stack (JAXP, JAXB, SAAJ, JAX-WS, JAX-RS, WSIT all integrated).
- Glassfish ESB: Open-source ESB with base set of adapters for core integration, built on Glassfish server for enterprise readiness.
- Glassfish Web Stack: LAMP stack on Glassfish; Fully integrated Apache HTTP/Tomcat/MySQL/PHP stack on Linux or OpenSolaris. This removes the tedious work of downloading, installing, and integrating the various components, and delivers it for you in one installation.
- Glassfish Web Space Server: Expansion of Portal Server; Includes web 2.0 features such as content collaboration, wikis, blogs, calendaring, document sharing, web content authoring and publishing, Ajax support, a library of Web UI controls, and advanced security.
Other enhancements and additions include, many community contributions, including Oracle EclipseLink for persistence, Red Hat's implementation of CDI (JSR 299) and Bean Validation (JSR 303), and the FishCAT program for bug reporting and bug fixes.
One development feature that I find particularly useful is Session Retention. With this, while debugging a problem in your web or enterprise application, as you make changes NetBeans and Glassfish save your session and application state so that you don't need to restore it each time you restart Glassfish. For instance, if you're debugging a problem where you must first log in, and setup a scenario that affects your session (such as performing a search, populating a shopping cart, or finalizing some transaction, for example), performing the required steps each time you compile and debug can be timeconsuming.
With Session Retention, Glassfish remembers your state throughout each of these codedebug cycles and allows you to pick up where you left off each time -- a real time saver. To learn more, and to download any of the Glassfish Portfolio products go here
With Java EE 6 and Glassfish v3, it makes sense that the NetBeans release now allows you to easily build full-featured Java EE 6 applications, and target Glassfish v3. This includes the Java EE 6 full profile, as well as the new web profile, which is implemented by the lightweight Glassfish v3 Web Profile edition. There's also improved support for the latest JSF 2.0/Facelets, Java Persistence 2.0, and EJB 3.1, including using EJBs in web applications and RESTful web services.
In addition to Java EE 6 support, NetBeans 6.8 adds other new features such as:
- Expanded PHP Support, including PHP 5.3 and the Symfony framework
- Tighter Integration with Project Kenai, which is a collaborative environment for hosting open-source projects. NetBeans now delivers full support for JIRA and improved instant messenger and issue tracker integration, all from within the IDE.
- Improved C/C ++ profiling with the new Microstate Accounting indicator, I/O usage monitor.
- Improved JavaFX development with improved code completion, hints, and navigation for JavaFX in the NetBeans editor.
"With this new NetBeans release, Sun continues its commitment to delivering open source developer tools," said Jim Parkinson, vice president of Developer Products and Programs at Sun. "Java EE 6 and GlassFish v3 enable developers to create enterprise applications more easily and with less code, significantly speeding application development and deployment." For the latest NetBeans information and downloads, go here.
I've been using NetBeans for years now, and it makes building, debugging, and deploying Java SE, Java EE, and Java ME applications a snap. I look forward to using all of the new features in version 6.8 -- including support for other languages -- and will blog about my experiences as they take place. Follow me at DobbsCodeTalk.com for all of my latest NetBeans and Java-related adventures, as well as on Twitter @ericjbruno.